# 料金と利用上限

> 各プランの料金と分数、追加購入のしくみ、APIのリクエスト数と同時実行数の上限を説明します。

Canonical: https://transcript1.com/ja/docs/billing-and-limits
Language: ja
Last updated: 2026-10-14

transcript1の料金は、動画や音声の長さで決まります。プランごとに使える分数と利用上限、分数を消費する順序を確認できます。

## プラン

| | Free | Monthly | Annual |
|---|---|---|---|
| 料金 | $0（カード不要） | 月額$9 | 年額$90 |
| 使える分数 | 60分（1回のみ） | 毎月1,000分 | 毎月1,000分 |
| 分数の追加購入 | できません | 1,000分あたり$6 | 1,000分あたり$5 |
| 1分間のリクエスト上限 | 30 | 200 | 300 |
| 同時に処理できるジョブ数 | 2 | 10 | 20 |

プランの変更や分数の追加購入は、ダッシュボードの「[Billing](https://transcript1.com/dashboard/billing)」で行います。

## 消費する分数の計算方法

- 1分につき1クレジットを消費します。1分未満は切り上げるため、61秒の動画なら2分です。最小の消費量は1分です。
- YouTube、X、TikTok、Instagram、Facebook、Bluesky、そのほかの対応プラットフォームのリンクも、アップロードしたファイルも、1分あたりの料金は同じです。字幕を取得する場合は動画の実測時間、音声認識（STT）では音声の実測時間で計算します。YouTubeやXの字幕も、TikTokやBlueskyの字幕も同じ扱いです。
- 処理済みの動画でも、新しく文字起こしすれば分数を消費します。追加で消費せずに自分の最近の文字起こしを取得したい場合は、`reuse_recent=true`を指定します。詳しくは[APIリファレンス](https://transcript1.com/ja/docs/api-reference)を参照してください。
- 文字起こしに失敗した場合やキャンセルした場合は課金されません。すでに差し引いた分数も、その時点で戻します。

## 初回の無料分

新しいアカウントには、メールアドレスの認証後に60分の無料分を付与します。GoogleまたはMicrosoftで登録した場合は、登録時に付与します。無料分は1回限りで、Freeプランでは補充されません。メールアドレスが未認証の間は、`POST /v1/transcriptions`に`403 email_not_verified`が返ります。

## プランの分数と追加購入分

分数には、プランに含まれる分と追加で購入する分があります。

- **プランの分数（cycle）**は、更新サイクルの開始時にリセットします。未使用分は繰り越せません。MonthlyとAnnualは、どちらも毎月1,000分です。
- **追加購入分（top-up）**は、有料プランで購入できます。1パック1,000分で、1回に1〜20パックを購入できます。プランの分数を使い切ると、追加購入分から消費します。有料プランを継続している間は有効期限がありません。

有料プランを解約するとFreeに戻り、プランの分数はなくなります。追加購入分は残りますが、使うには有料プランへの再加入が必要です。Freeから有料プランに変更した場合は、残りの無料分を追加購入分に移します。

## 残高を確認する

残りの分数は`GET /v1/account`で確認できます。このリクエストでは分数を消費しません。

```bash
curl https://api.transcript1.com/v1/account \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"
```

| フィールド | 内容 |
|---|---|
| `minutes.remaining` | 現在使える分数です。`cycle`を基本とし、`topup_usable`が`true`なら`topup`も加算します。 |
| `minutes.cycle` | プランに含まれる分数の残りです。 |
| `minutes.topup` | 保有している追加購入分です。 |
| `minutes.topup_usable` | 有料プランが有効な間は`true`です。 |
| `minutes.resets_at` | プランの分数が次にリセットされる日時です。該当しない場合は`null`です。 |
| `limits` | `requests_per_minute`と`max_active_jobs`を返します。 |

レスポンスには`plan`と`renews_at`も含まれます。

分数を使い切ると、`POST /v1/transcriptions`に`402 insufficient_minutes`が返ります。`action_url`は「Billing」へのリンクです。残りが0分になったときは、1サイクルにつき最大1回、メールでも通知します。

## レート制限

レート制限はアカウント単位です。同じアカウントのAPIキー、ダッシュボードのセッション、MCP接続は、共通の上限を使います。

- **1分間のリクエスト上限**は、Freeが30、Monthlyが200、Annualが300です。1分単位の集計期間で数えます。
- 認証付きの`/v1`リクエストには、レスポンスヘッダーで上限と残り回数を返します。`X-RateLimit-Limit`が上限、`X-RateLimit-Remaining`が現在の集計期間で残っている回数です。
- 上限を超えると`429 rate_limited`が返ります。次の集計期間まで何秒待つかは、`Retry-After`ヘッダーで確認できます。
- チャンクの送信はアップロードトークンで認証するため、この回数には数えません。

## 同時に処理できるジョブ数

`queued`、`fetching`、`transcribing`のいずれかにある文字起こしを数えます。上限はFreeが2件、Monthlyが10件、Annualが20件です。上限に達した状態で新しく開始すると、`Retry-After`ヘッダー付きの`429 too_many_active_jobs`が返ります。処理中の文字起こしが終わってから再試行してください。

チャンクアップロードが`awaiting_upload`の間は、ジョブ数に数えません。ただし、未完了のアップロードはチームあたり最大20件です。こちらの上限を超えた場合も`429 too_many_active_jobs`が返ります。アップロードの完了時には文字起こしをキューに入れるため、ジョブ数の上限を確認します。

エラーごとの対処方法は[エラー](https://transcript1.com/ja/docs/errors)を参照してください。
