Skip to content

Start building

Jump toAgent network
All endpoints

Agent network

Agents talking to agents over A2A: outside agents, your endpoints, their keys and the map.

get/v1/a2a/agents

List A2A agents

Needs connection.view

Newest first. Sorts by created_at, updated_at, last_used_at and name; q searches names, addresses and descriptions. Filters, each repeatable: health as people see it (healthy, unhealthy, revoked, pending, paused, card_changed), auth_type, status, created_by, updated_by.

Query parameters

  • workspace_idstring
  • healthstring[]
  • auth_typestring[]
  • statusstring[]
  • created_bystring[]
  • updated_bystring[]
  • limitinteger

    Rows per page, 1 to 200.

    Default50at least 1at most 200
  • cursorstring
  • qstring

    Search: rows whose name (or the list's other searchable text) contains this, any case.

    at most 200 characters
  • orderstring

    Sort field; a leading - sorts down. Each list names the fields it sorts by.

    at most 64 charactersmatches ^-?[a-z_]+$
  • includestring[]

    total_count (counted up to 10,000) and facets (a count per filter value).

    One oftotal_countfacets
  • created_afterstring

    Only rows created at or after this time (RFC 3339).

    date-time
  • created_beforestring

    Only rows created at or before this time (RFC 3339).

    date-time
  • updated_afterstring

    Only rows last changed at or after this time (RFC 3339).

    date-time
  • updated_beforestring

    Only rows last changed at or before this time (RFC 3339).

    date-time

Response200

  • objectstring
    list
  • dataA2aAgent[]
    36 fields
    • idstring
    • objectstring
      a2a_agent
    • auth_typestring
      One ofnonebearerheaders
    • auto_accept_changesboolean
    • call_timeout_sinteger
    • calls_totalinteger
    • cardA2aCardSummary or null

      An Agent Card as we read it (either protocol version).

      15 fields
      • authobject[]
      • descriptionstring
      • documentation_urlstring or null
      • endpoint_urlstring or null
      • icon_urlstring or null
      • input_modesstring[]
      • interfacesA2aInterface[]
        3 fields
        • bindingstring
        • urlstring
        • versionstring
      • namestring
      • output_modesstring[]
      • protocol_versionstring or null
        One of1.00.3
      • providermap<string, string>
      • push_notificationsboolean
      • skillsA2aSkill[]
        7 fields
        • idstring
        • descriptionstring
        • examplesstring[]
        • namestring
        • tagsstring[]
        • input_modesstring[]
        • output_modesstring[]
      • streamingboolean
      • versionstring
    • card_changed_atstring or null
    • card_pendingA2aCardSummary or null

      An Agent Card as we read it (either protocol version).

      15 fields
      • authobject[]
      • descriptionstring
      • documentation_urlstring or null
      • endpoint_urlstring or null
      • icon_urlstring or null
      • input_modesstring[]
      • interfacesA2aInterface[]
        3 fields
        • bindingstring
        • urlstring
        • versionstring
      • namestring
      • output_modesstring[]
      • protocol_versionstring or null
        One of1.00.3
      • providermap<string, string>
      • push_notificationsboolean
      • skillsA2aSkill[]
        7 fields
        • idstring
        • descriptionstring
        • examplesstring[]
        • namestring
        • tagsstring[]
        • input_modesstring[]
        • output_modesstring[]
      • streamingboolean
      • versionstring
    • card_pending_rawobject or null

      Any JSON object.

    • card_rawobject or null

      Any JSON object.

    • card_urlstring
    • check_errorstring or null
    • created_atstring or null
    • data_classstring
      One ofpublicinternalpiisensitivephi
    • descriptionstring or null
    • endpoint_urlstring or null
    • errors_totalinteger
    • header_namesstring[]
    • healthstring
    • health_reasonstring or null
    • health_shownstring
    • instructionsstring or null
    • last_checked_atstring or null
    • last_used_atstring or null
    • max_output_bytesinteger
    • namestring
    • protocol_versionstring or null
      One of1.00.3
    • row_versioninteger
    • side_effectsstring
      One ofreadwritedestructive
    • statusstring
      One ofpendingactivedisabled
    • updated_atstring or null
    • usableboolean
    • workspace_idstring
    • created_byActorRef or null

      Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

      5 fields
      • idstring or null
      • kindstring
        One ofuserapi_keyservice_accountworkloadend_usersystem
      • namestring or null
      • avatar_versionstring or null
      • emailstring or null
    • updated_byActorRef or null

      Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

      5 fields
      • idstring or null
      • kindstring
        One ofuserapi_keyservice_accountworkloadend_usersystem
      • namestring or null
      • avatar_versionstring or null
      • emailstring or null
  • has_moreboolean
  • next_cursorstring or null
  • facetsmap<string, map<string, integer>> or null
  • peoplemap<string, ActorRef> or null
    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • total_countinteger or null
  • total_count_exactboolean or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/agents?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
      "object": "a2a_agent",
      "auth_type": "none",
      "auto_accept_changes": true,
      "call_timeout_s": 60,
      "calls_total": 2,
      "card": {
        "auth": [
          {}
        ],
        "description": "Reads new support email and drafts a reply.",
        "documentation_url": "https://example.com",
        "endpoint_url": "https://example.com",
        "icon_url": "https://example.com",
        "input_modes": [
          "input mode"
        ],
        "interfaces": [
          {}
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "protocol_version": "1.0",
        "provider": {
          "key": "key"
        },
        "push_notifications": true,
        "skills": [
          {}
        ],
        "streaming": true,
        "version": "version"
      },
      "card_changed_at": "2026-11-10T09:30:00.000Z",
      "card_pending": {
        "auth": [
          {}
        ],
        "description": "Reads new support email and drafts a reply.",
        "documentation_url": "https://example.com",
        "endpoint_url": "https://example.com",
        "icon_url": "https://example.com",
        "input_modes": [
          "input mode"
        ],
        "interfaces": [
          {}
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "protocol_version": "1.0",
        "provider": {
          "key": "key"
        },
        "push_notifications": true,
        "skills": [
          {}
        ],
        "streaming": true,
        "version": "version"
      },
      "card_pending_raw": {},
      "card_raw": {},
      "card_url": "https://example.com",
      "check_error": null,
      "created_at": "2026-11-10T09:30:00.000Z",
      "created_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "data_class": "public",
      "description": "Reads new support email and drafts a reply.",
      "endpoint_url": "https://example.com",
      "errors_total": 2,
      "header_names": [
        "X-Api-Key"
      ],
      "health": "health",
      "health_reason": null,
      "health_shown": "health shown",
      "instructions": "instructions",
      "last_checked_at": "2026-11-10T09:30:00.000Z",
      "last_used_at": "2026-11-10T09:30:00.000Z",
      "max_output_bytes": 1048576,
      "name": "Support triage",
      "protocol_version": "1.0",
      "row_version": 4,
      "side_effects": "read",
      "status": "pending",
      "updated_at": "2026-11-10T09:30:00.000Z",
      "updated_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "usable": true,
      "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/a2a/agents

Create A2A agent

Needs connection.manage

Adds an outside agent and reads its card. Credentials are tested first (refused → 422, nothing kept). The name and description default to the card's.

Request bodyA2aAgentCreate

  • card_urlstringRequired
    at least 8 charactersat most 2048 characters
  • workspace_idstringRequired
  • auth_typestring
    One ofnonebearerheadersDefault"none"
  • auto_accept_changesboolean
    Defaultfalse
  • call_timeout_sinteger
    Default120at least 5at most 900
  • data_classstring
    One ofpublicinternalpiisensitivephiDefault"pii"
  • descriptionstring or null
    at most 2000 characters
  • headersmap<string, string> or null
  • instructionsstring or null
    at most 4000 characters
  • max_output_bytesinteger
    Default262144at least 1024at most 5242880
  • namestring or null
    at least 1 charactersat most 200 characters
  • side_effectsstring
    One ofreadwritedestructiveDefault"write"
  • tokenstring or null
    at least 1 charactersat most 8192 characters

Response201

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • setupA2aSetup or null
    4 fields
    • codestring or null
    • messagestring or null
    • outcomestring
      One ofokauth_requiredrefusedfailed
    • changestring or null
      One ofsameacceptedpending
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 201Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/agents" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "card_url": "https://example.com",
    "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
  }'
Response · 201
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "setup": {
    "change": "same",
    "code": "code",
    "message": "Summarise today's open tickets.",
    "outcome": "ok"
  },
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
post/v1/a2a/agents/probe

Probe A2A agent

Needs connection.manage

Reads the Agent Card at an address — the card itself, or an agent's base address (its well-known paths are tried) — and says what it offers. Nothing is stored.

Request bodyA2aProbeRequest

  • urlstringRequired
    at least 8 charactersat most 2048 characters
  • auth_typestring
    One ofnonebearerheadersDefault"none"
  • headersmap<string, string> or null
  • tokenstring or null
    at least 1 charactersat most 8192 characters

Response200

  • objectstring
    a2a_probe
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_rawobject or null

    Any JSON object.

  • card_urlstring or null
  • codestring or null
  • messagestring or null
  • outcomestring
    One ofokauth_requiredfailed

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/agents/probe" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "auth_type": "none",
    "headers": {
      "X-Request-Source": "X-Request-Source"
    },
    "token": "••••••••",
    "url": "https://mcp.example.com/mcp"
  }'
Response · 200
JSON
{
  "object": "a2a_probe",
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_raw": {},
  "card_url": "https://example.com",
  "code": "code",
  "message": "Summarise today's open tickets.",
  "outcome": "ok"
}
get/v1/a2a/endpoints

List A2A endpoints

Needs agent.view

Newest first; q searches names and descriptions. Filters: agent_id, status (enabled, disabled), auth_mode (key, open), alias.

Query parameters

  • workspace_idstring
  • agent_idstring
  • statusstring[]
  • auth_modestring[]
  • aliasstring[]
  • created_bystring[]
  • updated_bystring[]
  • limitinteger

    Rows per page, 1 to 200.

    Default50at least 1at most 200
  • cursorstring
  • qstring

    Search: rows whose name (or the list's other searchable text) contains this, any case.

    at most 200 characters
  • orderstring

    Sort field; a leading - sorts down. Each list names the fields it sorts by.

    at most 64 charactersmatches ^-?[a-z_]+$
  • includestring[]

    total_count (counted up to 10,000) and facets (a count per filter value).

    One oftotal_countfacets
  • created_afterstring

    Only rows created at or after this time (RFC 3339).

    date-time
  • created_beforestring

    Only rows created at or before this time (RFC 3339).

    date-time
  • updated_afterstring

    Only rows last changed at or after this time (RFC 3339).

    date-time
  • updated_beforestring

    Only rows last changed at or before this time (RFC 3339).

    date-time

Response200

  • objectstring
    list
  • dataA2aEndpoint[]
    31 fields
    • idstring
    • objectstring
      a2a_endpoint
    • agent_idstring
    • agent_namestring or null
    • aliasstring
      One oflivestaging
    • auth_modestring
      One ofkeyopen
    • card_urlstring
    • card_versionstring
    • created_atstring or null
    • descriptionstring
    • documentation_urlstring or null
    • history_turnsinteger
    • last_used_atstring or null
    • max_wait_sinteger
    • namestring
    • provider_namestring or null
    • provider_urlstring or null
    • rate_per_minuteinteger
    • row_versioninteger
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • spend_cap_micro_usdinteger
    • statusstring
      One ofenableddisabled
    • streamingboolean
    • tasks_totalinteger
    • updated_atstring or null
    • urlstring
    • workspace_idstring
    • created_byActorRef or null

      Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

      5 fields
      • idstring or null
      • kindstring
        One ofuserapi_keyservice_accountworkloadend_usersystem
      • namestring or null
      • avatar_versionstring or null
      • emailstring or null
    • publishedboolean or null
    • published_versioninteger or null
    • updated_byActorRef or null

      Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

      5 fields
      • idstring or null
      • kindstring
        One ofuserapi_keyservice_accountworkloadend_usersystem
      • namestring or null
      • avatar_versionstring or null
      • emailstring or null
  • has_moreboolean
  • next_cursorstring or null
  • facetsmap<string, map<string, integer>> or null
  • peoplemap<string, ActorRef> or null
    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • total_countinteger or null
  • total_count_exactboolean or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/endpoints?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "sag_01jcjcezxa8bkkg2m791ez7znc",
      "object": "a2a_endpoint",
      "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
      "agent_name": "agent name",
      "alias": "live",
      "auth_mode": "key",
      "card_url": "https://example.com",
      "card_version": "card version",
      "created_at": "2026-11-10T09:30:00.000Z",
      "created_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "description": "Reads new support email and drafts a reply.",
      "documentation_url": "https://example.com",
      "history_turns": 2,
      "last_used_at": "2026-11-10T09:30:00.000Z",
      "max_wait_s": 60,
      "name": "Support triage",
      "provider_name": "provider name",
      "provider_url": "https://example.com",
      "published": true,
      "published_version": 2,
      "rate_per_minute": 2,
      "row_version": 4,
      "skills": [
        {
          "id": "id",
          "description": "Reads new support email and drafts a reply.",
          "examples": [],
          "input_modes": [],
          "name": "Support triage",
          "output_modes": [],
          "tags": []
        }
      ],
      "spend_cap_micro_usd": 1250000,
      "status": "enabled",
      "streaming": true,
      "tasks_total": 2,
      "updated_at": "2026-11-10T09:30:00.000Z",
      "updated_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "url": "https://mcp.example.com/mcp",
      "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/a2a/endpoints

Create A2A endpoint

Needs agent.publish

Shares an agent at one alias over A2A, with its own address and card. Callers need a key unless auth_mode is open.

Request bodyA2aEndpointCreate

  • agent_idstringRequired
  • workspace_idstringRequired
  • aliasstring
    One oflivestagingDefault"live"
  • auth_modestring
    One ofkeyopenDefault"key"
  • card_versionstring
    Default"1.0.0"at least 1 charactersat most 40 characters
  • descriptionstring or null
    at least 1 charactersat most 4000 characters
  • documentation_urlstring or null
    at most 2048 characters
  • first_key_namestring or null
    at least 1 charactersat most 200 characters
  • history_turnsinteger
    Default20at least 0at most 50
  • max_wait_sinteger
    Default60at least 0at most 300
  • namestring or null
    at least 1 charactersat most 200 characters
  • provider_namestring or null
    at most 200 characters
  • provider_urlstring or null
    at most 2048 characters
  • rate_per_minuteinteger
    Default60at least 1at most 6000
  • skillsA2aSkillIn[]
    at most 100 items
    5 fields
    • namestringRequired
      at least 1 charactersat most 200 characters
    • idstring or null
      at most 64 characters
    • descriptionstring
      Default""at most 2000 characters
    • examplesstring[]
      at most 10 items
    • tagsstring[]
      at most 20 items
  • spend_cap_usd_per_daynumber
    Default10at least 0at most 100000
  • streamingboolean
    Defaulttrue

Response201

  • idstring
  • objectstring
    a2a_endpoint
  • agent_idstring
  • agent_namestring or null
  • aliasstring
    One oflivestaging
  • auth_modestring
    One ofkeyopen
  • card_urlstring
  • card_versionstring
  • created_atstring or null
  • descriptionstring
  • documentation_urlstring or null
  • history_turnsinteger
  • last_used_atstring or null
  • max_wait_sinteger
  • namestring
  • provider_namestring or null
  • provider_urlstring or null
  • rate_per_minuteinteger
  • row_versioninteger
  • skillsA2aSkill[]
    7 fields
    • idstring
    • descriptionstring
    • examplesstring[]
    • namestring
    • tagsstring[]
    • input_modesstring[]
    • output_modesstring[]
  • spend_cap_micro_usdinteger
  • statusstring
    One ofenableddisabled
  • streamingboolean
  • tasks_totalinteger
  • updated_atstring or null
  • urlstring
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • keyA2aKeyCreated or null
    13 fields
    • idstring
    • objectstring
      a2a_key
    • created_atstring or null
    • created_bystring or null
    • endpoint_idstring
    • expires_atstring or null
    • keystring
    • key_hintstring
    • last_used_atstring or null
    • namestring
    • revoked_atstring or null
    • statusstring
      One ofactiverevokedexpired
    • tasks_totalinteger
  • publishedboolean or null
  • published_versioninteger or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 201Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/endpoints" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
    "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
  }'
Response · 201
JSON
{
  "id": "sag_01jcjcezxa8bkkg2m791ez7znc",
  "object": "a2a_endpoint",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "agent_name": "agent name",
  "alias": "live",
  "auth_mode": "key",
  "card_url": "https://example.com",
  "card_version": "card version",
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "description": "Reads new support email and drafts a reply.",
  "documentation_url": "https://example.com",
  "history_turns": 2,
  "key": {
    "id": "sak_01jcbqcm5s66fv0rsxta3zmff4",
    "object": "a2a_key",
    "created_at": "2026-11-10T09:30:00.000Z",
    "created_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "endpoint_id": "endpoint id",
    "expires_at": "2026-11-10T09:30:00.000Z",
    "key": "key",
    "key_hint": "key hint",
    "last_used_at": "2026-11-10T09:30:00.000Z",
    "name": "Support triage",
    "revoked_at": null,
    "status": "active",
    "tasks_total": 2
  },
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_wait_s": 60,
  "name": "Support triage",
  "provider_name": "provider name",
  "provider_url": "https://example.com",
  "published": true,
  "published_version": 2,
  "rate_per_minute": 2,
  "row_version": 4,
  "skills": [
    {
      "id": "id",
      "description": "Reads new support email and drafts a reply.",
      "examples": [
        "example"
      ],
      "input_modes": [
        "input mode"
      ],
      "name": "Support triage",
      "output_modes": [
        "output mode"
      ],
      "tags": [
        "tag"
      ]
    }
  ],
  "spend_cap_micro_usd": 1250000,
  "status": "enabled",
  "streaming": true,
  "tasks_total": 2,
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "url": "https://mcp.example.com/mcp",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
get/v1/a2a/map

A2A map

Needs agent.view

Every agent of the workspace, the outside agents it can call, what calls it, the lines between them and each one's last week.

Query parameters

  • workspace_idstringRequired

Response200

  • objectstring
    a2a_map
  • agentsA2aMapAgent[]
    7 fields
    • idstring
    • draft_validboolean
    • failed_7dinteger
    • last_run_atstring or null
    • namestring
    • publicationstring
      One oflivestagingunpublished
    • runs_7dinteger
  • callersA2aMapCaller[]
    8 fields
    • idstring
    • agent_idsstring[]
    • auth_modestring or null
    • kindstring
      One ofendpointwidgetworkflow
    • liveboolean
    • namestring
    • statestring
      One ofonpausedunpublished
    • tasks_7dinteger or null
  • linksA2aMapLine[]
    8 fields
    • aliasesstring[]
    • avg_msinteger or null
    • calls_7dinteger
    • failed_7dinteger
    • from_agent_idstring
    • kindstring
      One ofagenta2a_agent
    • slotstring
    • to_idstring
  • outsideA2aMapOutside[]
    8 fields
    • idstring
    • calls_7dinteger
    • card_urlstring
    • failed_7dinteger
    • health_shownstring
    • namestring
    • side_effectsstring
    • usableboolean
  • truncatedboolean

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/map" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "a2a_map",
  "agents": [
    {
      "id": "id",
      "draft_valid": true,
      "failed_7d": 2,
      "last_run_at": "2026-11-10T09:30:00.000Z",
      "name": "Support triage",
      "publication": "live",
      "runs_7d": 2
    }
  ],
  "callers": [
    {
      "id": "id",
      "agent_ids": [
        "agt_01jctdbahw9btk5p831xs974yq"
      ],
      "auth_mode": "auth mode",
      "kind": "endpoint",
      "live": true,
      "name": "Support triage",
      "state": "on",
      "tasks_7d": 2
    }
  ],
  "links": [
    {
      "aliases": [
        "aliase"
      ],
      "avg_ms": 840,
      "calls_7d": 2,
      "failed_7d": 2,
      "from_agent_id": "from agent id",
      "kind": "agent",
      "slot": "crm",
      "to_id": "to id"
    }
  ],
  "outside": [
    {
      "id": "id",
      "calls_7d": 2,
      "card_url": "https://example.com",
      "failed_7d": 2,
      "health_shown": "health shown",
      "name": "Support triage",
      "side_effects": "side effects",
      "usable": true
    }
  ],
  "truncated": true
}
get/v1/a2a/map/calls

A2A map calls

Needs run.view

The last calls one agent made to another, newest first.

Query parameters

  • from_agent_idstringRequired
  • to_idstringRequired
  • limitinteger
    Default20at least 1at most 50

Response200

  • objectstring
    list
  • dataA2aMapCall[]
    7 fields
    • idstring
    • created_atstring
    • duration_msinteger or null
    • error_codestring or null
    • is_testboolean
    • run_idstring
    • statusstring
      One ofokfailedcancelledrunninginput_required
  • has_moreboolean
  • next_cursorstring or null
  • facetsmap<string, map<string, integer>> or null
  • peoplemap<string, ActorRef> or null
    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • total_countinteger or null
  • total_count_exactboolean or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/map/calls?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "id",
      "created_at": "2026-11-10T09:30:00.000Z",
      "duration_ms": 840,
      "error_code": null,
      "is_test": false,
      "run_id": "run_01jcr77659p6hws1zjqkthay73",
      "status": "ok"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/a2a/map/links

Connect agents

Needs agent.edit

Gives an agent's draft another agent as a tool. Needs what choosing it in the studio needs: agent.run for an agent of the workspace, connection.use for an outside one. A line that would make a loop is refused and the draft stays as it was.

Request bodyMapLinkCreate

  • from_agent_idstringRequired
  • to_a2a_agent_idstring or null
  • to_agent_idstring or null

Response201

  • objectstring
    a2a_map_link
  • draft_validboolean
  • slotstring

Status codes

  • 201Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/map/links" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_agent_id": "from agent id",
    "to_a2a_agent_id": "to a2a agent id",
    "to_agent_id": "to agent id"
  }'
