API reference
Every endpoint, every field, and the conversion callback we send you — generated from the same OpenAPI 3.1 document our own code is described by, so it cannot go stale.
Specification version 1.0.0.
The endpoints
The full interactive reference needs JavaScript. Everything it shows is in openapi.json and openapi.yaml — import either into Swagger UI, Redocly, Insomnia or your code generator. Here is the shape of it.
Authentication
Identify the placement with appId, your 32-character public key.
Authenticate with the secret key in the X-Api-Key header, or sign the
sorted query string if you cannot set headers. The secret never travels in a URL.
The JSON API
| Endpoint | What it returns |
|---|---|
GET /api/v1/offers |
The catalogue this user may see, already targeted and priced in your currency. Pass userId to get a ready-to-use clickUrl on every offer. |
GET /api/v1/offers/{id} |
One offer plus its goal ladder — the steps of a multi-step offer and what each pays. |
GET /api/v1/conversions |
Completed offers, for reconciliation. The postback is the real-time channel. |
GET /api/v1/stats |
Daily series and totals: impressions, clicks, conversions, reversals, your payout, EPC. |
GET /api/v1/categories |
The category vocabulary with live counts, for building a filter UI. |
The hosted wall
| URL | What it is |
|---|---|
GET /wall/{publicKey} |
The offerwall itself, for an iframe. Sets no cookies. |
GET /wall/{publicKey}/click/{offer} |
Records the click, then redirects to the advertiser. Never link straight to an advertiser. |
The documents
| URL | Format | When to use it |
|---|---|---|
/openapi.json |
OpenAPI 3.1 | Canonical. Use this unless your tool refuses it. |
/openapi.yaml |
OpenAPI 3.1, YAML | The same document. Byte-for-byte the same meaning. |
/openapi-3.0.json |
OpenAPI 3.0.3 | For openapi-generator, older Swagger UI, gateways — anything that cannot read 3.1. |
/openapi-3.0.yaml |
OpenAPI 3.0.3, YAML | The same compatibility build. |
/postman.json |
Postman v2.1.0 | Postman, Insomnia, Hoppscotch, Bruno, Thunder Client. |
The 3.0.3 build is generated from the 3.1 one and says the same thing, with two
unavoidable differences: the conversion callback moves from webhooks to
x-webhooks (3.0 has no webhooks; Redoc, Swagger UI and Stoplight all read
the extension), and JSON Schema's examples/const become
3.0's example/enum. Both are validated on every change.
The callback we send you
One signed server-to-server request per conversion, and one more if it is later reversed. Verify it before crediting anybody — the contract is here.