API changelog
Additive changes to the public developer API, newest first. The compatibility rules are in api-v1-policy.md; the machine-readable contract is v1-openapi.json.
2026-09 — Business facts cite like any source
Additive; existing callers are unaffected.
A citation's
source_typemay now befact: one of the organization's own maintained business facts (Knowledge › Business), withsource_idfact:<id>,source_nameBusiness fact: <topic>, the whole statement asexcerpt, and nosource_location(a fact has no link). Answers cite a fact with a[Cn]marker like any other evidence. Per api-v1-policy.md, clients treat an unknown enum value as a plain source.
2026-07 — Developer-experience release
All changes are additive; existing callers are unaffected.
New endpoints
GET /api/v1/openapi.json— the curated public OpenAPI 3.1 spec (only the/api/v1surface; the uncurated internal schema is no longer served).GET /api/v1/docs— interactive Swagger UI over the curated spec.GET /api/v1/ingest/{article_id}— editorial status of a note saved viaPOST /v1/ingest(draft | approved | verified, live vs in review). Ingest was write-only before.GET /api/v1/creations— cursor-paginated list of the organization's API-enabled Creations (per-Creation API-channel opt-in honored).POST /api/v1/conversations— open a help-desk conversation from an external system on a customer's behalf (organization key,helpdeskscope).
Headers
Every API-key response now carries
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset(the tighter of the per-key/per-org minute budget). SSE responses are decorated too.The automation customer upsert now correctly sets the documented
X-Idempotent-Replay: trueheader on an idempotent replay.
New request parameters
POST /api/v1/answernow acceptsreasoning(auto/off/light/standard/deep— model thinking depth, independent ofeffort) andmodel(a per-request model override, permitted only when it is org-allowed or the answering agent's own configured model, else400). This brings/v1/answerto full parity withPOST /v1/agents/{agent_id}/answer;/answer(optionally withagent) is now the canonical answer endpoint and the per-agent path remains a permanent equivalent. Existing/answercallers are unaffected (both are optional).
Aliases & scope widening
POST /api/v1/agents/{agent_id}/answeracceptseffort/modeas permanent aliases foranswer_effort/answer_mode, matching the generic/v1/answervocabulary.POST /api/v1/answerlikewise acceptsanswer_effort/answer_mode; the canonical spelling wins if both are sent.GET /api/v1/agentsnow accepts a key with theretrieveoranswerscope (previouslyansweronly), so a retrieve-only key can enumerate the agent slugs its endpoints take.
Discovery & docs
The
GET /api/v1discovery document now lists the complete top-level surface — includingcapture,capture-defaults,skillslist/run,drive/step,GET /agentsandGET /me— plus anautomationsubtree pointer, spec/docs pointers (specs), and apoliciesblock (compatibility promise, changelog, rate-limit headers).Presign responses on upload surfaces are self-describing (
resumable_url/protocol/headers/chunk_size), so clients no longer hard-code the storage provider's resumable-upload quirk.