Update alerts
API v2 is in public beta: endpoints and fields can change before general availability. See the changelog
/back_in_stock/settings/alertsCosts 2 rate-limit points · Rate limits
Update back-in-stock merchant alert and scheduled report settings.
Toggles set via this PATCH: signups_threshold.notify, signup_alerts.enabled, scheduled_reports.daily, scheduled_reports.weekly, scheduled_reports.monthly, notify_on_alert_sent: e.g. { scheduled_reports: { weekly: true } }. signups_threshold.count is the per-variant signup count that triggers the high-demand merchant alert email. signup_alerts.enabled turns on an immediate email to the merchant for every individual signup, sent to signup_alerts.email. scheduled_reports.email is the address that receives the daily/weekly/monthly summary reports. notify_on_alert_sent emails the merchant whenever back-in-stock alerts are sent to customers. merchant_emails.product_updates and merchant_emails.theme_published turn STOQ's own emails to the merchant on or off.
Also searched asedit alert settingschange alert settingsset signup thresholdnotify me on high demandenable signup threshold alertsdisable signup threshold alertsalert me when a product gets lots of signupsenable daily reportenable weekly reportenable monthly reportdisable daily reportdisable weekly reportdisable monthly reportschedule reportsturn off report emailsstop feature update emailsnotify me when a theme is published
Headers
Idempotency-KeystringA 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 (422idempotency_key_reused); a retry while the first is still running gets 409idempotency_key_in_progress. Keys are per store. Server errors and rate limits are not kept, so their retry runs.
Request body
signups_thresholdstringExample:stringsignup_alertsstringExample:stringscheduled_reportsstringExample:stringnotify_on_alert_sentstringExample:stringmerchant_emailsstringExample:string
Errors
Missing or invalid X-Auth-Token.
An earlier request with the same Idempotency-Key is still running. Wait, then resend the same request with the same key.
The request failed validation.
Rate limited: cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.
Every error has the same shape: see Errors.
curl -X PATCH "https://app.stoqapp.com/api/v2/external/back_in_stock/settings/alerts" \
-H "X-Auth-Token: $STOQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"signups_threshold": "string",
"signup_alerts": "string",
"scheduled_reports": "string",
"notify_on_alert_sent": "string",
"merchant_emails": "string"
}'const res = await fetch("https://app.stoqapp.com/api/v2/external/back_in_stock/settings/alerts", {
method: "PATCH",
headers: {
"X-Auth-Token": process.env.STOQ_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"signups_threshold": "string",
"signup_alerts": "string",
"scheduled_reports": "string",
"notify_on_alert_sent": "string",
"merchant_emails": "string"
}),
});
const data = await res.json();import os
import requests
res = requests.patch(
"https://app.stoqapp.com/api/v2/external/back_in_stock/settings/alerts",
headers={"X-Auth-Token": os.environ["STOQ_API_KEY"]},
json={
"signups_threshold": "string",
"signup_alerts": "string",
"scheduled_reports": "string",
"notify_on_alert_sent": "string",
"merchant_emails": "string"
},
)
data = res.json()require "net/http"
require "json"
uri = URI("https://app.stoqapp.com/api/v2/external/back_in_stock/settings/alerts")
req = Net::HTTP::Patch.new(uri, "X-Auth-Token" => ENV["STOQ_API_KEY"], "Content-Type" => "application/json")
req.body = {
signups_threshold: "string",
signup_alerts: "string",
scheduled_reports: "string",
notify_on_alert_sent: "string",
merchant_emails: "string"
}.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body){
"job_id": "job_a1b2c3",
"status_url": "/api/v2/external/jobs/job_a1b2c3"
}{
"errors": [
"Invalid API key"
],
"code": "auth_invalid",
"details": [
{
"code": "auth_invalid",
"message": "Invalid API key",
"path": null,
"value": null,
"expected": null
}
]
}{
"errors": [
"A request with this Idempotency-Key is still running"
],
"code": "idempotency_key_in_progress",
"details": [
{
"code": "idempotency_key_in_progress",
"message": "A request with this Idempotency-Key is still running",
"path": null,
"value": null,
"expected": null
}
]
}{
"errors": [
"name is required"
],
"code": "validation_failed",
"details": [
{
"code": "validation_failed",
"message": "name is required",
"path": null,
"value": null,
"expected": null
}
]
}{
"errors": [
"Rate limit exceeded"
],
"code": "rate_limited",
"details": [
{
"code": "rate_limited",
"message": "Rate limit exceeded",
"path": null,
"value": null,
"expected": null
}
]
}