Uploads
Lists all uploads of the submission (slot-assigned and unassigned), newest first. Use this to poll processing status without fetching the full submission detail.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/files"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3" } ], "next_cursor": "string"}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}Uploads one document into a submission without assigning it to a document
slot. The body is multipart/form-data with an external_file_id text part
and a file part; unknown parts are ignored for forward compatibility.
Processing is asynchronous: 202 Accepted returns the upload in status
processing. Poll get_submission or subscribe to the file.ready /
file.failed webhook events for the outcome. Idempotent on
external_file_id: re-sending an id that already exists on this submission
returns the existing upload with 200 OK without storing the new bytes.
Accepted content types: application/pdf, image/jpeg, image/png,
application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document.
The default maximum file size is 100 MiB.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidRequest Body
multipart/form-data
File bytes and the partner's idempotency identifier.
TypeScript Definitions
Use the request body type in TypeScript.
Multipart form body for file uploads. Parts other than the two declared here are ignored for forward compatibility.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/files" \ -F external_file_id="applicant-income-2026-04" \ -F file="JVBERi0xLjQK"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}Same behavior as create_upload, but the resulting upload is assigned to the
given document slot of the submission's template.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidIdentifier of the target document slot, as returned in SubmissionDetail.document_slots.
uuidRequest Body
multipart/form-data
File bytes and the partner's idempotency identifier.
TypeScript Definitions
Use the request body type in TypeScript.
Multipart form body for file uploads. Parts other than the two declared here are ignored for forward compatibility.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/document-slots/497f6eca-6276-4993-bfeb-53cbbbba6f08/files" \ -F external_file_id="applicant-income-2026-04" \ -F file="JVBERi0xLjQK"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}Returns one upload of the submission, including its processing status.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidThe upload's AirCredit id (Upload.id).
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/files/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}Moves the upload between document slots: set document_slot_id to a slot id
from SubmissionDetail.document_slots to assign it, or to null to make it
unassigned. Slot statuses are recomputed. Fails with
409 evaluation_in_progress while an evaluation is queued or running.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidThe upload's AirCredit id (Upload.id).
uuidRequest Body
application/json
The slot assignment to apply.
TypeScript Definitions
Use the request body type in TypeScript.
Slot assignment for an upload.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/files/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "external_file_id": "string", "upload_status": "processing", "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767", "document_slot_id": "942421c5-3e28-44c2-9bb6-eb0d38b57f11", "filename": "string", "content_type": "string", "failure": { "code": "string", "message": "string" }, "created_at": "2019-08-24T14:15:22Z", "submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}Removes the upload and its stored file bytes — use this to replace a wrong
or rejected document before re-uploading. The containing slot's status is
recomputed. The upload's external_file_id becomes reusable on this
submission. Fails with 409 evaluation_in_progress while an evaluation is
queued or running; results of past evaluations keep referencing the deleted
upload's id.
Authorization
bearerAuth Partner API key, sent as Authorization: Bearer <api key>.
In: header
Path Parameters
The submission's AirCredit id (Submission.id).
uuidThe upload's AirCredit id (Upload.id).
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/submissions/497f6eca-6276-4993-bfeb-53cbbbba6f08/files/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}{ "error": { "code": "invalid_field", "message": "external_submission_id must not be empty", "param": "external_submission_id", "request_id": "req_9b2cf1f4-6f6e-4a7e-8f8e-2d5c7a1b0c3d" }}