Changelog

Every change to the contract, by dated version.

Each response names its version in Gloom-Version. Send the header to pin one; an unknown version is a free 400 version_invalid.

GET /v1/datasets/changelog returns this list as JSON.

2026-10-21: One contract for every route

  • Every response is {data, meta}, reference routes included.
  • Errors are {error: {type, code, message, param, requestId, docUrl}}. A 4xx is never charged.
  • meta renames asOf, historyStarts and lastUpdated to dataThrough, historyStart and updatedAt. disclaimer and note become notices[]. meta.asOf is now the point in time you asked for, or null.
  • Every list pages with limit and an opaque cursor; offset and Congress filingOffset are gone. meta.page and meta.next give the next page. Without limit, a route reads its default page size, which the OpenAPI document lists and meta.page.limit names.
7 more changes
  • Every response sends Gloom-Version, Request-Id and an ETag; X-Request-Id is gone. If-None-Match gets a free 304.
  • Keyed responses send RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset.
  • No more plan fields (access, locked, preview, proRequired, entitlement) or collection internals in payloads. A quote's dataSource becomes delayed: true or false.
  • Values lose binary noise such as 77473014.05999999. CPI names each figure's basis in data.basis.
  • No key: WWW-Authenticate: Bearer realm="Gloom Datasets" without error, as RFC 6750 asks.
  • Job postings say hasMore instead of counting every open role in total.
  • Samples moved out of the OpenAPI document to each dataset's sample route, such as /v1/datasets/gpu/sample.