API reference
Errors JSON Copy
{
"error" : { "code" : "burst_needs_date" , "message" : "A burst near release_date needs something that gives that date: a release_date condition or attribute, or a site that reports it." , "field" : "schedule.burst.near" } ,
"errors" : [ { "code" : "burst_needs_date" , "message" : "..." , "field" : "schedule.burst.near" } ]
} error is the first problem. On a 422, errors lists all of them, so you can fix a request in one pass. field is the path in your body.
Status code400 bad_jsonThe body isn't JSON 401 unauthorizedMissing, unknown or revoked key 403 limit_reached1,000 active or paused watchers 404 not_foundNo such watcher, or not yours 409 watcher_finishedResuming a matched or expired watcher 409 idempotency_conflictSame Idempotency-Key, different body 422 see below A rule failed 429 rate_limitedOver 120 requests a minute. See Retry-After 500 internalOur fault
codeinvalid_requestA field is missing, misspelled or the wrong type value_missingThe op needs a value value_not_listin and not_in need a listvalue_not_numberprice, price_drop and quantity need a number, "$20" or "10%"value_not_dateDates look like 2026-12-15 value_unknownNot a status we know, for availability or release_status
codematch_query_shapeurl needs a full link on a listed site; sku needs an identifierexact_needs_versionexact needs a version in the name; use line to follow every versionversion_needs_lineversion conditions need match: line or categorysite_unknownWe can't read that site site_cant_matchThat site doesn't support the match mode site_not_reviewedThe site's terms haven't been reviewed. Sites site_terms_not_acceptedSet fetch.accept_site_terms for this site field_unsupportedNone of the sites gives that field target_fixedtarget can't be updated
codecompare_to_needs_numericcompare_to works on price, price_drop, quantity, or availability with changedpercent_needs_compareA percentage needs compare_to min_n_needs_nrequire: min_n needs n, no more than the values listedover_needs_valuesover needs values: a size list, a date range or a listingover_too_manyAt most 20 values under over same_seller_needs_sitessame: seller needs two sites, or a site with several sellers
codezip_needs_usZIPs are US only radius_needs_zipA radius needs a zip radius_unreadableUse "25mi" or "40km" currency_unsupportedUSD only start_at_unreadablestart_at isn't a datestart_after_untilstart_at must be before untiluntil_unreadableA date, "+30d", "after_first_match" or "never" until_in_pastuntil already passeduntil_too_farAt most a year burst_needs_dateA burst needs a date to center on burst_faster_than_everyburst.every must be shorter than every
codewebhook_channel_without_configchannels has webhook but there's no notify.webhookwebhook_config_without_channelnotify.webhook is set but channels doesn't have webhookwebhook_needs_httpsWebhook URLs use https channel_needs_sessionAPI keys use webhook then_nestedA then can't hold another then then_needs_single_matchthen needs until: after_first_match or aggregate: first