---
title: "Retrieve an offer"
description: "Read a preorder offer's full representation."
url: https://docs.stoqapp.com/v2-reference/preorders-offers/retrieve-an-offer/
api: "API v2 reference"
method: GET
path: "/preorders/offers/{id}"
---

# Retrieve an offer

`GET https://app.stoqapp.com/api/v2/external/preorders/offers/{id}`

Read a preorder offer's full representation.

## Path parameters

- `id` (string, required)

## Query parameters

- `locale` (string)

## Returns

- `id` (string): e.g. `73a74948-2b57-4cc3-971f-2b441828c977`
- `shopify_selling_plan_group_id` (string): e.g. `gid://shopify/SellingPlanGroup/100`
- `name` (string): e.g. `Summer Sneaker Drop`
- `internal_name` (string): e.g. `summer-2026`
- `widget` (object)
  - `button` (object)
    - `button_text` (string): e.g. `Preorder Now`
    - `custom_colors_enabled` (boolean): e.g. `true`
    - `text_color` (string): e.g. `#ffffff`
    - `background_color` (string): e.g. `#8700d3`
  - `disclaimer` (object)
    - `show_disclaimer` (boolean): e.g. `true`
    - `disclaimer_text` (string): e.g. `Expected to ship by August 2026`
    - `text_color` (string): e.g. `#FFFFFF`
    - `background_color` (string): e.g. `#1F2937`
    - `border_radius` (integer): e.g. `4`
  - `badge` (object)
    - `show_badge` (boolean): e.g. `true`
    - `badge_text` (string): e.g. `Pre-Order`
    - `text_color` (string): e.g. `#FFFFFF`
    - `background_color` (string): e.g. `#000000`
- `inventory` (object)
  - `stock_condition` (string): e.g. `out_of_stock`
  - `reserve` (string): e.g. `on_sale`
- `products` (object)
  - `selection` (string): e.g. `custom`
  - `shopify_collection_id` (any)
  - `tags` (array of anys)
  - `eligible_inventory_policy` (string): e.g. `all`
  - `excluded_shopify_variant_ids` (array of anys)
  - `exclusion_tag` (any)
- `shipping` (object)
  - `timeline` (object)
    - `scope` (string): e.g. `same`
    - `show_shipping_text` (boolean): e.g. `true`
    - `shipping_text` (string): e.g. `Shipping: As soon as possible`
    - `variant_shipping_text` (string): e.g. `ASAP`
  - `delivery_timing` (string): e.g. `asap`
  - `ships_at` (any)
  - `days_after_checkout` (any)
  - `fulfillment` (object)
    - `handling` (string): e.g. `none`
    - `hold_reason` (string): e.g. `Order contains a preorder product. All fulfillments are o…`
    - `separate_orders` (object)
      - `grouping` (string): e.g. `offer`
      - `number_format` (string): e.g. `suffix`
      - `suffix` (string): e.g. `SPLIT`
      - `hold_fulfillments` (boolean): e.g. `false`
      - `tag` (string): e.g. `STOQ-split-order`
      - `transaction_gateway` (string): e.g. `Prepaid`
      - `original_order_hold_tag` (any)
      - `original_order_split_tag` (any)
  - `on_hold` (object)
    - `release_schedule` (string): e.g. `manual`
    - `release_at` (any)
    - `require_payment` (boolean): e.g. `false`
- `payments` (object)
  - `options_offered` (string): e.g. `full`
  - `default_option` (string): e.g. `full`
  - `full` (object)
    - `selling_plan_id` (string): e.g. `gid://shopify/SellingPlan/101`
    - `checkout_charge` (object)
      - `charge_type` (string): e.g. `percentage`
      - `charge_amount` (integer): e.g. `100`
    - `remaining_balance` (object)
      - `charge_trigger` (string): e.g. `no_remaining_balance`
      - `charge_exact_time` (any)
      - `days_after_checkout` (any)
    - `price_adjustment` (object)
      - `adjustment_type` (any)
      - `adjustment_amount` (any)
    - `option_title` (string): e.g. `Full payment`
    - `option_description` (string): e.g. `Pay the full price now`
    - `discount_text` (string): e.g. `Save {{ discount }}`
  - `collection_schedule` (string): e.g. `manual`
  - `show_payment_widget` (boolean): e.g. `false`
  - `show_discounted_price` (any)
  - `currency_code` (string): e.g. `USD`
- `availability` (object)
  - `schedule` (string): e.g. `enabled`
  - `starts_at` (any)
  - `ends_at` (any)
  - `current_status` (string): e.g. `live`
