> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# `campaign_history`

> Envois repris de la source, leurs dates, états et détails, sans remettre de messages en file.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Historique d’une campagne |
| Outil MCP | `campaign_history`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/campaign_history` |
| Accès | permission `read` |
| État de l'espace | vérifié ou non |
| Effet | lecture seule |
| Vue dans l'assistant | oui : voir [Vues](https://subagent.fr/docs/vues.md) |

## Ce que fait l'outil

Le serveur décrit l'outil ainsi à l'agent qui se branche :

> Envois repris de la source, leurs dates, états et détails, sans remettre de messages en file. 100 par page.

## Paramètres

`campaign_history` accepte ces paramètres. Un paramètre inconnu est refusé avec le code `invalid_argument`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `campaign_id` | identifiant `cmp_…` | oui | Campagne. |
| `offset` | entier | non | De 0 à 100000. |

## Résultat

L'outil rend un texte lisible en français et un objet structuré (`structuredContent`). En HTTP, la réponse est cet objet.

| Champ | Type | Contenu |
|---|---|---|
| `items` | liste | Les envois repris, 100 au plus : email, status, `sent_at`, delivery, opened, clicked. |
| `next_offset` | entier ou `null` | Le rang de la page suivante (offset), ou `null`. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/campaign_history \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "campaign_id": "cmp_6b2d9e41c7a84f03b5e1d28a90c4f7e3"
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "campaign_history",
    "arguments": {
      "campaign_id": "cmp_6b2d9e41c7a84f03b5e1d28a90c4f7e3"
    }
  }
}
```

## Refus possibles

Aucun refus propre à cet outil. Restent les refus communs à tous les outils (`unauthorized`, `forbidden`, `invalid_argument`, `rate_limited`, `internal`) : voir [Erreurs](https://subagent.fr/docs/erreurs.md#acces).

## Voir aussi

- [Campagnes : campaign_history](https://subagent.fr/docs/campagnes.md#campaign_history)
- [`campaign_metrics`](https://subagent.fr/docs/reference/campaign_metrics.md)
- [`get_campaign`](https://subagent.fr/docs/reference/get_campaign.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