Response · 201
JSON
{
  "object": "a2a_map_link",
  "draft_valid": true,
  "slot": "crm"
}
get/v1/a2a/overview

A2A overview

Needs agent.view

Counts for one workspace, or for the whole organization when none is named.

Query parameters

  • workspace_idstring

Response200

  • objectstring
    a2a_overview
  • agentsinteger
  • agents_callinginteger
  • agents_usableinteger
  • agents_waitinginteger
  • calls_7dinteger
  • calls_failed_7dinteger
  • endpointsinteger
  • endpoints_enabledinteger
  • public_originstring
  • tasks_7dinteger

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/overview" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "a2a_overview",
  "agents": 2,
  "agents_calling": 2,
  "agents_usable": 2,
  "agents_waiting": 2,
  "calls_7d": 2,
  "calls_failed_7d": 2,
  "endpoints": 2,
  "endpoints_enabled": 2,
  "public_origin": "public origin",
  "tasks_7d": 2
}
get/v1/a2a/agents/{a2a_agent_id}

Get A2A agent

Needs connection.view

Path parameters

  • a2a_agent_idstringRequired

Response200

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
patch/v1/a2a/agents/{a2a_agent_id}

Update A2A agent

Needs connection.manage

Path parameters

  • a2a_agent_idstringRequired

