API reference

The catalogue, as JSON.

Two read-only endpoints: the whole offer list, and the subset that is actually converting right now. Crediting always happens through the postback, never through the API.

Overview

The Offers API returns the offer list in JSON with no filters applied. Save the response on your side and sort or filter it however your product needs.

Rate limit

Up to 10 request attempts per 60 minutes, shared between both endpoints. Cache the catalogue on your side instead of calling it per page view.

Request

GET/api/v1/offers
ParamRequiredTypeDescription
site_keyYesStringPublic key of your placement.
site_secretYesStringSecret key of your placement.
typeNoStringmultireward returns only multi-step offers.
takeNoIntegerLimit the number of offers. Default 100.
skipNoIntegerSkip the first X results. Default 0.
GET request
GET https://newwall.178.105.95.44.nip.io/api/v1/offers?site_key=publickey&site_secret=secretkey&type=multireward

Copy the URL and swap in your own keys.

Error codes

ErrorCodeWhat happened
missing_fields400Both site_key and site_secret are required.
authentication_failed401No placement exists with that key and secret.
invalid_type401The type value is not one we accept.
pending_site202The placement is not approved or active yet.
too_many_requests429You went over the rate limit. Back off and cache.
error.json
{
  "error": "too_many_requests",
  "message": "Too many attempts, please slow down."
}

Response fields

The ones worth explaining. Everything else is what it says on the tin.

FieldWhat it means
payoutAlways in USD.
imageRelative path. Full URL: https://newwall.178.105.95.44.nip.io/asset/images/offers/<image>
countries"All", or an array of full country names — ["united states","india"].
devices"All", or an array like ["android","ios","PC"].
categoriesArray of categories, or null if the offer has none.
payment_termNET30 or NET60.
urlThe offer tracking link — append your public key and your userId.
eventsFor multi-reward offers, the array of events. Absent on single-reward offers.

Top-converting offers

Same authentication and the same JSON shape, but limited to offers that actually converted in the last 48 hours, plus per-offer analytics. Use it to show users only what is working right now.

GET/api/v1/offers/top-converting
ParamRequiredTypeDescription
site_keyYesStringPublic key.
site_secretYesStringSecret key.
typeNoStringmultireward only.
takeNoIntegerLimit results. Default 100.
skipNoIntegerSkip first X. Default 0.
GET request
GET https://newwall.178.105.95.44.nip.io/api/v1/offers/top-converting?site_key=publickey&site_secret=secretkey
Shares the rate limit

Same bucket as /api/v1/offers, and the response is cached 5 minutes per parameter set — calling it more often returns the same thing.

Extra fields on top-converting

Everything from the Offers API, plus a window object and these per offer:

FieldWhat it means
trendup / down / stable — conversion momentum over the last 2 days.
rank1-based position, hottest offer first.
© 2026 NewWall Built for developers integrating rewarded monetization.