Research prior authorization requirements
Use AI-powered web research to find prior authorization requirements directly from payer websites.
Endpoint: POST /api/v1/prior-auth/research
Availability: Live in production.
Authentication: API key in Authorization: Bearer <key> with the read scope.
Use AI-powered web research to find prior authorization requirements directly from payer websites. Supports async mode (returns research_id and poll_url for polling) or synchronous mode (sync: true, waits up to two minutes). Every source in result.sources is a page the research cited for a field of the result. clinical_context is rejected: submit only rule-level structured_coverage_context fields. If the research provider is unavailable the call fails with a retryable SERVER_UPSTREAM_UNAVAILABLE and is not charged. Cost: 8 requests per call.
Parameters
procedure_codes(body, required): CPT/HCPCS codes to researchpayer(body): Specific payer name (e.g., "UnitedHealthcare", "Aetna")state(body): Two-letter state code for jurisdiction-specific policiesdiagnosis_codes(body): ICD-10 diagnosis codes for rule-level contextstructured_coverage_context(body): Optional allowlisted, non-identifying coverage context.payerandstatemust match the top-level values when both are given.sync(body): If true, wait up to two minutes for completion; a run still going after that comes back with itspoll_url. If false, return research_id for polling.
Example request
curl -X POST "https://backworkhealth.com/api/v1/prior-auth/research" \
-H "Authorization: Bearer $BACKWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"procedure_codes": [
"27447"
]
}'Example response (200)
{
"success": true,
"data": {
"research_id": "res_abc123",
"status": "pending",
"created_at": "2026-01-15T10:30:00Z",
"finished_at": "2026-01-15T10:30:00Z",
"poll_url": "/api/v1/prior-auth/research/res_abc123",
"result": {
"determination": {
"pa_required": true,
"confidence": "high",
"reasoning": "string"
},
"payer_policies": [
{
"payer_name": "string",
"policy_name": "string",
"policy_url": "string",
"effective_date": "string",
"summary": "string"
}
],
"documentation_requirements": [
{
"requirement": "string",
"mandatory": true,
"notes": "string"
}
],
"medical_necessity_criteria": [
{
"criterion": "string",
"category": "diagnosis"
}
],
"coverage_limitations": [
{
"limitation": "string",
"applies_to": "string"
}
],
"timeline": {
"standard_review_days": 0,
"expedited_review_days": 0,
"approval_validity_days": 0
},
"appeal_process": {
"levels": 0,
"timeframe_days": 0,
"notes": "string"
},
"sources": [
{
"title": "string",
"url": "string",
"relevance": "string"
}
]
},
"cost": {
"num_searches": 0,
"num_pages": 0,
"reasoning_tokens": 0,
"total_dollars": 0
},
"error": "string"
},
"meta": {
"request_id": "string",
"timestamp": "2026-01-15T10:30:00Z"
}
}Authorization
bearerAuth API key in format: bwk_live_xxxxx. Keys issued before the rename (vrt_live_) remain valid. bwk_test_ keys work only on the sandbox.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/prior-auth/research" \ -H "Content-Type: application/json" \ -d '{ "procedure_codes": [ "27447" ] }'{ "success": true, "data": { "research_id": "res_abc123", "status": "pending", "created_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z", "poll_url": "/api/v1/prior-auth/research/res_abc123", "result": { "determination": { "pa_required": true, "confidence": "high", "reasoning": "string" }, "payer_policies": [ { "payer_name": "string", "policy_name": "string", "policy_url": "string", "effective_date": "string", "summary": "string" } ], "documentation_requirements": [ { "requirement": "string", "mandatory": true, "notes": "string" } ], "medical_necessity_criteria": [ { "criterion": "string", "category": "diagnosis" } ], "coverage_limitations": [ { "limitation": "string", "applies_to": "string" } ], "timeline": { "standard_review_days": 0, "expedited_review_days": 0, "approval_validity_days": 0 }, "appeal_process": { "levels": 0, "timeframe_days": 0, "notes": "string" }, "sources": [ { "title": "string", "url": "string", "relevance": "string" } ] }, "cost": { "num_searches": 0, "num_pages": 0, "reasoning_tokens": 0, "total_dollars": 0 }, "error": "string" }, "meta": { "request_id": "string", "timestamp": "2019-08-24T14:15:22Z" }}Last updated on