# REST API

Every operation the MCP tools perform is also available over HTTP. Send your key as a bearer token. Bodies are JSON. The full machine-readable description is the [OpenAPI spec](https://skryp.dev/openapi.json), with a request schema for every tool endpoint.

```bash
curl -X POST https://api.skryp.dev/v1/scrape \
  -H "Authorization: Bearer $SKRYP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
```

## Reading and searching

| Method and path | Purpose |
| --- | --- |
| `POST /v1/scrape` | One page (`url`) or up to 100 (`urls`). Returns content, metadata and a `receipt`. |
| `GET /v1/read?ref=…` | More of a stored long page: `section`, `focus`, `offset`, `length`. Free. |
| `POST /v1/map` | A site's URLs. |
| `POST /v1/search` | Web search, optionally from a `country`. |
| `POST /v1/extract` | Typed fields: `schema` and/or `prompt`. |
| `POST /v1/inspect` | Data sources behind a page and replay checks. |
| `POST /v1/archive` | Archive actions: `get`, `snapshots`, `diff`, `history`, `urls`. |
| `POST /v1/compare` | One page from several `countries`. |

## Collections and automation

| Method and path | Purpose |
| --- | --- |
| `POST /v1/collect` | Records from a listing page; saves a recipe. |
| `POST /v1/recipes` · `POST /v1/recipes/{id}/run` · `POST /v1/recipes/{id}/test` | Save, run and test a recipe. |
| `GET /v1/datasets` · `POST /v1/datasets` · `POST /v1/datasets/{id}/refresh` | List, create and refresh datasets. |
| `GET /v1/datasets/{id}/records` · `GET /v1/datasets/{id}/changes` · `POST /v1/datasets/{id}/export` | Records, change history and CSV/JSON export. |
| `GET /v1/monitors` · `POST /v1/monitors` · `POST /v1/monitors/{id}/run` · `…/pause` · `…/resume` | Scheduled checks. |
| `POST /v1/crawl` · `GET /v1/jobs/{id}` · `GET /v1/jobs/{id}/results` · `POST /v1/jobs/{id}/cancel` | Background crawls. |
| `POST /v1/browser` · `POST /v1/browser/{session}` · `DELETE /v1/browser/{session}` | Live browser sessions. |
| `GET /v1/workflows` · `POST /v1/workflows` · `POST /v1/workflows/{id}/runs` · `GET /v1/runs/{id}/records` | Saved multi-step browser jobs and their runs. |

## Account

| Method and path | Purpose |
| --- | --- |
| `GET /v1/requests` · `GET /v1/requests/{id}` | Your request history with receipts. |
| `GET /v1/billing` · `GET /v1/usage` | Plan, renewal date, plan and top-up credits, reservations, ledger and usage. |
| `GET /v1/catalog` | Tools, formats, networks and the current rate card. No key needed. |

## Responses

Page results include `status` (`ok`, `not_found`, `blocked`, `failed`, `unavailable`, `budget_exhausted`, `invalid`), `markdown`, `metadata`, any requested formats, `ref` for long pages, `warnings` and a `receipt`. See [Errors and outcomes](https://skryp.dev/docs/errors) and [Receipts](https://skryp.dev/docs/receipts).

Firecrawl-shaped endpoints are also available under `/v2`; see [Switch from Firecrawl](https://skryp.dev/docs/migrate/firecrawl).

Source: https://skryp.dev/docs/api
