---
title: Référence API
description: Explorez la référence de l’API REST Firmreader pour créer des publications, gérer des canaux, vous authentifier par clés API et interroger les analyses.
lastUpdated: "2026-08-21"
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

L’API Firmreader est une API REST qui vous permet de créer des publications, de gérer des canaux et d’interroger des analyses par programmation avec du code. Essayez notre API puissante.

## URL de base

```
https://api.firmreader.com/v1
```

## Authentification

Chaque requête nécessite une clé API dans l’en-tête `Authorization` :

<CodeGroup>
```bash cURL
curl https://api.firmreader.com/v1/posts \
  -H "Authorization: Bearer fr_live_abc123"
```

```javascript Node.js
const response = await fetch('https://api.firmreader.com/v1/posts', {
  headers: {
    'Authorization': 'Bearer fr_live_abc123',
  },
});
```

```python Python
import requests

response = requests.get(
    'https://api.firmreader.com/v1/posts',
    headers={'Authorization': 'Bearer fr_live_abc123'},
)
```
</CodeGroup>

Les clés API sont créées dans **Settings > API Keys**. Chaque clé possède une portée qui limite les éléments auxquels elle peut accéder :

| Portée | Autorisations |
|-------|------------|
| `posts:read` | Lister et récupérer les publications |
| `posts:write` | Créer, mettre à jour et supprimer des publications |
| `channels:read` | Lister et récupérer les canaux |
| `channels:write` | Créer, mettre à jour et supprimer des canaux |
| `analytics:read` | Interroger les métriques d’engagement |

## Limites de débit

| Forfait | Requêtes par minute |
|------|-------------------|
| Starter | 60 |
| Business | 300 |
| Enterprise | 1 000 |

Les en-têtes de limite de débit sont inclus dans chaque réponse :

```
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1708790400
```

## Format des erreurs

Toutes les erreurs suivent un format cohérent :

```json
{
  "error": {
    "code": "invalid_request",
    "message": "The channel_id field is required.",
    "param": "channel_id"
  }
}
```

| Statut HTTP | Signification |
|-------------|---------|
| 400 | Requête incorrecte — vérifiez vos paramètres |
| 401 | Non autorisé — clé API invalide ou manquante |
| 403 | Accès interdit — la clé API n’a pas la portée requise |
| 404 | Introuvable — la ressource n’existe pas |
| 429 | Limite de débit atteinte — ralentissez |
| 500 | Erreur du serveur — réessayez plus tard |

## Pagination

Les endpoints de liste renvoient des résultats paginés. Utilisez les paramètres `cursor` et `limit` :

```bash
curl "https://api.firmreader.com/v1/posts?limit=20&cursor=post_abc123" \
  -H "Authorization: Bearer fr_live_abc123"
```

La réponse comprend un champ `next_cursor`. Lorsque sa valeur est `null`, vous avez atteint la fin.

```json
{
  "data": [...],
  "next_cursor": "post_xyz789",
  "has_more": true
}
```

```
