> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Flux filtré

> Diffusez en temps réel des Publications correspondant à vos règles de filtrage

export const Button = ({href, children}) => {
  return <div className="not-prose group">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-full group-hover:opacity-[0.9] font-medium">
        <span>
          {children}
        </span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

Les endpoints Filtered Stream vous permettent de recevoir en temps réel les Publications qui correspondent à vos règles de filtrage. Créez des règles à l’aide d’opérateurs puissants, puis connectez-vous à un flux persistant pour recevoir les Publications correspondantes dès leur publication.

<div id="overview">
  ## Vue d’ensemble
</div>

<CardGroup cols={2}>
  <Card title="Diffusion en temps réel" icon="bolt">
    Recevez des Publications quelques secondes après leur mise en ligne
  </Card>

  <Card title="Règles persistantes" icon="filter">
    Ajoutez et supprimez des règles sans interrompre la connexion
  </Card>

  <Card title="Opérateurs puissants" icon="magnifying-glass">
    Filtrez par mots-clés, hashtags, utilisateurs et plus encore
  </Card>

  <Card title="Diffusion via webhook" icon="webhook">
    Recevez éventuellement des Publications via des webhooks
  </Card>
</CardGroup>

***

<div id="how-it-works">
  ## Fonctionnement
</div>

1. **Créer des règles** — Définir des règles de filtrage à l’aide d’opérateurs
2. **Se connecter au flux** — Établir une connexion HTTP persistante
3. **Recevoir des Publications** — Recevoir en temps réel les Publications correspondantes

```
┌─────────────┐      ┌─────────────┐      ┌─────────────┐
│ Create/     │      │ Connect to  │      │ Receive     │
│ manage      │  →   │ streaming   │  →   │ matching    │
│ rules       │      │ endpoint    │      │ Posts       │
└─────────────┘      └─────────────┘      └─────────────┘
```

***

<div id="endpoints">
  ## Points de terminaison
</div>

| Méthode | Point de terminaison                                                    | Description                     |
| :------ | :---------------------------------------------------------------------- | :------------------------------ |
| GET     | [`/2/tweets/search/stream`](/fr/x-api/stream/stream-filtered-posts)     | Se connecter au flux            |
| POST    | [`/2/tweets/search/stream/rules`](/fr/x-api/stream/update-stream-rules) | Ajouter ou supprimer des règles |
| GET     | [`/2/tweets/search/stream/rules`](/fr/x-api/stream/get-stream-rules)    | Afficher les règles actuelles   |

***

<div id="access-levels">
  ## Niveaux d’accès
</div>

| Fonctionnalité       | Facturation à l’usage | Enterprise       |
| :------------------- | :-------------------- | :--------------- |
| Règles par projet    | 1,000                 | 25,000+          |
| Longueur de la règle | 1,024 caractères      | 2,048 caractères |
| Connexions           | 1                     | Multiples        |
| Tous les opérateurs  | ✓                     | ✓                |

<Card title="Contact pour l’offre Enterprise" icon="building" href="https://developer.x.com/en/products/x-api/enterprise/enterprise-api-interest-form">
  Bénéficiez de limites plus élevées et de fonctionnalités supplémentaires
</Card>

***

<div id="building-rules">
  ## Création de règles
</div>

Les règles utilisent les mêmes opérateurs que les requêtes de recherche :

```
(AI OR "machine learning") lang:en -is:retweet
```

<div id="example-rules">
  ### Exemples de règles
</div>

| Règle                              | Correspond à                                          |
| :--------------------------------- | :---------------------------------------------------- |
| `#python`                          | Publications avec le hashtag #python                  |
| `from:elonmusk`                    | Publications de @elonmusk                             |
| `"breaking news" has:images`       | Publications contenant cette expression et des images |
| `(@XDevelopers OR @X) -is:retweet` | Mentions, en excluant les retweets                    |

<Card title="Créer une règle" icon="filter" href="/fr/x-api/posts/filtered-stream/integrate/build-a-rule">
  Découvrez la syntaxe des règles et leurs opérateurs
</Card>

***

<div id="connecting-to-the-stream">
  ## Connexion au flux
</div>

Établissez une connexion HTTP persistante pour recevoir des Publications :

```python theme={null}
import requests

def stream_posts(bearer_token):
    url = "https://api.x.com/2/tweets/search/stream"
    headers = {"Authorization": f"Bearer {bearer_token}"}
    
    response = requests.get(url, headers=headers, stream=True)
    
    for line in response.iter_lines():
        if line:
            print(line.decode("utf-8"))
```

<div id="keep-alive-signals">
  ### Signaux de maintien de connexion
</div>

Le flux envoie des lignes vides (`\r\n`) toutes les 20 secondes pour garder la connexion ouverte. Si vous ne recevez aucune donnée ni signal de maintien pendant 20 secondes, rétablissez la connexion.

<CardGroup cols={2}>
  <Card title="Gestion des déconnexions" icon="plug" href="/fr/x-api/posts/filtered-stream/integrate/handling-disconnections">
    Se reconnecter proprement
  </Card>

  <Card title="Consommer des données en streaming" icon="stream" href="/fr/x-api/posts/filtered-stream/integrate/consuming-streaming-data">
    Traiter les Publications efficacement
  </Card>
</CardGroup>

***

<div id="webhook-delivery">
  ## Livraison via webhook
</div>

Au lieu de maintenir une connexion persistante, vous pouvez recevoir des Publications via des webhooks :

<Card title="Livraison via webhook" icon="webhook" href="/fr/x-api/webhooks/stream/introduction">
  Configurer la livraison via webhook pour un flux filtré
</Card>

***

<div id="post-edits">
  ## Modifications de Publications
</div>

Le flux diffuse les Publications modifiées avec leur historique de modifications. Chaque modification crée un nouvel identifiant de Publication :

```json theme={null}
{
  "data": {
    "id": "1234567893",
    "text": "Hello world! (edited)",
    "edit_history_tweet_ids": ["1234567890", "1234567891", "1234567893"]
  }
}
```

<Card title="Notions de base sur la modification des Publications" icon="clock-rotate-left" href="/fr/x-api/fundamentals/edit-posts">
  En savoir plus sur la modification des Publications
</Card>

***

<div id="getting-started">
  ## Pour commencer
</div>

<Note>
  **Prérequis**

  * Un [compte développeur](https://developer.x.com/en/portal/petition/essential/basic-info) approuvé
  * Un [Project et une App](/fr/resources/fundamentals/developer-apps) dans la Console de développement
  * Le [Jeton Bearer](/fr/resources/fundamentals/authentication) de votre App
</Note>

<CardGroup cols={2}>
  <Card title="Démarrage rapide" icon="rocket" href="/fr/x-api/posts/filtered-stream/quickstart">
    Connectez-vous au flux en quelques minutes
  </Card>

  <Card title="Configurer une règle" icon="filter" href="/fr/x-api/posts/filtered-stream/integrate/build-a-rule">
    Apprenez la syntaxe des règles
  </Card>

  <Card title="Référence des opérateurs" icon="list-check" href="/fr/x-api/posts/filtered-stream/integrate/operators">
    Tous les opérateurs disponibles
  </Card>

  <Card title="Exemples de code" icon="github" href="https://github.com/xdevplatform/Twitter-API-v2-sample-code">
    Exemples de code fonctionnels
  </Card>
</CardGroup>

***

<div id="advanced-topics">
  ## Sujets avancés
</div>

<CardGroup cols={2}>
  <Card title="Gestion des déconnexions" icon="plug" href="/fr/x-api/posts/filtered-stream/integrate/handling-disconnections">
    Rétablissez la connexion en douceur
  </Card>

  <Card title="Gestion de volumes élevés" icon="gauge-high" href="/fr/x-api/posts/filtered-stream/integrate/handling-high-volume-capacity">
    Gérez un débit élevé
  </Card>

  <Card title="Récupération et redondance" icon="shield" href="/fr/x-api/posts/filtered-stream/integrate/recovery-and-redundancy-features">
    Créez des applications résilientes
  </Card>

  <Card title="Mise en correspondance des Publications renvoyées" icon="crosshairs" href="/fr/x-api/posts/filtered-stream/integrate/matching-returned-tweets">
    Identifiez quelles règles se sont appliquées
  </Card>
</CardGroup>
