Errors

The error envelope, every error code, and what to do about each.

Every error response has the same shape:

{
  "error": {
    "type": "invalid_request_error",
    "code": "photo_required_for_channel",
    "message": "Product 66a1… has no images: channel \"etsy\" requires at least one image. Add an image, then publish again.",
    "param": null,
    "doc_url": "https://developers.nembol.com/docs/getting-started/errors#photo_required_for_channel"
  },
  "request_id": "req_9f83…"
}
  • type — one of four families (below). Branch on this for retry logic.
  • code — stable machine-readable string. Branch on this for specific handling.
  • message — human-readable, English, tells you how to fix it. Never parse it.
  • param — the offending field for validation errors (e.g. variants[2].price).
  • request_id — include it when contacting support.

Error types

typeHTTPRetry?
invalid_request_error400, 404, 409, 412, 422No — fix the request
authentication_error401, 403No — fix key or scopes
rate_limit_error429Yes — after Retry-After seconds
api_error5xxYes — with exponential backoff

Common codes

CodeHTTPMeaning
invalid_api_key401Key missing, malformed, revoked or rolled
insufficient_scope403Key lacks the scope for this endpoint
plan_not_eligible403Store's plan does not include API access
product_not_found / order_not_found / …404No such resource in this store
validation_failed422See param and message
photo_required_for_channel422Publishing an imageless product to a channel that requires images
channel_not_connected422Publish/delist on a channel the store hasn't connected
sku_not_found / sku_ambiguous422Batch inventory item rejected (unknown or duplicated SKU)
idempotency_key_reused409Same Idempotency-Key with a different payload
precondition_failed412expected_updated_at didn't match — re-read and retry
rate_limit_exceeded429Bucket empty — honor Retry-After
write_quota_exceeded429Daily channel-write quota reached

Codes are added over time; handle unknown codes by falling back on type.

Need help?

The API is in private beta — email us and a human replies, usually within one business day.

On this page