# Service level agreement, v1

Status: in force. Applies to licences on the Agency, Studio, Growth and Network plans. Updated 2026-10-09.

## 1. What is covered

| Service | Monthly availability target | Latency objective (reported, no credit) |
|---|---|---|
| Resolve: `GET /api/v1/resolve`, `POST /api/v1/resolve` | 99.9% | 95% within 300 ms in the Worker |
| Preflight: `POST /api/v1/preflight` | 99.9% | 95% within 300 ms in the Worker |

Everything else (scans, reports, feeds, the website) is run to the same standard but is not covered by credits.

## 2. How it is measured

Availability is the share of probe requests in the calendar month (UTC) that got an answer without a server error (5xx) or a timeout. The probe runs from GitHub-hosted runners, outside Cloudflare, every two hours and after every deploy: 30 Resolve lookups and 6 preflight decisions per run. Every month's reading is public at `/api/slo?month=YYYY-MM` with its 95% interval, and the rolling 30 days at `/api/slo` and on /status.

You may also report failures you saw yourself: every answer carries a trace id (`x-crawlcheck-trace-id`). Send the trace ids of 5xx answers within 14 days (the error log keeps 14 days); each one we find logged counts as a failed probe sample for your claim, even if the probe missed it.

## 3. Service credits

| Monthly availability | Credit, share of that month's licence fee |
|---|---|
| below 99.9% | 10% |
| below 99.0% | 25% |
| below 95.0% | 50% |

Credits apply to the next invoice. Claim within 30 days of the month's end from your dashboard or at contact@crawlcheck.io, naming the month (and trace ids, if you have them). Credits are the only remedy for a missed target.

## 4. Not counted

- Answers to requests over your plan's limits (429), malformed requests (4xx), and keys that are expired or revoked.
- Maintenance announced on /status at least 48 hours ahead, at most 4 hours a month.
- The free tier, the public sandbox key and trial licences.

## 5. Incidents

Severity, response and notice targets are in the incident table at /security#incidents (SEV1: acknowledged within 1 hour, contained within 4 hours, affected licence holders told by email within 72 hours). Every incident is entered in the signed incident log at /api/status/log.

## 6. Changes

- 1 (2026-10-09): first version.
