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

# Usage and limits

> How AI hours and caption transcripts are counted, and how fast you can call the API.

## Plans

| | Free | Basic | Pro | Scale |
| - | - | - | - | - |
| AI transcription | 1 h | 30 h | 300 h | 2,000 h |
| Caption transcripts | 100 | 3,000 | Unlimited | Unlimited |
| Requests per second | 1 | 10 | 50 | 100 |

AI hours and caption transcripts are per month. See [pricing](https://bestvideotranscriptapi.com/#pricing) for prices and yearly plans.

## How AI time is counted

* Each AI transcription uses the media's length, **rounded up to the whole minute**, with a 1-minute minimum. A 4 min 10 s video uses 5 minutes.
* You're charged only when you get a transcript. Failed requests cost nothing.
* We check the media's length against your balance before any work starts. If it doesn't fit, you get `AI_HOURS_EXHAUSTED` with how much the video needs and how much you have.
* Captions never use AI time.

## Refills and extra hours

| Plan | Usage refills |
| - | - |
| Free | Every 30 days from sign-up |
| Paid | Every month, from the day your plan started |

Plan hours reset each month. Unused plan hours don't carry over.

Paid plans can also buy extra AI hours on the [billing page](https://app.bestvideotranscriptapi.com/dashboard/billing). Extra hours never expire, and we use them only after your plan's hours run out.

## Check what's left

`GET /v1/me` returns your current usage:

```json theme={null}
{
   "plan": "basic",
   "aiMinutes": { "remaining": 1720, "plan": 1720, "extra": 0, "monthly": 1800 },
   "captions": { "used": 212, "limit": 3000 },
   "refillsAt": "2026-11-27T00:00:00.000Z",
   "billingUrl": "https://app.bestvideotranscriptapi.com/dashboard/billing"
}
```

`captions.limit` is `null` on plans with unlimited caption transcripts.

## Rate limits

Each account gets the requests per second its plan allows, shared between the REST API and MCP. Over the limit, you get `429 RATE_LIMITED` and a `Retry-After` header that says how many seconds to wait.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.