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.