from engini import Engini
client = Engini() # reads ENGINI_API_KEY
# authentication_id comes from the application's authentication methods
connection = client.connections.create(
"slack", "Sales", 2, {"token": "xoxb-your-bot-token"}
)import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
// authenticationId comes from the application's authentication methods
const connection = await client.connections.create(
"slack", "Sales", 2, { token: "xoxb-your-bot-token" },
);engini connections create slack --auth 2 --name Sales --field token=xoxb-your-bot-tokenconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
applicationSlug: 'example-app',
connectionName: 'My Example Connection',
authenticationId: 1,
fields: {apiKey: 'eng_example1234567890'}
})
};
fetch('https://api.engini.io/v1/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.engini.io/v1/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([
'applicationSlug' => 'example-app',
'connectionName' => 'My Example Connection',
'authenticationId' => 1,
'fields' => [
'apiKey' => 'eng_example1234567890'
]
]),
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.engini.io/v1/connections"
payload := strings.NewReader("{\n \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\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.engini.io/v1/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/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 \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\n}"
response = http.request(request)
puts response.read_body{
"connectionId": 123,
"connectionName": "My Example Connection",
"description": null,
"applicationSlug": "example-app",
"applicationName": "Example App",
"applicationLogo": "https://example.com/logo.png",
"isPublic": false,
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdDate": "2026-01-01T00:00:00Z"
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}Create connection
Creates a new connection for the caller’s account using the given field values (e.g. API key, credentials) for the target application. authenticationId selects which of the application’s authentication methods to use; omit it to use the application’s default. To connect via OAuth instead of directly supplying credentials, use POST /connections/get-sign-in-url followed by GET /connections/access-token/.
from engini import Engini
client = Engini() # reads ENGINI_API_KEY
# authentication_id comes from the application's authentication methods
connection = client.connections.create(
"slack", "Sales", 2, {"token": "xoxb-your-bot-token"}
)import { Engini } from "@engini/sdk";
const client = new Engini(); // reads ENGINI_API_KEY
// authenticationId comes from the application's authentication methods
const connection = await client.connections.create(
"slack", "Sales", 2, { token: "xoxb-your-bot-token" },
);engini connections create slack --auth 2 --name Sales --field token=xoxb-your-bot-tokenconst options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
applicationSlug: 'example-app',
connectionName: 'My Example Connection',
authenticationId: 1,
fields: {apiKey: 'eng_example1234567890'}
})
};
fetch('https://api.engini.io/v1/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.engini.io/v1/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([
'applicationSlug' => 'example-app',
'connectionName' => 'My Example Connection',
'authenticationId' => 1,
'fields' => [
'apiKey' => 'eng_example1234567890'
]
]),
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.engini.io/v1/connections"
payload := strings.NewReader("{\n \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\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.engini.io/v1/connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.engini.io/v1/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 \"applicationSlug\": \"example-app\",\n \"connectionName\": \"My Example Connection\",\n \"authenticationId\": 1,\n \"fields\": {\n \"apiKey\": \"eng_example1234567890\"\n }\n}"
response = http.request(request)
puts response.read_body{
"connectionId": 123,
"connectionName": "My Example Connection",
"description": null,
"applicationSlug": "example-app",
"applicationName": "Example App",
"applicationLogo": "https://example.com/logo.png",
"isPublic": false,
"createdBy": "00000000-0000-0000-0000-000000000000",
"createdDate": "2026-01-01T00:00:00Z"
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}{
"errorCode": "<string>",
"message": "<string>",
"requestId": "<string>",
"timestamp": "<string>",
"details": [
{
"field": "<string>",
"issue": "<string>"
}
]
}Authorizations
Enter your JWT token
Body
The connection creation payload, including the connection name and application slug.
Request body for creating a connection.
Slug of the application to connect to.
Display name for the new connection.
Connection field values, keyed by field name.
Show child attributes
Show child attributes
Optional description of the connection.
Identifier of the authentication method to use; omit to use the application's default.
Optional additional connection metadata, keyed by name.
Show child attributes
Show child attributes
Opaque state from the sign-in URL. When set on an OAuth method, credentials are taken from the stored sign-in and any client-supplied values for those keys are ignored.
Response
The newly created connection.
Public-shape detail for /v1/Connections/{id} and create/update responses.
Identifier of the connection.
Display name of the connection.
Slug of the connection's application.
Which kind of connection this is: Regular, Key or MCPClient. Mirrors the parent application's AppConnectionType. The engini.io Connections page's "Keys" tab is exactly the Key subset. On-premise agents are served by /v1/on-prem-agents.
Whether the connection is shared/public.
Identifier of the user who created the connection.
When the connection was created.
Description of the connection.
Display name of the connection's application.
URL of the application's logo image.
Identifier of the user who last updated the connection; null if never updated.
When the connection was last updated; null if never updated.
Identifier of the authentication method used by the connection.
Name of the authentication type used by the connection.
Connection field values, keyed by field name (sensitive values may be masked).
Show child attributes
Show child attributes
Whether the connection uses selected database objects.
Last connection error message, if any.
Whether the connection is currently healthy/reachable.
Additional connection metadata, keyed by name.
Show child attributes
Show child attributes