curl --request POST \
--url https://www.presolve.com/api/v1/reports/{reportId}/run \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.presolve.com/api/v1/reports/{reportId}/run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/reports/{reportId}/run"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"success": true
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Execute a saved report
Saved definitions only. HQ keys default to the current organization and authorized descendants when reportIncludeChildOrganizations is enabled (default true for existing and new keys). Cross-organization runs require an acting attorney with current HQ, reporting, export, and data permissions. organizationIds is a comma-separated subset of that authorized scope. Child-owned reports must be shared and API-visible; incompatible fields return 400. Turning the credential toggle off restricts requests to its own organization. Saved filters still apply. Content negotiation: Accept: text/csv returns CSV, otherwise JSON rows. Results cap at 10,000 rows — signaled by truncated: true (JSON) or the X-Result-Truncated header (CSV); narrow saved filters or organizationIds for hierarchy results; export jobs support single-organization extracts only. Dedicated 5 runs/min rate limit. No X-Idempotency-Key required (execution is a read).
Requires the reports:read scope. Rate tier: sensitive.
curl --request POST \
--url https://www.presolve.com/api/v1/reports/{reportId}/run \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.presolve.com/api/v1/reports/{reportId}/run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/reports/{reportId}/run"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"success": true
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Authorizations
Org-issued integration API key (service account credential). The plaintext secret is shown once at creation.
Path Parameters
Report definition id
Query Parameters
10000