AI Power Ups
Contents

Reference

Changelog

Dated changes to the public contract. Current contract revision: 2026-09-22. Policy: stability and versioning.

2026-09-22 · Public OpenAPI document and developer docs

Additive, no client change required

  • Owned record-detail components <Name><Action>Detail for navigation.route details, youtube.search details and transcript, flights.search details, companies.financials details/financials/revenue_breakdown and legal.read details (documented tier, extra keys allowed, detail stays untyped on the wire); referenced from x-aipa-record-details on the execute and follow-up operations.
  • Public document components <Name>Record and <Name>ExecuteResponse: the documented record keys of every capability as optional, typed properties (extra keys allowed), used as the 200 response of each concrete execute operation. Wire validation is unchanged.
  • New public document GET /v1/openapi.public.json: developer-facing operations only, named components for every shared contract, one explicit execute operation per capability (operationId execute<Name>, request component <Name>Request) next to the generic executeCapability, x-aipa-* extensions with cost, paging, actions, rules and documented keys, info.x-aipa-contract-date.
  • next.example in the execute envelope is now null when the response admits no follow-up (single-result capability without record actions). Before, it advertised "more" on such responses, which the API refused with 400.
  • Admission 429 rate_limited (another call already running for the account) now carries Retry-After: 1.
  • GET /v1/guide points to the public document and these docs.
  • youtube.search records now carry the medium thumbnail when the source provides one (previously always the default size). The transcript detail adds timestamps[] ({ start, duration, text } in seconds, capped at 2,000 entries with timestamps_truncated: true).
  • Snapshot-only record details (markets.quote, jobs.search, news.search, trends.search, transit.routes, fitness.exercises, legal.read, navigation.route) return one code when the stored detail is gone: 410 session_expired, with the remedy "Run the search again." Previously invalid_request, provider_error or session_expired depending on the capability.
  • navigation.matrix emits the same OSRM-demo notes[] entry as navigation.route when the demo engine is used. transit.routes lines[] never contains null. music.search artist details carry title next to name. classics.search names the fields its OPDS fallback omits.
  • These documentation pages, generated from the shared contracts, with a quickstart, concepts and one reference page per capability.