---
title: "Estado de acceso del workspace (bloqueo/motivo/límites)"
method: GET
path: "/billing/access"
tags: ["Billing"]
---

# Estado de acceso del workspace (bloqueo/motivo/límites)

`GET /billing/access`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/billing/access`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Si el workspace está bloqueado, por qué, y contra qué límites está corriendo. Es lo que hay que consultar cuando una llamada empieza a fallar por plan y no por permisos: distingue «no tienes scope» de «la cuenta está cortada».

## Response `200`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` WorkspaceAccessResponseDto, required
    - `blocked` boolean, required: `true` = las escrituras están rechazándose.
    - `current_period_end` string, nullable, required
    - `landed_on_fallback` boolean: `true` mientras la prueba ya venció y el workspace opera con el plan de aterrizaje (`fallback_plan_id`) pero el cron todavía no movió la fila. En esa ventana `plan_id`/`plan_slug`/`limits` ya son los del plan nuevo y `subscription_status` sigue diciendo `trial`: el plan efectivo manda.
    - `limits` WorkspaceAccessLimitsDto, required
      - `contacts_max` number, required
      - `contacts_used` number, required
      - `members_max` number, required
      - `members_used` number, required
      - `mets_max` number, required
      - `mets_used` number, required
    - `message` string, nullable, required: Explicación para mostrarle a una persona.
    - `over_limit` WorkspaceOverLimitDto
      - `cause` 'downgrade' | 'other', nullable, required: `downgrade` otorga días de gracia; `other` bloquea de inmediato.
      - `contacts_near` boolean, required
      - `contacts_over` boolean, required
      - `grace_until` string, nullable, required: Hasta cuándo hay margen antes de que se congelen las escrituras.
      - `members_near` boolean, required: `true` cuando el uso se acerca al techo, antes de pasarlo.
      - `members_over` boolean, required
      - `mets_over` boolean, required
      - `over` boolean, required: `true` si alguna dimensión está por encima del límite.
      - `since` string, nullable, required: Desde cuándo está en sobrecupo.
    - `plan_id` number, nullable, required
    - `plan_name` string, nullable, required
    - `plan_slug` string, nullable, required
    - `reason` 'trial_expired' | 'plan_inactive' | 'plan_deactivated' | 'period_expired' | 'contacts_limit' | 'over_limit' | 'suspended', nullable, required: Qué lo bloquea. `null` cuando `blocked` es `false`.
    - `severity` 'none' | 'warn' | 'block', required: `warn` avisa sin bloquear; `block` ya está rechazando escrituras.
    - `subscription_status` string, nullable, required
    - `trial_ends_at` string, nullable, required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/5d9ca294295c?raw)
