Originators

Zip-code volume breakdown

POST
/v1/originators/{nmlsId}/breakdowns/zip-codes

Authorization

x-api-key<token>

In: header

Path Parameters

nmlsId*string

Originator NMLS ID

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

curl -X POST "https://example.com/v1/originators/string/breakdowns/zip-codes" \  -H "Content-Type: application/json" \  -d '{}'
{
  "cursor": "string",
  "data": [
    {
      "company": {
        "name": "string",
        "nmlsId": "string"
      },
      "excluded": 0,
      "id": "string",
      "label": "string",
      "name": "string",
      "office": {
        "id": "string",
        "name": "string"
      },
      "pctUnits": 0,
      "pctVolume": 0,
      "units": 0,
      "volume": 0
    }
  ],
  "total": 0,
  "totals": {
    "excluded": 0,
    "units": 0,
    "volume": 0,
    "volumePlausible": true
  },
  "truncated": true
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string"
}
{
  "error": "string",
  "limit": 0,
  "size": 0
}

Title companies on this LO's loans (spellings merged) POST

Ranks the title companies on this entity's loans (recorded deeds, `recording_date` window — the same population and period axis as every other loans breakdown). Spellings of one company are MERGED: `label` is its most-used spelling, `id` the normalized name every spelling was grouped under (legal-form and filler words such as `inc`, `llc`, `co`, `company`, `title`, `escrow` removed; `natl` → `national`). Placeholder entries meaning "no title company recorded" (`none available` and its misspellings, `unknown`, `n/a`, …) and names shorter than 3 characters are excluded rather than ranked. `attorney` and `accommodation` are kept: they say who closed. `pctUnits` / `pctVolume` are shares of the entity's WHOLE loan population in the window, including loans with no title company, so they do not sum to 100 across the page. Pages of up to 100 via `pagination`.

Submit a bulk-delivery job for originators POST

Queues an ECS task that dumps every matching originators document to S3 in the requested format. Returns 202 with a jobId; poll `GET /v1/originators/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.originators` 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.