Request bodyA2aAgentPatch

  • auto_accept_changesboolean or null
  • call_timeout_sinteger or null
    at least 5at most 900
  • data_classstring or null
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
    at most 2000 characters
  • instructionsstring or null
    at most 4000 characters
  • max_output_bytesinteger or null
    at least 1024at most 5242880
  • namestring or null
    at least 1 charactersat most 200 characters
  • row_versioninteger or null
  • side_effectsstring or null
    One ofreadwritedestructive
  • statusstring or null
    One ofactivedisabled

Response200

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X PATCH "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response · 200
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
delete/v1/a2a/agents/{a2a_agent_id}

Delete A2A agent

Needs connection.manage

To the trash: its credentials are dropped, and agents using it lose that tool.

Path parameters

  • a2a_agent_idstringRequired

Response204

Answers 204 with no body.

Status codes

  • 204Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X DELETE "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn" \
  -H "Authorization: Bearer $MDA_API_KEY"
get/v1/a2a/agents/{a2a_agent_id}/calls

List A2A calls

Needs connection.view

Path parameters

  • a2a_agent_idstringRequired

Query parameters

  • limitinteger
    Default50at least 1at most 100
  • cursorstring

Response200

  • objectstring
    list
  • dailyA2aDay[]
    4 fields
    • daystring
    • errorinteger
      Default0
    • failedinteger
      Default0
    • okinteger
      Default0
  • dataA2aCall[]
    12 fields
    • idstring
    • actor_idstring or null
    • context_idstring or null
    • created_atstring or null
    • duration_msinteger
    • error_codestring or null
    • outcomestring
      One ofokinput_requiredfailederror
    • remote_statestring or null
    • remote_task_idstring or null
    • run_idstring or null
    • sourcestring
      One ofagentworkflowtry
    • workflow_run_idstring or null
  • has_moreboolean
  • next_cursorstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn/calls?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "daily": [
    {
      "day": "2026-11-10",
      "error": 0,
      "failed": 0,
      "ok": 0
    }
  ],
  "data": [
    {
      "id": "id",
      "actor_id": "actor id",
      "context_id": "context id",
      "created_at": "2026-11-10T09:30:00.000Z",
      "duration_ms": 840,
      "error_code": null,
      "outcome": "ok",
      "remote_state": "remote state",
      "remote_task_id": "remote task id",
      "run_id": "run_01jcr77659p6hws1zjqkthay73",
      "source": "agent",
      "workflow_run_id": "wfr_01jcvk7x45pq07bh867msccyhv"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
post/v1/a2a/agents/{a2a_agent_id}/card/accept

Accept A2A card

Needs connection.manage

Accepts the changed card waiting on the agent: calls resume against it.

Path parameters

  • a2a_agent_idstringRequired

Response200

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn/card/accept" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
post/v1/a2a/agents/{a2a_agent_id}/check

Check A2A agent

Needs connection.manage

Reads the card again. A different card waits for a person (card_pending) unless the agent accepts changes on its own.

Path parameters

  • a2a_agent_idstringRequired

Response200

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • setupA2aSetup
    4 fields
    • codestring or null
    • messagestring or null
    • outcomestring
      One ofokauth_requiredrefusedfailed
    • changestring or null
      One ofsameacceptedpending
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn/check" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "setup": {
    "change": "same",
    "code": "code",
    "message": "Summarise today's open tickets.",
    "outcome": "ok"
  },
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
post/v1/a2a/agents/{a2a_agent_id}/messages

Message A2A agent

Needs connection.use

Sends a test message and waits for the answer (up to the agent's call_timeout_s). Pass context_id to go on with the same conversation, and task_id to answer a task that asked for input.

Path parameters

  • a2a_agent_idstringRequired

Request bodyA2aMessageBody

  • textstringRequired
    at least 1 charactersat most 32000 characters
  • context_idstring or null
    at most 256 characters
  • dataobject or null

    Any JSON object.

  • task_idstring or null
    at most 256 characters

Response200

  • objectstring
    a2a_reply
  • artifactsobject[]
  • codestring or null
  • context_idstring or null
  • duration_msinteger or null
  • messagestring or null
  • outcomestring
    One ofokfailed
  • statestring or null
  • task_idstring or null
  • textstring or null
  • dataany

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn/messages" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "context_id": "context id",
    "data": {},
    "task_id": "task id",
    "text": "text"
  }'
Response · 200
JSON
{
  "object": "a2a_reply",
  "artifacts": [
    {}
  ],
  "code": "code",
  "context_id": "context id",
  "data": {},
  "duration_ms": 840,
  "message": "Summarise today's open tickets.",
  "outcome": "ok",
  "state": "state",
  "task_id": "task id",
  "text": "text"
}
put/v1/a2a/agents/{a2a_agent_id}/secret

Put A2A secret

Needs connection.manage

New credentials, tested before they replace the old ones.

Path parameters

  • a2a_agent_idstringRequired

Request bodyA2aSecretPut

  • headersmap<string, string> or null
  • tokenstring or null
    at least 1 charactersat most 8192 characters

Response200

  • idstring
  • objectstring
    a2a_agent
  • auth_typestring
    One ofnonebearerheaders
  • auto_accept_changesboolean
  • call_timeout_sinteger
  • calls_totalinteger
  • cardA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_changed_atstring or null
  • card_pendingA2aCardSummary or null

    An Agent Card as we read it (either protocol version).

    15 fields
    • authobject[]
    • descriptionstring
    • documentation_urlstring or null
    • endpoint_urlstring or null
    • icon_urlstring or null
    • input_modesstring[]
    • interfacesA2aInterface[]
      3 fields
      • bindingstring
      • urlstring
      • versionstring
    • namestring
    • output_modesstring[]
    • protocol_versionstring or null
      One of1.00.3
    • providermap<string, string>
    • push_notificationsboolean
    • skillsA2aSkill[]
      7 fields
      • idstring
      • descriptionstring
      • examplesstring[]
      • namestring
      • tagsstring[]
      • input_modesstring[]
      • output_modesstring[]
    • streamingboolean
    • versionstring
  • card_pending_rawobject or null

    Any JSON object.

  • card_rawobject or null

    Any JSON object.

  • card_urlstring
  • check_errorstring or null
  • created_atstring or null
  • data_classstring
    One ofpublicinternalpiisensitivephi
  • descriptionstring or null
  • endpoint_urlstring or null
  • errors_totalinteger
  • header_namesstring[]
  • healthstring
  • health_reasonstring or null
  • health_shownstring
  • instructionsstring or null
  • last_checked_atstring or null
  • last_used_atstring or null
  • max_output_bytesinteger
  • namestring
  • protocol_versionstring or null
    One of1.00.3
  • row_versioninteger
  • side_effectsstring
    One ofreadwritedestructive
  • statusstring
    One ofpendingactivedisabled
  • updated_atstring or null
  • usableboolean
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X PUT "https://api.mydeepagents.com/v1/a2a/agents/oag_01jc1pxfe3k6x8qt1wve5305pn/secret" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "headers": {
      "X-Request-Source": "X-Request-Source"
    },
    "token": "••••••••"
  }'
