# Introduction

> L'API et le serveur MCP de Rustine. Ton code ou ton agent lance les scans, lit les problèmes et récupère les correctifs, sans passer par l'app.

Rustine trouve les failles de ton site ou de ton dépôt GitHub, te donne un score sur 100 et, pour chaque problème, un correctif prêt à coller dans ton agent de code. Tout ce que fait l'app, tu peux le faire d'ici :

- **L'API REST** (`https://api.rustine.io/v1`) pour tes scripts, ta CI, n8n ou Make : lancer un scan après un déploiement, bloquer une mise en ligne si un problème critique apparaît, revérifier après un correctif.
- **Le serveur MCP** (`https://mcp.rustine.io`) pour ton agent : Claude, ChatGPT, Claude Code, Cursor ou VS Code appellent Rustine eux-mêmes, et vérifient avant de te dire « c'est fini ».

## Par où commencer

1. [Premier appel en 2 minutes](https://docs.rustine.io/quickstart.md) : une clé, une commande `curl`, ta première réponse.
2. [Authentification](https://docs.rustine.io/authentication.md) : où mettre la clé (jamais dans l'adresse).
3. [La référence de l'API](https://docs.rustine.io/api.md) : chaque route, ses paramètres et ses exemples en curl, Node et Python.

Ton agent préfère le MCP ? Va directement à [Brancher ton agent](https://docs.rustine.io/mcp/connect.md).

## Ce que Rustine ne fait pas

Rustine ne scanne que les sites de **tes** projets, en lecture seule. Un audit complet ne part que sur un site dont tu as prouvé qu'il est à toi : la loi interdit de tester un site qu'on ne contrôle pas. Et Rustine ne touche jamais à ton code : le correctif est un texte, c'est ton agent ou toi qui l'appliquez.

## Pour les agents

Chaque page existe en Markdown à la même adresse suivie de `.md`. [`/llms.txt`](https://docs.rustine.io/llms.txt) donne le sommaire, [`/llms-full.txt`](https://docs.rustine.io/llms-full.txt) toute la doc d'un bloc, et [`/openapi.json`](https://docs.rustine.io/openapi.json) la spécification de l'API.

## Exemples

### curl

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

### Réponse : 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 }
  }
}
```
