Skip to main content
POST
/
agent
/
{agent_id}
/
duplicate
Duplicate Agent
curl --request POST \
  --url https://api.example.com/agent/{agent_id}/duplicate
Creates a new agent by copying the source template’s metadata, nodes, and connections. Response shape matches Get Agent: agent, agent_nodes, and connections.

Request

curl -X POST "https://api.mosaic.so/agent/123e4567-e89b-12d3-a456-789012345678/duplicate" \
  -H "Authorization: Bearer mk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Copy of My Agent",
    "description": "Optional override description",
    "visibility": "private"
  }'
All body fields are optional.

Body Parameters

FieldTypeRequiredDescription
namestringNoName for the duplicated agent (1-120 chars). Defaults to Copy of <source name>.
descriptionstringNoDescription override (<=5000 chars). Defaults to source description.
visibilitystringNopublic or private. Defaults to source visibility.

Response

{
  "agent": {
    "id": "9c2d2aef-58c6-4af2-845f-d7f2d4d0a9c5",
    "name": "Copy of My Agent",
    "description": "Optional override description",
    "visibility": "private",
    "created_at": "2026-03-20T20:17:00Z",
    "updated_at": "2026-03-20T20:17:00Z"
  },
  "agent_nodes": [
    {
      "agent_node_id": "bf750792-a2e9-48c2-9d39-24f892772f6a",
      "node_type": {
        "node_type_id": "3b281fb9-9eb2-40f6-b05b-4b6f909a3da9",
        "node_type_name": "AI Music",
        "docs_url": "https://docs.mosaic.so/tiles/ai-music",
        "params_docs_url": "https://docs.mosaic.so/tiles/ai-music#api-info"
      },
      "params_used": {
        "use_intelligent_analysis": true
      }
    }
  ],
  "connections": [
    {
      "source_agent_node_id": "bf750792-a2e9-48c2-9d39-24f892772f6a",
      "target_agent_node_id": "a1c2d3e4-5678-90ab-cdef-1234567890ab"
    }
  ]
}