Skip to main content
v3 shares the platform’s transport protections and adds a few bounds of its own. Build for them from the start; they are what keep one slow seller or one large report from stalling everyone else.

MCP bounds

REST bounds

A limited request gets 429 with RATE_LIMITED, a Retry-After header and RateLimit-* headers.

Designing around them

  • Do not hold a call open. request_proposals returns straight away with running; follow progress with get or in the Proposals widget instead of waiting on one call.
  • Keep pages small. Use cursors and bounded limit values, and preserve partial results between pages.
  • Expect seller latency. Sellers and their inventory systems often dominate response time even when Semicola itself is healthy.
  • Reuse keys only for true retries. An idempotency key identifies one logical attempt.
Local development builds shorten some bounds so demos stay snappy, for example a two-minute tool call and a 20-second seller window.