# Production and operations
Source: https://docs.file.ai/production

> What to set up before you move a working prototype to production.

Production

# Production and operations

Copy pageCopy page

What to set up before you move a working prototype to production.

Copy pageCopy page

Your quickstart works. Before you send real volume, go through this checklist. Each item links to the page with the details.

## 

[​

](#checklist)

Checklist

*    API key stored as a secret, and sent to the host of the region that issued it ([Regions](/authentication#regions))
*    Long-running work tracked by polling, with callbacks as an optional speed-up, never the only signal ([Async jobs](/api/async-jobs))
*    Callback handler answers fast and tolerates duplicate or missing events ([Processing callbacks](/deliver/callbacks))
*    Every write sends an `Idempotency-Key`, and you know which endpoints ignore it ([Idempotent requests](/api/idempotency))
*    Errors logged with `code` and `X-Request-Id` ([Errors](/api/errors#request-ids))
*    Client reads the `RateLimit` headers and waits `Retry-After` on a `429` ([Rate limits](/api/rate-limits))
*    Bulk reads use cursor pagination ([Pagination](/api/pagination))
*    Incremental syncs use `updatedAfter` with a stored watermark ([Incremental loading](/deliver/incremental-loading))
*    Client ignores response fields and status values it doesn’t recognize, and logs `Deprecation` headers ([Versioning](/api/versioning))
*    You watch [status.file.ai](https://status.file.ai) and the [Changelog](/changelog)

If something fails, start with [Troubleshooting](/api/troubleshooting).

[Previous](/deliver/notifications)[

Async jobs

How long-running work is tracked in the fileAI API, and when to poll or use a callback.

Next

](/api/async-jobs)

⌘I

## On this page

*   [Checklist](#checklist)
