Skip to main 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

ParameterDescriptionTypeRequired/ Optional
nameA unique name for the integration provider.stringRequired.

Request Body

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

ParameterDescriptionTypeRequired/ Optional
typeThe 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
stringOptional.
categoryThe category of the integration. Supported values:stringOptional.
descriptionA description for the integration.stringOptional.
enabledWhether the integration is active and available for use.booleanOptional.
configurationA 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.objectOptional.

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.

ParameterRequired keysOptional keys
ollamaendpointheader, api_key
azure_openaiapi_key, endpoint-
openaiapi_keyendpoint,organizationId
perplexityapi_key
grokapi_key-
cohereapi_key, endpoint
mistralapi_key, endpoint
anthropicapi_key, endpointcompletionsPath, version, betaVersion
vertex_aiprojectName, environment, publisher, file
vertex_ai_geminiprojectName, environment, file
huggingfaceapi_key, namespace
aws_bedrock_anthropicconnectionType, 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_cohereconnectionType, 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_titanconnectionType, 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
pineconedbapi_key, projectName, environment
weaviatedbapi_key, endpoint
pgvectordbuser, password, datasourceURL, dimensions, distance_metric, indexing_methodinverted_list_count
mongovectordbendpoint, namespace, dimensions, distance_metricinverted_list_count
amqpprotocol, user, password, endpoint, port, namespace
kafkaendpoint, connectionType, protocolgroupId
natsendpoint, connectionType, authenticationType, protocol, tls
aws_sqsconnectionType, 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_busconnectionTypeendpoint, namespace
gcp_pubsubprojectName, location, file
ibm_mqendpoint, port, queueManager, channel, protocol, pubSubMethod, authenticationType, tls
awsconnectionType, 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
gcpprojectName, environment, file
relational_dbjdbcDriver, user, password, datasourceURL
sendgridapi_key
gituser, 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

StatusDescription
200 OKIndicates that the integration is created/updated successfully.
400 Bad RequestReturns for an invalid input. For example, attempting to change the type of an existing integration.
403 ForbiddenIndicates that the authenticated user does not have permission to update one or more integrations.
404The 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, indicating that the integration is created successfully.

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, indicating that the integration is updated successfully.