Inicio rápido de MPP
Paga una página de búsqueda avanzada de TwexAPI con Tempo USDC y el cliente mppx.
Inicio rápido de MPP
Realiza una solicitud pay-per-use de búsqueda avanzada de TwexAPI sin una API key de TwexAPI. Esta guía usa el cliente mppx para responder al desafío HTTP 402, pagar con Tempo USDC y reintentar la solicitud automáticamente.
Paso 1: Instala las dependencias del cliente
npm install mppx viem
mppx maneja desafíos y pagos MPP. viem convierte una clave privada Tempo en la cuenta de wallet usada por el cliente.
Paso 2: Crea y financia una wallet Tempo
Crea una cuenta MPP local, luego exporta su clave privada:
mppx account create
mppx account export
Financia la dirección impresa con USDC en Tempo. Almacena la clave privada 0x... exportada en una variable de entorno:
export TEMPO_PRIVATE_KEY="0x..."
Paso 3: Realiza una solicitud MPP
Crea mpp-search.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() configura fetch para manejar un desafío MPP 402 Payment Required. Para un endpoint elegible, paga la oferta Tempo proporcionada por el servidor y reintenta la misma solicitud con la credencial de pago. Inspecciona response.headers.get("Payment-Receipt") cuando necesites registrar la liquidación.
Pasa next_cursor en el cuerpo JSON al continuar desde una página anterior:
{
"searchTerms": ["openai"],
"sortBy": "Latest",
"next_cursor": "cursor-from-the-previous-response"
}
Paso 4: Implementa el flujo HTTP en bruto
Sin mppx, primero solicita la página de búsqueda normalmente:
curl -i --request POST 'https://api.twexapi.io/twitter/advanced_search/page' \
--header 'Content-Type: application/json' \
--data '{"searchTerms":["openai"],"sortBy":"Latest"}'
En 402, procesa el desafío WWW-Authenticate: Payment con una implementación MPP Tempo compatible. Luego reintenta la solicitud exacta con la credencial generada:
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 respuesta exitosa contiene el envelope JSON habitual de TwexAPI y un header de respuesta Payment-Receipt. Guarda recibos con tus propios registros de solicitud si tu aplicación necesita reconciliación.
Próximos pasos
- Machine Payments Protocol — revisa la operación soportada, la secuencia de pago y la comparación con API key.
- API overview — explora autenticación con API key y el catálogo completo de endpoints.