Skip to content

Start building

Jump toAgents
All endpoints

Agents

Create agents, edit their drafts, publish versions and point aliases at them.

get/v1/agents

List agents

Needs agent.view

Recently changed first. Sorts by updated_at, created_at, name, model and latest_version; q searches names and descriptions or finds a pasted agent ID. Filters, each repeatable: publication (live, staging, unpublished), valid (true, false), provider, model, created_by and updated_by (usr_… or sa_…), plus the created and updated time ranges; facets count each of them.

Query parameters

  • workspace_idstring

    Only rows in this workspace (ws_…).

  • publicationstring[]
  • validstring[]
  • providerstring[]
  • modelstring[]
  • 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
  • dataAgent[]
    18 fields
    • idstring
    • objectstring
      agent
    • created_atstring
    • draft_revisioninteger
    • draft_validboolean
    • latest_versioninteger or null
    • namestring
    • row_versioninteger
    • updated_atstring
    • workspace_idstring
    • aliasesmap<string, integer>
    • 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
    • descriptionstring or null
    • modelstring or null
    • providerstring or null
    • publicationstring or null
      One oflivestagingunpublished
    • toolsinteger 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/agents?limit=20" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "agt_01jctdbahw9btk5p831xs974yq",
      "object": "agent",
      "aliases": {
        "live": 2
      },
      "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.",
      "draft_revision": 2,
      "draft_valid": true,
      "latest_version": 3,
      "model": "claude-sonnet-5-5",
      "name": "Support triage",
      "provider": "anthropic",
      "publication": "live",
      "row_version": 4,
      "tools": 2,
      "updated_at": "2026-11-10T09:30:00.000Z",
      "updated_by": {
        "kind": "user",
        "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
        "name": "Ada Lovelace",
        "email": "ada@example.com"
      },
      "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/agents

Create agent

Needs agent.edit

Request bodyAgentCreate

  • definitionobjectRequired

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

  • workspace_idstringRequired

Response201

  • idstring
  • objectstring
    agent
  • created_atstring
  • draftAgentDraft
    6 fields
    • objectstring
      agent_draft
    • agent_idstring
    • definitionobject

      The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

    • draft_revisioninteger
    • issuesValidationIssue[]
      5 fields
      • codestring
      • messagestring
      • pathstring
      • severitystring
        One oferrorwarning
      • hintstring or null
    • validboolean
  • draft_revisioninteger
  • draft_validboolean
  • latest_versioninteger or null
  • namestring
  • row_versioninteger
  • updated_atstring
  • workspace_idstring
  • aliasesmap<string, integer>
  • 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
  • descriptionstring or null
  • modelstring or null
  • providerstring or null
  • publicationstring or null
    One oflivestagingunpublished
  • toolsinteger 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/agents" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h",
    "definition": {
      "schema": "mda.agent/v1",
      "name": "Support triage",
      "description": "Reads new support email and drafts a reply.",
      "spec": {
        "model": {
          "provider": "anthropic",
          "id": "claude-sonnet-5-5"
        },
        "instructions": "You triage support email. Summarise each message in one line, then draft a short, friendly reply."
      }
    }
  }'