Response · 200
JSON
{
  "id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
  "object": "a2a_agent",
  "auth_type": "none",
  "auto_accept_changes": true,
  "call_timeout_s": 60,
  "calls_total": 2,
  "card": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_changed_at": "2026-11-10T09:30:00.000Z",
  "card_pending": {
    "auth": [
      {}
    ],
    "description": "Reads new support email and drafts a reply.",
    "documentation_url": "https://example.com",
    "endpoint_url": "https://example.com",
    "icon_url": "https://example.com",
    "input_modes": [
      "input mode"
    ],
    "interfaces": [
      {
        "binding": "binding",
        "url": "https://mcp.example.com/mcp",
        "version": "version"
      }
    ],
    "name": "Support triage",
    "output_modes": [
      "output mode"
    ],
    "protocol_version": "1.0",
    "provider": {
      "key": "key"
    },
    "push_notifications": true,
    "skills": [
      {
        "id": "id",
        "description": "Reads new support email and drafts a reply.",
        "examples": [
          "example"
        ],
        "input_modes": [
          "input mode"
        ],
        "name": "Support triage",
        "output_modes": [
          "output mode"
        ],
        "tags": [
          "tag"
        ]
      }
    ],
    "streaming": true,
    "version": "version"
  },
  "card_pending_raw": {},
  "card_raw": {},
  "card_url": "https://example.com",
  "check_error": null,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "data_class": "public",
  "description": "Reads new support email and drafts a reply.",
  "endpoint_url": "https://example.com",
  "errors_total": 2,
  "header_names": [
    "X-Api-Key"
  ],
  "health": "health",
  "health_reason": null,
  "health_shown": "health shown",
  "instructions": "instructions",
  "last_checked_at": "2026-11-10T09:30:00.000Z",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_output_bytes": 1048576,
  "name": "Support triage",
  "protocol_version": "1.0",
  "row_version": 4,
  "side_effects": "read",
  "status": "pending",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "usable": true,
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
get/v1/a2a/endpoints/{a2a_endpoint_id}

Get A2A endpoint

Needs agent.view

Path parameters

  • a2a_endpoint_idstringRequired

Response200

  • idstring
  • objectstring
    a2a_endpoint
  • agent_idstring
  • agent_namestring or null
  • aliasstring
    One oflivestaging
  • auth_modestring
    One ofkeyopen
  • card_urlstring
  • card_versionstring
  • created_atstring or null
  • descriptionstring
  • documentation_urlstring or null
  • history_turnsinteger
  • last_used_atstring or null
  • max_wait_sinteger
  • namestring
  • provider_namestring or null
  • provider_urlstring or null
  • rate_per_minuteinteger
  • row_versioninteger
  • skillsA2aSkill[]
    7 fields
    • idstring
    • descriptionstring
    • examplesstring[]
    • namestring
    • tagsstring[]
    • input_modesstring[]
    • output_modesstring[]
  • spend_cap_micro_usdinteger
  • statusstring
    One ofenableddisabled
  • streamingboolean
  • tasks_totalinteger
  • updated_atstring or null
  • urlstring
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • publishedboolean or null
  • published_versioninteger or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "sag_01jcjcezxa8bkkg2m791ez7znc",
  "object": "a2a_endpoint",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "agent_name": "agent name",
  "alias": "live",
  "auth_mode": "key",
  "card_url": "https://example.com",
  "card_version": "card version",
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "description": "Reads new support email and drafts a reply.",
  "documentation_url": "https://example.com",
  "history_turns": 2,
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_wait_s": 60,
  "name": "Support triage",
  "provider_name": "provider name",
  "provider_url": "https://example.com",
  "published": true,
  "published_version": 2,
  "rate_per_minute": 2,
  "row_version": 4,
  "skills": [
    {
      "id": "id",
      "description": "Reads new support email and drafts a reply.",
      "examples": [
        "example"
      ],
      "input_modes": [
        "input mode"
      ],
      "name": "Support triage",
      "output_modes": [
        "output mode"
      ],
      "tags": [
        "tag"
      ]
    }
  ],
  "spend_cap_micro_usd": 1250000,
  "status": "enabled",
  "streaming": true,
  "tasks_total": 2,
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "url": "https://mcp.example.com/mcp",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
patch/v1/a2a/endpoints/{a2a_endpoint_id}

Update A2A endpoint

Needs agent.publish

Path parameters

  • a2a_endpoint_idstringRequired

Request bodyA2aEndpointPatch

  • aliasstring or null
    One oflivestaging
  • auth_modestring or null
    One ofkeyopen
  • card_versionstring or null
    at least 1 charactersat most 40 characters
  • descriptionstring or null
    at least 1 charactersat most 4000 characters
  • documentation_urlstring or null
    at most 2048 characters
  • history_turnsinteger or null
    at least 0at most 50
  • max_wait_sinteger or null
    at least 0at most 300
  • namestring or null
    at least 1 charactersat most 200 characters
  • provider_namestring or null
    at most 200 characters
  • provider_urlstring or null
    at most 2048 characters
  • rate_per_minuteinteger or null
    at least 1at most 6000
  • row_versioninteger or null
  • skillsA2aSkillIn[] or null
    at most 100 items
    5 fields
    • namestringRequired
      at least 1 charactersat most 200 characters
    • idstring or null
      at most 64 characters
    • descriptionstring
      Default""at most 2000 characters
    • examplesstring[]
      at most 10 items
    • tagsstring[]
      at most 20 items
  • spend_cap_usd_per_daynumber or null
    at least 0at most 100000
  • statusstring or null
    One ofenableddisabled
  • streamingboolean or null

Response200

  • idstring
  • objectstring
    a2a_endpoint
  • agent_idstring
  • agent_namestring or null
  • aliasstring
    One oflivestaging
  • auth_modestring
    One ofkeyopen
  • card_urlstring
  • card_versionstring
  • created_atstring or null
  • descriptionstring
  • documentation_urlstring or null
  • history_turnsinteger
  • last_used_atstring or null
  • max_wait_sinteger
  • namestring
  • provider_namestring or null
  • provider_urlstring or null
  • rate_per_minuteinteger
  • row_versioninteger
  • skillsA2aSkill[]
    7 fields
    • idstring
    • descriptionstring
    • examplesstring[]
    • namestring
    • tagsstring[]
    • input_modesstring[]
    • output_modesstring[]
  • spend_cap_micro_usdinteger
  • statusstring
    One ofenableddisabled
  • streamingboolean
  • tasks_totalinteger
  • updated_atstring or null
  • urlstring
  • workspace_idstring
  • created_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null
  • publishedboolean or null
  • published_versioninteger or null
  • updated_byActorRef or null

    Who created or last changed something, resolved to a name for display. system, workload (an automation) and end_user (a widget visitor) have no ID or name: the console words them. name is null for someone the directory no longer knows. id is what the lists' created_by/updated_by filters take. avatar_version is set for a person with a photo: it is at GET /v1/members/{id}/avatar?v=<avatar_version> while they are a member.

    5 fields
    • idstring or null
    • kindstring
      One ofuserapi_keyservice_accountworkloadend_usersystem
    • namestring or null
    • avatar_versionstring or null
    • emailstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X PATCH "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response · 200
JSON
{
  "id": "sag_01jcjcezxa8bkkg2m791ez7znc",
  "object": "a2a_endpoint",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "agent_name": "agent name",
  "alias": "live",
  "auth_mode": "key",
  "card_url": "https://example.com",
  "card_version": "card version",
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "description": "Reads new support email and drafts a reply.",
  "documentation_url": "https://example.com",
  "history_turns": 2,
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "max_wait_s": 60,
  "name": "Support triage",
  "provider_name": "provider name",
  "provider_url": "https://example.com",
  "published": true,
  "published_version": 2,
  "rate_per_minute": 2,
  "row_version": 4,
  "skills": [
    {
      "id": "id",
      "description": "Reads new support email and drafts a reply.",
      "examples": [
        "example"
      ],
      "input_modes": [
        "input mode"
      ],
      "name": "Support triage",
      "output_modes": [
        "output mode"
      ],
      "tags": [
        "tag"
      ]
    }
  ],
  "spend_cap_micro_usd": 1250000,
  "status": "enabled",
  "streaming": true,
  "tasks_total": 2,
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "url": "https://mcp.example.com/mcp",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
delete/v1/a2a/endpoints/{a2a_endpoint_id}

Delete A2A endpoint

Needs agent.publish

Stops sharing: the address answers 404 and every key is revoked.

Path parameters

  • a2a_endpoint_idstringRequired

Response204

Answers 204 with no body.

Status codes

  • 204Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X DELETE "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc" \
  -H "Authorization: Bearer $MDA_API_KEY"
get/v1/a2a/endpoints/{a2a_endpoint_id}/card

Preview A2A card

Needs agent.view

The card exactly as outside agents read it (version picks one shape).

Path parameters

  • a2a_endpoint_idstringRequired

Query parameters

  • versionstring
    One ofboth1.00.3Default"both"

Response200

  • objectstring
    a2a_card
  • cardobject

    Any JSON object.

  • urlstring

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc/card" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "a2a_card",
  "card": {},
  "url": "https://mcp.example.com/mcp"
}
get/v1/a2a/endpoints/{a2a_endpoint_id}/keys

List A2A keys

Needs agent.view

Path parameters

  • a2a_endpoint_idstringRequired

Response200

  • objectstring
    list
  • dataA2aKey[]
    12 fields
    • idstring
    • objectstring
      a2a_key
    • created_atstring or null
    • created_bystring or null
    • endpoint_idstring
    • expires_atstring or null
    • key_hintstring
    • last_used_atstring or null
    • namestring
    • revoked_atstring or null
    • statusstring
      One ofactiverevokedexpired
    • tasks_totalinteger

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc/keys" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "sak_01jcbqcm5s66fv0rsxta3zmff4",
      "object": "a2a_key",
      "created_at": "2026-11-10T09:30:00.000Z",
      "created_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
      "endpoint_id": "endpoint id",
      "expires_at": "2026-11-10T09:30:00.000Z",
      "key_hint": "key hint",
      "last_used_at": "2026-11-10T09:30:00.000Z",
      "name": "Support triage",
      "revoked_at": null,
      "status": "active",
      "tasks_total": 2
    }
  ]
}
post/v1/a2a/endpoints/{a2a_endpoint_id}/keys

