Set an app's OAuth client configuration
curl --request POST \
--url https://api.onecli.sh/v1/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/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/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/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/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/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/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 app's OAuth client configuration
Store your own OAuth client credentials for the app at the workspace level (“bring your own client”). Replacing an existing configuration disconnects the connections minted from it.
POST
/
apps
/
{provider}
/
config
Set an app's OAuth client configuration
curl --request POST \
--url https://api.onecli.sh/v1/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/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/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/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/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/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/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>"
}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