Skip to content

Disable an offer

API v2 is in public beta: endpoints and fields can change before general availability. See the changelog

POST/preorders/offers/{id}/disable

Costs 2 rate-limit points · Rate limits

Turn a preorder offer off. A scheduled or dated offer has its schedule cleared, as the dashboard does. Optionally flip attached variants' inventory policy back to DENY.

Variants are left at their existing inventory policy unless update_inventory_policy: true is passed. On a scheduled or dated offer, disable removes the schedule (schedule.start and schedule.end are cleared), so the offer stays off instead of starting on its start date. To turn it on later, call enable or set a new schedule.

Also searched aspauseturn offdeactivatestop offerend preorderdisable and stop oversellingclose out preorder

Path parameters

  • idstringRequired

Headers

  • Idempotency-Keystring

    A fresh unique key for every write (a new UUID, say); reuse it only to retry that write. Keys are remembered for 1 hour: the same key and the same request within that hour returns the first result, with Idempotent-Replayed: true, without running again; the same key with a different method, path or body is refused (422 idempotency_key_reused); a retry while the first is still running gets 409 idempotency_key_in_progress. Keys are per store. Server errors and rate limits are not kept, so their retry runs.

Request body

  • update_inventory_policyboolean
    Example: true
  • shopify_variant_idsany

Returns

  • idstring
    Example: 73a74948-2b57-4cc3-971f-2b441828c977
  • namestring
    Example: Summer Sneaker Drop
  • internal_namestring
    Example: summer-2026
  • availabilityobject
    Show 4 child attributesHide child attributes
    • schedulestring
      Example: disabled
    • starts_atany
    • ends_atany
    • current_statusstring
      Example: disabled
  • updated_atstring
    Example: 2026-06-25T12:15:20Z

Errors

401

Missing or invalid X-Auth-Token.

404

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

409

Invalid lifecycle transition: read the message; don't retry blindly. Also returned while an earlier request with the same Idempotency-Key is still running.

422

The request failed validation.

429

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

Every error has the same shape: see Errors.

POST/preorders/offers/{id}/disable
curl -X POST "https://app.stoqapp.com/api/v2/external/preorders/offers/73a74948-2b57-4cc3-971f-2b441828c977/disable" \
  -H "X-Auth-Token: $STOQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "update_inventory_policy": true
  }'
Response
{
  "id": "73a74948-2b57-4cc3-971f-2b441828c977",
  "name": "Summer Sneaker Drop",
  "internal_name": "summer-2026",
  "availability": {
    "schedule": "disabled",
    "starts_at": null,
    "ends_at": null,
    "current_status": "disabled"
  },
  "updated_at": "2026-06-25T12:15:20Z"
}