Skip to main content
POST
/
v2
/
integrations
Create an integration
curl --request POST \
  --url https://api.arize.com/v2/integrations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "llm",
  "name": "<string>",
  "config": {
    "provider": "openAI",
    "api_key": "<string>",
    "is_default_models_enabled": true,
    "is_function_calling_enabled": true
  },
  "scopings": [
    {
      "organization_id": "<string>",
      "space_id": "<string>"
    }
  ]
}
'
{
  "id": "TGxtSW50ZWdyYXRpb246MTI6YUJjRA==",
  "type": "llm",
  "name": "Production OpenAI",
  "scopings": [
    {
      "organization_id": null,
      "space_id": null
    }
  ],
  "created_at": "2026-02-13T21:27:19.055Z",
  "updated_at": "2026-02-13T21:27:19.279Z",
  "created_by_user_id": "VXNlcjoxOm5OYkM=",
  "config": {
    "provider": "openAI",
    "has_api_key": true,
    "is_default_models_enabled": true,
    "is_function_calling_enabled": true
  }
}

Authorizations

Authorization
string
header
required

Most Arize AI endpoints require authentication. For those endpoints that require authentication, include your API key in the request header using the format

Body

application/json

Create a new integration. The type field selects the config shape; for llm, config.provider selects the per-provider config.

Payload Requirements

  • type, name, and config are required.
  • name must be unique within the account for the given type.
  • For type: llm, config.provider is required. Each provider's config defines its own required fields — see the per-provider config schema.
  • config.is_default_models_enabled defaults to false when omitted.
  • config.is_function_calling_enabled defaults to true when omitted.
  • scopings defaults to account-wide visibility when omitted.

Valid example

{
"type": "llm",
"name": "Production OpenAI",
"config": {
"provider": "openAI",
"api_key": "sk-abc123..."
}
}

Invalid example (missing required config)

{
"type": "llm",
"name": "Bad Integration"
}

Invalid example (missing required config.provider for type: llm)

{
"type": "llm",
"name": "Bad Integration",
"config": {}
}

Invalid example (missing required config.api_key for openAI)

{
"type": "llm",
"name": "Bad OpenAI",
"config": { "provider": "openAI" }
}
type
enum<string>
required
Available options:
llm
name
string
required

Integration name. Unique per (account, type).

config
object
required

Create config for an OpenAI LLM integration. api_key is required and is write-only (never returned in responses).

scopings
object[]

Visibility scoping rules. Defaults to account-wide.

Response

An integration object.

A polymorphic integration resource. The type field selects the config shape; for llm, config.provider selects the per-provider config.

id
string
required

The integration ID (base64 global ID).

type
enum<string>
required

Discriminator identifying an LLM integration.

Available options:
llm
name
string
required

The integration name. Unique per (account, type).

scopings
object[]
required

Visibility scoping rules. Account-wide when empty.

created_at
string<date-time>
required

When the integration was created.

updated_at
string<date-time>
required

When the integration was last updated.

created_by_user_id
string
required

Global ID of the user who created the integration.

config
object
required

Per-provider LLM config, discriminated by provider.