Response · 201
JSON
{
  "id": "agt_01jctdbahw9btk5p831xs974yq",
  "object": "agent",
  "aliases": {
    "live": 2
  },
  "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.",
  "draft": {
    "object": "agent_draft",
    "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
    "definition": {},
    "draft_revision": 2,
    "issues": [
      {
        "code": "code",
        "hint": "hint",
        "message": "Summarise today's open tickets.",
        "path": "path",
        "severity": "error"
      }
    ],
    "valid": true
  },
  "draft_revision": 2,
  "draft_valid": true,
  "latest_version": 3,
  "model": "claude-sonnet-5-5",
  "name": "Support triage",
  "provider": "anthropic",
  "publication": "live",
  "row_version": 4,
  "tools": 2,
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
get/v1/agents/{agent_id}

Get agent

Needs agent.view

Path parameters

  • agent_idstringRequired

Response200

  • idstring
  • objectstring
    agent
  • created_atstring
  • draft_revisioninteger
  • draft_validboolean
  • latest_versioninteger or null
  • namestring
  • row_versioninteger
  • updated_atstring
  • workspace_idstring
  • aliasesmap<string, integer>
  • 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
  • descriptionstring or null
  • modelstring or null
  • providerstring or null
  • publicationstring or null
    One oflivestagingunpublished
  • toolsinteger 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/agents/agt_01jctdbahw9btk5p831xs974yq" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "agt_01jctdbahw9btk5p831xs974yq",
  "object": "agent",
  "aliases": {
    "live": 2
  },
  "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.",
  "draft_revision": 2,
  "draft_valid": true,
  "latest_version": 3,
  "model": "claude-sonnet-5-5",
  "name": "Support triage",
  "provider": "anthropic",
  "publication": "live",
  "row_version": 4,
  "tools": 2,
  "updated_at": "2026-11-10T09:30:00.000Z",
  "updated_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
delete/v1/agents/{agent_id}

Delete agent

Needs agent.edit

Path parameters

  • 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/agents/agt_01jctdbahw9btk5p831xs974yq" \
  -H "Authorization: Bearer $MDA_API_KEY"
get/v1/agents/{agent_id}/bindings

List agent bindings

Needs agent.view

Path parameters

  • agent_idstringRequired

Response200

  • objectstring
    list
  • dataBinding[]
    8 fields
    • objectstring
      binding
    • aliasstring
      One ofdraftstaginglive
    • revisioninteger
    • slotstring
    • target_idstring
    • target_typestring
      One ofconnectionmcp_serverknowledge_baseagentworkflowcode_toola2a_agent
    • updated_atstring
    • target_aliasstring 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/agents/agt_01jctdbahw9btk5p831xs974yq/bindings" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "object": "binding",
      "alias": "live",
      "revision": 2,
      "slot": "crm",
      "target_alias": "target alias",
      "target_id": "target id",
      "target_type": "connection",
      "updated_at": "2026-11-10T09:30:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
get/v1/agents/{agent_id}/draft

Get draft

Needs agent.view

Path parameters

  • agent_idstringRequired

Response200

  • objectstring
    agent_draft
  • agent_idstring
  • definitionobject

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

  • draft_revisioninteger
  • issuesValidationIssue[]
    5 fields
    • codestring
    • messagestring
    • pathstring
    • severitystring
      One oferrorwarning
    • hintstring or null
  • validboolean

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/agents/agt_01jctdbahw9btk5p831xs974yq/draft" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "agent_draft",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "definition": {},
  "draft_revision": 2,
  "issues": [
    {
      "code": "code",
      "hint": "hint",
      "message": "Summarise today's open tickets.",
      "path": "path",
      "severity": "error"
    }
  ],
  "valid": true
}
put/v1/agents/{agent_id}/draft

Put draft

Needs agent.edit

Path parameters

  • agent_idstringRequired

Headers

  • If-Matchstring

    The ETag you read. If the resource changed since, the write fails with 412.

Request bodyDraftPut

  • definitionobjectRequired

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

Response200

  • objectstring
    agent_draft
  • agent_idstring
  • definitionobject

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

  • draft_revisioninteger
  • issuesValidationIssue[]
    5 fields
    • codestring
    • messagestring
    • pathstring
    • severitystring
      One oferrorwarning
    • hintstring or null
  • validboolean

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/agents/agt_01jctdbahw9btk5p831xs974yq/draft" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "definition": {
      "schema": "mda.agent/v1",
      "name": "Support triage",
      "description": "Reads new support email and drafts a reply.",
      "spec": {
        "model": {
          "provider": "anthropic",
          "id": "claude-sonnet-5-5"
        },
        "instructions": "You triage support email. Summarise each message in one line, then draft a short, friendly reply."
      }
    }
  }'
Response · 200
JSON
{
  "object": "agent_draft",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "definition": {},
  "draft_revision": 2,
  "issues": [
    {
      "code": "code",
      "hint": "hint",
      "message": "Summarise today's open tickets.",
      "path": "path",
      "severity": "error"
    }
  ],
  "valid": true
}
post/v1/agents/{agent_id}/publish

Publish agent

Needs agent.publish

Path parameters

  • agent_idstringRequired

Request bodyPublishBody

  • aliasstring or null
    One oflivestaging

Response201

  • idstring
  • objectstring
    agent_version
  • agent_idstring
  • aliasesstring[]
  • content_hashstring
  • created_atstring
  • numberinteger
  • published_bystring
  • schema_versionstring
  • statusstring
    One ofpublishedarchived
  • workload_idstring

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/agents/agt_01jctdbahw9btk5p831xs974yq/publish" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "alias": "live"
  }'
Response · 201
JSON
{
  "id": "agv_01jc7jt62eapjyt621bszf6wrs",
  "object": "agent_version",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "aliases": [
    "aliase"
  ],
  "content_hash": "content hash",
  "created_at": "2026-11-10T09:30:00.000Z",
  "number": 3,
  "published_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
  "schema_version": "schema version",
  "status": "published",
  "workload_id": "workload id"
}
post/v1/agents/{agent_id}/runs

Start run

Needs agent.run

