Skip to content

Create or Update Integration Provider

Endpoint: POST /api/integrations/provider/{name}

Creates a new integration provider or updates an existing one in the Conductor cluster.

Path Parameters

Parameter Description Type Required/ Optional
name A unique name for the integration provider. string Required.

Request Body

Format the request body as a JSON object with the following parameters:

Parameter Description Type Required/ Optional
type The integration type. Cannot be changed after creation. Supported values:
  • ollama
  • azure_openai
  • openai
  • perplexity
  • grok
  • cohere
  • mistral
  • anthropic
  • vertex_ai
  • vertex_ai_gemini
  • huggingface
  • aws_bedrock_anthropic
  • aws_bedrock_cohere
  • aws_bedrock_titan
  • pineconedb
  • weaviatedb
  • pgvectordb
  • mongovectordb
  • amqp
  • kafka
  • nats
  • aws_sqs
  • azure_service_bus
  • gcp_pubsub
  • ibm_mq
  • aws
  • gcp
  • relational_db
  • sendgrid
  • git
string Optional.
category The category of the integration. Supported values: string Optional.
description A description for the integration. string Optional.
enabled Whether the integration is active and available for use. boolean Optional.
configuration A key-value map of provider-specific configuration, such as API keys and endpoints. Keys and required values vary by integration type. See Configuration keys by integration type. object Optional.

Configuration keys by integration type

The configuration object is a key-value map of provider-specific configuration, such as API keys and endpoints. Keys and required values vary by integration type.

Parameter Required keys Optional keys
ollama endpoint header, api_key
azure_openai api_key, endpoint -
openai api_key endpoint,organizationId
perplexity api_key
grok api_key -
cohere api_key, endpoint
mistral api_key, endpoint
anthropic api_key, endpoint completionsPath, version, betaVersion
vertex_ai projectName, environment, publisher, file
vertex_ai_gemini projectName, environment, file
huggingface api_key, namespace
aws_bedrock_anthropic connectionType, region
Based on the connectionType value, the following additional keys may be required:
  • ACCESS_KEY: Requires user (access key) and api_key (access secret).
  • EXTERNAL_ROLE: Requires roleArn and externalId.
  • CONDUCTOR_ROLE: No additional keys required.
awsAccountId
aws_bedrock_cohere connectionType, region
Based on the connectionType value, the following additional keys may be required:
  • ACCESS_KEY: Requires user (access key) and api_key (access secret).
  • EXTERNAL_ROLE: Requires roleArn and externalId.
  • CONDUCTOR_ROLE: No additional keys required.
awsAccountId
aws_bedrock_titan connectionType, region
Based on the connectionType value, the following additional keys may be required:
  • ACCESS_KEY: Requires user (access key) and api_key (access secret).
  • EXTERNAL_ROLE: Requires roleArn and externalId.
  • CONDUCTOR_ROLE: No additional keys required.
awsAccountId
pineconedb api_key, projectName, environment
weaviatedb api_key, endpoint
pgvectordb user, password, datasourceURL, dimensions, distance_metric, indexing_method inverted_list_count
mongovectordb endpoint, namespace, dimensions, distance_metric inverted_list_count
amqp protocol, user, password, endpoint, port, namespace
kafka endpoint, connectionType, protocol groupId
nats endpoint, connectionType, authenticationType, protocol, tls
aws_sqs connectionType, region
Based on the connectionType value, the following additional keys may be required:
  • ACCESS_KEY: Requires user (access key) and api_key (access secret).
  • EXTERNAL_ROLE: Requires roleArn and externalId.
  • CONDUCTOR_ROLE: No additional keys required.
awsAccountId
azure_service_bus connectionType endpoint, namespace
gcp_pubsub projectName, location, file
ibm_mq endpoint, port, queueManager, channel, protocol, pubSubMethod, authenticationType, tls
aws connectionType, region
Based on the connectionType value, the following additional keys may be required:
  • ACCESS_KEY: Requires user (access key) and api_key (access secret).
  • EXTERNAL_ROLE: Requires roleArn and externalId.
  • CONDUCTOR_ROLE: No additional keys required.
