# Operate an API

URL: /products/api/operate · Id: `page:products/api/operate`

> How a live API stays up and readable to its Customers, with a check every minute, a status page, a request log and receivers that recover on their own.

A live API is checked every minute, reports its health on the [Startup](/business/nouns/startup)'s status page, and shows each [Customer](/business/nouns/customer) its own calls. A role agent runs it, and the founder hears only what needs a decision.

## Who runs it
The [Reliability Engineer](/agents/engineering/reliability-engineer) owns uptime, incidents and failing receivers. An agent fills the seat from the start, and reads the same records the Customer sees through the builder plane.

## Uptime and the status page
A [Monitor](/business/nouns/monitor) checks the API every minute from several regions. A failed check opens an [Incident](/business/nouns/incident) on [Status pages](/systems/status-pages), which updates subscribers until it resolves.

Leaseline's page is `leaseline.app/status`. It lists every Incident that touched an [Interface](/business/nouns/interface), with the month so far.

## What each Customer sees
| In the [Portal](/business/nouns/portal) | What it shows |
| --- | --- |
| Request log | Every call in the last 30 days, with its key, status and the error that names the fix |
| Usage | Calls against each [Limit](/business/nouns/limit) of the plan, with the reset time |
| Receivers | Each [Watch](/business/nouns/watch), its recent deliveries and their status codes |

Every response also carries `RateLimit-Remaining` and `RateLimit-Reset`, so a client sees its headroom without asking. A call past the rate gets `429` [`rate-limited`](/code/api/errors/rate-limited) with `Retry-After`. [Rate limits](/code/platform/rate-limits) covers the mechanism.

## Receivers that fail
A Watch whose deliveries all fail for three days [pauses](/business/nouns/watch/pause) itself and notifies the Reliability Engineer. Its [Events](/business/nouns/event) keep queuing.

Once the receiver is fixed, [`Watch.resume`](/business/nouns/watch/resume) delivers the held Events, oldest first. For a longer outage, [`Watch.replay`](/business/nouns/watch/replay) sends every matching Event from a chosen time again. [Webhooks for your customers](/products/api/webhooks) has the full delivery rules.

## When something needs the founder
Operating an API rarely needs a decision. A raise above a plan's Limit is one: [`Limit.raise`](/business/nouns/limit/raise) moves money, so it waits for the founder when an approval rule names `spend`. [Monitoring](/code/systems/monitoring) has the logs and traces underneath.