Skip to navigation

Query extractions in bulk

Runs the line item query across up to 200 documents at once, one call against your rate limit instead of a per-document fan-out. Send document_ids, 1 to 200 document ids (alphanumeric, at most 24 characters), plus the same optional category, section, year, search, and loan_id filters as the single query; year is a four-digit year from 2000 up to next year. Results come back grouped per document, in the order you sent the ids, capped at 500 line items per document. An id that doesn’t resolve comes back with not_found: true instead of failing the request, and if the combined result would pass 100,000 line items, the response is truncated and carries an X-Result-Truncated: true header.

Requires the extractions:read scope. Rate limit: 200 requests per minute per key (the api lane).

Authentication

AuthorizationBearer

Bearer token. Use ss_live_… for live data or ss_test_… for the sandbox (test mode). See Authentication.

Path parameters

borrower_idstringRequired
The borrower's id.

Headers

Idempotency-KeystringOptional<=255 characters

Idempotency token. Retries that reuse the key within 24h replay the original response. Up to 255 characters; a UUID is typical. See Idempotency.

SpreadSpace-VersionstringOptionalformat: "^\d{4}-\d{2}-\d{2}$"

Pin the API version, e.g. 2026-10-07. Omit to get the latest. See Versioning.

Request

This endpoint expects an object.
document_idslist of stringsRequired

1 to 200 document ids (24-character ids).

loan_idstring or nullOptional
categorystring or nullOptional
sectionstring or nullOptional
yearinteger or nullOptional

Four-digit fiscal year, 2000 up to next year.

searchstring or nullOptional

Response headers

X-Request-IDstringOptional
Correlation ID for this request. Quote it in support tickets.
Idempotency-Replayboolean

Set to true when the response is replayed from the idempotency cache for a request that re-presented an Idempotency-Key it had already used. Absent on the original (winner) response. A replay repeats the original status and body. When the original could not be stored (an unhandled server fault, or a body over the 1 MiB replay cap) the replay is an error envelope that says so; the operation is never re-run under the same key.

SpreadSpace-VersionstringOptional

The API surface version the server resolved for this request. Always present, regardless of whether the client supplied the request-side SpreadSpace-Version header. Default: 2026-10-07.

RateLimit-Limitinteger

Request budget of the endpoint’s rate-limit policy per 60-second sliding window. See Rate limits.

RateLimit-Remaininginteger

Requests left in the current window. Suppressed on 429 responses produced outside the rate limiter (for example a usage throttle), where a remaining budget would be misleading.

RateLimit-Resetinteger

Seconds until a guaranteed-fresh window.

RateLimit-PolicystringOptional

The active policy in limit;w=window-seconds form.

X-Result-TruncatedstringOptional
Present, with the value true, when the result was cut at the row cap.

Response

OK
borrower_idstring
documentslist of objects
total_documentsinteger
total_line_itemsinteger
total_amountstringformat: "^-?[0-9]+\.[0-9]{2}$"
Monetary amount as a decimal string with exactly two decimal places.

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error