/exports/v2/...) so existing pipelines continue to work unchanged.
This changelog is included in the docs site’s
llms.txt, so AI tooling consuming the API can detect changes automatically.v1.2 — 2026-06-11
Added
- Activated 9 datasets that previously appeared in the catalog as
available: false:- S1 Customers & Accounts:
D01Borrowers,D02Borrower Accounts,D03Borrower Sub Accounts,D05Borrower Account Events. - S3 Collections Cases:
D16Borrower Deals,D17Borrower Deal Activity Logs,D18Borrower Deal Logs,D19Deal Activity Logs,D20Deal Views.
- S1 Customers & Accounts:
public_idfield exposed on the newly activated datasets that lacked one (D03,D17,D18,D19,D20) — string-cast Mongo_id, the same convention as the v1.1 additions toD15/D21/D22/D23.D05exposes its nativepublic_id.
Changed
D01Borrowers andD02Borrower Accounts — the per-row identifier is now exposed aspublic_idsourced from the string-cast Mongo_id. (Earlier internal drafts surfaced a business identifier; the shipped field is the_id-derived value.)D16Borrower Deals — the per-row identifier is now exposed aspublic_id(previouslycase_public_id, whileD16was unavailable). The underlying value is unchanged — it’s stilluser_lender_detail_public_idfrom the source — only the response field name is now consistent with the rest of the API. Note this is the case/link id and may not be unique per deal row; see the dataset page. If you wrote a client against an internal preview that usedcase_public_id, rename the column in your warehouse mapping.D01Borrowers —phonesarray elements now containkey_masked(the phone-middle-masked number) anddnc. The source array on the underlying collection isphone(singular); the response surfaces it asphones.preferred_languageis sourced frompref_langin the model — only the rendered name changes.D16Borrower Deals — dropped two fields from the allowlist (first_due_date_timestamp,everReachedAttempted); they aren’t present in the underlying Mongoose model or any sampled doc.- Pagination doc updated — TIER 2 (variable page size) datasets now include
D03,D17,D18,D19in addition toD21,D22,D23.
meta.schemaVersion stays at "v1".
v1.1 — 2026-06-08
Added
public_idfield on the following datasets:D15Borrower Settlements,D21Communication Logs,D22Conversations, andD23Manual Communication Logs. Use it as the stable per-row identifier for warehouse upserts. OnD21/D22/D23it is derived from the underlying Mongo_id; onD15it is the record’s nativepublic_id.body.schemaVersion: "v1"on the catalog endpoint response.meta.schemaVersion: "v1"on every fetch-dataset response.meta.tenantPathKindon fetch-dataset responses —"direct"or"via". Tells the client whether to expect constant or variable page sizes (see Pagination → Variable page size).meta.readFromon fetch-dataset responses —"primary"or"secondary". Indicates which replica served the request.- Optional query parameter
?includeTotal=trueon fetch-dataset. Returnspagination.total(filter-wide row count) when set, with guarded semantics forvia(TIER 2) datasets and large/slow counts. See Fetch Dataset → Query parameters and Pagination → Filter-wide totals. pagination.total/pagination.totalExact/ optionalpagination.totalNotekeys, populated only whenincludeTotal=true.
Fixed
-
via(TIER 2) datasets (D21,D22,D23) no longer truncate exports silently on a full final page. Previously, a page wherelimit <= candidateCount < overfetchLimitcould returnnextCursor: nulleven when more matching rows existed beyond the page. The cursor-advance logic now correctly fires the “page is full → advance to last returned row” branch regardless of whether the candidate window was completely filled.
v1.0 — initial Phase 1 release
Added
- Two new endpoints under the API Reference tab:
GET /exports/catalogandGET /exports/{sectionCode}/{datasetCode}. - Cursor-based pagination via opaque
nextCursortokens, with support for initial load (omitsince) and incremental load (pass the last batch’s max cursor-field value assince). - 10 datasets available for fetch:
D07Borrower Payments,D08Borrower Payment Plans,D09Borrower Payment Plan Installments,D12Scheduled Payments,D14Payment Proofs,D15Borrower Settlements,D21Communication Logs,D22Conversations,D23Manual Communication Logs, andD26User Lender Details. - 15 additional dataset codes reserved in the catalog (
available: false). Phase 2 will activate codes for S1 Customers & Accounts and S3 Collections Cases. - Per-dataset field allowlists with masking applied at the database layer (
id_numberandpassport_numbermasked to last 4,dobreduced to year,ip_addressreduced to /16). - Two-layer tenant isolation: tenant DB resolution via JWT, plus
lender_idfiltering inside the tenant DB. - Strict
requireLenderMatchmiddleware on export endpoints, enforcing that the URLlenderPublicIdequals the JWT’slenderId.
Need Help?
Our support team is available Monday-Friday, 9 AM - 6 PM GST. Reach out at support@cleargrid.co or visit our help center.