Bulk Enable
BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog
const url = 'https://app.stoqapp.com/api/v2/external/preorders/offers/bulk_enable';const options = { method: 'POST', headers: {'X-Auth-Token': '<X-Auth-Token>', 'Content-Type': 'application/json'}, body: '{"ids":"string","update_inventory_policy":"2026-07-01T00:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.stoqapp.com/api/v2/external/preorders/offers/bulk_enable \ --header 'Content-Type: application/json' \ --header 'X-Auth-Token: <X-Auth-Token>' \ --data '{ "ids": "string", "update_inventory_policy": "2026-07-01T00:00:00Z" }'Turn many preorder offers on at once, as the Offers list’s bulk Enable does. Optionally flip the attached variants’ inventory policy to CONTINUE.
Note: ids are offer ids. Each offer is turned on as the dashboard’s bulk Enable does: a scheduled offer starts now (its start date is cleared, an end date is kept). An offer that cannot be turned on (for example the plan’s offer limit) is counted in failed with its reason in failed_errors; the others still turn on. update_inventory_policy: true also sets every attached variant of the STOQ-inventory offers to “Continue selling when out of stock”, as the bulk Enable dialog’s Continue selling choice does; offers with more than 250 variants are flipped in the background.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
{ "ids": "string", "update_inventory_policy": "2026-07-01T00:00:00Z"}Responses
Section titled “Responses”Success — the updated resource.
object
Example generated
{}Accepted — async/bulk work was queued. Poll the returned job.
Returned for async/bulk work — poll the job until it reaches a terminal state.
object
Example
{ "job_id": "job_a1b2c3", "status_url": "/api/v2/external/jobs/job_a1b2c3"}Missing or invalid X-Auth-Token.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Unauthorized" ]}The request failed validation.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "name is required" ]}Rate limited — cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Rate limit exceeded" ]}Thanks for letting us know.
Still stuck? Ask Quinn or chat with support