Get Credentialing Import
Returns a single credentialing import job.
Endpoint
GET /v2/credentialing/imports/{import_id}
Path Parameters
| Parameter |
Type |
Required |
Description |
import_id |
string |
Yes |
The import job's id. |
Request
curl --location '{base_url}/v2/credentialing/imports/1e7b9c3d-5a2f-4d8e-b6c1-0f4a7d2e9b35' \
--header 'Authorization: Bearer JWT_TOKEN'
Response
Success Response
Code: 200 OK
{
"import_id": "1e7b9c3d-5a2f-4d8e-b6c1-0f4a7d2e9b35",
"file_name": "credentialing.csv",
"status": "READY",
"uploaded_at": "2026-08-27T14:30:00Z",
"error": null,
"result": {
"created": 12,
"updated": 5,
"skipped": 3,
"errors": [
{
"row": 4,
"field": "providerNpi",
"message": "PROVIDER_UNKNOWN"
}
],
"report_ref": null,
"payers_created": 2
}
}
Response Fields
| Field |
Type |
Description |
import_id |
string |
The import job's id. |
file_name |
string or null |
The uploaded file's name. |
status |
string |
Lifecycle state of the record. One of QUEUED, PARSING, MATCHING, READY, FAILED. |
uploaded_at |
string |
When the file was uploaded. |
error |
string or null |
Failure reason when status is FAILED. null otherwise. |
result |
object or null |
See Result. |
Result
| Field |
Type |
Description |
created |
integer |
Rows inserted by the sheet. |
updated |
integer |
Existing rows updated by the sheet. |
skipped |
integer |
Rows skipped: unresolved profile/provider/payer, invalid values, or duplicates within the sheet. |
errors |
array of object |
Per-row problems from the last run: {row, field, message} where message is one of the codes in Import Credentialing → Row errors. See Errors. |
report_ref |
string or null |
Pointer to the full per-row error report. Fetch it with Get Credentialing Import Report. |
payers_created |
integer |
Payers auto-created as UNVERIFIED from the sheet; resolve them in Billing Readiness. |
Errors
| Field |
Type |
Description |
row |
integer |
1-based row number in the uploaded sheet. |
field |
string |
Which column the problem was found in. Absent when the problem isn't column-specific. |
message |
string |
One of the codes in Import Credentialing → Row errors. |
Error Response
Code: 400 Bad Request
{
"code": "bad_request",
"message": "Validation failed",
"errors": [
{
"field": "patient_id",
"message": "must be a string"
}
]
}
Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.
| Status |
code |
Meaning |
400 Bad Request |
bad_request |
The request body or parameters failed validation. errors[] names the offending fields. |
401 Unauthorized |
unauthorized |
The access token is missing, malformed or expired. |
403 Forbidden |
forbidden |
The request references a resource outside the token's organisation or clinic scope. |
404 Not Found |
not_found |
No such resource, or it's outside your scope. |
429 Too Many Requests |
rate_limited |
Rate limit exceeded. Back off and retry. |
500 Internal Server Error |
internal_error |
Unexpected server error. |
502 Bad Gateway |
upstream_error |
Upstream service failed or timed out. |
Notes
status moves QUEUED → PARSING → MATCHING → READY (or FAILED).
result is only present once the import finishes — null while it's still running.
result.errors[].message is one of the codes in Import Credentialing → Row errors.