---
title: "Autenticación"
description: "Autenticación con token Bearer para Twexapi — úsala con Cursor, Claude Code, GitHub Copilot, ChatGPT y agentes de codificación AI. Comienza en minutos."
---

## **Autenticación de la API**

Twexapi utiliza autenticación con token Bearer para proteger todas las solicitudes de API. Cada solicitud debe incluir una clave de API válida en el encabezado de Autorización para acceder a nuestros puntos finales.

## Obtener tu Clave de API

Sigue estos pasos simples para obtener tu clave de API:

1. Inicia sesión en tu [Panel de Control de Twexapi](https://twexapi.io/dashboard)
2. Tu clave de API única se mostrará de manera destacada en la página de inicio del panel de control
3. Copia la clave de manera segura — necesitarás para todas las solicitudes de API

:::tip
Mantén tu clave de API segura y nunca expórela en código del lado del cliente o en repositorios públicos.
:::

---

## Usar tu Clave de API

Incluye tu clave de API en el encabezado `Authorization` de cada solicitud utilizando el formato de token Bearer:

**Encabezado Requerido:**

```bash
Authorization: Bearer TU_CLAVE_API
```

---

## Variable de Entorno

Los SDKs y la CLI leen la misma credencial desde el entorno:

```bash
export X_API_SCRAPER_KEY="TU_CLAVE_API"
```

Usa `Authorization: Bearer TU_CLAVE_API` en solicitudes HTTP en bruto. Los SDKs generados aceptan opciones como `bearer_auth` o equivalentes — consulta cada [página de SDK](/sdks).

---

## Autenticarse con el CLI

Instala el CLI oficial, guarda tu clave de API como un perfil de aplicación nombrado y ejecuta comandos sin incrustar secretos en el historial de shell:

```bash
npm install -g @twexapi-dev/x-api-scraper-cli

export X_API_SCRAPER_KEY="TU_CLAVE_API"

x-api-scraper auth apps add --name prod --api-key "TU_CLAVE_API"
x-api-scraper auth apps use prod
x-api-scraper --app prod about elonmusk
```

Referencia completa de comandos: [CLI](/sdks/cli).

---

## Autenticarse con MCP

Conécta a `https://api.twexapi.io/mcp` con tu clave de API:

```json
{
  "headers": {
    "x-api-key": "TU_CLAVE_API"
  }
}
```

Algunos clientes aceptan `Authorization: Bearer TU_CLAVE_API` en su lugar. Consulta [Servidor MCP](/mcp/overview) para configuraciones de clientes como Cursor, Claude Code, Codex CLI y otros.

---

## Autenticarse con Agentes de Codificación AI

Instala la habilidad de TwexAPI para que **Cursor**, **Claude Code**, **GitHub Copilot**, **ChatGPT**, **Cline**, **Windsurf**, **Codex**, **Gemini CLI**, **Continue**, **Roo Code** y otros asistentes AI sepan cómo adjuntar tokens Bearer correctamente. Guías de configuración y opciones de CLI están en el [hub de integraciones](https://twexapi.io/integrations).

:::tip
  Copia tu clave de API desde el [panel de control](https://twexapi.io/dashboard), guárdala en `X_API_SCRAPER_KEY` o en un archivo `.env`, y pide a tu agente que configure `Authorization: Bearer TU_CLAVE_API` — la habilidad cubre el patrón de autenticación en cURL, Python, JavaScript y el CLI.
:::

```bash
npx skills add twexapi-dev/x-api-scraper-cli
```

En Cursor, GitHub Copilot, Claude Code, ChatGPT, Continue, Roo Code o cualquier agente compatible, intenta comandos como *"configura la autenticación de Twexapi desde mi archivo `.env`"*, *"agrega autenticación Bearer a este cliente de API"* o *"genera una solicitud de prueba con mi clave de API"*.

---

## Operaciones de Escritura y BYOC (Tráiger Tus Propias Cookies)

Mientras que todos los puntos finales de lectura pública (buscador, perfiles de usuarios, tuits, seguidores, hilos, tendencias) requieren **cero cookies o credenciales de inicio de sesión de Twitter**, las operaciones de escritura operan bajo un modelo **BYOC (Tráiger Tus Propias Cookies)**.

### Acciones de Escritura Soportadas
- Crear tuits y publicaciones en hilos (`POST /twitter/tweets/create`, `POST /v3/twitter/tweets/create_thread`)
- Me gustan y retuits (`POST /twitter/tweets/{tweet_id}/like`, `POST /twitter/tweets/{tweet_id}/retweet`)
- Enviar mensajes directos (`POST /v3/twitter/send_dm`)
- Seguir cuentas (`POST /twitter/user/follow`)

### Ejecución Delegada y Seguridad de Cero Retención

<CardGroup cols={2}>
  <Card title="Autorización Propia del Usuario" icon="user-check">
    Pases tu propia cadena de `auth_token` o cookie. TwexAPI actúa como un gateway de ejecución estatalmente sin estado en tu nombre.
  </Card>
  <Card title="Retención de Credenciales en Cero" icon="shield-halved">
    Las tokens de sesión se mantienen estrictamente en la memoria del servidor en estado perecedero durante la ejecución de esa solicitud HTTP específica. Nunca se guardan en disco o bases de datos.
  </Card>
  <Card title="Protección Legal y de Contenido Completa" icon="scale">
    Como las acciones se ejecutan con tus credenciales de cuenta explícitamente autorizadas, tu equipo mantiene la propiedad intelectual completa y elimina responsabilidades de impersonación de terceros.
  </Card>
  <Card title="No Contaminación de Cuentas Compartidas" icon="lock">
    TwexAPI nunca utiliza cuentas de quemador, recicladas o compartidas para operaciones de escritura. Tus acciones están completamente aisladas a tus propias cuentas.
  </Card>
</CardGroup>

### Cómo Autenticar Solicitudes de Escritura

Además del encabezado `Authorization: Bearer TU_CLAVE_API`, proporciona la cadena de `auth_token` o cookie de tu cuenta directamente en el cuerpo de la solicitud:

```bash
curl -X POST "https://api.twexapi.io/twitter/tweets/create" \
  -H "Authorization: Bearer TU_CLAVE_API" \
  -H "Content-Type: application/json" \
  -d '{
    "tweet_text": "¡Hola mundo desde una pipeline automatizada!",
    "cookie": "auth_token=TU_TWITTER_AUTH_TOKEN; ct0=TU_CT0_TOKEN"
  }'
```

:::tip Extracción de auth_token
Para obtener tu `auth_token` de cuenta, abre las herramientas del desarrollador de tu navegador (`F12`), navega a **Aplicación > Almacenamiento > Cookies > https://x.com** y copia el valor del cookie `auth_token`.
:::

---

## **Ejemplos de Implementación**

Aquí hay ejemplos prácticos que muestran cómo autenticar tus solicitudes en diferentes lenguajes de programación:

:::note
Reemplaza `TU_CLAVE_API` con tu clave de API real desde el panel de control. Todos los ejemplos recuperan información de usuarios para fines de demostración.
:::

### cURL

Perfecto para pruebas y exploración rápida de API:

```bash
curl --request GET \
  --url 'https://api.twexapi.io/twitter/users?usernames=elonmusk' \
  --header 'Authorization: Bearer TU_CLAVE_API' \
  --header 'Content-Type: application/json'
```

### Python

Usando la popular biblioteca `requests`:

```python
import requests

# Punto final de API y parámetros
url = "https://api.twexapi.io/twitter/users"
params = {"usernames": "elonmusk"}

# Encabezado de autenticación
headers = {
    "Authorization": "Bearer TU_CLAVE_API",
    "Content-Type": "application/json"
}

# Hacer la solicitud
response = requests.get(url, headers=headers, params=params)

# Manejar la respuesta
if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print(f"Error: {response.status_code} - {response.text}")
```

### JavaScript (Node.js/Browser)

Implementación moderna del API fetch:

```javascript
const fetchUserData = async () => {
  const options = {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer TU_CLAVE_API',
      'Content-Type': 'application/json'
    }
  };

  try {
    const response = await fetch(
      'https://api.twexapi.io/twitter/users?usernames=elonmusk', 
      options
    );
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Request failed:', error);
  }
};

fetchUserData();
```

### Java

Usando Unirest para solicitudes HTTP simplificadas:

```java
import kong.unirest.HttpResponse;
import kong.unirest.Unirest;

public class TwitterApiExample {
    public static void main(String[] args) {
        try {
            HttpResponse<String> response = Unirest
                .get("https://api.twexapi.io/twitter/users?usernames=elonmusk")
                .header("Authorization", "Bearer TU_CLAVE_API")
                .header("Content-Type", "application/json")
                .asString();
            
            if (response.getStatus() == 200) {
                System.out.println(response.getBody());
            } else {
                System.err.println("Error: " + response.getStatus() + " - " + response.getBody());
            }
        } catch (Exception e) {
            System.err.println("Request failed: " + e.getMessage());
        }
    }
}
```

## **Prácticas Mejores y Siguientes Pasos**

- **Variables de Entorno**: Almacena tu clave de API en `X_API_SCRAPER_KEY` o en un administrador de secretos, nunca codifícala en bruto.
- **Facturación Transparente**: Revisa las tarifas micro-por-solicitud en nuestra [Guía de Precios y Facturación](/guides/pricing).
- **Recuperación de Errores**: Maneja respuestas `4xx`/`5xx` — consulta [Manejo de Errores](/guides/error-handling).
- **Límites de Tasa**: Reduzca en caso de `429` — consulta [Límites de Tasa](/guides/rate-limits).
- **Lectura Pública Cero-Cookie**: Entiende por qué no se necesitan cookies de inicio de sesión públicas en comparación con configuraciones autohosteadas en [Scraper Autohosteado vs TwexAPI](/comparison/scraper-vs-api) y [Alternativas a Nitter](/comparison/nitter-alternatives).
- **Evaluación de Arquitectura**: compara TwexAPI con el API oficial X (pagas por recurso vs por solicitud) en nuestra [Comparación del API Oficial X](/comparison/official-x-api).
- **Sólo HTTPS**: Todas las solicitudes deben usar HTTPS por seguridad.
