Connect app at the organization level
curl --request POST \
--url https://api.onecli.sh/v1/org/apps/{provider}/connect \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fields": {
"apiKey": "sk-..."
},
"connectionId": "<string>",
"label": "<string>",
"method": "<string>"
}
'import requests
url = "https://api.onecli.sh/v1/org/apps/{provider}/connect"
payload = {
"fields": { "apiKey": "sk-..." },
"connectionId": "<string>",
"label": "<string>",
"method": "<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({
fields: {apiKey: 'sk-...'},
connectionId: '<string>',
label: '<string>',
method: '<string>'
})
};
fetch('https://api.onecli.sh/v1/org/apps/{provider}/connect', 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.onecli.sh/v1/org/apps/{provider}/connect",
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([
'fields' => [
'apiKey' => 'sk-...'
],
'connectionId' => '<string>',
'label' => '<string>',
'method' => '<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.onecli.sh/v1/org/apps/{provider}/connect"
payload := strings.NewReader("{\n \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<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.onecli.sh/v1/org/apps/{provider}/connect")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/org/apps/{provider}/connect")
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 \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "<string>"
}{
"error": "<string>"
}Organization App Config
Connect app at the organization level
Connects an app using direct credentials (API key, service account, etc.) at the organization level. The connection is shared by every project in the organization. Available on OneCLI Cloud and self-hosted Enterprise. Requires admin role.
POST
/
org
/
apps
/
{provider}
/
connect
Connect app at the organization level
curl --request POST \
--url https://api.onecli.sh/v1/org/apps/{provider}/connect \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fields": {
"apiKey": "sk-..."
},
"connectionId": "<string>",
"label": "<string>",
"method": "<string>"
}
'import requests
url = "https://api.onecli.sh/v1/org/apps/{provider}/connect"
payload = {
"fields": { "apiKey": "sk-..." },
"connectionId": "<string>",
"label": "<string>",
"method": "<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({
fields: {apiKey: 'sk-...'},
connectionId: '<string>',
label: '<string>',
method: '<string>'
})
};
fetch('https://api.onecli.sh/v1/org/apps/{provider}/connect', 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.onecli.sh/v1/org/apps/{provider}/connect",
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([
'fields' => [
'apiKey' => 'sk-...'
],
'connectionId' => '<string>',
'label' => '<string>',
'method' => '<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.onecli.sh/v1/org/apps/{provider}/connect"
payload := strings.NewReader("{\n \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<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.onecli.sh/v1/org/apps/{provider}/connect")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/org/apps/{provider}/connect")
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 \"fields\": {\n \"apiKey\": \"sk-...\"\n },\n \"connectionId\": \"<string>\",\n \"label\": \"<string>\",\n \"method\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
API key obtained from the dashboard or GET /user/api-key
Path Parameters
App provider identifier (e.g., gmail, github, jira)
Body
application/json
Credential fields required by the app
Show child attributes
Show child attributes
Example:
{ "apiKey": "sk-..." }
Reconnect an existing connection
Display label for the connection. Defaults to a label derived from the credential metadata.
Connection method to use for apps with multiple methods (e.g. OAuth primary + API-key alternate). An unrecognized value is rejected.
Response
Connected
⌘I