Create Connection
curl --request POST \
--url https://api.example.com/v1/openapi-connections/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"base_url": "<string>",
"name": "<string>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_headers": [
{
"name": "<string>",
"value": ""
}
],
"description": "<string>",
"spec_content": {},
"spec_url": "<string>"
}
'import requests
url = "https://api.example.com/v1/openapi-connections/"
payload = {
"base_url": "<string>",
"name": "<string>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_headers": [
{
"name": "<string>",
"value": ""
}
],
"description": "<string>",
"spec_content": {},
"spec_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
base_url: '<string>',
name: '<string>',
auth_config_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
custom_headers: [{name: '<string>', value: ''}],
description: '<string>',
spec_content: {},
spec_url: '<string>'
})
};
fetch('https://api.example.com/v1/openapi-connections/', 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.example.com/v1/openapi-connections/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_url' => '<string>',
'name' => '<string>',
'auth_config_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'custom_headers' => [
[
'name' => '<string>',
'value' => ''
]
],
'description' => '<string>',
'spec_content' => [
],
'spec_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.example.com/v1/openapi-connections/"
payload := strings.NewReader("{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.example.com/v1/openapi-connections/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/openapi-connections/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"base_url": "<string>",
"created_at": "<unknown>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "<string>",
"updated_at": "<unknown>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"available_tools": [],
"custom_headers": [
{
"name": "<string>",
"secret": true,
"value": "<string>"
}
],
"description": "<string>",
"spec_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Payload for creating an OpenAPI connection.
The connection ties a base URL (where requests are sent) to an
OpenAPI 3.x specification (which is parsed eagerly into a tool list).
Provide either spec_url or spec_content — not both required.
Base URL for API requests, e.g. 'https://api.example.com'.
500Display name for the connection (unique per workspace).
1 - 255Optional MCPAuthConfig UUID for OAuth2 token rotation. When set, tokens are minted/refreshed on the connection's behalf.
Custom HTTP headers attached to every request. Non-safe headers (e.g. Authorization) are stored encrypted in the secret manager.
Show child attributes
Show child attributes
Optional human-readable summary of what this API exposes.
Inline OpenAPI 3.x spec as a JSON object. Use instead of spec_url when the spec host is unreachable from the API.
URL to an OpenAPI 3.x JSON or YAML spec. The spec is fetched and parsed eagerly at create time so the connection is ready for use.
Response
Successful Response
Show child attributes
Show child attributes
curl --request POST \
--url https://api.example.com/v1/openapi-connections/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"base_url": "<string>",
"name": "<string>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_headers": [
{
"name": "<string>",
"value": ""
}
],
"description": "<string>",
"spec_content": {},
"spec_url": "<string>"
}
'import requests
url = "https://api.example.com/v1/openapi-connections/"
payload = {
"base_url": "<string>",
"name": "<string>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"custom_headers": [
{
"name": "<string>",
"value": ""
}
],
"description": "<string>",
"spec_content": {},
"spec_url": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
base_url: '<string>',
name: '<string>',
auth_config_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
custom_headers: [{name: '<string>', value: ''}],
description: '<string>',
spec_content: {},
spec_url: '<string>'
})
};
fetch('https://api.example.com/v1/openapi-connections/', 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.example.com/v1/openapi-connections/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'base_url' => '<string>',
'name' => '<string>',
'auth_config_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'custom_headers' => [
[
'name' => '<string>',
'value' => ''
]
],
'description' => '<string>',
'spec_content' => [
],
'spec_url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.example.com/v1/openapi-connections/"
payload := strings.NewReader("{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.example.com/v1/openapi-connections/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/openapi-connections/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"base_url\": \"<string>\",\n \"name\": \"<string>\",\n \"auth_config_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"value\": \"\"\n }\n ],\n \"description\": \"<string>\",\n \"spec_content\": {},\n \"spec_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"base_url": "<string>",
"created_at": "<unknown>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "<string>",
"updated_at": "<unknown>",
"auth_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"available_tools": [],
"custom_headers": [
{
"name": "<string>",
"secret": true,
"value": "<string>"
}
],
"description": "<string>",
"spec_url": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}