Changelog
Track public API and capability-contract changes.
This page records customer-visible API changes and deprecations, newest first.
Scope: entries begin at 2026-09-01. Earlier releases were not maintained in a customer-facing changelog.
2026-09-21 — Additive API changes: error envelope, credit ceiling, /v1
Every change here is additive. No field, status code or error code was removed or renamed, and existing integrations need no change.
- Validation failures (HTTP
422) now also carry the standard envelope:error.code: "invalid_input",error.messageanderror.fields. The original top-levelerrorsmap is unchanged and stays. POST /executeaccepts an optional credit ceiling,max_creditsin the body or anX-Max-Creditsheader. A job priced above it is refused withcredit_limit_exceededbefore acceptance.- Every REST path is also served under
/v1(for examplePOST /v1/execute). The unversioned paths remain supported. - A capability that cannot be served at admission now returns HTTP
503temporarily_unavailableinstead of500 internal_error. MCP reports it withretryable: false. - MCP calls without an
operation_keyare deduplicated by request ID for about 15 minutes rather than indefinitely, so a later session that reuses a small request ID starts a new job. Calls with anoperation_keyare unchanged.
2026-09-01 — Durable results and fail-fast execution status
- Results containing escaped NUL characters now save successfully.
- A result that cannot be saved produces a terminal failure instead of leaving the job marked as running.
- Polling and
Prefer: wait=Nreturnexecution_lostpromptly when a request ends without a result. - Automatic retry recovery prevents duplicate execution and unintended cancellation.
This platform-wide change applies to every scraper and requires no pagination or storage workaround in customer code.
2026-09-01 — Pinterest section backups (v1.4.11)
- Added
pinterest.section-pins.listfor bounded, resumable section downloads. pinterest.section.getnow fails closed for sections above 1,000 pins instead of returning a potentially incomplete result as successful.- Section pages accept Pinterest's verified maximum of 50 raw records and expose
pagination.next_cursor,pagination.has_more,pagination.retrieved_total, and an explicit completionoutcome. - If Pinterest ends a large traversal at its observed ~2,000-item ceiling, the
last page is marked
outcome.status: incompleteinstead of complete.
Existing integrations using pinterest.section.get for large sections must
move to pinterest.section-pins.list and continue until has_more is false.
Credit prices and plans: Upscrape pricing