# Introduction

> Rustine's API and MCP server. Your code or your agent starts scans, reads issues and gets fixes, without going through the app.

Rustine finds the leaks in your site or your GitHub repository, gives you a score out of 100 and, for each issue, a fix ready to paste into your coding agent. Everything the app does, you can do from here:

- **The REST API** (`https://api.rustine.io/v1`) for your scripts, your CI, n8n or Make: scan after a deploy, block a release when a critical issue shows up, recheck after a fix.
- **The MCP server** (`https://mcp.rustine.io`) for your agent: Claude, ChatGPT, Claude Code, Cursor or VS Code call Rustine themselves, and check before telling you "done".

## Where to start

1. [First call in 2 minutes](https://docs.rustine.io/en/quickstart.md): a key, one `curl` command, your first answer.
2. [Authentication](https://docs.rustine.io/en/authentication.md): where the key goes (never in the address).
3. [The API reference](https://docs.rustine.io/en/api.md): every route, its parameters and its samples in curl, Node and Python.

Your agent prefers MCP? Go straight to [Connect your agent](https://docs.rustine.io/en/mcp/connect.md).

## What Rustine does not do

Rustine only scans the sites of **your** projects, read-only. A full audit only runs on a site you proved is yours: the law forbids testing a site you do not control. And Rustine never touches your code: the fix is text, your agent or you apply it.

## For agents

Every page exists in Markdown at the same address followed by `.md`. [`/llms.txt`](https://docs.rustine.io/llms.txt) is the index, [`/en/llms-full.txt`](https://docs.rustine.io/en/llms-full.txt) all the docs in one file, and [`/openapi.json`](https://docs.rustine.io/openapi.json) the API specification.

## Examples

### curl

```bash
curl https://api.rustine.io/v1/account \
  -H "Authorization: Bearer $RUSTINE_API_KEY"
```

### Response: 200 OK

```json
{
  "object": "account",
  "plan": "pro",
  "api_access": { "allowed": true, "trial_ends_at": null },
  "quotas": {
    "quick_scans": { "limit": 300, "used": 12, "remaining": 288 },
    "audits": { "limit": 180, "used": 4, "remaining": 176 },
    "fixes": { "limit": 90, "used": 7, "remaining": 83 }
  }
}
```
