Update OAuth application
curl --request PUT \
--url https://api.timbrix.mx/oauth/apps/{clientId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Integration",
"description": "Integration for managing organization data",
"redirectUri": "https://example.com/callback",
"scopes": [
"read:organization",
"write:organization"
],
"isActive": true
}
'import requests
url = "https://api.timbrix.mx/oauth/apps/{clientId}"
payload = {
"name": "My Integration",
"description": "Integration for managing organization data",
"redirectUri": "https://example.com/callback",
"scopes": ["read:organization", "write:organization"],
"isActive": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Integration',
description: 'Integration for managing organization data',
redirectUri: 'https://example.com/callback',
scopes: ['read:organization', 'write:organization'],
isActive: true
})
};
fetch('https://api.timbrix.mx/oauth/apps/{clientId}', 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.timbrix.mx/oauth/apps/{clientId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Integration',
'description' => 'Integration for managing organization data',
'redirectUri' => 'https://example.com/callback',
'scopes' => [
'read:organization',
'write:organization'
],
'isActive' => true
]),
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.timbrix.mx/oauth/apps/{clientId}"
payload := strings.NewReader("{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.timbrix.mx/oauth/apps/{clientId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timbrix.mx/oauth/apps/{clientId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}"
response = http.request(request)
puts response.read_bodyOAuth
Update OAuth Application
⚠️ SECURITY: Only OWNERS and ADMINS can update OAuth applications. Allows updating name, scopes, redirect URIs, and status. Client ID and secret cannot be changed.
PUT
/
oauth
/
apps
/
{clientId}
Update OAuth application
curl --request PUT \
--url https://api.timbrix.mx/oauth/apps/{clientId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Integration",
"description": "Integration for managing organization data",
"redirectUri": "https://example.com/callback",
"scopes": [
"read:organization",
"write:organization"
],
"isActive": true
}
'import requests
url = "https://api.timbrix.mx/oauth/apps/{clientId}"
payload = {
"name": "My Integration",
"description": "Integration for managing organization data",
"redirectUri": "https://example.com/callback",
"scopes": ["read:organization", "write:organization"],
"isActive": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Integration',
description: 'Integration for managing organization data',
redirectUri: 'https://example.com/callback',
scopes: ['read:organization', 'write:organization'],
isActive: true
})
};
fetch('https://api.timbrix.mx/oauth/apps/{clientId}', 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.timbrix.mx/oauth/apps/{clientId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Integration',
'description' => 'Integration for managing organization data',
'redirectUri' => 'https://example.com/callback',
'scopes' => [
'read:organization',
'write:organization'
],
'isActive' => true
]),
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.timbrix.mx/oauth/apps/{clientId}"
payload := strings.NewReader("{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.timbrix.mx/oauth/apps/{clientId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.timbrix.mx/oauth/apps/{clientId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Integration\",\n \"description\": \"Integration for managing organization data\",\n \"redirectUri\": \"https://example.com/callback\",\n \"scopes\": [\n \"read:organization\",\n \"write:organization\"\n ],\n \"isActive\": true\n}"
response = http.request(request)
puts response.read_bodyUpdates an OAuth application configuration. Only OWNERS and ADMINS can update OAuth applications.
Client ID and secret cannot be changed. Only name, description, redirect URI,
scopes, and status can be updated.
Permissions
Only OWNERS and ADMINS can update OAuth applications.Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
clientId | string | Yes | OAuth application client ID |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Application name (max 100 characters) |
description | string | No | Application description (max 500 characters) |
redirectUri | string | No | Redirect URI for OAuth flow |
scopes | array | No | OAuth scopes requested |
isActive | boolean | No | Whether the application is active |
Example Request
curl -X PUT https://api.timbrix.mx/oauth/apps/app_1234567890abcdef \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Integration Name",
"scopes": ["read:organization", "write:organization", "read:webhooks"],
"isActive": true
}'
Example Response
{
"clientId": "app_1234567890abcdef",
"name": "Updated Integration Name",
"description": "Integration for managing organization data",
"redirectUri": "https://example.com/callback",
"scopes": ["read:organization", "write:organization", "read:webhooks"],
"isActive": true,
"updatedAt": "2025-01-26T11:00:00Z"
}
Common Errors
400 Bad Request
Invalid input data or validation errors.401 Unauthorized
Authentication required.403 Forbidden
Only owners and admins can update OAuth applications.404 Not Found
OAuth application not found with the provided client ID.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Application name
Maximum string length:
100Example:
"My Integration"
Application description
Maximum string length:
500Example:
"Integration for managing organization data"
Redirect URI for OAuth flow
Example:
"https://example.com/callback"
OAuth scopes requested
Example:
["read:organization", "write:organization"]
Whether the application is active
Example:
true
Response
Application updated successfully with new configuration.
⌘I