GET /pub_api/v3/offers read:offers
Query parameters
q
string
Search by offer title, campaign name, or merchant name (case-insensitive).
campaign_id
integer
Filter by campaign ID.
category_ids[]
integer[]
Filter by category IDs. Repeat param for multiple: category_ids[]=8&category_ids[]=12. Categories use the same taxonomy as campaigns — fetch the full list of IDs and names from List Categories.
offer_type
string
Filter by offer kind. coupon returns only offers that carry a coupon code; deal returns only offers without one. Any other value is ignored (returns all).
channel_id
integer
Channel ID to embed in tracking URLs. Falls back to your default channel.
valid_on
date (YYYY-MM-DD)
Return offers valid on this date. Default: today.
sort
string
Sort field: id (default), start_date, end_date, created_at.
order
string
asc or desc (default).
page
integer
Page number. Default: 1.
per_page
integer
Results per page. Default 30, max 500.
Response fields
FieldTypeDescription
data[].id integer Offer ID.
data[].title string Offer headline.
data[].description string | null Plain-text description (HTML stripped).
data[].terms string | null Terms and conditions (HTML stripped).
data[].coupon_code string | null Coupon/promo code, if any.
data[].offer_type string coupon when the offer has a coupon code, otherwise deal. Filterable via the offer_type query param.
data[].campaign_id integer Associated campaign ID.
data[].campaign_name string Campaign display name.
data[].categories array Array of {id, name} objects.
data[].tracking_url string | null Affiliate tracking URL with your channel embedded.
data[].status string Always live (non-live offers are excluded).
data[].start_date string Offer validity start (YYYY-MM-DD).
data[].end_date string Offer validity end (YYYY-MM-DD).
data[].original_price number | null Original price before discount.
data[].discount_price number | null Price after discount.
data[].percent_off number | null Discount percentage.
data[].shipping_charge string | null Shipping charge info, if any.
data[].created_at string ISO 8601 timestamp.
data[].updated_at string ISO 8601 timestamp.
meta object Pagination: page, per_page, total, total_pages, next_page, prev_page.
Request
curl https://developers.cuelinks.com/pub_api/v3/offers \
  -H "Authorization: Token YOUR_API_KEY" \
  -G \
  -d "campaign_id=4821"
200 OK 200
{
  "data": [
    {
      "id": 1234,
      "title": "10% Off + Free Shipping on Orders Above Rs.999",
      "description": "Get 10% off on all products...",
      "terms": "Minimum order Rs.999. Not valid on...",
      "coupon_code": "MIXF10",
      "offer_type": "coupon",
      "campaign_id": 4821,
      "campaign_name": "HealthKart",
      "categories": [
        { "id": 8, "name": "Health & Beauty" }
      ],
      "tracking_url": "https://clnk.in/?cid=3424&source=api&url=https%3A%2F%2F...",
      "status": "live",
      "start_date": "2026-01-01",
      "end_date": "2026-03-31",
      "original_price": 999.0,
      "discount_price": 899.0,
      "percent_off": 10.0,
      "shipping_charge": null,
      "created_at": "2026-01-15T08:00:00Z",
      "updated_at": "2026-03-20T12:00:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 30,
    "total": 5100,
    "total_pages": 170,
    "next_page": 2,
    "prev_page": null
  }
}
💡
Tip — valid_on
By default, only offers valid today are returned. Pass valid_on=2026-04-15 to see offers that will be active on a future date, or a past date to retrieve historical offers.