Create bulk export
curl --request POST \
--url https://app.silnahealth.com/api/public/v1/bulk-export/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"export_params": {
"export_type": "PRIOR_AUTHORIZATION",
"date_range_start_date": "2024-01-01",
"date_range_end_date": "2024-02-01",
"date_range_key": null,
"specialties": null,
"service_location_ids": null,
"payor_entity_ids": null,
"statuses": null,
"authorization_types": null,
"patient_id": null,
"patient_plan_ids": null,
"patient_status": null
},
"provider_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://app.silnahealth.com/api/public/v1/bulk-export/"
payload = {
"export_params": {
"export_type": "PRIOR_AUTHORIZATION",
"date_range_start_date": "2024-01-01",
"date_range_end_date": "2024-02-01",
"date_range_key": None,
"specialties": None,
"service_location_ids": None,
"payor_entity_ids": None,
"statuses": None,
"authorization_types": None,
"patient_id": None,
"patient_plan_ids": None,
"patient_status": None
},
"provider_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
export_params: {
export_type: 'PRIOR_AUTHORIZATION',
date_range_start_date: '2024-01-01',
date_range_end_date: '2024-02-01',
date_range_key: null,
specialties: null,
service_location_ids: null,
payor_entity_ids: null,
statuses: null,
authorization_types: null,
patient_id: null,
patient_plan_ids: null,
patient_status: null
},
provider_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://app.silnahealth.com/api/public/v1/bulk-export/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.silnahealth.com/api/public/v1/bulk-export/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'export_params' => [
'export_type' => 'PRIOR_AUTHORIZATION',
'date_range_start_date' => '2024-01-01',
'date_range_end_date' => '2024-02-01',
'date_range_key' => null,
'specialties' => null,
'service_location_ids' => null,
'payor_entity_ids' => null,
'statuses' => null,
'authorization_types' => null,
'patient_id' => null,
'patient_plan_ids' => null,
'patient_status' => null
],
'provider_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.silnahealth.com/api/public/v1/bulk-export/"
payload := strings.NewReader("{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.silnahealth.com/api/public/v1/bulk-export/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.silnahealth.com/api/public/v1/bulk-export/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"bulk_export_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"message": "<string>"
}{
"message": "<string>",
"type": "AUTH_INVALID_REQUEST_HEADER"
}{
"message": "<string>"
}{
"message": "<string>"
}Exports
Create bulk export
POST
/
public
/
v1
/
bulk-export
/
Create bulk export
curl --request POST \
--url https://app.silnahealth.com/api/public/v1/bulk-export/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"export_params": {
"export_type": "PRIOR_AUTHORIZATION",
"date_range_start_date": "2024-01-01",
"date_range_end_date": "2024-02-01",
"date_range_key": null,
"specialties": null,
"service_location_ids": null,
"payor_entity_ids": null,
"statuses": null,
"authorization_types": null,
"patient_id": null,
"patient_plan_ids": null,
"patient_status": null
},
"provider_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://app.silnahealth.com/api/public/v1/bulk-export/"
payload = {
"export_params": {
"export_type": "PRIOR_AUTHORIZATION",
"date_range_start_date": "2024-01-01",
"date_range_end_date": "2024-02-01",
"date_range_key": None,
"specialties": None,
"service_location_ids": None,
"payor_entity_ids": None,
"statuses": None,
"authorization_types": None,
"patient_id": None,
"patient_plan_ids": None,
"patient_status": None
},
"provider_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
export_params: {
export_type: 'PRIOR_AUTHORIZATION',
date_range_start_date: '2024-01-01',
date_range_end_date: '2024-02-01',
date_range_key: null,
specialties: null,
service_location_ids: null,
payor_entity_ids: null,
statuses: null,
authorization_types: null,
patient_id: null,
patient_plan_ids: null,
patient_status: null
},
provider_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://app.silnahealth.com/api/public/v1/bulk-export/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.silnahealth.com/api/public/v1/bulk-export/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'export_params' => [
'export_type' => 'PRIOR_AUTHORIZATION',
'date_range_start_date' => '2024-01-01',
'date_range_end_date' => '2024-02-01',
'date_range_key' => null,
'specialties' => null,
'service_location_ids' => null,
'payor_entity_ids' => null,
'statuses' => null,
'authorization_types' => null,
'patient_id' => null,
'patient_plan_ids' => null,
'patient_status' => null
],
'provider_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.silnahealth.com/api/public/v1/bulk-export/"
payload := strings.NewReader("{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.silnahealth.com/api/public/v1/bulk-export/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.silnahealth.com/api/public/v1/bulk-export/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"export_params\": {\n \"export_type\": \"PRIOR_AUTHORIZATION\",\n \"date_range_start_date\": \"2024-01-01\",\n \"date_range_end_date\": \"2024-02-01\",\n \"date_range_key\": null,\n \"specialties\": null,\n \"service_location_ids\": null,\n \"payor_entity_ids\": null,\n \"statuses\": null,\n \"authorization_types\": null,\n \"patient_id\": null,\n \"patient_plan_ids\": null,\n \"patient_status\": null\n },\n \"provider_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"bulk_export_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"message": "<string>"
}{
"message": "<string>",
"type": "AUTH_INVALID_REQUEST_HEADER"
}{
"message": "<string>"
}{
"message": "<string>"
}This API will kick off an asynchronous job to create a bulk export csv and return a
If you want to make requests for eligibility checks, benefits checks, payor detections/discovery, patients, contracts, or rates,
you can replace the
For example, to export unresolved payor detections found in the first quarter of 2026:
bulk_export_id. To know when your export is complete,
you will have to poll with the Get Bulk Exports API.
The body of the bulk export request allows you to set filters on the data you want. For example, if you only wanted
to get all payor approved prior authorizations in 2024, you would make a request like the below, replacing the example provider_id with the provider ID you want to get data for.
{
"export_params": {
"export_type": "PRIOR_AUTHORIZATION",
"date_range_start_date": "2024-01-01",
"date_range_end_date": "2025-01-01",
"date_range_key": "created_at",
"statuses": ["PAYOR_APPROVED"]
},
"provider_id": "0194a843-5821-70e2-bbe9-0f986c05984d"
}
export_type with ELIGIBILITY_CHECK, BENEFITS_CHECK, PAYOR_DETECTION, PATIENT, CONTRACT, or RATE respectively.
You can also export escalation data by using ESCALATION_PRIOR_AUTHORIZATION, ESCALATION_BENEFITS_CHECK, ESCALATION_ELIGIBILITY_CHECK, or ESCALATION_EHR_SYNC.
Payor Detection Date Filters
You can limit a payor detection export to a date range with these fields inexport_params:
date_range_key: the date to filter on. One ofCREATED_AT(the date the payor was found, shown asdate_foundin the CSV),UPDATED_AT,PLAN_START_DATE, orPLAN_END_DATE. Required when you send either date.date_range_start_date: inclusive start date (YYYY-MM-DD). Optional.date_range_end_date: inclusive end date (YYYY-MM-DD). Optional.
We recommend always sending a date range. Without one, the export includes every payor detection for the provider,
which can be a very large file that takes much longer to generate. For recurring syncs, export only the period since your
last sync, for example the current month.
{
"export_params": {
"export_type": "PAYOR_DETECTION",
"date_range_key": "CREATED_AT",
"date_range_start_date": "2026-01-01",
"date_range_end_date": "2026-03-31",
"is_resolved": false
},
"provider_id": "0194a843-5821-70e2-bbe9-0f986c05984d"
}
Patient and Status Filters
To limit a benefits check, eligibility check, or payor detection export to a single patient, send that patient’s ID aspatient_id.
Benefits check and eligibility check exports can also be limited to a single plan with patient_plan_id.
Payor detection exports accept statuses, a list of payor detection statuses such as ACTIVE_PLAN or NO_ACTIVE_PLAN.
For example, to export a patient’s payor detections where an active plan was found:
{
"export_params": {
"export_type": "PAYOR_DETECTION",
"patient_id": "0194a843-6a1e-7c2b-9f3d-2b7e8c4a1d55",
"statuses": ["ACTIVE_PLAN"]
},
"provider_id": "0194a843-5821-70e2-bbe9-0f986c05984d"
}
CSV Schemas Generated
Prior Authorizations
- id (UUID)
- patient_ehr_id (optional)
- created_at (YYYY-MM-DD)
- submitted_on (YYYY-MM-DD, optional)
- date_released (YYYY-MM-DD, optional)
- first_name
- last_name
- patient_code
- service_location_name
- authorization_type
- start_date (YYYY-MM-DD)
- end_date (YYYY-MM-DD, optional)
- authorization_reference_number (optional)
- status
- treatment_codes (list of treatment code objects containing):
- treatment_codes (list of objects containing):
- treatment_code
- modifiers (optional list)
- units (decimal)
- unit_type
- time_frame
- treatment_codes (list of objects containing):
- approved_treatment_codes (optional, list of treatment code objects with same structure as treatment_codes)
- specialty (optional)
- payor
- member_number (optional)
- submitter_user_email (optional)
- submitter_user_name (optional)
- rendering_clinician_name (optional)
- rendering_clinician_npi (optional)
Benefits Checks
- id (UUID)
- template_name (optional)
- patient_ehr_id (optional)
- created_at (YYYY-MM-DD)
- date_verified (YYYY-MM-DD, optional)
- date_released (YYYY-MM-DD, optional)
- first_name
- last_name
- patient_code
- service_location_name
- patient_status
- patient_date_of_birth (YYYY-MM-DD, optional)
- status (one of
REQUESTED,AWAITING_SILNA,AWAITING_PROVIDER,COMPLETE,WITHDRAWN) - eligibility_status (optional)
- ineligibility_reason (optional)
- network_status (optional)
- payor
- member_number (optional)
- group_number (optional)
- plan_start_date (YYYY-MM-DD, optional)
- plan_end_date (YYYY-MM-DD, optional)
- plan_type (optional)
- subscriber_first_name (optional)
- subscriber_last_name (optional)
- subscriber_middle_name (optional)
- subscriber_date_of_birth (YYYY-MM-DD, optional)
- subscriber_address (optional)
- subscriber_state (optional)
- subscriber_city (optional)
- subscriber_zip_code (optional)
- subscriber_patient_relationship (optional)
- dependent_first_name (optional)
- dependent_last_name (optional)
- dependent_middle_name (optional)
- copay (decimal, optional)
- coinsurance (decimal, optional)
- individual_deductible (decimal, optional)
- individual_deductible_met (decimal, optional)
- family_deductible (decimal, optional)
- family_deductible_met (decimal, optional)
- individual_out_of_pocket (decimal, optional)
- individual_out_of_pocket_met (decimal, optional)
- family_out_of_pocket (decimal, optional)
- family_out_of_pocket_met (decimal, optional)
- hard_visit_limit_present (boolean, optional)
- hard_visit_limit_units (integer, optional)
- hard_visit_limit_unit_type (optional)
- referral_required (boolean, optional)
- authorization_required (boolean, optional)
- authorization_not_required (boolean, optional)
- authorization_requirement_time (optional)
- authorization_requirement_quantity (decimal, optional)
- authorization_requirement_unit (optional)
- authorization_requirements (list of objects containing):
- authorization_required (boolean, optional)
- authorization_not_required (boolean, optional)
- authorization_requirement_time (optional)
- authorization_requirement_quantity (decimal, optional)
- authorization_requirement_unit (optional)
- treatment_codes (list of strings)
- specialty (optional)
- cost_estimate_copy (optional)
- payor_type (optional)
- exclusions_and_limitations (optional)
- exclusions (optional)
Eligibility Checks
- id (UUID)
- patient_ehr_id (optional)
- created_at (YYYY-MM-DD)
- date_verified (YYYY-MM-DD, optional)
- date_released (YYYY-MM-DD, optional)
- first_name
- last_name
- patient_code
- service_location_name
- patient_status
- patient_date_of_birth (YYYY-MM-DD, optional)
- payor
- member_number (optional)
- group_number (optional)
- eligibility_status (optional)
Payor Detections
- id (UUID)
- patient_ehr_id (optional)
- first_name
- last_name
- patient_code
- queried_payor
- detected_payor (optional)
- member_number (optional)
- date_found (YYYY-MM-DD)
- status
- category
- is_resolved (boolean)
- plan_coverage_description (optional)
- other_payors (optional)
- payor_detection_run_id (UUID, optional) — the payor detection run this detection belongs to
- queried_payor_id (UUID) — the payor entity Silna queried
- detected_payor_id (UUID, optional) — the payor entity the patient has coverage with
- payor_returned_first_name (optional) — the patient’s first name as returned by the payor
- payor_returned_last_name (optional) — the patient’s last name as returned by the payor
- payor_returned_date_of_birth (YYYY-MM-DD, optional) — the patient’s date of birth as returned by the payor
- plan_start_date (YYYY-MM-DD, optional)
- plan_end_date (YYYY-MM-DD, optional)
Patients
- id (UUID)
- patient_ehr_id (optional)
- first_name
- last_name
- patient_code
- date_of_birth (YYYY-MM-DD)
- status
- specialties (list)
- plans (list of plan objects containing):
- id (UUID)
- payor_name
- plan_order_number
- member_number (optional)
- service_location (optional)
Contracts
- id (UUID)
- payor_name
- credentialed_entity_name
- npi (optional)
- tin (optional)
- insurance_types (optional)
- plans (optional)
- excluded_plans (optional)
- excluded_group_numbers (optional)
- ipas (optional)
- service_locations (optional)
- task_types (optional)
- specialties (optional)
- medicaid_id (optional)
- alternate_id (optional)
- ipa_required (boolean)
- version_number (integer)
- created_at (YYYY-MM-DD, optional)
Rates
- id (UUID)
- payor_name
- rate_type
- rate_duration
- rate_amount (decimal)
- specialty
- network_status
- state (optional)
- plan_type (optional)
- treatment_codes (optional)
Escalation - Prior Authorizations
- id (UUID)
- escalation_reason
- provider_service_location_name
- escalation_type
- status (optional)
- withdraw_reason (optional)
- patient_name (optional)
- patient_code (optional)
- patient_ehr_id (optional)
- resolved_by_provider_user_name (optional)
- resolved_at (datetime, optional)
- reopened_reasons (optional, list of objects containing):
- reason (optional)
- created_at
- created_at (YYYY-MM-DD, optional)
- payor_name (optional)
- last_submitted_at (datetime, optional)
- prior_authorization_id (UUID, optional)
- prior_authorization_start_date (YYYY-MM-DD, optional)
- prior_authorization_end_date (YYYY-MM-DD, optional)
- prior_authorization_specialty (optional)
Escalation - Benefits Checks
- id (UUID)
- escalation_reason
- provider_service_location_name
- escalation_type
- status (optional)
- withdraw_reason (optional)
- patient_name (optional)
- patient_code (optional)
- patient_ehr_id (optional)
- resolved_by_provider_user_name (optional)
- resolved_at (datetime, optional)
- reopened_reasons (optional, list of objects containing):
- reason (optional)
- created_at
- created_at (YYYY-MM-DD, optional)
- payor_name (optional)
- last_submitted_at (datetime, optional)
Escalation - Eligibility Checks
- id (UUID)
- escalation_reason
- provider_service_location_name
- escalation_type
- status (optional)
- withdraw_reason (optional)
- patient_name (optional)
- patient_code (optional)
- patient_ehr_id (optional)
- resolved_by_provider_user_name (optional)
- resolved_at (datetime, optional)
- reopened_reasons (optional, list of objects containing):
- reason (optional)
- created_at
- created_at (YYYY-MM-DD, optional)
- payor_name (optional)
- last_submitted_at (datetime, optional)
Escalation - EHR Syncs
- id (UUID)
- escalation_reason
- provider_service_location_name
- escalation_type
- status (optional)
- withdraw_reason (optional)
- patient_name (optional)
- patient_code (optional)
- patient_ehr_id (optional)
- resolved_by_provider_user_name (optional)
- resolved_at (datetime, optional)
- reopened_reasons (optional, list of objects containing):
- reason (optional)
- created_at
- created_at (YYYY-MM-DD, optional)
- payor_name (optional)
- last_submitted_at (datetime, optional)
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Create Parameters for Bulk Export
Create Parameters for Bulk Export
Prior Auth Export Params
- Prior Auth Export Params
- Benefits Export Params
- Eligibility Export Params
- V1PayorDetectionExportQueryParams
- V1PatientExportQueryParams
- Escalation Prior Authorization Export Params
- Escalation Benefits Check Export Params
- Escalation Eligibility Check Export Params
- Escalation EHR Sync Export Params
Show child attributes
Show child attributes