Set an organization app configuration
curl --request POST \
--url https://api.onecli.sh/v1/org/apps/{provider}/config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "1234567890.apps.googleusercontent.com",
"clientSecret": "GOCSPX-…"
}
'import requests
url = "https://api.onecli.sh/v1/org/apps/{provider}/config"
payload = {
"clientId": "1234567890.apps.googleusercontent.com",
"clientSecret": "GOCSPX-…"
}
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({clientId: '1234567890.apps.googleusercontent.com', clientSecret: 'GOCSPX-…'})
};
fetch('https://api.onecli.sh/v1/org/apps/{provider}/config', 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}/config",
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([
'clientId' => '1234567890.apps.googleusercontent.com',
'clientSecret' => 'GOCSPX-…'
]),
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}/config"
payload := strings.NewReader("{\n \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\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}/config")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/org/apps/{provider}/config")
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 \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "<string>"
}Apps
Set an organization app OAuth configuration
Saves your own OAuth client for an app at the organization level. Every workspace that has no configuration of its own uses this client to connect.
POST
/
org
/
apps
/
{provider}
/
config
Set an organization app configuration
curl --request POST \
--url https://api.onecli.sh/v1/org/apps/{provider}/config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientId": "1234567890.apps.googleusercontent.com",
"clientSecret": "GOCSPX-…"
}
'import requests
url = "https://api.onecli.sh/v1/org/apps/{provider}/config"
payload = {
"clientId": "1234567890.apps.googleusercontent.com",
"clientSecret": "GOCSPX-…"
}
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({clientId: '1234567890.apps.googleusercontent.com', clientSecret: 'GOCSPX-…'})
};
fetch('https://api.onecli.sh/v1/org/apps/{provider}/config', 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}/config",
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([
'clientId' => '1234567890.apps.googleusercontent.com',
'clientSecret' => 'GOCSPX-…'
]),
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}/config"
payload := strings.NewReader("{\n \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\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}/config")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.onecli.sh/v1/org/apps/{provider}/config")
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 \"clientId\": \"1234567890.apps.googleusercontent.com\",\n \"clientSecret\": \"GOCSPX-…\"\n}"
response = http.request(request)
puts response.read_body{
"success": true
}{
"error": "<string>"
}Saves an OAuth client ID and secret for an app. Workspaces that have no client of their own use it. This lets connections show your company name on consent screens. See App credentials.
Your own OAuth client for the app, used by every workspace that has none of its own.
Availability: Cloud · Community (self-hosted) · Enterprise (self-hosted)
Authorizations
A workspace API key (oc_…) or organization API key (oc_org_…). Workspace-scoped endpoints called with an organization key also need X-Workspace-Id.
Path Parameters
App provider identifier (for example gmail, github, jira).
Body
application/json
The app's own OAuth client credentials ("bring your own client"). Field names are per app; most take clientId and clientSecret.
Response
Saved