Error Format
Errors return JSON with adetail field:
Status Codes
On
403, webhook delivery on a watch requires the Business plan: use channel: "email" or upgrade.
On 429, the watch cap is 3 outside Business and 100 on Business.
400 versus 422
A422 is schema validation: a field is missing, or its type or range is wrong.
FastAPI rejects it before your request reaches any business logic, and the response carries the loc array shown above.
A 400 is a request that is well-formed but not allowed.
POST /watches and PATCH /watches/{id} return it for:
- a
scopethe board cannot be narrowed by, or anactIdscope that does not exist on that board, - a source that is not scopable at all, meaning a board whose
scopableisfalsesuch as the Federal Register, - a missing
webhookUrloremailAddressfor thechannelyou asked for, or one set on a channel that does not use it, - a
webhookUrlthe API refuses as a delivery target, - a
webhookAuth.headerNamethat is not a legal header name, or outbound auth set on an email-only watch.
detail string names the specific problem, so read it rather than retrying.
409 on watches
POST /watches returns 409 when you already hold a watch on the same board, the same channel, and the same scope.
Watches are unique on that triple, so this means the subscription you were about to create already exists rather than that something went wrong.
PATCH /watches/{id} returns it for the same reason, when narrowing a watch’s scope would collide with another watch you already hold.
List your watches with GET /watches and reuse the existing one.
Rate Limiting
Limits are enforced per API key and scale with your plan. Every429 response includes a Retry-After header. See Rate limits for the per-plan table and a full backoff implementation.
Troubleshooting
401 but my key is correct
401 but my key is correct
Include the
Bearer prefix: Authorization: Bearer vq_key_.... The key alone is rejected.422 validation error
422 validation error
Set
Content-Type: application/json. Check the loc field in the response to find the problematic field.Related
Rate limits
Per-plan request limits and a full backoff implementation.
Authentication
Create and manage your API key.

