Approve or deny MCP consent
curl --request POST \
--url https://posted-api.example.com/api/oauth/consent/{id} \
--header 'Content-Type: application/json' \
--header 'Origin: <origin>' \
--cookie posted_session= \
--data '{
"allow": true
}'import requests
url = "https://posted-api.example.com/api/oauth/consent/{id}"
payload = { "allow": True }
headers = {
"cookie": "posted_session=",
"Origin": "<origin>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'posted_session=',
Origin: '<origin>',
'Content-Type': 'application/json'
},
body: JSON.stringify({allow: true})
};
fetch('https://posted-api.example.com/api/oauth/consent/{id}', 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://posted-api.example.com/api/oauth/consent/{id}",
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([
'allow' => true
]),
CURLOPT_COOKIE => "posted_session=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Origin: <origin>"
],
]);
$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://posted-api.example.com/api/oauth/consent/{id}"
payload := strings.NewReader("{\n \"allow\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "posted_session=")
req.Header.Add("Origin", "<origin>")
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://posted-api.example.com/api/oauth/consent/{id}")
.header("cookie", "posted_session=")
.header("Origin", "<origin>")
.header("Content-Type", "application/json")
.body("{\n \"allow\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://posted-api.example.com/api/oauth/consent/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'posted_session='
request["Origin"] = '<origin>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allow\": true\n}"
response = http.request(request)
puts response.read_body{
"redirectTo": "https://client.example.test/callback?code=example&state=example"
}{
"error": "<string>",
"error_description": "<string>"
}Approve or deny MCP consent
The human selects accessLevel. Approval requires recent authentication. When allow is false, omit accessLevel. A client cannot select or approve its own permissions.
POST
/
api
/
oauth
/
consent
/
{id}
Approve or deny MCP consent
curl --request POST \
--url https://posted-api.example.com/api/oauth/consent/{id} \
--header 'Content-Type: application/json' \
--header 'Origin: <origin>' \
--cookie posted_session= \
--data '{
"allow": true
}'import requests
url = "https://posted-api.example.com/api/oauth/consent/{id}"
payload = { "allow": True }
headers = {
"cookie": "posted_session=",
"Origin": "<origin>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
cookie: 'posted_session=',
Origin: '<origin>',
'Content-Type': 'application/json'
},
body: JSON.stringify({allow: true})
};
fetch('https://posted-api.example.com/api/oauth/consent/{id}', 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://posted-api.example.com/api/oauth/consent/{id}",
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([
'allow' => true
]),
CURLOPT_COOKIE => "posted_session=",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Origin: <origin>"
],
]);
$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://posted-api.example.com/api/oauth/consent/{id}"
payload := strings.NewReader("{\n \"allow\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("cookie", "posted_session=")
req.Header.Add("Origin", "<origin>")
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://posted-api.example.com/api/oauth/consent/{id}")
.header("cookie", "posted_session=")
.header("Origin", "<origin>")
.header("Content-Type", "application/json")
.body("{\n \"allow\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://posted-api.example.com/api/oauth/consent/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'posted_session='
request["Origin"] = '<origin>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allow\": true\n}"
response = http.request(request)
puts response.read_body{
"redirectTo": "https://client.example.test/callback?code=example&state=example"
}{
"error": "<string>",
"error_description": "<string>"
}A signed-in human session is required. API keys and MCP bearer credentials cannot replace that session.
The human selects accessLevel. Approval requires recent authentication. When allow is false, omit accessLevel. A client cannot select or approve its own permissions.
Request conventions · API keys · MCP connections
Authorizations
Signed-in human browser session; mutation requests also need the exact UI Origin
Headers
The exact configured Posted UI origin. Required for browser mutations carrying session cookies.
Path Parameters
The id from the corresponding list, record or authorization response.
Body
application/json
Response
Successful response. Examples are illustrative; field values vary by record.
Was this page helpful?
