---
title: "Démarrage rapide MPP"
description: "Payez une page de recherche avancée TwexAPI avec Tempo USDC et le client mppx."
---

# Démarrage rapide MPP

Effectuez une requête de recherche avancée TwexAPI à l'usage sans clé API TwexAPI. Ce guide utilise le client `mppx` pour répondre au défi HTTP 402, payer avec Tempo USDC et réessayer automatiquement la requête.

## Étape 1 : Installer les dépendances du client

```bash
npm install mppx viem
```

`mppx` gère les défis et paiements MPP. `viem` convertit une clé privée Tempo en compte portefeuille utilisé par le client.

## Étape 2 : Créer et approvisionner un portefeuille Tempo

Créez un compte MPP local, puis exportez sa clé privée :

```bash
mppx account create
mppx account export
```

Approvisionnez l'adresse affichée en USDC sur Tempo. Stockez la clé privée exportée `0x...` dans une variable d'environnement :

```bash
export TEMPO_PRIVATE_KEY="0x..."
```

:::warning
  Ne commitez jamais une clé privée. Conservez-la dans votre gestionnaire de secrets ou l'environnement shell, et n'approvisionnez le portefeuille qu'avec le montant autorisé pour votre intégration.
:::

## Étape 3 : Effectuer une requête MPP

Créez `mpp-search.ts` :

```ts
import { Mppx, tempo } from "mppx/client";
import { privateKeyToAccount } from "viem/accounts";

Mppx.create({
  methods: [
    tempo({
      account: privateKeyToAccount(
        process.env.TEMPO_PRIVATE_KEY as `0x${string}`,
      ),
    }),
  ],
});

const response = await fetch(
  "https://api.twexapi.io/twitter/advanced_search/page",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      searchTerms: ["openai"],
      sortBy: "Latest",
    }),
  },
);

if (!response.ok) {
  throw new Error(`TwexAPI request failed: ${response.status}`);
}

console.log(await response.json());
```

`Mppx.create()` configure `fetch` pour gérer un défi MPP `402 Payment Required`. Pour un endpoint éligible, il paie l'offre Tempo fournie par le serveur et réessaie la même requête avec le justificatif de paiement. Inspectez `response.headers.get("Payment-Receipt")` lorsque vous devez enregistrer le règlement.

Transmettez `next_cursor` dans le corps JSON lors de la continuation depuis une page précédente :

```json
{
  "searchTerms": ["openai"],
  "sortBy": "Latest",
  "next_cursor": "cursor-from-the-previous-response"
}
```

## Étape 4 : Implémenter le flux HTTP brut

Sans `mppx`, demandez d'abord la page de recherche normalement :

```bash
curl -i --request POST 'https://api.twexapi.io/twitter/advanced_search/page' \
  --header 'Content-Type: application/json' \
  --data '{"searchTerms":["openai"],"sortBy":"Latest"}'
```

Sur `402`, traitez le défi `WWW-Authenticate: Payment` avec une implémentation Tempo MPP compatible. Puis réessayez la requête exacte avec le justificatif généré :

```bash
curl -i --request POST 'https://api.twexapi.io/twitter/advanced_search/page' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Payment eyJjaGFsbGVuZ2UiOnsi...' \
  --data '{"searchTerms":["openai"],"sortBy":"Latest"}'
```

La réponse réussie contient l'enveloppe JSON habituelle de TwexAPI et un en-tête de réponse `Payment-Receipt`. Enregistrez les reçus avec vos propres enregistrements de requêtes si votre application a besoin de rapprochement.

## Étapes suivantes

- [Machine Payments Protocol](/mpp/machine-payments-protocol) — examinez l'opération prise en charge, la séquence de paiement et la comparaison avec les clés API.
- [Vue d'ensemble de l'API](/api-reference/overview) — parcourez l'authentification par clé API et le catalogue complet des endpoints.
