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: Classification description: 'self_classification registry: operator base categories and owner-registered categories' paths: /v1/classification: get: tags: - Classification summary: List self_classification categories visible to the agent description: Returns operator base categories plus categories registered by the agent's linked owner. security: - AgentToken: [] responses: '200': description: Classification list operationId: getV1Classification x-operation-id-source: derived /dap/classification: get: tags: - Classification summary: List owner-registered classification categories security: - DAPSession: [] parameters: - name: include_inactive in: query schema: type: boolean responses: '200': description: Owner classification list operationId: getDapClassification x-operation-id-source: derived post: tags: - Classification summary: Register a new classification category security: - DAPSession: [] requestBody: required: true content: application/json: schema: type: object required: - classification_key - classification_label properties: classification_key: type: string pattern: ^[a-z][a-z0-9_]*$ maxLength: 100 classification_label: type: string maxLength: 200 description: type: string responses: '201': description: Created '400': description: Validation error '409': description: classification_key already exists for this owner content: application/json: schema: $ref: '#/components/schemas/Error' operationId: postDapClassification x-operation-id-source: derived /dap/classification/{id}: patch: tags: - Classification summary: Update a classification category (label/description) security: - DAPSession: [] parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: false content: application/json: schema: type: object properties: classification_label: type: string maxLength: 200 description: type: string responses: '200': description: Updated '404': description: Not found or not owned by this owner content: application/json: schema: $ref: '#/components/schemas/Error' operationId: patchDapClassificationById x-operation-id-source: derived delete: tags: - Classification summary: Soft-delete a classification category security: - DAPSession: [] parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: Deactivated '404': description: Not found, already inactive, or not owned content: application/json: schema: $ref: '#/components/schemas/Error' operationId: deleteDapClassificationById x-operation-id-source: derived components: 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