awsAccountId
gcp projectName, environment, file
relational_db jdbcDriver, user, password, datasourceURL
sendgrid api_key
git user, api_key

For example, if you are adding an Anthropic Claude integration, the configuration looks like this:

{
      "name": "<YOUR-INTEGRATION-NAME>",
      "type": "anthropic",
      "category": "AI_MODEL",
      "description": "<YOUR-DESCRIPTION>",
      "enabled": true,
      "configuration": {
        "api_key": "<YOUR-API-KEY>",
        "endpoint": "https://api.anthropic.com/v1"
      }
    }

Usage notes

  • Create: If no provider exists with the name, a new one is created and the caller is automatically granted full access.
  • Update: If a provider with the name already exists, it is updated.
  • Type immutability: The type field cannot be changed after the provider is created. Attempting to change it returns a 400 error.
  • Pinecone: For type: pineconedb, the projectName is auto-resolved from the Pinecone control plane. The api_key and environment fields are required in configuration.
  • OAuth2: If the provider has OAuth2 token fields and oAuth2AuthCode is present in configuration, the authorization code is exchanged for tokens automatically.
  • HuggingFace: Any model entries discovered in the configuration are automatically registered as integration models.
  • Secrets: Configuration keys of type PASSWORD are saved to the configured secrets backend (e.g., AWS Secrets Manager, Azure Key Vault) rather than stored in plain text.

Response

Status Description
200 OK Returns the created or updated integration provider object, including fields such as name, type, category, description, enabled, configuration, tags, modelsCount, createTime, updateTime, createdBy, and updatedBy.
400 Bad Request Returns for an invalid input. For example, attempting to change the type of an existing integration.
403 Forbidden Indicates that the authenticated user does not have permission to update one or more integrations.
404 The type is not a recognized integration on this server.

Examples

Create a new integration provider

The following request creates a new OpenAI integration provider.

Request

curl -X 'POST' \
  'https://<YOUR-SERVER-URL>/api/integrations/provider/openAI-marketing' \
  -H 'accept: */*' \
  -H 'X-Authorization: <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "openai",
  "category": "AI_MODEL",
  "description": "OpenAI account for the marketing team",
  "configuration": {
    "api_key": "sk-..."
  },
  "enabled": true
}'

Response

Returns 200 OK with the created integration provider object.

{
  "createTime": 1780923107007,
  "updateTime": 1780923120214,
  "createdBy": "john.doe@acme.com",
  "updatedBy": "john.doe@acme.com",
  "name": "openAI-eng",
  "type": "openai",
  "description": "OpenAI account for the marketing team",
  "category": "AI_MODEL",
  "configuration": {
    "api_key": "xxxxxxxxxx"
  },
  "enabled": true,
  "modelsCount": 0
}
Update an existing integration provider

The following request updates an existing OpenAI integration provider to disable it.

Request

curl -X 'POST' \
  'https://<YOUR-SERVER-URL>/api/integrations/provider/openAI-marketing' \
  -H 'accept: */*' \
  -H 'X-Authorization: <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
  "type": "openai",
  "category": "AI_MODEL",
  "description": "OpenAI account for the marketing team",
  "configuration": {
    "api_key": "sk-..."
  },
  "enabled": false
}'

Response

Returns 200 OK with the updated integration provider object.

{
  "createTime": 1780923107007,
  "updateTime": 1780923201927,
  "createdBy": "john.doe@acme.com",
  "updatedBy": "john.doe@acme.com",
  "name": "openAI-eng",
  "type": "openai",
  "description": "Updated description",
  "category": "AI_MODEL",
  "configuration": {
    "api_key": "xxxxxxxxx"
  },
  "enabled": false,
  "modelsCount": 0
}