Rate Limits
LogirAI applies rate limits at three layers: public unauthenticated endpoints (per IP), authenticated APIs (per credential), and outbound webhook delivery (per subscriber).
Authenticated endpoints
There is no global per-credential rate limit in v1. Practical caps come from:
- Per-endpoint payload limits (10 MB JSON, 20 MB multipart for the pre-alert upload).
- Per-list pagination caps where applicable.
If you anticipate sustained throughput above ~50 requests / second from a single API key or company, contact LogirAI ops to coordinate so we can pre-warm capacity.
Public endpoints (per IP)
GET /health (liveness probe) is unlimited.
Outbound webhook delivery
LogirAI fires webhook events to your endpoint as they happen. Delivery characteristics in v1:
| Property | Value |
|---|---|
| Retries | None — fire-and-forget, single attempt. |
| Timeout | 10 seconds end-to-end per delivery. If your endpoint takes longer, the delivery is recorded as failed and the event is lost. |
If you need durable delivery with retries and backoff, the v2 webhook system (with HMAC-SHA256 signatures, per-event subscription, dead-letter queue) is on the roadmap — see Changelog.
Best practices
- Cache list reads — guide listings change at the cadence of scans. Caching responses for 30–60 s on your side reduces load on both ends.
- Use webhooks instead of polling — once you've received
guide.status_changed, you don't need to re-fetch unless reconciliation is required. - Stagger bulk operations — when calling
bulk-advance-statusorbulk-customs-status, batch in chunks of ≤ 200 IDs and serialize calls. - Honor
Retry-After— when a 429 response includes the header, wait at least that many seconds before retrying.