Approve or cancel MCP OAuth authorization from traxy.
curl --request POST \
--url https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestToken": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approved": true
}
'import requests
url = "https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete"
payload = {
"requestToken": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approved": True
}
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({
requestToken: '<string>',
organizationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
approved: true
})
};
fetch('https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete', 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.traxy.ai/api/v1/mcp/oauth/authorize/complete",
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([
'requestToken' => '<string>',
'organizationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'approved' => 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.traxy.ai/api/v1/mcp/oauth/authorize/complete"
payload := strings.NewReader("{\n \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\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.traxy.ai/api/v1/mcp/oauth/authorize/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete")
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 \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\n}"
response = http.request(request)
puts response.read_body{
"redirectUrl": "<string>"
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key.",
"status": 401,
"request_id": "<string>"
}
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key.",
"status": 401,
"request_id": "<string>"
}
}API reference
Approve or cancel MCP OAuth authorization from traxy.
Any active workspace member can approve a request containing only non-sensitive read scopes. The default OAuth grant includes saved contact and profile access, which requires an owner or admin. Scopes that can change workspace data or spend credits also require an owner or admin. Cancellation returns a clean access_denied callback without requiring admin access.
POST
/
mcp
/
oauth
/
authorize
/
complete
Approve or cancel MCP OAuth authorization from traxy.
curl --request POST \
--url https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requestToken": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approved": true
}
'import requests
url = "https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete"
payload = {
"requestToken": "<string>",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"approved": True
}
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({
requestToken: '<string>',
organizationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
approved: true
})
};
fetch('https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete', 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.traxy.ai/api/v1/mcp/oauth/authorize/complete",
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([
'requestToken' => '<string>',
'organizationId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'approved' => 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.traxy.ai/api/v1/mcp/oauth/authorize/complete"
payload := strings.NewReader("{\n \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\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.traxy.ai/api/v1/mcp/oauth/authorize/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.traxy.ai/api/v1/mcp/oauth/authorize/complete")
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 \"requestToken\": \"<string>\",\n \"organizationId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"approved\": true\n}"
response = http.request(request)
puts response.read_body{
"redirectUrl": "<string>"
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key.",
"status": 401,
"request_id": "<string>"
}
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key.",
"status": 401,
"request_id": "<string>"
}
}Authorizations
Authenticated traxy app session token used by the consent screen.
Body
application/json
Response
Redirect URL for the MCP client callback.
Client callback URL. Do not log or send to analytics because it may contain an authorization code.
Was this page helpful?
⌘I