Skip to main content

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) receive 403.

Path Parameters

ParameterTypeRequiredDescription
idstringYesSource 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 (stages reference 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" } }