Commit the run and its event, then start the workflow. The key is required: a retried click must not start a second run. A run of the draft is a builder's test and also needs agent.test.

Path parameters

  • agent_idstringRequired

Headers

  • Idempotency-KeystringRequired

    A unique value for this run, sent again unchanged when you retry. Required.

Request bodyRunCreate

  • inputobject

    Any JSON object.

  • targetstring
    One ofdraftstagingliveDefault"draft"

Response202

  • idstring
  • objectstring
    run
  • agent_idstring or null
  • agent_version_idstring or null
  • created_atstring or null
  • draft_revisioninteger or null
  • ended_atstring or null
  • finish_reasonstring or null
    One ofend_turnrefusallimiterrorcancelled
  • is_testboolean
  • model_requestedstring
  • profilestring
    One ofstandardprivacyhipaa
  • row_versioninteger
  • started_atstring or null
  • statestring
    One ofqueuedrunningwaiting_approvalwaiting_inputwaiting_eventwaiting_timerblocked_on_keyblocked_on_connectioncompletedfailedcancelledstopped_by_limitfailed_to_start
  • state_reasonstring or null
  • triggerstring
    One ofwidgetconsoleapiworkflowagentevala2amcpchat
  • updated_atstring or null
  • workspace_idstring
  • aliasstring or null
  • cost_micro_usdinteger
    Default0
  • 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
  • depthinteger
    Default0
  • model_effectivestring or null
  • parent_run_idstring or null
  • root_run_idstring or null
  • steps_usedinteger
    Default0

Status codes

  • 202Successful 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/agents/agt_01jctdbahw9btk5p831xs974yq/runs" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "message": "Summarise today'\''s open tickets."
    },
    "target": "live"
  }'
Response · 202
JSON
{
  "id": "run_01jcr77659p6hws1zjqkthay73",
  "object": "run",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "agent_version_id": "agv_01jc7jt62eapjyt621bszf6wrs",
  "alias": "live",
  "cost_micro_usd": 0,
  "created_at": "2026-11-10T09:30:00.000Z",
  "created_by": {
    "kind": "user",
    "id": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
    "name": "Ada Lovelace",
    "email": "ada@example.com"
  },
  "depth": 0,
  "draft_revision": 2,
  "ended_at": null,
  "finish_reason": null,
  "is_test": false,
  "model_effective": "claude-sonnet-5-5",
  "model_requested": "claude-sonnet-5-5",
  "parent_run_id": null,
  "profile": "standard",
  "root_run_id": "run_01jcr77659p6hws1zjqkthay73",
  "row_version": 4,
  "started_at": "2026-11-10T09:30:00.000Z",
  "state": "queued",
  "state_reason": null,
  "steps_used": 0,
  "trigger": "api",
  "updated_at": "2026-11-10T09:30:00.000Z",
  "workspace_id": "ws_01jccj30nr8ad7mx1yc5v9zx3h"
}
get/v1/agents/{agent_id}/used_by

Agent used by

Needs agent.view

The widgets and workflows whose slots are bound to the agent: they stop answering if it is deleted, so the console names them in the confirmation.

Path parameters

  • agent_idstringRequired

Response200

  • objectstring
    list
  • dataAgentUse[]
    5 fields
    • objectstring
      agent_use
    • aliasesstring[]
    • namestring
    • resource_idstring
    • resource_typestring
      One ofwidgetworkflow
  • 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/agents/agt_01jctdbahw9btk5p831xs974yq/used_by" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "object": "agent_use",
      "aliases": [
        "aliase"
      ],
      "name": "Support triage",
      "resource_id": "resource id",
      "resource_type": "widget"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
post/v1/agents/{agent_id}/validate

Validate agent

Needs agent.view

Path parameters

  • agent_idstringRequired

Request bodyValidateBody

  • definitionobject or null

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

Response200

  • objectstring
    validation
  • issuesValidationIssue[]
    5 fields
    • codestring
    • messagestring
    • pathstring
    • severitystring
      One oferrorwarning
    • hintstring or null
  • validboolean

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/agents/agt_01jctdbahw9btk5p831xs974yq/validate" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "definition": {}
  }'
Response · 200
JSON
{
  "object": "validation",
  "issues": [
    {
      "code": "code",
      "hint": "hint",
      "message": "Summarise today's open tickets.",
      "path": "path",
      "severity": "error"
    }
  ],
  "valid": true
}
get/v1/agents/{agent_id}/versions

List agent versions

Needs agent.view

Path parameters

  • agent_idstringRequired

