> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Obtener suscripción de usuario

GET https://api.elevenlabs.io/v1/user/subscription

Obtiene información ampliada sobre la suscripción del usuario.

Reference: https://elevenlabs.io/docs/api-reference/user/subscription/get

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Response

### 200

Respuesta correcta.

- `tier` (string, required) — El nivel de la suscripción del usuario.
- `character_count` (integer, required) — El número de caracteres utilizados por el usuario.
- `character_limit` (integer, required) — El número máximo de caracteres permitido en el periodo de facturación actual.
- `max_character_limit_extension` (integer, required, nullable) — Obsoleto: usa `max_credit_limit_extension`. Número máximo de caracteres en que se puede superar el límite de caracteres. Lo gestiona el administrador del espacio de trabajo.
- `max_credit_limit_extension` (ExtendedSubscriptionResponseModelMaxCreditLimitExtension, required) — Número máximo de créditos en que se puede superar el límite de crédito. Lo gestiona el administrador del espacio de trabajo. `"unlimited"` significa que no hay límite; `0` significa que la facturación por uso está desactivada.
- `can_extend_character_limit` (boolean, required) — Indica si el espacio de trabajo puede incurrir en excedentes (facturación basada en el uso).
- `allowed_to_extend_character_limit` (boolean, required) — Obsoleto: usa `max_credit_limit_extension != 0`. Indica si el usuario puede ampliar su límite de caracteres.
- `voice_slots_used` (integer, required) — El número de espacios de voz utilizados por el usuario.
- `professional_voice_slots_used` (integer, required) — El número de espacios de voces profesionales utilizados. Para la facturación consolidada, es el recuento de todo el grupo en todos sus espacios de trabajo; consulta professional_voice_slots_used_in_workspace para ver solo el espacio de trabajo actual.
- `professional_voice_slots_used_in_workspace` (integer, required) — El número de espacios de voces profesionales utilizados en el espacio de trabajo actual. Para la facturación consolidada, professional_voice_slots_used cuenta todos los espacios de trabajo del grupo, mientras que este solo cuenta el espacio de trabajo actual.
- `voice_limit` (integer, required) — El número máximo de espacios de voz permitido para el usuario.
- `voice_add_edit_counter` (integer, required) — El número de adiciones o ediciones de voces utilizadas por el usuario.
- `professional_voice_limit` (integer, required) — El número máximo de voces profesionales permitido para el usuario.
- `can_extend_voice_limit` (boolean, required) — Indica si el usuario puede ampliar su límite de voces.
- `can_use_instant_voice_cloning` (boolean, required) — Indica si el usuario puede usar la clonación instantánea de voz.
- `can_use_professional_voice_cloning` (boolean, required) — Indica si el usuario puede usar la clonación profesional de voz.
- `current_overage` (Price, required) — El coste actual por exceso de uso.
- `status` (enum, required) — El estado de la suscripción del usuario.
  - Allowed values: `trialing`, `active`, `incomplete`, `past_due`, `free`, `free_disabled`
- `open_invoices` (list of InvoiceResponseModel, required) — Las facturas pendientes del usuario.
- `has_open_invoices` (boolean, required) — Indica si el usuario tiene facturas pendientes.
- `next_character_count_reset_unix` (integer, optional, nullable) — La marca de tiempo Unix del próximo restablecimiento del recuento de caracteres.
- `max_voice_add_edits` (integer, optional, nullable) — El número máximo de adiciones o ediciones de voz permitido para el usuario.
- `currency` (enum, optional, nullable) — La moneda de la suscripción del usuario.
  - Allowed values: `usd`, `eur`, `inr`, `pln`, `gbp`
- `billing_period` (enum, optional, nullable) — El periodo de facturación de la suscripción del usuario.
  - Allowed values: `monthly_period`, `3_month_period`, `6_month_period`, `annual_period`
- `character_refresh_period` (enum, optional, nullable) — El periodo de renovación de caracteres de la suscripción del usuario.
  - Allowed values: `monthly_period`, `3_month_period`, `6_month_period`, `annual_period`
- `next_invoice` (InvoiceResponseModel, optional, nullable) — La siguiente factura del usuario.
- `pending_change` (ExtendedSubscriptionResponseModelPendingChange, optional, nullable) — El cambio pendiente para el usuario.
- `has_used_starter_coupon_on_account` (boolean, optional, default: false) — True si algún espacio de trabajo propiedad de la cuenta de autenticación de este usuario ha canjeado el cupón de descuento del primer mes del plan Starter.
- `has_used_creator_coupon_on_account` (boolean, optional, default: false) — True si algún espacio de trabajo propiedad de la cuenta de autenticación de este usuario ha canjeado el cupón de descuento del primer mes para creadores.
- `is_eligible_for_starter_promo` (boolean, optional, default: false) — True si la cuenta de autenticación de este usuario cumple los requisitos para la promoción del primer mes de Starter, mediante la misma comprobación que en el proceso de compra. La marca de funcionalidad starter_discount sigue determinando si se ofrece la promoción.

## Errors

### 422 Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### ExtendedSubscriptionResponseModelMaxCreditLimitExtension

Número máximo de créditos en que se puede superar el límite de crédito. Lo gestiona el administrador del espacio de trabajo. `"unlimited"` significa que no hay límite; `0` significa que la facturación por uso está desactivada.

