Companies

Submit a bulk-delivery job for companies

POST
/v1/companies/bulk-delivery

Queues an ECS task that dumps every matching companies document to S3 in the requested format. Returns 202 with a jobId; poll GET /v1/companies/bulk-delivery/{jobId} for status + the signed download URL.

Row limit. Deliveries of up to 5,000 rows need no entitlement. Above that, the org's bulk-delivery.companies entitlement is required and its scope (row ceiling, row filters, allowed fields) governs the delivery; without it the request is rejected with 403 entitlement_missing. Pass limit at or below the ceiling to deliver a capped subset of a broader query. Email support@modelmatch.com to request a limit increase.

Delivery is billed at 1 credit per row regardless of entitlement (deliveries submitted from the ModelMatch web app are not billed).

Push-target destination. Pass destination: { type: "push-target", targetId } to have the finished rows sent to a configured push target instead of downloaded. The target is checked before anything is queued; a refusal returns the push target's status and code (TARGET_NOT_FOUND 404, FORBIDDEN 403, PLAN_REQUIRED 402, TARGET_DISABLED 409, ENTITY_MISMATCH 400). Limits and billing are the same as a file delivery.

Authorization

x-api-key<token>

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/v1/companies/bulk-delivery" \  -H "Content-Type: application/json" \  -d '{}'
{
  "billing": "credits",
  "destination": {
    "targetId": "string",
    "type": "push-target"
  },
  "entityType": "string",
  "estimatedTotal": 0,
  "format": "parquet",
  "jobId": "string",
  "maxRows": 1,
  "status": "queued"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "balance": 0,
  "cost": 0,
  "error": "payment_required",
  "message": "string",
  "reason": "out_of_credits"
}
{
  "entitlementKey": "string",
  "error": "entitlement_missing",
  "estimatedTotal": 0,
  "maxRows": 1,
  "message": "string"
}
{
  "code": "TARGET_NOT_FOUND",
  "error": "TARGET_NOT_FOUND",
  "message": "string"
}
{
  "code": "TARGET_NOT_FOUND",
  "error": "TARGET_NOT_FOUND",
  "message": "string"
}
{
  "error": "string"
}