Response200

  • objectstring
    list
  • dataAgentVersion[]
    11 fields
    • idstring
    • objectstring
      agent_version
    • agent_idstring
    • aliasesstring[]
    • content_hashstring
    • created_atstring
    • numberinteger
    • published_bystring
    • schema_versionstring
    • statusstring
      One ofpublishedarchived
    • workload_idstring
  • 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/agents/agt_01jctdbahw9btk5p831xs974yq/versions" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "object": "list",
  "data": [
    {
      "id": "agv_01jc7jt62eapjyt621bszf6wrs",
      "object": "agent_version",
      "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
      "aliases": [
        "aliase"
      ],
      "content_hash": "content hash",
      "created_at": "2026-11-10T09:30:00.000Z",
      "number": 3,
      "published_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
      "schema_version": "schema version",
      "status": "published",
      "workload_id": "workload id"
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total_count": 1
}
put/v1/agents/{agent_id}/aliases/{alias}

Move agent alias

Needs agent.publish

Path parameters

  • agent_idstringRequired
  • aliasstringRequired
    One ofstaginglive

Request bodyAliasPut

  • versionintegerRequired
    at least 1

Response200

  • objectstring
    alias
  • agent_idstring
  • aliasstring
    One ofstaginglive
  • previous_versioninteger or null
  • versioninteger

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/agents/agt_01jctdbahw9btk5p831xs974yq/aliases/live" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 3
  }'
Response · 200
JSON
{
  "object": "alias",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "alias": "live",
  "previous_version": 2,
  "version": 3
}
get/v1/agents/{agent_id}/versions/{number}

Get agent version

Needs agent.view

Path parameters

  • agent_idstringRequired
  • numberintegerRequired

Response200

  • idstring
  • objectstring
    agent_version
  • agent_idstring
  • aliasesstring[]
  • content_hashstring
  • created_atstring
  • definitionobject

    The whole definition document, as JSON. The request example shows a complete, minimal one; the draft endpoints return the same shape.

  • numberinteger
  • published_bystring
  • schema_versionstring
  • statusstring
    One ofpublishedarchived
  • workload_idstring

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/agents/agt_01jctdbahw9btk5p831xs974yq/versions/3" \
  -H "Authorization: Bearer $MDA_API_KEY"
Response · 200
JSON
{
  "id": "agv_01jc7jt62eapjyt621bszf6wrs",
  "object": "agent_version",
  "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
  "aliases": [
    "aliase"
  ],
  "content_hash": "content hash",
  "created_at": "2026-11-10T09:30:00.000Z",
  "definition": {},
  "number": 3,
  "published_by": "usr_01jcf1j9wjxfrnhqda3mq7ejxn",
  "schema_version": "schema version",
  "status": "published",
  "workload_id": "workload id"
}
put/v1/agents/{agent_id}/bindings/{alias}/{slot}

Put agent binding

Needs agent.edit

Choose what fills a slot. An authorization event: it also needs connection.use for a connection, MCP server or outside agent, and agent.run for another agent of the workspace (a sub-agent).

Path parameters

  • agent_idstringRequired
  • aliasstringRequired
    One ofdraftstaginglive
  • slotstringRequired

Request bodyBindingPut

  • a2a_agent_idstring or null
  • agent_aliasstring or null
    One ofdraftstaginglive
  • agent_idstring or null
  • connection_idstring or null
  • mcp_server_idstring or null

Response200

  • objectstring
    binding
  • aliasstring
    One ofdraftstaginglive
  • revisioninteger
  • slotstring
  • target_idstring
  • target_typestring
    One ofconnectionmcp_serverknowledge_baseagentworkflowcode_toola2a_agent
  • updated_atstring
  • target_aliasstring 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/agents/agt_01jctdbahw9btk5p831xs974yq/bindings/live/crm" \
  -H "Authorization: Bearer $MDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "a2a_agent_id": "oag_01jc1pxfe3k6x8qt1wve5305pn",
    "agent_alias": "draft",
    "agent_id": "agt_01jctdbahw9btk5p831xs974yq",
    "connection_id": "con_01jc9ekd74h6eg79ggg89yx7py",
    "mcp_server_id": "mcp_01jc832gmyrb97hnzx3h75bsfd"
  }'
Response · 200
JSON
{
  "object": "binding",
  "alias": "live",
  "revision": 2,
  "slot": "crm",
  "target_alias": "target alias",
  "target_id": "target id",
  "target_type": "connection",
  "updated_at": "2026-11-10T09:30:00.000Z"
}
delete/v1/agents/{agent_id}/bindings/{alias}/{slot}

Delete agent binding

Needs agent.edit

Path parameters

  • agent_idstringRequired
  • aliasstringRequired
    One ofdraftstaginglive
  • 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/agents/agt_01jctdbahw9btk5p831xs974yq/bindings/live/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.