Changelog

Every change, dated.

API contract changes, SDK releases, and model or calibration swaps. A model or calibration entry always links its regenerated curves on /reliability. Notice rules for breaking changes are on Versioning and deprecation.

The initial public contract

  • Added

    POST /v1/extract (sync, up to 20 pages), POST /v1/jobs and GET /v1/jobs/:id (async, results by polling or webhooks), POST /v1/uploads for staged documents up to 50 MiB, and GET /v1/health. One error shape with stable codes. Full reference at /docs.

  • Added

    Every "present" field carries grounding: "verified" when the value ink itself was located within the cited region, "cited" when an anchor is attached but the value was not confirmed there, "ungrounded" when no accepted span exists. Docs.

  • Added

    Idempotency-Key on POST /v1/extract and POST /v1/jobs: a retried request replays the stored response for 24 hours instead of running twice; a reused key with a different body returns 409 idempotency_key_conflict. Docs.

  • Added

    Webhook deliveries are signed per the Standard Webhooks scheme: webhook-id, webhook-timestamp and webhook-signature headers over id.timestamp.body, with whsec_ secrets. Secrets rotate from the dashboard, with 24 hours of dual-signing so a receiver on the old secret keeps working while it switches. Docs.

  • Added

    Every response carries an x-request-id header; the same id appears as error.request_id in error bodies and meta.request_id in results. For an async job, the 202 body, the result and the webhook delivery carry one id. Docs.

  • Added

    Every response carries a velrim-version header naming the contract version, currently 2026-08-10. The promise it anchors is on Versioning and deprecation.

  • Added

    @velrim/sdk (npm) and velrim (PyPI): Zod/Pydantic models or plain JSON Schema, automatic retries with backoff and Retry-After, per-request idempotency keys, verifyWebhook / verify_webhook for deliveries, and request_id on errors and job handles.

  • Added

    The enforced limits, documented exactly: 20 MiB inline and 50 MiB staged, the 20-page sync cap, rate limits including the free-account tier, the webhook retry schedule and 24-hour result retention.

Served stack: gemini-2.5-flash, calibrator cal-2026.08-4

  • Model

    The stack behind the API today: model gemini-2.5-flash, calibrator cal-2026.08-4. Curves for this calibrator are published at /reliability, and meta.calibrator_version on each response names the stack that produced it. Every model or calibration change gets an entry here with regenerated curves; the wire shape never changes with the stack.