Docs

Offers API

Manage reusable retention offers via API.

List Offers

GET /api/v1/public/offers
Authorization: Bearer rq_live_xxx

# Response
{
  "offers": [
    {
      "id": "uuid",
      "name": "20% Off for 3 Months",
      "offer_type": "discount_percentage",
      "offer_value": "20%",
      "offer_duration": "3 months",
      "heading": "Wait! Here's a special deal",
      "cta_accept": "Claim 20% Off",
      "cta_decline": "No thanks"
    }
  ]
}

Create Offer

POST /api/v1/public/offers
Authorization: Bearer rq_live_xxx
Content-Type: application/json

{
  "name": "Pause 1 Month",
  "offer_type": "pause_subscription",
  "offer_value": "1 month free",
  "offer_duration": "1 month",
  "heading": "Take a break instead",
  "body": "We'll pause your account — no charge.",
  "cta_accept": "Pause My Account",
  "cta_decline": "Continue cancelling"
}

# Response (201)
{ "id": "uuid", "name": "Pause 1 Month" }

Offer Types

TypeDescription
discount_percentagePercentage off (e.g. 20%)
discount_fixedFixed amount off (e.g. $10)
pause_subscriptionPause billing for a period
trial_extensionExtend trial period
customCustom offer type

Update Offer

PUT /api/v1/public/offers/:id
Authorization: Bearer rq_live_xxx
Content-Type: application/json

{ "offer_value": "25%", "heading": "Even better deal!" }

# Response
{ "updated": true, "id": "uuid" }

Delete (Archive) Offer

DELETE /api/v1/public/offers/:id
Authorization: Bearer rq_live_xxx

# Response
{ "archived": true, "id": "uuid" }