curl --request POST \
--url https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key} \
--header 'Content-Type: application/json' \
--header 'x-conveyour-token: <api-key>' \
--data '
{
"row_keys": [
"<string>"
],
"params": {}
}
'const options = {
method: 'POST',
headers: {'x-conveyour-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({row_keys: ['<string>'], params: {}})
};
fetch('https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'x-conveyour-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({row_keys: ['<string>'], params: {}})
};
fetch('https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}"
payload = {
"row_keys": ["<string>"],
"params": {}
}
headers = {
"x-conveyour-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}",
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([
'row_keys' => [
'<string>'
],
'params' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-conveyour-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "ok",
"message": "Export queued. Your file will appear in Exports when ready.",
"data": {
"url": "/reports/exports",
"url_text": "View progress in Exports"
}
}{
"status": "failed",
"message": "Token is either expired or does not have the correct permissions",
"data": []
}{
"status": "failed",
"message": "Contact not found",
"data": []
}Run a report action
Executes a row-level action on selected report rows. Actions are report-specific (e.g. “Export Selected” on the Form Submissions report). Available actions are listed in data.actions from the report schema.
Run a row-level action on selected rows
curl --request POST \
--url https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key} \
--header 'Content-Type: application/json' \
--header 'x-conveyour-token: <api-key>' \
--data '
{
"row_keys": [
"<string>"
],
"params": {}
}
'const options = {
method: 'POST',
headers: {'x-conveyour-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({row_keys: ['<string>'], params: {}})
};
fetch('https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'x-conveyour-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({row_keys: ['<string>'], params: {}})
};
fetch('https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}"
payload = {
"row_keys": ["<string>"],
"params": {}
}
headers = {
"x-conveyour-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.conveyour.com/api/reports/{report_id}/action/{action_key}",
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([
'row_keys' => [
'<string>'
],
'params' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-conveyour-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"status": "ok",
"message": "Export queued. Your file will appear in Exports when ready.",
"data": {
"url": "/reports/exports",
"url_text": "View progress in Exports"
}
}{
"status": "failed",
"message": "Token is either expired or does not have the correct permissions",
"data": []
}{
"status": "failed",
"message": "Contact not found",
"data": []
}Authorizations
Your API key token. Contacts endpoints require a Server-only — Full API key — see Authentication.
Path Parameters
The action_key identifier.
The report_id identifier.
Query Parameters
Team scope for the request, as one or more team ObjectIds. The brackets are required: PHP keeps only the last value for a repeated plain key, so teams=A&teams=B silently resolves to B alone. On requests with a JSON body you may send teams (no brackets) in the body instead.
Values that are not valid ObjectIds are silently ignored — a mistyped team ID behaves as if no team was sent. See the teams section of the API conventions guide.
Body
Response
Success.
The common response envelope shared by all ConveYour endpoints.
ok on success, failed on error.
ok, failed Human-readable description of the result.
The array returned by the report class's action method. Only message is guaranteed; it defaults to Action completed. Remaining keys are defined by the individual action.
Show child attributes
Show child attributes