Endpoint Reference
Every v1 endpoint is a GET, read-only, scoped to the API key’s owner, and lives
under https://app.synaptyx.pro/api/v1. The interactive explorer at
/api/v1/docs lets you try them live.
Full endpoint list
| Method | Path | Scope | Purpose |
|---|---|---|---|
GET | /conversions | read:conversions | Cursor-paginated conversions (CPA + revenue merged) |
GET | /conversions/search | search:conversions | Substring search across conversion + click fields |
GET | /clicks | read:clicks | Cursor-paginated clicks (geo, device, sub-IDs) |
GET | /campaigns | read:campaigns | List campaigns (lean — no flow/graph) |
GET | /campaigns/:id | read:campaigns | A single campaign |
GET | /campaigns/search | search:campaigns | Substring search across campaigns |
GET | /offers | read:offers | List offers |
GET | /offers/:id | read:offers | A single offer |
GET | /landing-pages | read:landing-pages | List landing pages |
GET | /landing-pages/:id | read:landing-pages | A single landing page |
GET | /traffic-sources | read:traffic-sources | List traffic sources |
GET | /traffic-sources/:id | read:traffic-sources | A single traffic source |
GET | /stats/overview | read:stats | Aggregate totals + resource counts over a window |
GET | /stats/daily | read:stats | Daily clicks / conversions / revenue series |
GET | /reports | read:reports | Grouped performance report (CR, EPC, …) |
Key parameters
Conversions — GET /conversions
| Param | Notes |
|---|---|
limit | 1–200 (default 50) |
cursor | Opaque pagination cursor |
campaign_id | Filter to one campaign |
status | approved, pending, declined, hold… |
source | cpa, revenue, or all |
from / to | Date range |
include_test_mode | Include test conversions |
Clicks — GET /clicks
| Param | Notes |
|---|---|
limit, cursor | Pagination |
campaign_id, offer_id | Filters |
from / to | Date range (clickedAt) |
converted | Only converted clicks |
Stats — GET /stats/overview & /stats/daily
| Param | Notes |
|---|---|
days | 1–90 (default 30) |
tz | IANA timezone for daily (default UTC) |
campaign_id | Filter daily to one campaign |
Reports — GET /reports
| Param | Notes |
|---|---|
group_by | Required. One of: campaign, country, device, os, browser, offer, landing, traffic_source, day |
days | 1–365 (default 30) |
from / to | Explicit range |
campaign_id | Filter |
Reports return up to the top 1,000 buckets, sorted by clicks descending.
Search — /conversions/search, /campaigns/search
| Param | Notes |
|---|---|
q | The query, 2–100 chars (%/_ are escaped, not wildcards) |
fields | Comma-separated whitelist of fields to search |
limit, cursor | Pagination |
from / to | Date range (conversions search) |
Response shapes
List endpoints return a paginated envelope:
{
"data": [ /* … rows … */ ],
"nextCursor": "eyJ0cyI6…",
"hasMore": true
}Search endpoints add the query context and per-row match info:
{
"query": "acme",
"searchedFields": ["name", "couponCode"],
"data": [
{ "id": "…", "name": "Acme FR", "matched": true,
"matches": [{ "field": "name", "value": "Acme FR" }] }
],
"nextCursor": null,
"hasMore": false
}Examples
cURL
# Last 7 days overview
curl "https://app.synaptyx.pro/api/v1/stats/overview?days=7" \
-H "Authorization: ApiKey syx_live_your_key_here"
# Conversions for one campaign, paginated
curl "https://app.synaptyx.pro/api/v1/conversions?campaign_id=abc&limit=100" \
-H "Authorization: ApiKey syx_live_your_key_here"Single-item lookups (/:id) return 404 not_found for both nonexistent and
not-owned rows — so the API never leaks whether another user’s resource exists.