You’ve built your integration. Run through this checklist to make sure everything is production-ready.
Before go-live
- Store API keys server-side or in a secure secrets manager. See Authentication.
- Log
metadata.requestIdfor every request so support can trace issues quickly. - Monitor
quotas.workspace.credits.leftandquotas.workspace.minuteRateLimit.leftfrom the Usage endpoint. - Route async workflows through a durable webhook receiver, not a manual test endpoint.
- Make webhook processing idempotent by deduplicating on
webhookId. See Webhooks.
Request safety
- Use timeouts on every outbound request.
- Retry only
429and5xxwith exponential backoff. See Error handling. - Respect
minuteRateLimit.nextResetbefore retrying a throttled request. - Treat
4xxvalidation or auth failures as permanent until you change the input or credentials.
Webhook safety
- Use HTTPS for every production webhook URL.
- Return
200quickly, then process heavy work asynchronously. - Validate that each callback contains
webhookId+dataorwebhookId+errorCode. See Webhook payload. - Deduplicate on
webhookIdto handle rare duplicate deliveries.
Monitoring & alerts
- Alert on repeated
401,402,429, and5xxresponses. - Surface credit exhaustion before it blocks critical workflows. See Rate limits & credits.
- Keep one smoke test for a sync endpoint and one for an async endpoint (see below).
- Document which team owns API key rotation, webhook incidents, and quota alerts.
Recommended smoke tests
GET /v2/usagereturns200and a validquotasobject.POST /v2/fetch/persons/checkreturns200withcreditsConsumed: 0.- One async endpoint returns an immediate response and the result is delivered to your webhook URL.
- Your application logs both the outbound request and the webhook completion using the same
requestIdorwebhookId.
You’re ready to go live
If you’ve checked every item above, your integration is solid. Ship it.