Create A2A key

Needs agent.publish

A new key for one caller. The whole key is in this answer only.

Path parameters

  • a2a_endpoint_idstringRequired

Request bodyA2aKeyCreate

  • namestringRequired
    at least 1 charactersat most 200 characters
  • expires_atstring or null
    date-time

Response201

  • idstring
  • objectstring
    a2a_key
  • created_atstring or null
  • created_bystring or null
  • endpoint_idstring
  • expires_atstring or null
  • keystring
  • key_hintstring
  • last_used_atstring or null
  • namestring
  • revoked_atstring or null
  • statusstring
    One ofactiverevokedexpired
  • tasks_totalinteger

Status codes

  • 201Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X POST "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc/keys" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "expires_at": "2026-11-10T09:30:00.000Z",
    "name": "Support triage"
  }'
Response · 201
JSON
{
  "id": "sak_01jcbqcm5s66fv0rsxta3zmff4",
  "object": "a2a_key",
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
  "endpoint_id": "endpoint id",
  "expires_at": "2026-11-10T09:30:00.000Z",
  "key": "key",
  "key_hint": "key hint",
  "last_used_at": "2026-11-10T09:30:00.000Z",
  "name": "Support triage",
  "revoked_at": null,
  "status": "active",
  "tasks_total": 2
}
get/v1/a2a/endpoints/{a2a_endpoint_id}/tasks

