Skip to content

Update markets

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

PATCH
/account/markets
curl --request PATCH \
--url https://app.stoqapp.com/api/v2/external/account/markets \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <X-Auth-Token>' \
--data '{ "market_setup_type": "multiple_markets", "market_locations_enabled": true, "links": [ { "shopify_market_id": "gid://shopify/Market/12345", "shopify_location_id": "gid://shopify/Location/67890" } ] }'

Update how the store routes stock by market, for back in stock and preorders alike: the market setup, the market-to-location links and whether they are used, market URLs, and the single-market location filter.

Note: Deep partial: absent fields are unchanged. links and preorder_location_filter.shopify_location_ids replace the stored list when present. Market and location ids are checked against Shopify.

Media typeapplication/json
object
market_setup_type
market_locations_enabled
market_urls_enabled
preorder_location_filter
links

Example

{
"market_setup_type": "multiple_markets",
"market_locations_enabled": true,
"links": [
{
"shopify_market_id": "gid://shopify/Market/12345",
"shopify_location_id": "gid://shopify/Location/67890"
}
]
}

Success — example response shown.

Media typeapplication/json
object

Example

{
"market_setup_type": "multiple_markets",
"market_locations_enabled": true,
"market_urls_enabled": false,
"preorder_location_filter": {
"enabled": false,
"shopify_location_ids": []
},
"links": [
{
"shopify_market_id": "gid://shopify/Market/12345",
"shopify_location_id": "gid://shopify/Location/67890"
}
],
"also_changed": [
"preorder_location_filter.enabled"
]
}

Accepted — async/bulk work was queued. Poll the returned job.

Media typeapplication/json

Returned for async/bulk work — poll the job until it reaches a terminal state.

object
job_id
string
status_url
string

Example

{
"job_id": "job_a1b2c3",
"status_url": "/api/v2/external/jobs/job_a1b2c3"
}

Missing or invalid X-Auth-Token.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Unauthorized"
]
}

The request failed validation.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"name is required"
]
}

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

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Rate limit exceeded"
]
}
Was this page helpful?

Still stuck? Ask Quinn or chat with support