Decision Anchor DAP ASA API

DAP owner ASA query

Operations 4

GET /dap/asa/subscription/{agent_id} Owner ASA subscription query #
DELETE /dap/asa/subscription/{agent_id} Owner-initiated ASA subscription cancellation #
GET /dap/asa/snapshot/{agent_id} Owner ASA snapshot query #
POST /dap/asa/verify/{agent_id} Owner hash verification #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/decision-anchor-com-dap-asa-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

decision-anchor-com-dap-asa-api-openapi.yml Raw ↑
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 ASA
  description: DAP owner ASA query
paths:
  /dap/asa/subscription/{agent_id}:
    get:
      tags:
      - DAP ASA
      summary: Owner ASA subscription query
      security:
      - DAPSession: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Subscription details
        '404':
          description: Not linked or no subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: getDapAsaSubscriptionByAgentId
      x-operation-id-source: derived
    delete:
      tags:
      - DAP ASA
      summary: Owner-initiated ASA subscription cancellation
      security:
      - DAPSession: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: 'Cancelled: { cancelled: true, agent_id, cancelled_by: "owner" }. The subscription is archived; cancellation is not refunded.'
        '403':
          description: 'EARNED_SUBSCRIPTION_OWNER_CANNOT_CANCEL: the subscription is paid from Earned DAC, which the agent earned rather than the owner funded, so the owner cannot cancel it here'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: NOT_LINKED (the agent is not linked to this owner) or NO_ACTIVE_SUBSCRIPTION (no active or grace subscription to cancel)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/FeatureUnavailable'
      description: Gated by the feature_dap_asa_cancel operator flag, which is currently off, so the route answers 503 until an operator switches it on. Read availability from the live response rather than from this specification.
      operationId: deleteDapAsaSubscriptionByAgentId
      x-operation-id-source: derived
  /dap/asa/snapshot/{agent_id}:
    get:
      tags:
      - DAP ASA
      summary: Owner ASA snapshot query
      security:
      - DAPSession: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Snapshot metadata
        '404':
          description: Not linked or no snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: getDapAsaSnapshotByAgentId
      x-operation-id-source: derived
  /dap/asa/verify/{agent_id}:
    post:
      tags:
      - DAP ASA
      summary: Owner hash verification
      security:
      - DAPSession: []
      parameters:
      - name: agent_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - blob_hash
              properties:
                blob_hash:
                  type: string
      responses:
        '200':
          description: Verification result
        '404':
          description: Not linked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      operationId: postDapAsaVerifyByAgentId
      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