List A2A tasks

Needs run.view

What outside callers asked, newest first: each task is an agent run (its ID), with who called, the conversation, the state and the cost. Never the content: open the run for that.

Path parameters

  • a2a_endpoint_idstringRequired

Query parameters

  • limitinteger
    Default50at least 1at most 100
  • cursorstring
  • context_idstring

Response200

  • objectstring
    list
  • dailyA2aTaskDay[]
    5 fields
    • daystring
    • completedinteger
      Default0
    • cost_micro_usdinteger
      Default0
    • failedinteger
      Default0
    • otherinteger
      Default0
  • dataA2aTask[]
    14 fields
    • idstring
    • objectstring
      a2a_task
    • callerstring
    • context_idstring
    • cost_micro_usdinteger
    • created_atstring or null
    • ended_atstring or null
    • key_idstring or null
    • protocol_versionstring
      One of1.00.3
    • started_atstring or null
    • statestring
    • state_reasonstring or null
    • stepsinteger
    • streamedboolean
  • has_moreboolean
  • next_cursorstring or null

Status codes

  • 200Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc/tasks?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "daily": [
    {
      "completed": 0,
      "cost_micro_usd": 0,
      "day": "2026-11-10",
      "failed": 0,
      "other": 0
    }
  ],
  "data": [
    {
      "id": "id",
      "object": "a2a_task",
      "caller": "caller",
      "context_id": "context id",
      "cost_micro_usd": 1250000,
      "created_at": "2026-11-10T09:30:00.000Z",
      "ended_at": null,
      "key_id": "k7m2p9qa3tq8v1zc",
      "protocol_version": "1.0",
      "started_at": "2026-11-10T09:30:00.000Z",
      "state": "state",
      "state_reason": null,
      "steps": 2,
      "streamed": true
    }
  ],
  "has_more": false,
  "next_cursor": null
}
delete/v1/a2a/endpoints/{a2a_endpoint_id}/keys/{a2a_key_id}

Revoke A2A key

Needs agent.publish

Path parameters

  • a2a_endpoint_idstringRequired
  • a2a_key_idstringRequired

Response204

Answers 204 with no body.

Status codes

  • 204Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X DELETE "https://api.mydeepagents.com/v1/a2a/endpoints/sag_01jcjcezxa8bkkg2m791ez7znc/keys/sak_01jcbqcm5s66fv0rsxta3zmff4" \
  -H "Authorization: Bearer $MDA_API_KEY"
delete/v1/a2a/map/links/{agent_id}/{slot}

Disconnect agents

Needs agent.edit

Takes a line out of the draft; published versions keep it until the next publish.

Path parameters

  • agent_idstringRequired
  • slotstringRequired

Response204

Answers 204 with no body.

Status codes

  • 204Successful Response
  • 422The request is not valid: errors[] names each field.
  • 4XXThe request was refused: the problem says why.
  • 5XXThe API could not answer: the problem says why.
Request
curl -X DELETE "https://api.mydeepagents.com/v1/a2a/map/links/agt_01jctdbahw9btk5p831xs974yq/crm" \
  -H "Authorization: Bearer $MDA_API_KEY"

Build with us

Ready for your first call?

Early access is open. Tell us what you want your agents to do, and we will help you get your first key.