Documentation Integration API Reference Log in Get Started
REST API reference

Offers API — pull every offer as JSON.

Our Offers API returns the full offer list in JSON. Save the response in your database and sort it however you want. You will need your site_key and site_secret from the Setup page.

JSONHTTP GETv1Multireward
#api-overview

Overview

Our Offers API consists of the offers list in JSON format. This API provides all offers without any filters. You can save the response in your database and sort it however you want.

Rate limit: max 10 request attempts per 60 minutes.
#api-request

Request Parameters

GET
/api/v1/offers

Returns the full list of offers in JSON.

ParamRequiredTypeDescription
site_keyYesStringSite public key of your placement.
site_secretYesStringSite secret key of your placement.
typeNoStringmultireward — if specified, returns only multireward offers in the response.
takeNoIntegerLimit the number of offers to X. Default is 100.
skipNoIntegerSkip the first X results. Default is 0.
GET request
GET https://adswedmedia.com/api/v1/offers?site_key=publickey&site_secret=secretkey&type=multireward

Copy the URL and replace the keys with your own.

#api-errors

Error Codes

ErrorCodeDescription
missing_fields400Both site_key and site_secret are required.
authentication_failed401No site exists with this key and secret.
invalid_type401You sent a wrong value in the type param.
pending_site202Site is not approved / active yet.
too_many_requests429Allowed only 3 requests in 30 minutes.
error.json
{
  "error": "too_many_requests",
  "message": "Allowed only 3 requests in 30 minutes."
}
#api-response

Sample Response

Content-Type: application/json

response.json
{
  "success": true,
  "version": "v1",
  "offers": {
    "data": [
      {
        "id": 1,
        "type": "offer",
        "level": "easy",
        "stars": 5,
        "title": "Title of offer",
        "description": "Offer Description",
        "image": "6620fa73e56f31713437299.jpg",
        "payout": 0.2,
        "categories": null,
        "countries": ["All"],
        "devices": ["All"],
        "payment_term": "net30",
        "android_min_os": null,
        "ios_min_os": null,
        "url": "https://adswedmedia.com/redirect/manual-offer/2761/user/USER_ID_HERE/site/PUBLIC-KEY",
        "events": [
          { "offer_id": 1, "payout": 0, "description": "install" },
          { "offer_id": 1, "payout": 5, "description": "Click on 10 Ads" },
          { "offer_id": 1, "payout": 10, "description": "Click on 15 Ads" }
        ]
      }
    ]
  }
}
#api-fields

Response Field Reference

FieldDescription
payoutPayout will be in USD.
imageRelative path of an image. Full URL: https://adswedmedia.com/asset/images/offers/<image>.
Example: https://adswedmedia.com/asset/images/offers/6620fa73e56f31713437299.jpg
countries"All" means the offer is available in all countries. Otherwise an array of full country names, e.g. ["united states","india"].
devices"All" means the offer is available on all devices. Otherwise an array of devices like ["android","ios","PC"].
categoriesArray of categories or null if the offer does not belong to any category.
payment_termPayment term of the offer. We use NET30 and NET60.
urlOffer tracking link — add your site public key and your userId at the end.
eventsFor multi-reward offers, an array of events. Not present for single-reward offers.
#api-top

Top-converting Offers API

Same auth and JSON shape as the Offers API, but the response is limited to offers that actually converted in the last 48 hours — plus per-offer conversion analytics. Use it to show users only the offers that are working right now.

GET
/api/v1/offers/top-converting

Returns hot, currently-converting offers with 2-day analytics.

Rate limit: shares the same bucket as /api/v1/offers (max 10 requests / 60 min). Response is cached 5 minutes per parameter set.
ParamRequiredTypeDescription
site_keyYesStringSite public key.
site_secretYesStringSite secret key.
typeNoStringmultireward — only multireward offers.
takeNoIntegerLimit results. Default 100.
skipNoIntegerSkip first X results. Default 0.
GET request
GET https://adswedmedia.com/api/v1/offers/top-converting?site_key=publickey&site_secret=secretkey

Response

Same fields as the Offers API plus a window object and these per-offer analytics fields:

response.json
{
  "success": true,
  "version": "v1",
  "total": 12,
  "window": {
    "yesterday": "2026-06-05",
    "today": "2026-06-06",
  },
  "offers": [
    {
      "id": 1131,
      "title": "Polymarket",
      "payout": 0.4125,
      "url": "https://adswedmedia.com/redirect/manual-offer/1131/user/USER_ID_HERE/site/PUBLIC-KEY",
      "trend": "up",
      "rank": 1
    }
  ]
}
FieldDescription
trendup / down / stable — conversion momentum over the last 2 days.
rank1-based position (hottest offer first).