Productsup
CDE APIApi referenceConnectors

Import an entire connector from a JSON connector output. Used to duplicate an existing connector.

Using the output of GET /connectors/{publicId}, paste it into the new endpoint, and it will create a new connector with * VCS * Application config * Individual config * Authentications * Secrets After the new connector is created, it's name will have the - Copy suffix. VCS will need to be updated with the proper authentication

Sign in to run requests against the CDE API.
POST
/connectors/copy

Authorization

oAuth2AuthCode
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://cde.staging.productsup.com/connectors/copy" \  -H "Content-Type: application/json" \  -d '{    "name": "Test Import",    "type": "datasource",    "description": "this is a imported connector",    "flow": "default",    "versions": [      {        "config": {          "execution": {            "execution-mode": "as-env-variables"          },          "authentication-registrations": [            20,            30          ],          "authentication-registrations-additional-fields": [            "option-1",            "option-2",            "option-3"          ],          "secret-registrations": [            {              "vault_secret": "amazon/seller"            },            {              "vault_secret": "google/io/shopping"            }          ],          "application": {            "command": "php",            "arguments": "app.php import",            "health-check": "--help"          },          "vcs": {            "authorization": "basic",            "url": "https://github.com/some-repo.git",            "branch": "main",            "username": "username",            "token": "token"          },          "individuals": [            {              "command-option": "host",              "field-type": "input",              "field-name": "Host",              "field-required": false,              "field-placeholder": "Host url",              "field-description": "A url to host",              "order": 1            },            {              "command-option": "port-number",              "field-type": "input",              "field-name": "Port",              "field-required": false,              "field-placeholder": "Port number",              "field-description": "Port number",              "order": 2            },            {              "command-option": "db-name",              "field-type": "input",              "field-name": "Db-name",              "field-required": false,              "field-placeholder": "Database name",              "field-description": "Database name",              "field-default-value": "MYSQL",              "field-config": "some config",              "order": 3            }          ]        }      }    ]  }'
{
  "message": "Connector created.",
  "resource": "connector",
  "data": {
    "id": "00d8c347-0dec-480f-8c99-7f7dfcfb06bf",
    "type": "datasource",
    "name": "Test Import - Copy",
    "description": "this is a imported connector",
    "readme": null,
    "flow": "default",
    "main-version-number": null,
    "owner": "019e16f3-fb75-7948-ac07-7d74f60d8cc2",
    "integrator": "019e16f3-fb75-7948-ac07-7d74f60d8cc2",
    "versions": [
      {
        "name": "Test Import - Copy",
        "description": "this is a imported connector",
        "readme": null,
        "version": "1.0.0",
        "logo": null,
        "created-at": "2026-05-11T14:12:28+02:00",
        "updated-at": "2026-05-11T14:12:29+02:00",
        "deleted-at": null,
        "state": "updated",
        "config": {
          "update-progress": [
            "vcs-config",
            "application-config"
          ],
          "secret-registrations": [
            {
              "ini_header": "amazon::seller",
              "vault_secret": "amazon/seller",
              "fields": [
                "ini_header",
                "seller",
                "marketplace"
              ]
            },
            {
              "ini_header": "google-io::shopping",
              "vault_secret": "google/io/shopping",
              "fields": [
                "id",
                "ini_header",
                "secret"
              ]
            }
          ],
          "authentication-registrations": [
            20,
            30
          ],
          "authentication-registrations-additional-fields": [
            "pup-auth-option-1",
            "pup-auth-option-2",
            "pup-auth-option-3"
          ],
          "application": {
            "command": "php",
            "arguments": "app.php import",
            "health-check": "--help"
          },
          "vcs": {
            "authorization": "public",
            "url": "https://github.com/some-repo.git",
            "branch": "main",
            "username": null,
            "deploy-key-public": null,
            "latest-commit": null
          },
          "docker": {
            "image-name": null,
            "image-tag": null,
            "registry-url": null
          },
          "individuals": [
            {
              "command-option": "host",
              "field-type": "input",
              "field-name": "Host",
              "field-required": false,
              "field-placeholder": "Host url",
              "field-description": "A url to host",
              "field-default-value": null,
              "field-config": null,
              "order": 1,
              "created-at": "2026-05-11T14:12:28+02:00",
              "updated-at": "2026-05-11T14:12:28+02:00"
            },
            {
              "command-option": "port-number",
              "field-type": "input",
              "field-name": "Port",
              "field-required": false,
              "field-placeholder": "Port number",
              "field-description": "Port number",
              "field-default-value": null,
              "field-config": null,
              "order": 2,
              "created-at": "2026-05-11T14:12:28+02:00",
              "updated-at": "2026-05-11T14:12:28+02:00"
            },
            {
              "command-option": "db-name",
              "field-type": "input",
              "field-name": "Db-name",
              "field-required": false,
              "field-placeholder": "Database name",
              "field-description": "Database name",
              "field-default-value": "MYSQL",
              "field-config": "some config",
              "order": 3,
              "created-at": "2026-05-11T14:12:28+02:00",
              "updated-at": "2026-05-11T14:12:28+02:00"
            },
            {
              "command-option": "authentication_select",
              "field-type": "authentication_select",
              "field-name": "",
              "field-required": false,
              "field-placeholder": null,
              "field-description": null,
              "field-default-value": null,
              "field-config": null,
              "order": 4,
              "created-at": "2026-05-11T14:12:28+02:00",
              "updated-at": "2026-05-11T14:12:28+02:00"
            }
          ],
          "migration": null,
          "execution": {
            "execution-mode": "as-env-variables",
            "container-api-image": "test.domain.docker/test/container-api-image:1.0.0",
            "docker-host": "unix:///var/run/docker.sock",
            "container-api": {
              "image": null,
              "version-constraint": "^0.25"
            }
          },
          "export": null,
          "data-service": null,
          "datasource": {
            "categories": [
              "miscellaneous"
            ]
          },
          "buckets": [],
          "feature-flags": [],
          "container-api-config": null
        },
        "platform_dev_reference": {
          "account": null,
          "project": null,
          "executable": null,
          "platform-connector": null,
          "site": null,
          "site-processing-cluster": null,
          "assigned-to-site": null,
          "assigned-to-channel": null,
          "assigned-to-channel-site": null,
          "assigned-to-channel-site-destination": null,
          "runtime": {
            "environment": "cre",
            "version": null
          }
        },
        "platform_prod_reference": {
          "executable": null,
          "platform-connector": null,
          "target-accounts": [],
          "target-projects": [],
          "target-sites": [],
          "enabled-for-accounts": [],
          "enabled-for-projects": [],
          "enabled-for-sites": [],
          "assigned-to-sites": [],
          "released": false,
          "version": null,
          "runtime": {
            "environment": "cre",
            "version": null
          }
        },
        "prod_config": null,
        "dev_config": null
      }
    ],
    "main": null
  }
}
{
  "message": "Bad request.",
  "errors": {
    "secretRegistrations[0]": "Secret doesn't exist in the store."
  }
}
{
  "message": "You have to be authorized to access this resource."
}
{
  "message": "Access denied for user."
}

How is this guide?