### Price

Par de moneda e importe.

- `amount` (string, required)
- `currency` (enum, required)
  - Allowed values: `usd`, `eur`, `inr`, `pln`, `gbp`

### InvoiceResponseModel

- `amount_due_cents` (integer, required) — El importe adeudado en céntimos.
- `discounts` (list of DiscountResponseModel, required) — Los descuentos aplicados a la factura.
- `next_payment_attempt_unix` (integer, required) — La marca de tiempo Unix del próximo intento de pago. -1 cuando no hay ningún próximo intento de pago.
- `payment_intent_status` (enum, required, nullable) — Obsoleto. Usa [payment_intent_statusses] en su lugar. El estado de la primera intención de pago de esta factura. None cuando no hay ninguna intención de pago.
  - Allowed values: `canceled`, `processing`, `requires_action`, `requires_capture`, `requires_confirmation`, `requires_payment_method`, `succeeded`
- `payment_intent_statusses` (list of enum, required) — Los estados de las intenciones de pago de esta factura. La lista estará vacía si no hay intenciones de pago.
  - Allowed values: `canceled`, `processing`, `requires_action`, `requires_capture`, `requires_confirmation`, `requires_payment_method`, `succeeded`
- `subtotal_cents` (integer, optional, nullable) — El importe del subtotal en céntimos antes de impuestos, sin incluir impuestos ni descuentos.
- `tax_cents` (integer, optional, nullable) — El importe de los impuestos en céntimos.
- `discount_percent_off` (double, optional, nullable) — Obsoleto. Usa [discounts] en su lugar. El descuento aplicado a la factura. Por ejemplo, [20.0f] para un 20 % de descuento.
- `discount_amount_off` (double, optional, nullable) — Obsoleto. Usa [discounts] en su lugar. El descuento aplicado a la factura. Por ejemplo, [20.0f] para descontar 20 céntimos.

### ExtendedSubscriptionResponseModelPendingChange

El cambio pendiente para el usuario.

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### DiscountResponseModel

- `discount_percent_off` (double, optional, nullable) — El descuento aplicado a la factura. Por ejemplo, [20.0f] para un descuento del 20 %.
- `discount_amount_off` (double, optional, nullable) — El descuento aplicado a la factura. Por ejemplo, [20.0f] para un descuento de 20 céntimos.

### PendingSubscriptionSwitchResponseModel

- `next_tier` (enum, required) — El nivel al que cambiar.
  - Allowed values: `free`, `starter`, `go`, `creator`, `pro`, `growing_business`, `scale_2024_08_10`, `grant_tier_1_2025_07_23`, `grant_tier_2_2025_07_23`, `grant`, `trial`, `enterprise`
- `next_billing_period` (enum, required) — El periodo de facturación al que se cambiará.
  - Allowed values: `monthly_period`, `3_month_period`, `6_month_period`, `annual_period`
- `timestamp_seconds` (integer, required) — La marca de tiempo del cambio.
- `kind` ("change", optional, default: change)

### PendingCancellationResponseModel

- `timestamp_seconds` (integer, required) — La marca de tiempo de la cancelación.
- `kind` ("cancellation", optional, default: cancellation)

### ValidationErrorLocItems

## Examples

**Response**

```json
{
  "tier": "starter",
  "character_count": 1000,
  "character_limit": 10000,
  "max_character_limit_extension": 10000,
  "max_credit_limit_extension": 10000,
  "can_extend_character_limit": true,
  "allowed_to_extend_character_limit": true,
  "voice_slots_used": 1,
  "professional_voice_slots_used": 0,
  "professional_voice_slots_used_in_workspace": 0,
  "voice_limit": 10,
  "voice_add_edit_counter": 0,
  "professional_voice_limit": 1,
  "can_extend_voice_limit": true,
  "can_use_instant_voice_cloning": true,
  "can_use_professional_voice_cloning": true,
  "current_overage": {
    "amount": "0",
    "currency": "usd"
  },
  "status": "active",
  "open_invoices": [
    {
      "amount_due_cents": 1000,
      "discounts": [
        {
          "discount_percent_off": 20
        }
      ],
      "next_payment_attempt_unix": 1738356858,
      "payment_intent_status": "processing",
      "payment_intent_statusses": [
        "processing",
        "succeeded"
      ],
      "subtotal_cents": 900,
      "tax_cents": 100
    }
  ],
  "has_open_invoices": true,
  "next_character_count_reset_unix": 1738356858,
  "currency": "usd",
  "billing_period": "monthly_period",
  "character_refresh_period": "monthly_period",
  "next_invoice": {
    "amount_due_cents": 1000,
    "discounts": [
      {
        "discount_percent_off": 20
      }
    ],
    "next_payment_attempt_unix": 1738356858,
    "payment_intent_status": "processing",
    "payment_intent_statusses": [
      "processing",
      "succeeded"
    ],
    "subtotal_cents": 900,
    "tax_cents": 100
  },
  "has_used_starter_coupon_on_account": false,
  "has_used_creator_coupon_on_account": false,
  "is_eligible_for_starter_promo": false
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/user/subscription"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/user/subscription';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/user/subscription"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/user/subscription")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/user/subscription")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/user/subscription');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/user/subscription");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/user/subscription")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```