OM
Offermaru
Publisher Area

Developers

Offermaru API documentation

Use the getOffers API to build a fully custom offer UI, and process completions using server-to-server callbacks.

Introduction

The Offermaru API is designed to power “custom UI” integrations. You request offers from our API and render them in your own layout, while Offermaru still handles tracking and S2S callbacks.

Current surface:

  • GET https://api.offermaru.com/getOffers – fetch offers for a specific user.
  • S2S callback to your server when an event is completed.

Authentication & base URL

All API calls use the base URL:

https://api.offermaru.com
        

Authentication is done via an api_key query parameter. You can find it in the app’s API Integration section.

GET /getOffers?api_key=YOUR_API_KEY&app_id=APP_ID&user_id=USER_ID&ip=USER_IP
Host: api.offermaru.com
        

Keep your API key secret, and only use it on trusted backend servers.

GET /getOffers

Fetch available offers for a specific user. Use the response to build your own offer list UI.

HTTP request

GET https://api.offermaru.com/getOffers
  ?api_key=YOUR_API_KEY
  &app_id=APP_ID
  &user_id=USER_ID
  &ip=USER_IP_ADDRESS
  [&platforms=android,ios]
  [&gaid=GAID_VALUE]
        
Parameter Type Required Description
api_key string Yes Your API key from app settings page.
app_id string Yes App ID (e.g. 12568).
user_id string Yes Your internal user identifier. Returned back in callbacks.
ip string Yes IP address of the user (IPv4 or IPv6). Used for geo-targeting and compliance.
platforms string No Comma-separated list of platforms to include, e.g. android, ios or android,ios. If omitted, all platforms will be included.
gaid string No Google Advertising ID (GAID) for Android, if available.

Response schema

Successful responses return JSON with an offers array.

{
  "offers": [
    {
      "id": "offer-123",
      "name": "Test Offer",
      "icon_url": "URL of offer icon",
      "max_reward": 50,
      "platform": "android",
      "summary": "Complete tasks in Test Offer to earn multiple rewards!",
      "promo_images_urls": [
        "URL of offer promotional image"
      ],
      "tasks": [
        {
          "id": "task-1",
          "description": "Complete 5 levels",
          "reward": 50
        }
      ],
      "offer_url": "URL of offer"
    }
  ]
}
        

Each field:

  • id - Offer ID used internally and in future APIs.
  • name - Offer name to display to user.
  • icon_url - Offer icon to display in your UI.
  • max_reward - Maximum total reward user can earn from this offer in your in-app currency.
  • platform - Target platform (e.g. android).
  • summary - Short description for the offer.
  • promo_images_urls - Optional additional screenshots / creatives.
  • tasks - Array of task steps; each has id, description and reward.
  • offer_url - URL you open when the user taps “Start Offer” in your UI.

All reward values are already converted to your configured app currency (“Reward Per $1 You Earn” in the dashboard).

Code examples

Below is an example for calling getOffers. Adapt it to your framework and error-handling style.

Node.js – getOffers

// Using fetch (Node 18+)
const API_KEY = "YOUR_API_KEY";
const APP_ID = "YOUR_APP_ID";

async function getOffers(userId, ip) {
  const params = new URLSearchParams({
    api_key: API_KEY,
    app_id: APP_ID,
    user_id: userId,
    ip,
    platforms: "android,ios",
  });

  const res = await fetch("https://api.offermaru.com/getOffers?" + params.toString());
  if (!res.ok) throw new Error("getOffers failed: " + res.status);
  const data = await res.json();
  return data.offers;
}
            

Server-to-server callbacks

The S2S callbacks are the same whether you use the Offerwall URL or the API.

For a detailed guide on S2S callbacks, see the S2S Callbacks Guide.

Future endpoints

The current public API focuses on fetching offers. Additional endpoints such as:

  • User progress / started offers
  • Offer details by ID
  • Reporting (daily stats, country breakdown, etc.)

will be added in the future.