curl --request PUT \
--url https://api.galileo.ai/v2/integrations/custom \
--header 'Content-Type: application/json' \
--header 'Galileo-API-Key: <api-key>' \
--data '
{
"endpoint": "<string>",
"multi_modal_config": {
"max_files": 2,
"max_file_size_bytes": 2
},
"authentication_type": "oauth2",
"models": [
"<string>"
],
"model_properties": [
{
"name": "<string>",
"alias": "<string>",
"based_on": "<string>",
"supported_parameters": [
"<string>"
]
}
],
"is_legacy_format": false,
"default_model": "<string>",
"authentication_scope": "<string>",
"oauth2_token_url": "<string>",
"api_key_header": "<string>",
"api_key_value": "<string>",
"custom_llm_config": {
"file_name": "<string>",
"class_name": "<string>",
"init_kwargs": {}
},
"custom_header_mapping": {},
"headers": {},
"token": "<string>"
}
'import requests
url = "https://api.galileo.ai/v2/integrations/custom"
payload = {
"endpoint": "<string>",
"multi_modal_config": {
"max_files": 2,
"max_file_size_bytes": 2
},
"authentication_type": "oauth2",
"models": ["<string>"],
"model_properties": [
{
"name": "<string>",
"alias": "<string>",
"based_on": "<string>",
"supported_parameters": ["<string>"]
}
],
"is_legacy_format": False,
"default_model": "<string>",
"authentication_scope": "<string>",
"oauth2_token_url": "<string>",
"api_key_header": "<string>",
"api_key_value": "<string>",
"custom_llm_config": {
"file_name": "<string>",
"class_name": "<string>",
"init_kwargs": {}
},
"custom_header_mapping": {},
"headers": {},
"token": "<string>"
}
headers = {
"Galileo-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Galileo-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
endpoint: '<string>',
multi_modal_config: {max_files: 2, max_file_size_bytes: 2},
authentication_type: 'oauth2',
models: ['<string>'],
model_properties: [
{
name: '<string>',
alias: '<string>',
based_on: '<string>',
supported_parameters: ['<string>']
}
],
is_legacy_format: false,
default_model: '<string>',
authentication_scope: '<string>',
oauth2_token_url: '<string>',
api_key_header: '<string>',
api_key_value: '<string>',
custom_llm_config: {file_name: '<string>', class_name: '<string>', init_kwargs: {}},
custom_header_mapping: {},
headers: {},
token: '<string>'
})
};
fetch('https://api.galileo.ai/v2/integrations/custom', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.galileo.ai/v2/integrations/custom",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'endpoint' => '<string>',
'multi_modal_config' => [
'max_files' => 2,
'max_file_size_bytes' => 2
],
'authentication_type' => 'oauth2',
'models' => [
'<string>'
],
'model_properties' => [
[
'name' => '<string>',
'alias' => '<string>',
'based_on' => '<string>',
'supported_parameters' => [
'<string>'
]
]
],
'is_legacy_format' => false,
'default_model' => '<string>',
'authentication_scope' => '<string>',
'oauth2_token_url' => '<string>',
'api_key_header' => '<string>',
'api_key_value' => '<string>',
'custom_llm_config' => [
'file_name' => '<string>',
'class_name' => '<string>',
'init_kwargs' => [
]
],
'custom_header_mapping' => [
],
'headers' => [
],
'token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Galileo-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.galileo.ai/v2/integrations/custom"
payload := strings.NewReader("{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Galileo-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.galileo.ai/v2/integrations/custom")
.header("Galileo-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galileo.ai/v2/integrations/custom")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Galileo-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"permissions": [],
"is_selected": false,
"is_disabled": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create or update custom integration
curl --request PUT \
--url https://api.galileo.ai/v2/integrations/custom \
--header 'Content-Type: application/json' \
--header 'Galileo-API-Key: <api-key>' \
--data '
{
"endpoint": "<string>",
"multi_modal_config": {
"max_files": 2,
"max_file_size_bytes": 2
},
"authentication_type": "oauth2",
"models": [
"<string>"
],
"model_properties": [
{
"name": "<string>",
"alias": "<string>",
"based_on": "<string>",
"supported_parameters": [
"<string>"
]
}
],
"is_legacy_format": false,
"default_model": "<string>",
"authentication_scope": "<string>",
"oauth2_token_url": "<string>",
"api_key_header": "<string>",
"api_key_value": "<string>",
"custom_llm_config": {
"file_name": "<string>",
"class_name": "<string>",
"init_kwargs": {}
},
"custom_header_mapping": {},
"headers": {},
"token": "<string>"
}
'import requests
url = "https://api.galileo.ai/v2/integrations/custom"
payload = {
"endpoint": "<string>",
"multi_modal_config": {
"max_files": 2,
"max_file_size_bytes": 2
},
"authentication_type": "oauth2",
"models": ["<string>"],
"model_properties": [
{
"name": "<string>",
"alias": "<string>",
"based_on": "<string>",
"supported_parameters": ["<string>"]
}
],
"is_legacy_format": False,
"default_model": "<string>",
"authentication_scope": "<string>",
"oauth2_token_url": "<string>",
"api_key_header": "<string>",
"api_key_value": "<string>",
"custom_llm_config": {
"file_name": "<string>",
"class_name": "<string>",
"init_kwargs": {}
},
"custom_header_mapping": {},
"headers": {},
"token": "<string>"
}
headers = {
"Galileo-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Galileo-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
endpoint: '<string>',
multi_modal_config: {max_files: 2, max_file_size_bytes: 2},
authentication_type: 'oauth2',
models: ['<string>'],
model_properties: [
{
name: '<string>',
alias: '<string>',
based_on: '<string>',
supported_parameters: ['<string>']
}
],
is_legacy_format: false,
default_model: '<string>',
authentication_scope: '<string>',
oauth2_token_url: '<string>',
api_key_header: '<string>',
api_key_value: '<string>',
custom_llm_config: {file_name: '<string>', class_name: '<string>', init_kwargs: {}},
custom_header_mapping: {},
headers: {},
token: '<string>'
})
};
fetch('https://api.galileo.ai/v2/integrations/custom', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.galileo.ai/v2/integrations/custom",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'endpoint' => '<string>',
'multi_modal_config' => [
'max_files' => 2,
'max_file_size_bytes' => 2
],
'authentication_type' => 'oauth2',
'models' => [
'<string>'
],
'model_properties' => [
[
'name' => '<string>',
'alias' => '<string>',
'based_on' => '<string>',
'supported_parameters' => [
'<string>'
]
]
],
'is_legacy_format' => false,
'default_model' => '<string>',
'authentication_scope' => '<string>',
'oauth2_token_url' => '<string>',
'api_key_header' => '<string>',
'api_key_value' => '<string>',
'custom_llm_config' => [
'file_name' => '<string>',
'class_name' => '<string>',
'init_kwargs' => [
]
],
'custom_header_mapping' => [
],
'headers' => [
],
'token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Galileo-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.galileo.ai/v2/integrations/custom"
payload := strings.NewReader("{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Galileo-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.galileo.ai/v2/integrations/custom")
.header("Galileo-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galileo.ai/v2/integrations/custom")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Galileo-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"endpoint\": \"<string>\",\n \"multi_modal_config\": {\n \"max_files\": 2,\n \"max_file_size_bytes\": 2\n },\n \"authentication_type\": \"oauth2\",\n \"models\": [\n \"<string>\"\n ],\n \"model_properties\": [\n {\n \"name\": \"<string>\",\n \"alias\": \"<string>\",\n \"based_on\": \"<string>\",\n \"supported_parameters\": [\n \"<string>\"\n ]\n }\n ],\n \"is_legacy_format\": false,\n \"default_model\": \"<string>\",\n \"authentication_scope\": \"<string>\",\n \"oauth2_token_url\": \"<string>\",\n \"api_key_header\": \"<string>\",\n \"api_key_value\": \"<string>\",\n \"custom_llm_config\": {\n \"file_name\": \"<string>\",\n \"class_name\": \"<string>\",\n \"init_kwargs\": {}\n },\n \"custom_header_mapping\": {},\n \"headers\": {},\n \"token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"permissions": [],
"is_selected": false,
"is_disabled": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Body
Schema for creating custom integrations.
Inherits api_key field validation from CustomConfig:
- api_key_header and api_key_value are required when authentication_type is api_key
Token field is only used for oauth2 authentication (contains OAuth2 client credentials). For api_key auth, the api_key_value field is used instead.
Endpoint URL for the custom integration.
Configuration for multi-modal (file upload) capabilities.
Show child attributes
Show child attributes
Authentication types for custom integrations.
Values:
- none: No authentication required
- oauth2: OAuth2 token-based authentication
- api_key: API key header-based authentication
api_key, none, oauth2 List of model names for the custom integration. Deprecated: use model_properties instead.
List of model properties with name and alias for the custom integration.
Show child attributes
Show child attributes
Internal: whether this config was created from the legacy 'models' field.
Default model to use. If not provided, defaults to the first model.
Optional scope for OAuth2 authentication.
OAuth2 token URL for custom OAuth2 authentication. If not provided, defaults to the endpoint.
HTTP header name to use for API key authentication (e.g., 'X-API-Key', 'Authorization').
API key value to send in the specified header for authentication.
Optional configuration for a custom LiteLLM handler class. When specified, the handler's acompletion() method is used instead of the default litellm.acompletion().
Show child attributes
Show child attributes
Custom header mapping from internal fields (job_id, user_id, project_id, run_id) to custom header names to be included in LLM requests.
Show child attributes
Show child attributes
Optional custom HTTP headers to include in requests to the integration endpoint. Stored encrypted at rest.
Show child attributes
Show child attributes
Response
Successful Response
anthropic, aws_bedrock, aws_sagemaker, azure, custom, databricks, mistral, nvidia, openai, vegas_gateway, vertex_ai, writer Show child attributes
Show child attributes