curl --request POST \
--url https://api.denialbase.com/api/v1/claims \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"patient": {
"first_name": "Jane",
"last_name": "Doe",
"date_of_birth": "1980-04-12",
"account_number": "A-1001"
},
"claim": {
"claim_number": "CLM-1001",
"payer_claim_number": "26214000123",
"payer_name": "Blue Shield of California",
"plan_type": "commercial",
"date_of_service": "2026-08-01",
"denial_date": "2026-09-02",
"procedure_code": "29881",
"billed_amount": "1250.00",
"denial_codes": [
"CO-50"
]
}
}
'{
"claims": [
{
"claim_number": "CLM-1001",
"id": "952a1c46-5a7e-48e3-9322-5bafeaf02771",
"status": "reviewing",
"created": false
},
{
"claim_number": "CLM-1003",
"created": false,
"error": "claim.claim_number is already used for a different patient"
},
{
"claim_number": "CLM-1004",
"created": false,
"error": "claim.claim_number is already used for a different claim"
}
],
"submission_id": null
}Endpoints
Send claims
Send one claim, or up to 100 at once as { "claims": [ ... ] }. Needs a key with Send claims
(claims:write).
- Idempotent by your claim number.
claim.claim_number(the patient control number your billing system puts on the claim) is the key. Sending a claim number again returns the claim it became, withcreated: false, so retries and re-sends never create duplicates. - A reused claim number is refused for that item, with an
error: when you already used it for a different patient (name and date of birth), or for a different claim of the same patient (another date of service or procedure code). Correcting amounts or the payer claim number on a resend is fine. - All or nothing on validation. If any claim in a batch is invalid, nothing is saved and the
422lists every problem by position (claims[1]: ...). - We never echo anything about the patient back.
POST
/
api
/
v1
/
claims
curl --request POST \
--url https://api.denialbase.com/api/v1/claims \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"patient": {
"first_name": "Jane",
"last_name": "Doe",
"date_of_birth": "1980-04-12",
"account_number": "A-1001"
},
"claim": {
"claim_number": "CLM-1001",
"payer_claim_number": "26214000123",
"payer_name": "Blue Shield of California",
"plan_type": "commercial",
"date_of_service": "2026-08-01",
"denial_date": "2026-09-02",
"procedure_code": "29881",
"billed_amount": "1250.00",
"denial_codes": [
"CO-50"
]
}
}
'{
"claims": [
{
"claim_number": "CLM-1001",
"id": "952a1c46-5a7e-48e3-9322-5bafeaf02771",
"status": "reviewing",
"created": false
},
{
"claim_number": "CLM-1003",
"created": false,
"error": "claim.claim_number is already used for a different patient"
},
{
"claim_number": "CLM-1004",
"created": false,
"error": "claim.claim_number is already used for a different claim"
}
],
"submission_id": null
}Authorizations
Your practice's API key, created in Settings → API keys: Authorization: Bearer <key>.
Body
application/json
Response
Every claim was sent before (or refused per item); nothing new was created.