Skip to content

Save All Integrations

Endpoint: POST /api/integrations

Creates or updates one or more integrations in bulk. Each integration in the array is upserted along with its associated models or APIs. If an integration already exists, its type cannot be changed.

Password-type configuration values (such as api_key and password) are automatically stored as secrets.

Request body

Format the request body as an array of integration objects:

Parameter Description Type Required/ Optional
name The unique name for the integration provider. Cannot be changed after creation. string Required.
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 Required.
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.
tags A list of key-value tag objects for organizing or filtering integrations. Each tag contains a key (string) and value (string). array Optional.
apis A list of models or APIs to associate with this integration provider. See Integration model object. array Optional.

Integration model object

While adding integrations for AI/LLMs, Vector databases or Relational databases, you must add the associated models, indexes, or tables, respectively. They must be formatted within the apis field as an array of the following object:

Parameter Description Type Required/ Optional
apis.integrationName Name of the parent integration provider to which the model must be attached to. Must match the enclosing integration's name. string Required.
apis.api Name of the specific model or API under the provider (e.g., gpt-4o, text-embedding-3-small). string Required.
apis.description A human-readable description of this model or API. string Required.
apis.enabled Whether this model/API is active and available for use. boolean Optional.

For example, if you are adding an OpenAI integration with gpt-4o as the model; format the request body as follows:

{
      "name": "<YOUR-INTEGRATION-NAME>",
      "type": "openai",
      "category": "AI_MODEL",
      "description": "<YOUR-DESCRIPTION>",
      "enabled": true,
      "configuration": {
        "api_key": "<YOUR-API-KEY>"
      },
      "apis": [
        {
          "integrationName": "<YOUR-INTEGRATION-NAME>",
          "api": "gpt-4o", // model name
          "description": "GPT-4o model", // model description
          "enabled": true
        }
      ]
    }

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"
      },
      "apis": [
        {
          "integrationName": "<YOUR-INTEGRATION-NAME>",
          "api": "claude-sonnet-4-6", // model name
          "description": "claude-sonnet-4-6 model", // model description
          "enabled": true
        }
      ]
    }

Response

Status Description
200 OK Indicates that the integration is saved successfully.
400 Bad Request Returns for an invalid input. For example, attempting to change the type of an existing integration.
401 Unauthorized Indicates that the request is not authenticated.
403 Forbidden Indicates that the authenticated user does not have permission to update one or more integrations.

Examples

Save all integrations

Request

curl -X 'POST' \
  'https://<YOUR-SERVER-URL>/api/integrations/' \
  -H 'accept: */*' \
  -H 'X-Authorization: <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "name": "open-ai-test",
      "type": "openai",
      "category": "AI_MODEL",
      "description": "OpenAI integration for LLM tasks",
      "enabled": true,
      "configuration": {
        "api_key": "sk-..."
      },
      "apis": [
        {
          "integrationName": "open-ai-test",
          "api": "gpt-4o",
          "description": "GPT-4o model",
          "enabled": true
        }
      ]
    },
    {
      "name": "sendgrid-test",
      "type": "sendgrid",
      "category": "EMAIL",
      "description": "SendGrid integration for email tasks",
      "enabled": true,
      "configuration": {
        "api_key": "SG...."
      },
"apis": []
    }
  ]'

Response

Returns 200 OK, indicating that the integrations have been saved successfully.