Provero Logo

Campaigns

Attach a campaign to any API request that creates a validation log so reports stay grouped by project, customer, import source, or workflow.

Set Up First

Create and manage campaigns in Settings → Campaigns before sending them in API requests.

Supported Endpoints

Campaigns are supported on /api/validate/*, /api/fraud-check/*, and /api/validate/multiple.

What To Send

Send either the campaign slug or UUID. In most integrations, the slug is the easier option to read and maintain.

Multi-Validation

For /api/validate/multiple, keep campaign at the top level of the payload so it applies across the nested checks in that request.

If you omit campaign, the request still runs normally. The resulting validation log just won’t be attached to a named campaign in reporting.


Request Body

Field Type Required Description
campaign string No Optional campaign identifier. Send either the campaign slug or UUID from Settings → Campaigns.
Request Body example (JSON)
{
    "campaign": "q1-lead-list",
    "email": "test@example.com"
}

Code Examples

import requests

payload = {
    "campaign": "q1-lead-list",
    "email": "test@example.com"
}

url = "https://api.provero.io/api/validate/email"
headers = {
    "Authorization": "Bearer REPLACE_WITH_API_TOKEN",
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.text)
<?php
$payload = [
    "campaign" => "q1-lead-list",
    "email" => "test@example.com",
];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.provero.io/api/validate/email",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer REPLACE_WITH_API_TOKEN",
        "Content-Type: application/json",
        "Accept: application/json"
    ],
]);

$response = curl_exec($curl);
if (curl_errno($curl)) {
    echo 'Error:' . curl_error($curl);
}
curl_close($curl);
echo $response;
const payload = {
    campaign: "q1-lead-list",
    email: "test@example.com"
};

fetch("https://api.provero.io/api/validate/email", {
    method: "POST",
    headers: {
        "Authorization": "Bearer REPLACE_WITH_API_TOKEN",
        "Content-Type": "application/json",
        "Accept": "application/json"
    },
    body: JSON.stringify(payload)
})
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.error("Error:", error));
curl -X POST https://api.provero.io/api/validate/email \
  -H "Authorization: Bearer REPLACE_WITH_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "campaign": "q1-lead-list",
    "email": "test@example.com"
  }'

Response Examples

Error - Campaign Not Found
{
    "message": "No query results for model [App\\Models\\Campaign]."
}

Response Body

Error structure

Field Name Type Example Always Present Description
message string No query results for model [App\Models\Campaign]. Yes Returned when the supplied campaign slug or UUID does not exist for the authenticated account.