- `limits` (object)
  - `default_per_variant` (any)
  - `display_style` (string): e.g. `none`
  - `limit_text` (string): e.g. `{{ quantity }} units available for preorder`
  - `show_icons` (boolean): e.g. `true`
  - `progress_bar` (object)
    - `progress_text` (string): e.g. `{{ sold }} of {{ total }} claimed`
    - `fill_color` (string): e.g. `#ffffff`
    - `background_color` (string): e.g. `#e5e5e5`
    - `box_background_color` (any)
    - `text_color` (string): e.g. `#ffffff`
    - `border_radius` (integer): e.g. `4`
    - `show_percentage` (boolean): e.g. `false`
  - `order_tags` (array of strings)
  - `terms` (object)
    - `require_acceptance` (boolean): e.g. `false`
    - `terms_text` (string): e.g. `I acknowledge and agree to the preorder terms and conditi…`
    - `disable_button_until_accepted` (boolean): e.g. `false`
    - `record_acceptance` (boolean): e.g. `false`
    - `acceptance_label` (string): e.g. `Preorder Terms Accepted`
  - `cart` (object)
    - `allowed_items` (string): e.g. `mixed`
    - `error_message` (string): e.g. `Preorders must be purchased separately from regular items…`
  - `order_quantity` (object)
    - `minimum` (any)
    - `maximum` (any)
- `countdown` (object)
  - `show_when` (string): e.g. `disabled`
  - `date_source` (string): e.g. `schedule`
  - `starts_at` (any)
  - `ends_at` (any)
  - `starts_text` (any)
  - `ends_text` (any)
  - `labels` (object)
    - `days` (string): e.g. `Days`
    - `hours` (string): e.g. `Hours`
    - `minutes` (string): e.g. `Mins`
    - `seconds` (string): e.g. `Secs`
  - `text_color` (string): e.g. `#000000`
  - `background_color` (string): e.g. `#f5f5f5`
  - `border_radius` (integer): e.g. `8`
  - `units` (array of strings)
  - `current` (object)
    - `visible_phase` (string): e.g. `hidden`
    - `target_at` (any)
    - `heading_text` (any)
- `markets` (object)
  - `scope` (string): e.g. `all`
  - `shopify_market_ids` (array of anys)
- `advanced` (object)
  - `checkout_method` (string): e.g. `selling_plan`
  - `cart_attributes` (object)
    - `show_payment` (boolean): e.g. `false`
    - `show_shipping` (boolean): e.g. `true`
    - `custom_text` (any)
- `integrations` (object)
  - `pos` (object)
    - `enable_pos` (boolean): e.g. `true`
    - `inventory_check` (string): e.g. `required`
  - `b2b` (object)
    - `enable_b2b` (boolean): e.g. `true`
- `batches` (object)
  - `release_strategy` (string): e.g. `all_at_once`
  - `advance_schedule` (string): e.g. `automatic`
  - `label_format` (string): e.g. `Batch {{ n }}`
  - `status_text` (object)
    - `past` (string): e.g. `Sold out`
    - `live` (string): e.g. `Live`
    - `upcoming` (string): e.g. `Coming soon`
  - `widget` (object)
    - `style` (string): e.g. `roadmap`
    - `progress` (string): e.g. `counts`
    - `show_other_ship_dates` (boolean): e.g. `true`
    - `show_names` (boolean): e.g. `false`
  - `items` (array of anys)
- `translations` (object)
- `created_at` (string): e.g. `2026-06-25T10:30:45Z`
- `updated_at` (string): e.g. `2026-06-25T11:45:30Z`

