---
title: "Retrieve an offer"
method: GET
path: "/offers/{id}"
tags: ["offers"]
---

# Retrieve an offer

`GET /offers/{id}`

## Path parameters

- `id` string, required

## Response `200`

OK

- Offer
  - `id` string, required
  - `type` 'change_frequency' | 'change_plan' | 'coupon' | 'custom' | 'downgrade' | 'dunning' | 'free_gift' | 'modify_subscription' | 'pause_subscription' | 'product_swap' | 'purchase' | 'reactivate' | 'reschedule_order' | 'trial_extension' | 'upgrade', required
  - `goal` 'retention' | 'conversion' | 'reactivation', required
  - `context` 'cancellation_flow' | 'conversion_campaign' | 'landing_page', required
  - `name` string, required
  - `details` union, required
    - ChangeFrequencyOfferDetails
      - `type` 'change_frequency', required
      - `interval` 'day' | 'week' | 'month' | 'year', required
      - `interval_count` number, required
      - `metadata` object, required
      - `options` object[], required — All available change-frequency options for this offer
        - `interval` 'day' | 'week' | 'month' | 'year', required
        - `interval_count` number, required
        - `metadata` object, required
    - ChangePlanOfferDetails
      - `type` 'change_plan', required
      - `platform_plan_id` string, required
      - `prorate` boolean, required
      - `platform_coupon_id` string, nullable, required
    - CouponOfferDetails
      - `type` 'coupon', required
      - `coupon_type` 'percentage' | 'fixed', required
      - `amount_off` string, required
      - `duration` 'once' | 'forever' | 'repeating', required
      - `months` number, nullable, required
      - `apply_to` 'subscription' | 'subscriber', required
      - `platform_coupon_id` string, nullable, required
    - CustomOfferDetails
      - `type` 'custom', required
    - DowngradeOfferDetails
      - `type` 'downgrade', required
    - DunningOfferDetails
      - `type` 'dunning', required
    - FreeGiftOfferDetails
      - `type` 'free_gift', required
      - `platform_variant_id` string, nullable, required — Platform-specific identifier of the product variant offered as the free gift
    - ModifySubscriptionOfferDetails
      - `type` 'modify_subscription', required
      - `modifications` object[], required — Modifications applied to the subscription when the offer is accepted
        - `action` 'add_plan' | 'remove_plan' | 'add_add_on' | 'remove_add_on', required
        - `platform_plan_id` string, nullable, required — Platform-specific identifier of the plan or add-on affected by this modification
    - PauseSubscriptionOfferDetails
      - `type` 'pause_subscription', required
      - `interval` 'day' | 'week' | 'month' | 'indefinitely' | 'billing_cycle', required
      - `interval_count` number, required
      - `pause_at` 'immediately' | 'period_end', required
      - `metadata` object, required
      - `options` object[], required — All available pause options for this offer
        - `interval` 'day' | 'week' | 'month' | 'indefinitely' | 'billing_cycle', required
        - `interval_count` number, required
        - `metadata` object, required
    - ProductSwapOfferDetails
      - `type` 'product_swap', required
    - PurchaseOfferDetails
      - `type` 'purchase', required
    - ReactivateOfferDetails
      - `type` 'reactivate', required
    - RescheduleOrderOfferDetails
      - `type` 'reschedule_order', required
    - TrialExtensionOfferDetails
      - `type` 'trial_extension', required
      - `days` number, required
    - UpgradeOfferDetails
      - `type` 'upgrade', required
  - `metadata` object, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401` — Error
- `404` — Error

---

[API](https://skmtc.dev/prosperstack/apis/prosperstack-api-reference.md) · [All operations](https://skmtc.dev/prosperstack/apis/prosperstack-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prosperstack/prosperstack-api-reference/revisions/407ea9202622/schema)
