An offerwall API you render yourself

One authenticated GET returns the offers your user can complete, priced for their country, each with its own click link. You build the screen. We track the click, confirm the conversion and tell your server.

Transport
HTTPS, JSON, one API key per account.
Filters
Country, platform, category, featured.
Amounts
USD payout and suggested points, per step.
Limit
120 requests a minute. Cache on your side.

API or a ready-made wall?

A ready-made wall is quick to drop in but looks like someone else's product. With the API, offers are data: you decide the layout, the copy, how rewards are shown, and where in your app offers appear. You can mix them into a rewards screen, a store, or a daily task list.

The trade-off is that you build and maintain that screen. It is easiest when your app already has its own currency and a place to spend it.

What a request looks like

Call from your server, never from the app, so your key stays private:

Terminal
curl "https://cashadmedia.com/api/v1/offers?country=US&platform=android&user_id=u_123" \
  -H "Authorization: Bearer YOUR_API_KEY"

country is the user's two-letter country. platform is ios, android or website. Add category to show one category, featured=1 for highlighted offers only, and limit and offset to page through results.

What each offer contains

  • Name, description, logo and category, ready to show.
  • steps: one entry per event the user can be paid for, each with its title, your payout in USD and a suggested reward in points. Single-step offers have one.
  • The country price: with country in the request, amounts are that country's. Without it, each step lists the countries that pay differently.
  • The platforms and countries the offer runs in, its terms, and when it ends.
  • click_url, with your user ID already filled in when you pass user_id.

Payouts are what you earn. The reward is a suggestion: scale it to your own currency, or replace it.

Opening an offer

When the user taps an offer, open its click_url in the browser or an in-app browser. The link checks the offer still fits the user (country, device, daily cap), records the click and redirects to the advertiser. The advertiser's own tracking link never appears in the API or in your app. If the offer can't be taken any more, the user sees a short page saying why.

Crediting the user

Never credit a reward when the user taps or comes back. Wait for our postback: it arrives when the advertiser has confirmed the conversion, carries your user ID and the reward, and is signed so you can tell it is ours. How postbacks work.

Before you go live

  1. Generate your API key under Integration in the dashboard and keep it on your server.
  2. Cache the offer list for a few minutes per country and platform instead of calling on every screen view.
  3. Pass a stable user ID that maps to one account in your system.
  4. Set your postback URL and send a test from the dashboard.
  5. Check your signature verification rejects a postback with a changed reward.

Questions

Can I integrate an offerwall without an SDK?

Yes. Fetch offers from the REST API on your server, show them in your own UI, and open each offer's click link. Rewards are credited through server-to-server postbacks.

Can I customise how the offerwall looks?

Completely. The API returns data, not a page, so the layout, wording and reward display are yours.

How do I show only offers for the user's country?

Pass the user's two-letter country code as the country parameter. You get only offers that run there, with that country's payouts.

How often should I refresh the offer list?

Every few minutes is plenty. The API allows 120 requests a minute per key, and the click link re-checks each offer when it is opened, so a slightly old list never sends a user to a dead offer.