curl --request GET \
--url https://api.devic.ai/v1/tenant-integrations/{app}/auth \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devic.ai/v1/tenant-integrations/{app}/auth"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devic.ai/v1/tenant-integrations/{app}/auth', 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.devic.ai/v1/tenant-integrations/{app}/auth",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devic.ai/v1/tenant-integrations/{app}/auth"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devic.ai/v1/tenant-integrations/{app}/auth")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devic.ai/v1/tenant-integrations/{app}/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"schemes": [
{
"mode": "API_KEY",
"composioManaged": true,
"redirect": true,
"appFields": [
{
"name": "generic_api_key",
"label": "API key",
"type": "string",
"required": true,
"secret": true,
"description": "<string>",
"default": "<string>"
}
],
"accountFields": [
{
"name": "generic_api_key",
"label": "API key",
"type": "string",
"required": true,
"secret": true,
"description": "<string>",
"default": "<string>"
}
],
"guideUrl": "<string>"
}
]
}What connecting this app asks of me
The schemes the app supports and the fields to send as accountFields. Apps that authenticate with an API key are connected without ever leaving the page; only redirect schemes open a popup.
curl --request GET \
--url https://api.devic.ai/v1/tenant-integrations/{app}/auth \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devic.ai/v1/tenant-integrations/{app}/auth"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devic.ai/v1/tenant-integrations/{app}/auth', 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.devic.ai/v1/tenant-integrations/{app}/auth",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devic.ai/v1/tenant-integrations/{app}/auth"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devic.ai/v1/tenant-integrations/{app}/auth")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devic.ai/v1/tenant-integrations/{app}/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"schemes": [
{
"mode": "API_KEY",
"composioManaged": true,
"redirect": true,
"appFields": [
{
"name": "generic_api_key",
"label": "API key",
"type": "string",
"required": true,
"secret": true,
"description": "<string>",
"default": "<string>"
}
],
"accountFields": [
{
"name": "generic_api_key",
"label": "API key",
"type": "string",
"required": true,
"secret": true,
"description": "<string>",
"default": "<string>"
}
],
"guideUrl": "<string>"
}
]
}Authorizations
An API key from your Devic console, sent as Authorization: Bearer <key>. An embedded front end sends a tenant-session token instead, so no API key reaches the browser, and an OAuth integration sends its access token. Missing, invalid or expired credentials get a 401. See Authentication.
Path Parameters
App slug
Query Parameters
Assistant this applies to. Send exactly one of assistantId or agentId.
Agent this applies to. Send exactly one of assistantId or agentId.
End-user tenant. Ignored when the call carries a signed tenant session, which already names the tenant.
Subtenant within the tenant.
Response
Success
The ways this app can be connected. Empty when it needs no account at all
Show child attributes
Show child attributes