---
title: "GPT-Video API pricing, credits and the API bonus"
description: "What each API call costs in credits, how the API bonus of 50 credits works, and which plans can spend through the API after the bonus."
url: "https://www.gpt-video.com/developers/pricing"
---

# API pricing

The API uses the same credits and the same daily limits as the GPT-Video app. This page explains what each kind of call uses, how the API bonus works, and which plans can keep spending through the API after the bonus.

## What a call uses

Calls that read, and calls that create or change a project, use no credits. Uploading a video uses no credits either, but the file counts toward the storage of your account.

Analyses and builds are paid in credits. To tell a user what an analysis of a video costs, call [estimate_analysis](/developers/api/estimate-analysis.md) (`POST /v1/projects/{projectId}/analyze/estimate`) and give the number it returns. It gives the exact credits and who pays, without spending anything. Create the project first, which is free. Do not work the price out from the length of the video yourself. [Estimate the cost before you spend credits](/developers/guides/estimate-before-spending.md) shows how.

The credits are charged when the work starts, and they are not returned if it fails. The page of each endpoint has a Cost section with its exact rule.

On a plan, exports, Editor Assistant turns, tool runs and fake text scripts use no credits. Each one counts against a daily limit of the plan, which starts again at 00:00 UTC.

## The API bonus

API bonus: 50 credits. No card needed.

An account can get the API bonus the first time it uses the API. We give a limited number each day. If none are left, a call on another day can get it.

To get it, the account needs a confirmed email address and a password, or a Google sign-in. Addresses from throwaway email services do not qualify. Each person gets it once.

API bonus credits can be spent only through the API. They expire 30 days after you get them.

We can pause the API bonus. While it is paused, a call it would pay for answers `PLAN_REQUIRED`. The Developers page in the app shows whether you have the bonus, and why not if you do not.

### What the bonus pays for

An action that costs credits uses the same number of bonus credits. On Starter or without a plan, the bonus also pays for exports, Editor Assistant turns, tool runs and fake text scripts, with the bonus credits in this table. On the Creator and Studio plans, those actions use the daily limits of the plan and no bonus credits.

| What the API bonus pays for | API bonus credits |
| --- | --- |
| An action that costs credits, such as an analysis | The same number of credits |
| An export | 1 |
| An Editor Assistant turn | 2 |
| A tool run | 1 |
| A fake text script | 1 |

The bonus pays only for a whole action. When it cannot cover the full price, it pays nothing for that action.

### Limits while the bonus pays

| Limit while the API bonus pays | Value |
| --- | --- |
| Exports a day | 5 |
| Longest export | 600 seconds |
| Editor Assistant turns a day | 20 |
| Tool runs a day | 10 |
| Fake text scripts a day | 10 |
| Jobs running at once | 1 |

An export longer than the limit above answers `PLAN_REQUIRED` when the bonus would pay for it. A second job paid by the bonus waits in the queue with the status `queued` until the first one ends. When a daily limit is reached, the answer is `DAILY_LIMIT_REACHED`. Do not send the request again before 00:00 UTC.

### Check your bonus

[get_credits](/developers/api/get-credits.md) (`GET /v1/credits`) shows the bonus in its own block, `bonus`. Only a bonus whose `bonus.status` is `active` can be spent. `bonus.remaining` is what is left, and `bonus.expiresAt` is when it ends. `bonus` is null when the account never received one.

## After the bonus

After the bonus, the API needs a Creator or Studio plan.

On the Creator and Studio plans, a call through the API spends the plan credits of the month, then the top-up. On Starter, or without a plan, a call through the API spends only the bonus. A call that the bonus cannot pay answers `PLAN_REQUIRED`, and its hint says where to choose a plan. The GPT-Video app works as usual on every plan.

[Compare the plans and their prices](/pricing) to choose one. The table below shows the limits of each plan for the API.

| Plan | API after the bonus | Credits a month | Exports a day | Editor Assistant turns a day | Of which through the API | Tool runs a day | Fake text scripts a day |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Starter | No | 250 | 50 | 300 | None | 50 | 50 |
| Creator | Yes | 800 | 100 | 500 | 100 | 100 | 100 |
| Studio | Yes | 6000 | 500 | 3000 | 600 | 500 | 500 |

The Editor Assistant takes part of its daily turns through the API. The column "Of which through the API" shows how many.

## Which balance pays first

Through the API, an action that costs credits is paid by the bonus first, while the bonus is active and can cover the whole price. Otherwise, on the Creator and Studio plans, the plan credits of the month pay. The top-up pays only what the plan credits do not cover.

The plan credits start again on the 1st of each month at 00:00 UTC, and the ones left over are not carried into the next month. Top-up credits are credits added to your account on top of the plan. On the Creator and Studio plans the API can spend them too. Credits you bought as a top-up do not expire.

The bonus is a separate balance. It is never part of `credits.remaining` in the answer of [get_credits](/developers/api/get-credits.md) (`GET /v1/credits`).

## Rate limits

Every key and every account can send a number of calls each minute, by kind of call. These limits are the same on every plan.

| Kind of call | Each key, a minute | Each account, a minute |
| --- | --- | --- |
| Calls that read (`read`) | 120 | 240 |
| Calls that change something (`write`) | 60 | 120 |
| Calls that spend (`spend`) | 10 | 20 |

A call over the limit answers `RATE_LIMITED`. Wait the seconds in `Retry-After`, then send the same request. [Rate limits](/developers/rate-limits.md) explains the headers that show what is left.

## When the account cannot pay

`INSUFFICIENT_CREDITS` means the plan credits and the top-up do not cover the price. `PLAN_REQUIRED` means the bonus cannot pay and the plan of the account cannot spend through the API. Both need a person to act in the GPT-Video app, so tell your user and stop the work that needs the credits. [Handle running out of credits](/developers/guides/out-of-credits.md) shows what your program should do for each code.
