Model MatchHelp

Agents

Get bulk-delivery job status for agents

getapi.modelmatch.com/v1/agents/bulk-delivery/{jobId}

Authorization

x-api-keystringrequired

API key or OAuth token. See Authentication.

Path parameters

jobIdstringrequired

Job ID returned by POST /v1/agents/bulk-delivery

Responses

200objectJob status (resultsUrl re-signed if completed)
Show attributes
billingenum

credits = billed at 1 credit per delivered row. none = not billed (deliveries submitted from the ModelMatch web app).

Options:creditsnone
billingReasonenum

Why billing is none: first_party_push_target = a push-target delivery submitted from the ModelMatch web app; first_party_download = a file delivery submitted from the ModelMatch web app.

Options:first_party_push_targetfirst_party_download
billingStatusenum

Outcome of the job's single debit, taken before anything is delivered: charged, capped (balance / spend cap / daily cap declined it — the job fails insufficient_credits), billing_error (the debit could not be made — the job fails billing_unavailable), or none (nothing to bill: free delivery or zero rows). Absent until billing has run, and on older jobs.

Options:chargedcappedbilling_errornone
bytesinteger
chargedCountinteger

Delivered-row count that was billed.

completedAtstring
creditLedgerIdstring

Credit-ledger entry id for this job's debit. Absent if billing didn't land.

creditsChargednumber

Credits ACTUALLY debited for this job (1 credit / row) — 0 when the debit was declined or failed; read billingStatus for why. Absent until billing has run.

destinationobject

Where the finished delivery goes. Omit for the default — a file you download from the status endpoint. push-target: when the job completes, the rows are handed to the named push target, which sends them to its configured HTTPS destination using its own field mapping and signing. The target is checked at submit (it must exist, be enabled, accept this entity, and be usable by you on your plan) — a failed check rejects the submit with the push target's error code. format is ignored (the handoff is always gzipped NDJSON), and when the target's mapping reads only some fields, only those fields (plus id) are delivered. Row limits, entitlements, limit, and billing (1 credit / row) are unchanged, except that deliveries submitted from the ModelMatch web app are not billed. Poll the job for pushBatchId; a handoff that cannot be completed fails the job with error push_handoff_failed and is not billed.

Show child attributes
targetIdstringrequired

Id of a push target configured on the active workspace (or your own member push targets).

typeenumrequired
Options:push-target
downloadUrlstring

Stable, shareable download link for the completed dataset. Forces a file download (with a friendly filename) and stays valid for 7 days after completion. Present once status is completed. This is the link to hand to a user or send by email.

entityTypestring
errorstring

Why the job failed. insufficient_credits = the charge was declined (balance, spend cap or daily cap), nothing delivered. billing_unavailable = the charge could not be made, nothing delivered — retry. push_handoff_failed = the rows were exported and charged but could not be handed to the push target (see billingStatus).

estimatedTotalinteger
formatenum

Output file format for the delivered dataset. Every format contains the same rows — the entity's list/summary DTO (e.g. LoanSummary), one record per row. ndjson: gzipped newline-delimited JSON (application/x-ndjson, .ndjson.gz). json: a single JSON array (application/json, .json). csv: RFC 4180 (text/csv, .csv). parquet: typed columnar Apache Parquet — scalar fields keep their DTO types, nested fields are JSON-encoded strings (application/vnd.apache.parquet, .parquet). xlsx: a single-sheet Excel workbook with a bold, frozen header row — numbers are numeric cells, everything else (ids, zips, phones) text cells (.xlsx). Pair with columns for labelled headers and number formats. Required on submit unless destination is a push target, which always delivers gzipped NDJSON (a missing format on a file delivery is a 400 format_required).

Options:ndjsonjsoncsvparquetxlsx
jobIdstringrequired
processedinteger
pushBatchIdstring

Push-target deliveries only: the batch the push target is sending, set once the completed file was handed off. Per-record send progress is tracked by the push target, not this job.

resultsUrlstring

Direct download URL for the completed dataset. Long-lived per request but changes on each poll; prefer downloadUrl for a stable link to share.

startedAtstring
statusenumrequired
Options:queuedrunningcompletedfailedcancelled
401objectAuthentication required
403objectCaller does not own this job
404objectJob not found (or expired past 30d TTL)