Home Why FluxOffer Partners FAQ Contact
Developer Docs

FluxOffer API Reference

Integrate your tracker, pull live stats, manage campaigns, and automate reporting with the FluxOffer RESTful API.

Overview

The FluxOffer API provides programmatic access to your affiliate account data, offer inventory, and real-time conversion tracking. All API access is via HTTPS and responses are returned in JSON format.

Base URL: https://api.fluxoffer.com/v1

🔒
Secure
TLS 1.3 encryption on all endpoints. API keys are scoped by permission.
Real-Time
Stats refresh every 60 seconds. Postback delivery under 500ms.
📄
RESTful JSON
Standard REST architecture. All responses in JSON with consistent structure.

Authentication

All API requests must include your API key in the request header. You can generate and manage API keys from your FluxOffer dashboard under Account → API Access.

GET /v1/offers HTTP/1.1
Host: api.fluxoffer.com
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

⚠️ Never expose your API key in client-side code. Keep it server-side and rotate it periodically. Contact your affiliate manager if you believe your key has been compromised.

API Key Scopes

  • read:offers — Browse and search available offers
  • read:stats — Pull campaign statistics and reports
  • read:conversions — Access conversion logs and details
  • write:postback — Configure postback URLs and S2S pixels

Rate Limits

The API enforces rate limits to ensure fair use and platform stability. Limits are applied per API key.

  • Standard tier: 1,000 requests per hour
  • Premium tier (top affiliates): 10,000 requests per hour
  • Burst limit: 100 requests per minute

When a rate limit is exceeded, the API returns a 429 Too Many Requests status. The response header X-RateLimit-Reset contains a Unix timestamp indicating when the limit resets. To request a higher rate limit, contact support@fluxoffer.com.

Error Codes

FluxOffer uses conventional HTTP response codes to indicate success or failure. Errors return a JSON body with a code and human-readable message.

{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid or has been revoked.",
    "status": 401
  }
}
  • 200 OK — Request succeeded
  • 400 Bad Request — Missing or invalid parameters
  • 401 Unauthorized — Invalid or missing API key
  • 403 Forbidden — Key lacks required scope
  • 404 Not Found — Resource does not exist
  • 429 Too Many Requests — Rate limit exceeded
  • 500 Internal Server Error — Server-side error; retry with exponential backoff

Offers

Retrieve available offers, filter by GEO, payout type, and vertical. Use this endpoint to populate your tracker's offer list automatically.

GET /v1/offers

Returns a paginated list of all offers available to your account. Supports filtering and sorting.

ParameterTypeDescription
geooptionalstringISO 3166-1 alpha-2 country code to filter offers (e.g. US, DE)
payout_typeoptionalstringFilter by payout model: cpa, cpl, revshare
statusoptionalstringFilter by status: active (default), paused, all
pageoptionalintegerPage number for pagination. Default: 1
per_pageoptionalintegerResults per page. Max 100. Default: 25
// Example Response
{
  "data": [
    {
      "id": "offer_8821",
      "name": "LoveMate Pro US",
      "vertical": "dating",
      "payout": 8.50,
      "payout_type": "cpa",
      "geo": ["US"],
      "status": "active",
      "preview_url": "https://track.fluxoffer.com/click/8821",
      "creatives_count": 14,
      "epc_avg": 8.42
    }
  ],
  "meta": {
    "total": 154,
    "page": 1,
    "per_page": 25
  }
}
GET /v1/offers/{offer_id}

Returns full details of a single offer including all GEOs, creatives, tracking parameters, and payout tiers.

ParameterTypeDescription
offer_idrequiredstringUnique offer identifier from the list endpoint

Statistics

Pull granular performance data across your campaigns. All stats are refreshed every 60 seconds. Breakdowns are available by GEO, sub-ID, device, and offer.

GET /v1/stats

Retrieve campaign statistics for a given date range. Aggregated or broken down by multiple dimensions.

ParameterTypeDescription
date_fromrequiredstringStart date in YYYY-MM-DD format
date_torequiredstringEnd date in YYYY-MM-DD format
group_byoptionalstringComma-separated dimensions: date, offer, geo, sub1sub5, device, os
offer_idoptionalstringFilter stats to a specific offer ID
// Example Response
{
  "data": [
    {
      "date": "2025-06-18",
      "offer_id": "offer_8821",
      "geo": "US",
      "clicks": 4820,
      "conversions": 63,
      "cvr": 1.31,
      "revenue": 535.50,
      "epc": 8.42
    }
  ]
}

Conversions

Access your raw conversion log for verification, reconciliation, and advanced analysis. Each record contains full tracking metadata.

GET /v1/conversions

Returns a paginated list of conversion events in descending chronological order.

ParameterTypeDescription
date_fromrequiredstringStart date in YYYY-MM-DD format
date_torequiredstringEnd date in YYYY-MM-DD format
statusoptionalstringapproved, pending, rejected, or all
offer_idoptionalstringFilter by specific offer

Postback / S2S Setup

Configure server-to-server postback URLs via API to automate your tracking setup across multiple campaigns. Supported trackers include Voluum, Binom, RedTrack, Bemob, and Keitaro.

POST /v1/postbacks

Register a global or offer-specific postback URL that FluxOffer will fire upon a confirmed conversion.

ParameterTypeDescription
urlrequiredstringYour postback endpoint URL. Supports macros: {click_id}, {payout}, {offer_id}, {geo}, {sub1}{sub5}
offer_idoptionalstringScope postback to a specific offer. Omit for global postback.
eventoptionalstringTrigger event: conversion (default), approved, rejected
// Example Request Body
{
  "url": "https://mytracker.com/postback?cid={click_id}&payout={payout}&geo={geo}",
  "offer_id": "offer_8821",
  "event": "approved"
}

// Example Response
{
  "postback_id": "pb_44120",
  "status": "active",
  "created_at": "2025-06-18T14:32:00Z"
}

Need help setting up postbacks? Contact your dedicated manager on Telegram @fluxoffer or email support@fluxoffer.com — we typically respond within 30 minutes.