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

# Suscripción actual

> Obtiene el estado y los detalles de la suscripción actual del usuario autenticado.

## Descripción general

Devuelve la información de la suscripción actual del usuario, incluidos el plan, el ciclo de facturación y las fechas de renovación. Requiere autenticación por sesión (token de acceso JWT).

<Note>
  **Para integraciones de terceros:** use `GET /subscriptions/current/api` con autenticación por clave API.
</Note>

## Autenticación

<ParamField header="Authorization" type="string" required>
  Su token de acceso JWT. Formato: `Bearer YOUR_ACCESS_TOKEN`
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.llmgenerator.com/api/v1/subscriptions/current \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/current', {
    headers: {
      'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
    }
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.llmgenerator.com/api/v1/subscriptions/current',
      headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}
  )
  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Active Subscription theme={null}
  {
    "hasSubscription": true,
    "subscription": {
      "plan": "professional",
      "status": "active",
      "billingCycle": "monthly",
      "currentPeriodStart": "2024-01-15T00:00:00Z",
      "currentPeriodEnd": "2024-02-15T00:00:00Z",
      "cancelAtPeriodEnd": false
    },
    "planDetails": {
      "id": "professional",
      "name": "Professional",
      "monthlyCredits": 3000,
      "price": 12.99,
      "features": [
        "3,000 credits/month",
        "Priority support",
        "Advanced analytics"
      ]
    }
  }
  ```

  ```json No Subscription theme={null}
  {
    "hasSubscription": false,
    "subscription": null,
    "planDetails": null
  }
  ```

  ```json Canceled (Still Active) theme={null}
  {
    "hasSubscription": true,
    "subscription": {
      "plan": "professional",
      "status": "active",
      "billingCycle": "monthly",
      "currentPeriodStart": "2024-01-15T00:00:00Z",
      "currentPeriodEnd": "2024-02-15T00:00:00Z",
      "cancelAtPeriodEnd": true
    },
    "planDetails": {
      "id": "professional",
      "name": "Professional",
      "monthlyCredits": 3000,
      "price": 12.99,
      "features": [...]
    }
  }
  ```
</ResponseExample>

## Campos de respuesta

<ResponseField name="hasSubscription" type="boolean">
  Indica si el usuario tiene una suscripción activa.
</ResponseField>

<ResponseField name="subscription" type="object">
  Detalles de la suscripción (null si no hay suscripción).

  <Expandable title="Propiedades">
    <ResponseField name="plan" type="string">
      Identificador del plan (starter, professional, business, agency).
    </ResponseField>

    <ResponseField name="status" type="string">
      Estado actual: `active`, `canceled`, `past_due` o `trialing`.
    </ResponseField>

    <ResponseField name="billingCycle" type="string">
      Frecuencia de facturación: `monthly` o `yearly`.
    </ResponseField>

    <ResponseField name="currentPeriodStart" type="string">
      Inicio del período de facturación actual (ISO 8601).
    </ResponseField>

    <ResponseField name="currentPeriodEnd" type="string">
      Fin del período de facturación actual (ISO 8601).
    </ResponseField>

    <ResponseField name="cancelAtPeriodEnd" type="boolean">
      Si es true, la suscripción finalizará en `currentPeriodEnd`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="planDetails" type="object">
  Información completa del plan (null si no hay suscripción).
</ResponseField>

## Estados de la suscripción

| Estado     | Descripción                                            |
| ---------- | ------------------------------------------------------ |
| `active`   | La suscripción está activa y al corriente              |
| `trialing` | El usuario está en periodo de prueba                   |
| `past_due` | El pago falló; la suscripción puede suspenderse pronto |
| `canceled` | La suscripción se canceló por completo                 |

## Respuestas de error

<ResponseField name="401" type="error">
  No autorizado: token no válido o ausente.
</ResponseField>

***

## GET /subscriptions/current/api

Devuelve la suscripción actual del usuario mediante autenticación por clave API. Adecuado para integraciones de terceros.

### Autenticación

Requiere autenticación por clave API. Incluya su clave en el encabezado `Authorization`:

```
Authorization: Bearer llmgen_your_api_key_here
```

### Respuesta

Igual que `/subscriptions/current` arriba.

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.llmgenerator.com/api/v1/subscriptions/current/api \
    -H "Authorization: Bearer llmgen_your_api_key_here"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.llmgenerator.com/api/v1/subscriptions/current/api', {
    headers: {
      'Authorization': 'Bearer llmgen_your_api_key_here'
    }
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.llmgenerator.com/api/v1/subscriptions/current/api',
      headers={'Authorization': 'Bearer llmgen_your_api_key_here'}
  )
  data = response.json()
  ```
</RequestExample>
