For brands & publishers
REST API
Pull your data programmatically — conversions, daily stats, payouts, channels, and brands — with a simple Bearer-authenticated JSON API.
Base URL
All endpoints live under a single versioned prefix. We’ll add new fields without notice, but never remove or rename one within v1.
https://app.adryse.com/api/v1Authentication
Create a key under Dashboard → Settings → API keys. The full key (adr_live_…) is shown once, at creation — store it like a password. Send it as a Bearer token on every request:
curl https://app.adryse.com/api/v1/me \
-H "Authorization: Bearer adr_live_xxxxxxxxxxxxxxxxxxxx"Keys are scoped to the organization that created them and inherit its role — a publisher key sees publisher data, an advertiser key sees advertiser data. Revoke a key any time from the same screen; revocation takes effect immediately.
Response envelope
Success responses wrap the payload in a data field. Errors return an error object with a stable code and a human-readable message.
// 200 OK
{ "data": [ /* … */ ] }
// 4xx / 5xx
{ "error": { "code": "unauthorized", "message": "Invalid or revoked API key." } }| Status | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing, malformed, or revoked key. |
403 | forbidden | Key’s role can’t access this endpoint. |
400 | bad_request | Invalid query parameter (e.g. a malformed date). |
429 | rate_limited | Too many requests — see below. |
500 | internal_error | Something went wrong on our side. Safe to retry. |
Rate limits
Requests are limited to 120 per minute per organization, measured over a trailing 60-second window. Exceed it and you get a 429 with a Retry-After: 60 header — back off and retry after the window clears. All amounts in responses are integer cents of the stated currency.
Endpoints
Every endpoint is GET-only today. Money fields are in cents; timestamps are ISO-8601 UTC.
GET /me
Identify the organization behind the current key.
curl https://app.adryse.com/api/v1/me \
-H "Authorization: Bearer adr_live_…"GET /conversions
Your conversions in a date range. Publishers see their earnings; advertisers see conversions across all their brands.
| Query | Default | Notes |
|---|---|---|
from | 30 days ago | ISO date, inclusive. |
to | now | ISO date, inclusive. |
limit | 50 | Max 100. |
curl "https://app.adryse.com/api/v1/conversions?from=2026-07-01&to=2026-07-31&limit=100" \
-H "Authorization: Bearer adr_live_…"GET /stats
Daily rollups over a date range — clicks, conversions, and commission per day. Same from/to params as /conversions.
curl "https://app.adryse.com/api/v1/stats?from=2026-07-01&to=2026-07-31" \
-H "Authorization: Bearer adr_live_…"GET /payouts · publishers
Your payout runs, newest first — period, status, net amount, and when it was paid. Accepts limit (default 20, max 100).
curl https://app.adryse.com/api/v1/payouts \
-H "Authorization: Bearer adr_live_…"GET /channels · publishers
Your promotional channels (sites, newsletters, apps) with their review status.
curl https://app.adryse.com/api/v1/channels \
-H "Authorization: Bearer adr_live_…"GET /brands · advertisers
Your brands with status, prepaid balance, and the commission rate you offer publishers.
curl https://app.adryse.com/api/v1/brands \
-H "Authorization: Bearer adr_live_…"Versioning
Breaking changes ship under a new prefix (/api/v2). Within a version we only add — new endpoints and new fields — so code that ignores unknown fields keeps working. For real-time pushes rather than polling, see Webhooks.