Offers
List Offers
Returns paginated coupons and deals across all campaigns. Filter by search query, campaign, category, or validity date. Offers are not user-scoped — all publishers see the same live offers.
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
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.