Skip to main content

Limits

Every limit a partner meets — signing, keys, codes, rates, batch sizes, photos, the listing TTL and the idempotency window — and how to spread pushes.

Limit Value
Signature window ± 300 seconds between your NK-Timestamp and our clock
Nonce memory 15 minutes: a nonce sent twice within it is nonce_reused
Key lifetime 365 days; at most 2 active keys per app; revoking is immediate
Connect code 12 symbols, single use; 15 minutes (agency-issued), 24 hours (staff-issued sandbox)
Requests per minute, per app live 600, sandbox 120; /validate counts like any call
Listing items per hour, per connection live 2,000, sandbox 500
Batch 200 items, 4 MiB body
Request body 4 MiB (body_too_large)
Validate 50 listings per call
Reconcile 5,000 ids per call
Mass-removal guard more than 5 and more than 20 % of the live set needs confirm_mass_removal
Photos 64 in the payload; the agency's plan caps what is stored; 3 to publish; 8 fetched per sandbox item; 10 MiB and 15 s per fetch; 3 redirects
Listing TTL 60 days, renewed by every active push (also when unchanged)
Idempotency window 7 days

Staff can raise an app's per-minute rate and its batch size (up to 500 items). Write to partners@novikvadrat.rs when you need more.

When you hit a limit#

  • 429 rate_limited carries Retry-After in seconds to the next minute; 429 connection_item_limit in seconds to the next hour. Wait that long, then continue.
  • 413 body_too_large and 422 batch_too_large: split the request.

Spreading pushes#

  • Push changes, not everything, when you can. Unchanged listings answer unchanged and cost little, but every item in a push counts against the connection's hourly item budget.
  • Use batches of up to 200 for bulk work; one request carries many items.
  • Spread connections over the hour instead of starting every agency's export at minute 0.
  • One reconcile per connection a day is enough to catch what your export dropped.
  • Back off on 5xx and 503 (ingest_disabled) with growing delays.

Last updated