Duplicate Connector
Clone a connector into a brand-new connector with its own UUID. The clone is a fresh development copy — it starts at version 1.0.0 with status testing.
POST /api/connectors/{id}/duplicate
Authorization
- Analyst (or admin): Required. The caller must also have an analyst profile. Unauthenticated requests receive
401; authenticated users without the analyst/admin role (or without an analyst profile) receive403.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Source connector ID to clone |
Request Body
None. The endpoint takes no request body.
What Gets Copied
The clone is created in a single transaction and copies the source verbatim:
- All endpoints — including their endpoint IDs, which are preserved so every internal reference (
dependencies, embedded pagination configs, dependency mappings, execution order, variable source IDs) stays valid with no remapping. - Execution phases (
stagesreference endpoint IDs, which are unchanged). - Test data (dependency mappings, pagination configs, endpoint results).
- Auth config, rate limits, default data extraction, runtime parameters, static variable values, documentation URL, download-queue config, and priority.
note
Credentials and Doppler test secrets are intentionally not copied. A clone is a fresh development copy and re-credentialing is deliberate.
The clone's name is derived from the source: "{Platform Name} (clone, {date})", e.g. "Slack (clone, 18 Jun 2026)".
Response
201 Created
{
"id": "conn_clone001"
}
The id is the new connector's UUID. Clients should navigate to it after duplicating.
Example Request
curl -X POST "https://api.traces.io/api/connectors/conn_slack001/duplicate" \
-H "Authorization: Bearer <token>"
Error Responses
401 Unauthorized
{ "error": { "code": "UNAUTHORIZED", "message": "Authentication required" } }
403 Forbidden
{ "error": { "code": "FORBIDDEN", "message": "Analyst role required" } }
404 Not Found
{ "error": { "code": "NOT_FOUND", "message": "Connector not found" } }
500 Internal Server Error
{ "error": { "code": "INTERNAL_ERROR", "message": "Failed to duplicate connector" } }