Skip to content

Errors & Limits

This page documents API errors, rate limits, validation behavior, and operational limits.

Error format

PLACEHOLDER: Confirm the final error envelope. Current Laravel JSON errors may return:

json
{
  "message": "The q field is required.",
  "errors": {
    "q": [
      "The q field is required."
    ]
  }
}

Status codes

StatusMeaningTypical cause
200SuccessRequest completed.
401UnauthenticatedMissing, invalid, or revoked API key.
404Not foundUnknown endpoint or resource.
422Validation failedInvalid query parameter or invalid request body. (Imports over the store's product limit are not rejected — extra new products are skipped and reported in skipped_rows.)
429Rate limitedToo many requests in the current window.
500Server errorUnexpected application error.

Rate limits

Current autocomplete limit:

text
120 requests per minute

PLACEHOLDER: Confirm final limits per endpoint, plan, store, IP address, and API key.

Rate-limit headers

PLACEHOLDER: Confirm final headers. Expected headers may include:

http
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 119

Validation limits

FieldLimit
Products per free store100
AI-enriched products per free store5
Autocomplete query lengthTODO
Autocomplete result limitTODO
Product title lengthTODO
Product URL lengthTODO
Product image URL lengthTODO
CSV file sizeTODO

Retry guidance

  • Do not retry 401 or 422 without changing the request.
  • Back off when receiving 429.
  • Retry transient 500 responses with exponential backoff.
  • For browser widget requests, fail quietly so shoppers can continue using the storefront.

Replace placeholder content before publishing.