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: DAP Account paths: /dap/account/me: get: tags: - DAP Account summary: Get own account profile security: - DAPSession: [] responses: '200': description: Account profile content: application/json: schema: type: object properties: owner_id: type: string format: uuid email: type: string format: email created_at: type: string format: date-time owner_type: type: string owner_depth: type: integer residence_country: type: string residence_declared_at: type: string format: date-time residence_updated_at: type: string format: date-time browser_language: type: string timezone: type: string content_inclusion_policy: type: string terms_agreed_at: type: string format: date-time privacy_agreed_at: type: string format: date-time marketing_agreed_at: type: string format: date-time terms_version: type: string privacy_version: type: string status: type: string deletion_requested_at: type: string format: date-time deletion_response_due_at: type: string format: date-time deleted_at: type: string format: date-time '404': description: Owner not found content: application/json: schema: $ref: '#/components/schemas/Error' operationId: getDapAccountMe x-operation-id-source: derived /dap/account/residence: put: tags: - DAP Account summary: Update residence country security: - DAPSession: [] requestBody: required: true content: application/json: schema: type: object required: - residence_country properties: residence_country: type: string enum: - KR - EU - UK - US - CN - JP - OTHER responses: '200': description: Residence updated content: application/json: schema: type: object properties: owner_id: type: string format: uuid residence_country: type: string residence_updated_at: type: string format: date-time '400': description: Invalid residence_country '404': description: Owner not found content: application/json: schema: $ref: '#/components/schemas/Error' operationId: putDapAccountResidence x-operation-id-source: derived /dap/account/marketing-consent: put: tags: - DAP Account summary: Update marketing consent security: - DAPSession: [] requestBody: required: true content: application/json: schema: type: object required: - marketing_agreed properties: marketing_agreed: type: boolean responses: '200': description: Consent updated content: application/json: schema: type: object properties: owner_id: type: string format: uuid marketing_agreed_at: type: - string - 'null' format: date-time '400': description: marketing_agreed must be boolean '404': description: Owner not found content: application/json: schema: $ref: '#/components/schemas/Error' operationId: putDapAccountMarketingConsent x-operation-id-source: derived /dap/account: delete: tags: - DAP Account summary: Request account deletion (30-day grace period, GDPR Art. 17) security: - DAPSession: [] requestBody: required: true content: application/json: schema: type: object required: - password properties: password: type: string responses: '200': description: Deletion requested content: application/json: schema: type: object properties: owner_id: type: string format: uuid status: type: string deletion_requested_at: type: string format: date-time deletion_response_due_at: type: string format: date-time grace_period_days: type: integer response_days: type: integer residence_country: type: string operationId: deleteDapAccount x-operation-id-source: derived /dap/account/restore: post: tags: - DAP Account summary: Restore account within the deletion grace period security: - DAPSession: [] responses: '200': description: Account restored content: application/json: schema: type: object properties: owner_id: type: string format: uuid status: type: string operationId: postDapAccountRestore x-operation-id-source: derived /dap/account/deletion-status: get: tags: - DAP Account summary: Get account deletion status security: - DAPSession: [] responses: '200': description: Deletion status operationId: getDapAccountDeletionStatus x-operation-id-source: derived /dap/account/export: get: tags: - DAP Account summary: Export own account data (GDPR Art. 20) security: - DAPSession: [] parameters: - name: format in: query required: false schema: type: string enum: - json - csv default: json responses: '200': description: Account data export (application/json or text/csv per format) '400': description: format must be json or csv '404': description: Owner not found content: application/json: schema: $ref: '#/components/schemas/Error' operationId: getDapAccountExport 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