Source Reporting API
Individual publishers (supply sources) and DSPs (demand sources) can access their own performance and billing data using their source-level API key. This allows partners to share API access with their publishers and DSPs without exposing other sources’ data.
Base URL: https://api.praevis.com
Auth: X-API-Key: {SOURCE_API_KEY}
Source API keys are scoped to a single publisher or DSP. They can only access data for that specific source. Find your key in the dashboard under Supply/Demand > Settings.
Publisher Endpoints
Get publisher report
GET /api/source/report?period={period}Returns performance metrics for the authenticated publisher.
Query params:
| Param | Values | Default | Description |
|---|---|---|---|
period | 24h, 7d, 14d, 30d | 7d | Reporting period |
Response:
{
"publisher": "Example Publisher",
"publisher_id": "84a75615-...",
"period": "7d",
"month": "2026-05",
"impressions": 15395,
"revenue_cents": 7599,
"auctions": 38740996,
"fill_rate": 0.04,
"avg_cpm": 4.94
}Get publisher billing
GET /api/source/billing?month={YYYY-MM}Returns the payout statement for the authenticated publisher.
Query params:
| Param | Format | Default | Description |
|---|---|---|---|
month | YYYY-MM | Current month | Billing period |
Response:
{
"publisher": "Example Publisher",
"publisher_id": "84a75615-...",
"month": "2026-05",
"status": "in_progress",
"payout": {
"gross_revenue_cents": 7599,
"fee_percent": 20,
"fee_cents": 1520,
"net_payout_cents": 6079,
"impressions": 15395,
"currency": "USD"
}
}| Field | Description |
|---|---|
status | in_progress (current month) or finalized (past months) |
gross_revenue_cents | Total revenue earned before fees |
fee_percent | Publisher platform fee percentage |
fee_cents | Fee deducted |
net_payout_cents | Amount to be paid out |
DSP Endpoints
Get DSP report
GET /api/demand/report?period={period}Returns performance metrics for the authenticated DSP.
Query params:
| Param | Values | Default | Description |
|---|---|---|---|
period | 24h, 7d, 14d, 30d | 7d | Reporting period |
Response:
{
"dsp": "Example DSP",
"dsp_id": "c0eee8be-...",
"period": "7d",
"month": "2026-05",
"spend_cents": 5799,
"wins": 46710,
"avg_cpm": 1.24
}Get DSP billing
GET /api/demand/billing?month={YYYY-MM}Returns the invoice for the authenticated DSP.
Query params:
| Param | Format | Default | Description |
|---|---|---|---|
month | YYYY-MM | Current month | Billing period |
Response:
{
"dsp": "Example DSP",
"dsp_id": "c0eee8be-...",
"month": "2026-05",
"status": "in_progress",
"invoice": {
"spend_cents": 5799,
"fee_percent": 30,
"fee_cents": 1740,
"total_due_cents": 7539,
"wins": 46710,
"currency": "USD"
}
}| Field | Description |
|---|---|
status | in_progress (current month) or finalized (past months) |
spend_cents | Total ad spend for the period |
fee_percent | DSP platform fee percentage |
fee_cents | Platform fee charged |
total_due_cents | Total amount to be invoiced (spend + fee) |
API Key Management
Source API keys are generated per publisher and per DSP. They are visible in the dashboard:
- Publishers: Supply > [Publisher Name] > Settings
- DSPs: Demand > [DSP Name] > Settings
Partners can share these keys with their publishers/DSPs for self-serve access. Each key only grants access to that specific source’s data.
Key format
Publisher: pub_{timestamp}_{hash}
DSP: dsp_{timestamp}_{hash}API keys should be treated as secrets. If compromised, regenerate the key from the dashboard Settings page.
Example: Publisher integration
# Get your monthly payout
curl https://api.praevis.com/api/source/billing?month=2026-05 \
-H "X-API-Key: pub_XXXXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Get performance report
curl https://api.praevis.com/api/source/report?period=30d \
-H "X-API-Key: pub_XXXXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"Example: DSP integration
# Get your monthly invoice
curl https://api.praevis.com/api/demand/billing?month=2026-05 \
-H "X-API-Key: dsp_XXXXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# Get performance report
curl https://api.praevis.com/api/demand/report?period=30d \
-H "X-API-Key: dsp_XXXXXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"