# `GET /v1/rulepacks` — exemples par langage

Aucune authentification requise pour lister les packs (métadonnées
publiques). Réponse : JSON avec la liste des rule packs, leur statut,
sources et licences.

## curl

```bash
curl "https://api.example/v1/rulepacks"
```

```json
{
  "rulepacks": [
    {
      "id": "dev-placeholder-facturx",
      "format": "facturx",
      "version": "0.0.0-dev",
      "status": "placeholder",
      "sources": [{ "name": "PLACEHOLDER DE DÉVELOPPEMENT — PAS le référentiel officiel FNFE-MPE", "license": "aucune" }]
    }
  ]
}
```

## Python

```python
import requests

rulepacks = requests.get("https://api.example/v1/rulepacks").json()["rulepacks"]
for pack in rulepacks:
    print(pack["id"], "-", pack["status"])
```

## JavaScript

```javascript
const { rulepacks } = await (await fetch("https://api.example/v1/rulepacks")).json();
rulepacks.forEach((p) => console.log(p.id, "-", p.status));
```

## Go

```go
resp, _ := http.Get("https://api.example/v1/rulepacks")
var body struct {
	Rulepacks []struct{ ID, Status string } `json:"rulepacks"`
}
json.NewDecoder(resp.Body).Decode(&body)
```

## ⚠️ `status: "placeholder"`

Un pack marqué `placeholder` n'est **pas** le référentiel officiel — voir
[`rulepacks/README.md`](https://github.com/pcoudeville/facturx-api/blob/main/rulepacks/README.md)
du dépôt. `Default()` (rule pack appliqué si non précisé) ne retombe
jamais sur un placeholder tant qu'un pack `stable` existe pour le format
demandé.
