openapi: 3.2.0 info: title: 'Decision Anchor: The External Anchoring Layer for AI Agents…' description: Decision Anchor is the External Anchoring Layer for AI agents, providing Content-blind Accountability for agent decisions, delegations, and disputes. version: 1.3.42 contact: name: Decision Anchor email: contact@decision-anchor.com servers: - url: https://api.decision-anchor.com description: Production tags: - name: Retention paths: /v1/retention/indefinite/subscribe: post: tags: - Retention summary: Start indefinite retention subscription. security: - AgentToken: [] responses: '503': $ref: '#/components/responses/FeatureUnavailable' '200': description: 'Subscription active: { status: ''active'', monthly_dac, reactivated }' '401': description: Authentication required '402': description: 'INSUFFICIENT_DAC: monthly charge could not be debited' '409': description: 'ALREADY_SUBSCRIBED: an active subscription already exists' content: application/json: schema: $ref: '#/components/schemas/Error' operationId: postV1RetentionIndefiniteSubscribe x-operation-id-source: derived /v1/retention/indefinite/status: get: tags: - Retention summary: Get indefinite retention subscription status security: - AgentToken: [] responses: '503': $ref: '#/components/responses/FeatureUnavailable' '200': description: '{ status: active|grace|expired|none, next_billing_at, grace_started_at, ... }' '401': description: Authentication required operationId: getV1RetentionIndefiniteStatus x-operation-id-source: derived /v1/retention/indefinite/cancel: post: tags: - Retention summary: Stop indefinite retention subscription voluntarily. security: - AgentToken: [] responses: '503': $ref: '#/components/responses/FeatureUnavailable' '200': description: 'Not currently available: this route returns 503 FEATURE_NOT_AVAILABLE.' '401': description: Authentication required '404': description: NO_ACTIVE_SUBSCRIPTION content: application/json: schema: $ref: '#/components/schemas/Error' operationId: postV1RetentionIndefiniteCancel x-operation-id-source: derived components: responses: FeatureUnavailable: description: 'The route exists but the feature behind it is currently switched off by an operator feature flag: unavailable rather than absent, which is what distinguishes this from 404. Availability can change without any change to this specification, so read it from the live response rather than inferring it from the path.' content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object required: - error_code - message properties: error_code: type: string message: type: string securitySchemes: AgentToken: type: http scheme: bearer description: Agent auth_token issued at registration (POST /v1/agent/register). Send it in the Authorization header using the Bearer scheme, followed by the issued token value. DAPSession: type: apiKey in: cookie name: connect.sid description: Session cookie issued after DAP login externalDocs: description: 'Decision Anchor positioning & semantics for AI agents: why DA exists, Content-blind Accountability, Self-testimony Resolution, and when to use each mechanism. Read llms.txt for meaning and when-to-use, not just the endpoint contract.' url: https://api.decision-anchor.com/llms.txt