---
title: "Licenses Check"
method: POST
path: "/v1/billing/licenses/check"
tags: ["billing"]
---

# Licenses Check

`POST /v1/billing/licenses/check`

## Request

- Base URL: `https://api.opero.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.opero.pro/v1/billing/licenses/check`
- Auth: none declared

Reused by every Next.js route that needs the same over-capacity
check `require_license_capacity` runs in-process for the workflows
router — one implementation, one 402 message.

## Request body

- LicenseCheckBody: A pre-flight capacity check: would raising `key`'s in-use count by `delta` exceed what's licensed? Next.js routes call this before acting (members add, role change to billable, external domains save, phone acquire, connection create-session) so an over-capacity, unconsented action is blocked with the same message everywhere.
  - `org_id` string, required
  - `key` 'seats' | 'workflows' | 'connectors' | 'external_orgs' | 'phone_numbers', required
  - `delta` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/opero/apis/opero-pro-api.md) - [All operations](https://skmtc.dev/opero/apis/opero-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opero/apis/opero-pro-api/revisions/e6ede41aeb9b?raw)
