Poll a client report
curl --request GET \
--url https://preuve.ai/api/agent/agency/reports/{id} \
--header 'x-preuve-key: <api-key>'import requests
url = "https://preuve.ai/api/agent/agency/reports/{id}"
headers = {"x-preuve-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-preuve-key': '<api-key>'}};
fetch('https://preuve.ai/api/agent/agency/reports/{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://preuve.ai/api/agent/agency/reports/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-preuve-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://preuve.ai/api/agent/agency/reports/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-preuve-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://preuve.ai/api/agent/agency/reports/{id}")
.header("x-preuve-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://preuve.ai/api/agent/agency/reports/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-preuve-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"reportId": "<string>",
"status": "PENDING",
"scanType": "starter",
"analysisTier": "<string>",
"readyForExport": true,
"reportUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"pollAfterSeconds": 123,
"reused": true,
"dispatchPending": true,
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}Agency
Poll a client report
Status, tier, and report URL for one client report in the workspace. Does not return the report payload - use the export.
GET
/
api
/
agent
/
agency
/
reports
/
{id}
Poll a client report
curl --request GET \
--url https://preuve.ai/api/agent/agency/reports/{id} \
--header 'x-preuve-key: <api-key>'import requests
url = "https://preuve.ai/api/agent/agency/reports/{id}"
headers = {"x-preuve-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-preuve-key': '<api-key>'}};
fetch('https://preuve.ai/api/agent/agency/reports/{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://preuve.ai/api/agent/agency/reports/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-preuve-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://preuve.ai/api/agent/agency/reports/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-preuve-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://preuve.ai/api/agent/agency/reports/{id}")
.header("x-preuve-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://preuve.ai/api/agent/agency/reports/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-preuve-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"reportId": "<string>",
"status": "PENDING",
"scanType": "starter",
"analysisTier": "<string>",
"readyForExport": true,
"reportUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"pollAfterSeconds": 123,
"reused": true,
"dispatchPending": true,
"recovery": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}{
"error": "<string>",
"code": "<string>",
"details": {},
"limit": 123,
"remaining": 123,
"resetAt": "2023-11-07T05:31:56Z",
"tokenBalance": 123,
"scansUsed": 123,
"scansRemaining": 123,
"limitType": "<string>",
"upgradeHint": "<string>",
"paused": true,
"upsell": {
"offer": "founder_report",
"price": "<string>",
"guarantee": "<string>",
"url": "<string>",
"locked": [
"<string>"
],
"note": "<string>"
}
}Authorizations
Your API key (prv_...), sent as-is. It is the only credential the API needs - see the Authentication guide.
Path Parameters
Client report id, scoped to the caller's Agency workspace.
Response
Report status.
Available options:
PENDING, PROCESSING, COMPLETED, FAILED Available options:
starter, deep Present only while the report is not terminal.
Present when this clientRunId replayed an existing report.
The dispatch outcome is unknown. Retry the same clientRunId and arguments after 60 seconds; recovery reuses the original report and credit. Past 23 hours the recovery text directs you to support instead of risking a duplicate job.
What to do next, present alongside dispatchPending.