curl --request POST \
--url https://sendpaperplane.com/v1/feedback \
--header 'Content-Type: application/json' \
--data '
{
"category": "docs_mismatch",
"note": "The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested."
}
'import requests
url = "https://sendpaperplane.com/v1/feedback"
payload = {
"category": "docs_mismatch",
"note": "The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
category: 'docs_mismatch',
note: 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
})
};
fetch('https://sendpaperplane.com/v1/feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
category: 'docs_mismatch',
note: 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
})
};
fetch('https://sendpaperplane.com/v1/feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sendpaperplane.com/v1/feedback"
payload := strings.NewReader("{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}require 'uri'
require 'net/http'
url = URI("https://sendpaperplane.com/v1/feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sendpaperplane.com/v1/feedback",
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([
'category' => 'docs_mismatch',
'note' => 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://sendpaperplane.com/v1/feedback")
.header("Content-Type", "application/json")
.body("{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}")
.asString();{
"status": "ok",
"feedback_id": "fbk_a1b2c3d4e5f6",
"already_submitted": true
}{
"status": "ok",
"feedback_id": "fbk_a1b2c3d4e5f6",
"already_submitted": false
}{
"status": "failed",
"code": "<string>",
"reason": "<string>",
"next": [
"<string>"
]
}{
"status": "failed",
"code": "<string>",
"reason": "<string>",
"next": [
"<string>"
]
}Report a problem to paperplane
Tell the paperplane team that a response was wrong or different from the docs, a tool description misled you, or a missing feature blocks your task. Send one report per problem, and do not report errors you can fix by changing your request. Send category and note, plus at least one of order_id, url or surface so the team knows what the report is about. order_id is recorded, not looked up, so a wrong id cannot make a report fail. Keep API keys, tokens and personal data out of the note: key- and token-shaped strings are redacted before storage, but nothing can redact a name or an address. Reporting the same thing again returns the original feedback_id with already_submitted: true. No scope is needed, so a key with no scopes at all and an anonymous caller can both report. Limited to 10 reports a minute per caller. The MCP equivalent is the submit_feedback tool.
curl --request POST \
--url https://sendpaperplane.com/v1/feedback \
--header 'Content-Type: application/json' \
--data '
{
"category": "docs_mismatch",
"note": "The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested."
}
'import requests
url = "https://sendpaperplane.com/v1/feedback"
payload = {
"category": "docs_mismatch",
"note": "The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
category: 'docs_mismatch',
note: 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
})
};
fetch('https://sendpaperplane.com/v1/feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
category: 'docs_mismatch',
note: 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
})
};
fetch('https://sendpaperplane.com/v1/feedback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sendpaperplane.com/v1/feedback"
payload := strings.NewReader("{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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))
}require 'uri'
require 'net/http'
url = URI("https://sendpaperplane.com/v1/feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sendpaperplane.com/v1/feedback",
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([
'category' => 'docs_mismatch',
'note' => 'The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://sendpaperplane.com/v1/feedback")
.header("Content-Type", "application/json")
.body("{\n \"category\": \"docs_mismatch\",\n \"note\": \"The quote response includes a tracking line for first_class when tracking is false; the docs say tracking is only itemised when requested.\"\n}")
.asString();{
"status": "ok",
"feedback_id": "fbk_a1b2c3d4e5f6",
"already_submitted": true
}{
"status": "ok",
"feedback_id": "fbk_a1b2c3d4e5f6",
"already_submitted": false
}{
"status": "failed",
"code": "<string>",
"reason": "<string>",
"next": [
"<string>"
]
}{
"status": "failed",
"code": "<string>",
"reason": "<string>",
"next": [
"<string>"
]
}Body
bug, docs_mismatch, friction, feature_gap, quality_degradation, other 1 - 40001 - 601 - 20001 - 100Was this page helpful?