Publisher Partner API

GET /api/v1/publishers/:platformId/redemptions

Returns row-level redemption events for a publisher platform, enriched with device and location context.


Path Parameters

ParameterTypeDescription
platformIdstringThe platform ID for your publisher

Authentication

Pass your API key in the Authorization header:

Authorization: <your-api-key>


Query Parameters

ParameterTypeRequiredDefaultConstraintsDescription
startDatestringYesFormat: YYYY-MM-DDStart of date range (inclusive, UTC)
endDatestringYesFormat: YYYY-MM-DDEnd of date range (inclusive, UTC)
limitintegerNo100Min: 1, Max: 500Number of rows to return
offsetintegerNo0Min: 0Pagination offset

Response

type RedemptionsResponse = {
  data: RedemptionRow[];
  pagination: {
    totalRecords: number;
    limit:        number;
    offset:       number;
  };
};

Example Request

curl "https://api.thanks.is/api/v1/publishers/plat62bb7b60-74da-4ffa-8c11-af982323/redemptions?startDate=2026-03-30&endDate=2026-03-30&limit=5" \
  -H "Authorization: <your-api-key>"

Example Response

{
  "data": [
    {
      "sessionId": "impwUSA3d882479429ae3039cc901af0",
      "profileId": "cpc:camp97226512-9048-4324-92b7-f6aad6d6:uf-cookie-missing:89",
      "anonymousId": "cpc:camp97226512-9048-4324-92b7-f6aad6d6:uf-cookie-missing:89",
      "timestamp": "2026-03-30 00:03:35.777",
      "name": "conversion",
      "publisherId": "plat62bb7b60-74da-4ffa-8c11-af982323",
      "offerId": "camp97226512-9048-4324-92b7-f6aad6d6",
      "type": "reward-allocation",
      "status": "approved",
      "commission": "0.1",
      "deviceType": "Desktop",
      "os": "Mac OS X",
      "browser": "Chrome",
      "stateName": "California",
      "cityName": "Chula Vista",
      "country": ""
    }
  ],
  "pagination": {
    "totalRecords": 1565,
    "limit": 5,
    "offset": 0
  }
}

Error Responses

StatusDescription
400Missing or invalid query parameters (see response body for details)
401Missing or invalid API key

Notes

  • Timestamps are in UTC.
  • deviceType, os, and browser may be null for events where no matching impression session was found.
  • country may be an empty string for some events depending on data availability.
  • Results are ordered by timestamp ascending.
  • To paginate through all records, increment offset by limit until offset >= totalRecords.