Rate limit: this call costs 1 point ([rate limits](https://docs.stoqapp.com/docs/rate-limits/)).

## Examples

### Retrieve an offer

```sh
curl "https://app.stoqapp.com/api/v2/external/preorders/offers/73a74948-2b57-4cc3-971f-2b441828c977" \
  -H "X-Auth-Token: $STOQ_API_KEY"
```

### Retrieve an offer filtered by locale

```sh
curl "https://app.stoqapp.com/api/v2/external/preorders/offers/73a74948-2b57-4cc3-971f-2b441828c977?locale=fr" \
  -H "X-Auth-Token: $STOQ_API_KEY"
```

## 200

Success: example response shown.

```json
{
  "id": "73a74948-2b57-4cc3-971f-2b441828c977",
  "shopify_selling_plan_group_id": "gid://shopify/SellingPlanGroup/100",
  "name": "Summer Sneaker Drop",
  "internal_name": "summer-2026",
  "widget": {
    "button": {
      "button_text": "Preorder Now",
      "custom_colors_enabled": true,
      "text_color": "#ffffff",
      "background_color": "#8700d3"
    },
    "disclaimer": {
      "show_disclaimer": true,
      "disclaimer_text": "Expected to ship by August 2026",
      "text_color": "#FFFFFF",
      "background_color": "#1F2937",
      "border_radius": 4
    },
    "badge": {
      "show_badge": true,
      "badge_text": "Pre-Order",
      "text_color": "#FFFFFF",
      "background_color": "#000000"
    }
  },
  "inventory": {
    "stock_condition": "out_of_stock",
    "reserve": "on_sale"
  },
  "products": {
    "selection": "custom",
    "shopify_collection_id": null,
    "tags": [],
    "eligible_inventory_policy": "all",
    "excluded_shopify_variant_ids": [],
    "exclusion_tag": null
  },
  "shipping": {
    "timeline": {
      "scope": "same",
      "show_shipping_text": true,
      "shipping_text": "Shipping: As soon as possible",
      "variant_shipping_text": "ASAP"
    },
    "delivery_timing": "asap",
    "ships_at": null,
    "days_after_checkout": null,
    "fulfillment": {
      "handling": "none",
      "hold_reason": "Order contains a preorder product. All fulfillments are on hold, as configured in STOQ > Preorders.",
      "separate_orders": {
        "grouping": "offer",
        "number_format": "suffix",
        "suffix": "SPLIT",
        "hold_fulfillments": false,
        "tag": "STOQ-split-order",
        "transaction_gateway": "Prepaid",
        "original_order_hold_tag": null,
        "original_order_split_tag": null
      }
    },
    "on_hold": {
      "release_schedule": "manual",
      "release_at": null,
      "require_payment": false
    }
  },
  "payments": {
    "options_offered": "full",
    "default_option": "full",
    "full": {
      "selling_plan_id": "gid://shopify/SellingPlan/101",
      "checkout_charge": {
        "charge_type": "percentage",
        "charge_amount": 100
      },
      "remaining_balance": {
        "charge_trigger": "no_remaining_balance",
        "charge_exact_time": null,
        "days_after_checkout": null
      },
      "price_adjustment": {
        "adjustment_type": null,
        "adjustment_amount": null
      },
      "option_title": "Full payment",
      "option_description": "Pay the full price now",
      "discount_text": "Save {{ discount }}"
    },
    "collection_schedule": "manual",
    "show_payment_widget": false,
    "show_discounted_price": null,
    "currency_code": "USD"
  },
  "availability": {
    "schedule": "enabled",
    "starts_at": null,
    "ends_at": null,
    "current_status": "live"
  },
  "limits": {
    "default_per_variant": null,
    "display_style": "none",
    "limit_text": "{{ quantity }} units available for preorder",
    "show_icons": true,
    "progress_bar": {
      "progress_text": "{{ sold }} of {{ total }} claimed",
      "fill_color": "#ffffff",
      "background_color": "#e5e5e5",
      "box_background_color": null,
      "text_color": "#ffffff",
      "border_radius": 4,
      "show_percentage": false
    },
    "order_tags": [
      "STOQ-preorder"
    ],
    "terms": {
      "require_acceptance": false,
      "terms_text": "I acknowledge and agree to the preorder terms and conditions for this product.",
      "disable_button_until_accepted": false,
      "record_acceptance": false,
      "acceptance_label": "Preorder Terms Accepted"
    },
    "cart": {
      "allowed_items": "mixed",
      "error_message": "Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue."
    },
    "order_quantity": {
      "minimum": null,
      "maximum": null
    }
  },
  "countdown": {
    "show_when": "disabled",
    "date_source": "schedule",
    "starts_at": null,
    "ends_at": null,
    "starts_text": null,
    "ends_text": null,
    "labels": {
      "days": "Days",
      "hours": "Hours",
      "minutes": "Mins",
      "seconds": "Secs"
    },
    "text_color": "#000000",
    "background_color": "#f5f5f5",
    "border_radius": 8,
    "units": [
      "days",
      "hours",
      "minutes",
      "seconds"
    ],
    "current": {
      "visible_phase": "hidden",
      "target_at": null,
      "heading_text": null
    }
  },
  "markets": {
    "scope": "all",
    "shopify_market_ids": []
  },
  "advanced": {
    "checkout_method": "selling_plan",
    "cart_attributes": {
      "show_payment": false,
      "show_shipping": true,
      "custom_text": null
    }
  },
  "integrations": {
    "pos": {
      "enable_pos": true,
      "inventory_check": "required"
    },
    "b2b": {
      "enable_b2b": true
    }
  },
  "batches": {
    "release_strategy": "all_at_once",
    "advance_schedule": "automatic",
    "label_format": "Batch {{ n }}",
    "status_text": {
      "past": "Sold out",
      "live": "Live",
      "upcoming": "Coming soon"
    },
    "widget": {
      "style": "roadmap",
      "progress": "counts",
      "show_other_ship_dates": true,
      "show_names": false
    },
    "items": []
  },
  "translations": {},
  "created_at": "2026-06-25T10:30:45Z",
  "updated_at": "2026-06-25T11:45:30Z"
}
```

## 401

Missing or invalid `X-Auth-Token`.

```json
{
  "errors": [
    "Invalid API key"
  ],
  "code": "auth_invalid",
  "details": [
    {
      "code": "auth_invalid",
      "message": "Invalid API key",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

## 404

The resource does not exist for this shop, or the action path is not registered.

```json
{
  "errors": [
    "Offer not found"
  ],
  "code": "not_found",
  "details": [
    {
      "code": "not_found",
      "message": "Offer not found",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

## 422

The request failed validation.

```json
{
  "errors": [
    "name is required"
  ],
  "code": "validation_failed",
  "details": [
    {
      "code": "validation_failed",
      "message": "name is required",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

## 429

Rate limited: cost-weighted per token (read 1, write 2; 360 points / 60s). Check `Retry-After`.

```json
{
  "errors": [
    "Rate limit exceeded"
  ],
  "code": "rate_limited",
  "details": [
    {
      "code": "rate_limited",
      "message": "Rate limit exceeded",
      "path": null,
      "value": null,
      "expected": null
    }
  ]
}
```

