---
title: "読みを確かめる（エンジンが実際に読む音）"
method: POST
path: "/api/v1/projects/{projectId}/readings/check"
tags: ["projects"]
---

# 読みを確かめる（エンジンが実際に読む音）

`POST /api/v1/projects/{projectId}/readings/check`

## Request

- Base URL: `https://app.yukkurigen.com`
- URL: `https://app.yukkurigen.com/api/v1/projects/{projectId}/readings/check`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Path parameters

- `projectId` string, required

## Request body

- object
  - `lineIndexes` integer[]: 確かめる行番号（index）。省略すると本文のある全行

## Response `200`

行ごとの読み

- object
  - `projectId` string, required
  - `checked` integer, required
  - `lines` object[], required
    - `index` integer, required
    - `speaker` string, required
    - `text` string, required: 行の text（ルビ記法のまま）
    - `subtitle` string: 字幕に出る文（ルビを外したもの）。text と違うときだけ
    - `spokenText` string, required: エンジンに渡す文（reading / ルビ / 辞書 / 括弧の除去まで当てたもの）
    - `engine` 'voicevox' | 'aquestalk', required
    - `kana` string, nullable, required: エンジンが読む音のカタカナ。/ は句の区切り、、は間。VOICEVOX は長音を母音で書く（キョオワ＝きょうは）。取れなければ null（note に理由）
    - `notation` string: エンジン自身の記法（AquesTalk 記法。' はアクセント、_ は無声化）。参考
    - `applied` object, required
      - `reading` boolean, required: 行全体の reading を読んだ（辞書・ルビは効いていない）
      - `ruby` object[], required
        - `base` string, required
        - `reading` string, required
      - `dictionary` object[], required
        - `word` string, required
        - `reading` string, required
      - `builtin` object[], required: エンジンの組み込みの直し（AquesTalk の既知の誤読み）
        - `word` string, required
        - `reading` string, required
    - `hasKanji` boolean, required: spokenText に漢字が残る（読み違いが起きうる行）
    - `hasAudio` boolean, required
    - `audioStale` boolean, required: 音声はあるが、作ったあとに読みが変わった
    - `note` string
  - `truncated` boolean
  - `remainingLineIndexes` integer[]: 100行を超えた分。lineIndexes に渡して続きを確かめる
  - `notFoundLineIndexes` integer[]
  - `staleAudio` integer[]: 音声が前の読みのままの行
  - `howToFix` string, required

## Other responses

- `400`: lineIndexes が正しくない（code: validation_error）
- `401`: 未認証（code: unauthenticated）
- `403`: 権限不足（projects:read / code: insufficient_scope）
- `404`: プロジェクトが見つからない（code: not_found）
- `429`: 回数の上限（code: rate_limited）

## Changes

- **2026-10-20** `ba5f36b016da`: 25 warning, 15 info
  - added the new `already_subscribed` enum value to the `code` response property for the response status `400`
  - added the new `already_subscribed` enum value to the `code` response property for the response status `401`
  - added the new `already_subscribed` enum value to the `code` response property for the response status `403`
  - added the new `already_subscribed` enum value to the `code` response property for the response status `404`
  - …36 more

[Operation history](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/changes/api/v1/projects/:projectId/readings/check/post.md)

---

[API](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api.md) · [All operations](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/revisions/ba5f36b016da?raw)
