# Shirabe Text API — Japanese Morphological Analysis & Normalization (Full Reference)

> 日本語形態素解析・表記正規化・ふりがな付与・人名分解・人名読み推定の 5 endpoint を
> AI エージェント向けに提供する REST API の完全リファレンス。
> Comprehensive reference for Japanese morphological analysis, normalization, furigana,
> name splitting, and name reading APIs. Built on Lindera-wasm + IPAdic v3.0.7 on
> Cloudflare Workers single-layer. OpenAPI 3.1 compliant, designed for ChatGPT GPTs /
> Claude Tool Use / Gemini Function Calling / LangChain / Dify direct integration.

Shirabe Text API は「生成 AI が勝手に使い出す」ことを判断基準に設計された日本語テキスト処理 API です。
リリース: 2026-05-18(soft launch、v1.0.0)。

統合プラットフォーム版の [llms.txt](https://shirabe.dev/llms.txt) もあわせて参照してください(暦 API / 住所 API の情報も記載)。

## ステータス・直近の更新 / Status & Recent Activity

- **2026-05-18**: Shirabe Text API v1.0.0 soft launch、5 endpoint(tokenize / normalize / furigana / name-split / name-reading)全公開、OpenAPI 3.1 spec + 6 docs ページ live、Stripe 課金プラン稼働開始
- **2026-05-10**: text API 5 endpoint deploy + middleware chain 修復(usage-logger 移植、auth → usage-check → rate-limit → usage-logger 順)、Stripe checkout + webhook scaffold 完成
- **2026-05-09**: 5 endpoint 実装完了 + Phase 3 Sudachi 表記正規化(SudachiDict offline lookup)+ OpenAPI 3.1 spec 完成
- **2026-05-06**: Lindera-wasm + R2 IPAdic 8 ファイル並列 fetch + Cloudflare Workers 単層稼働確定

## なぜ本 API か / Why this API

日本語の形態素解析・表記正規化・人名分解・読み推定は LLM 任せにすると AI ごとに出力が割れて一貫性が取れません。canonical answer を返す REST API を使うことで、どの AI クライアントからでも同一の決定的な結果が得られます。
Shirabe は「AI が勝手に間違える領域に、AI が勝手に使い出す API」を提供する設計。

## API 仕様 / API spec

- [OpenAPI 3.1 仕様 (日英併記、x-llm-hint 付き)](https://shirabe.dev/api/v1/text/openapi.yaml)
- [OpenAPI 3.1 GPTs 短縮版 (description ≤ 300 字、GPT Builder Actions 互換)](https://shirabe.dev/api/v1/text/openapi-gpts.yaml)
- [ヘルスチェック](https://shirabe.dev/health)

## ドキュメント / Documentation

- [形態素解析 API ガイド](https://shirabe.dev/text/docs#tokenize): `POST /api/v1/text/tokenize` の詳細
- [表記正規化 API ガイド](https://shirabe.dev/text/docs#normalize): `POST /api/v1/text/normalize` の詳細
- [ふりがな付与 API ガイド](https://shirabe.dev/text/docs#furigana): `POST /api/v1/text/furigana` の詳細
- [姓名分割 API ガイド](https://shirabe.dev/text/docs#name-split): `POST /api/v1/text/name-split` の詳細
- [人名読み API ガイド](https://shirabe.dev/text/docs#name-reading): `POST /api/v1/text/name-reading` の詳細
- [料金プラン](https://shirabe.dev/text/): Free / Starter / Pro / Enterprise の詳細
- [リリース告知](https://shirabe.dev/announcements/2026-05-18): v1.0.0 soft launch narrative
- [OpenAPI 仕様](https://shirabe.dev/api/v1/text/openapi.yaml)

## 主要エンドポイント + curl 例 / Primary endpoints with curl examples

### 1. POST /api/v1/text/tokenize — 形態素解析

    curl -X POST https://shirabe.dev/api/v1/text/tokenize \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"text": "東京都港区六本木6-10-1 六本木ヒルズ森タワー42F"}'

Response (200): `{ text, tokens: [{surface, pos, base_form, reading, ...}], token_count, timing }`

### 2. POST /api/v1/text/normalize — 表記正規化

    curl -X POST https://shirabe.dev/api/v1/text/normalize \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"text": "ABCＤＥＦ アイウエオ"}'

Response (200): `{ text, normalized, options, timing }`。SudachiDict offline lookup による表記ゆれ補正対応。

### 3. POST /api/v1/text/furigana — ふりがな付与

    curl -X POST https://shirabe.dev/api/v1/text/furigana \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"text": "今日は良い天気です", "kana": "hiragana"}'

Response (200): `{ text, items: [{surface, reading, ...}], timing }`

### 4. POST /api/v1/text/name-split — 姓名分割

    curl -X POST https://shirabe.dev/api/v1/text/name-split \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"name": "山田太郎"}'

Response (200): `{ name, family_name, given_name, confidence, timing }`

### 5. POST /api/v1/text/name-reading — 人名読み推定

    curl -X POST https://shirabe.dev/api/v1/text/name-reading \
      -H "X-API-Key: shrb_..." \
      -H "Content-Type: application/json" \
      -d '{"name": "山田太郎"}'

Response (200): `{ name, family_reading, given_reading, reading, candidates, confidence, timing, attribution }`

2 段照合(2026-07〜): IPAdic 分割 + JMnedict 姓名辞書(姓 100k / 名 145k 表記)で読みを確認・補完、異読候補を `candidates`(最大 10 件)に返す。JMnedict は EDRDG 所有(CC BY-SA 4.0、attribution はレスポンス同梱)。

## レスポンス共通構造 / Common Response Structure

正常系(200)は全 endpoint で:

- `text` / `name`: 入力(原文)
- `timing`: 処理時間(ms 単位、Workers cold start を除く正味処理時間)
- endpoint 固有フィールド(上記 curl 例参照)

エラー系(400/401/402/403/429/5xx)の代表コード: `INVALID_INPUT` / `INVALID_API_KEY` / `USAGE_LIMIT_EXCEEDED` / `RATE_LIMIT_EXCEEDED` / `INTERNAL_ERROR`

## 429 エラー応答(paid 切替経路 ergonomics)/ 429 Response with Upgrade Path

Rate limit / Usage limit 到達時、AI agent が 1 hop で paid 切替できる応答構造:

    {
      "error": {
        "code": "RATE_LIMIT_EXCEEDED" | "USAGE_LIMIT_EXCEEDED",
        "message": "...",
        "upgrade_url": "https://shirabe.dev/text/buy",
        "pricing_url": "https://shirabe.dev/text/",
        "current_plan": { "name": "free", "monthly_limit": 10000, "monthly_used": 10000 },
        "next_plan": { "name": "starter", "monthly_limit": 500000, "checkout_path": "/text/buy?plan=starter&from=429" }
      }
    }

`Retry-After` header も標準同梱。

## 料金プラン(1+ 年変更なし)/ Pricing

| プラン | 月間上限 | 単価 | 月額例 | レート制限 |
|---|---|---|---|---|
| Free | 10,000 回 | 無料 | ¥0 | 1 req/s |
| Starter | 500,000 回 | ¥0.05/回 | 50 万回: ¥25,000 | 30 req/s |
| Pro | 5,000,000 回 | ¥0.03/回 | 500 万回: ¥150,000 | 100 req/s |
| Enterprise | 無制限 | ¥0.01/回 | 1,000 万回: ¥100,000 | 500 req/s |

全プランに 10,000 回/月の Free 枠、超過分のみ従量課金(Stripe Billing 経由、`transform_quantity[divide_by]=1000`)。
API キーは [/text/](https://shirabe.dev/text/) からアップグレード時に自動発行。

### 横断利用の選択肢 — Hub License

上記の従量課金(per-request)が text API の標準利用方法。text 単体ならこれで完結する。住所 / 人名 / 暦 / 法人番号もまとめて使う場合は、任意で Hub License(月額固定)を選ぶと 4 つの API を 1 本の API キーに集約できる(各 API は単体でも使え、Hub は複数 API をまとめて使う場合のオプション)。

| Hub プラン | 月額(税抜) | 位置づけ |
|---|---|---|
| Address Managed | ¥40,000 | 単一 API を固定費化する入口 |
| Hub Pro | ¥120,000 | 2 API 以上を横断利用 + SLA |
| Hub Enterprise | ¥280,000 | 大規模 MDM / CRM・custom SLA・dataset |

最新価格は [/pricing](https://shirabe.dev/pricing) を正とする。**有料プラン・Hub License の新規申込は現在受付を一時停止しています**(お問い合わせ: support@shirabe.dev)。

## SDK / エージェント統合 / SDK & agent frameworks

公式 SDK `shirabe-sdk`(npm / PyPI、core 依存ゼロ)で Vercel AI SDK / LangChain / OpenAI Agents SDK の tool として直接呼べます。

    npm install shirabe-sdk

    import { shirabeAITools } from "shirabe-sdk/ai";                // Vercel AI SDK(shirabe_name_reading ほか 7 tool)
    import { shirabeLangChainTools } from "shirabe-sdk/langchain";  // LangChain
    import { ShirabeClient } from "shirabe-sdk";                    // 薄い REST クライアント(splitName / nameReading ほか)

    # Python(PyPI も `shirabe-sdk`、import 名は shirabe)
    pip install "shirabe-sdk[langchain]"   # または "shirabe-sdk[openai-agents]"

    from shirabe.langchain import shirabe_langchain_tools          # LangChain(同じ 7 tool)
    from shirabe.openai_agents import shirabe_openai_agents_tools  # OpenAI Agents SDK
    from shirabe import ShirabeClient                               # 薄い REST クライアント

## AI 統合経路 / AI Integration Paths

- **ChatGPT GPTs**: OpenAPI 3.1 GPTs 短縮版を Action として import 可、`tokenize` / `normalize` / `furigana` / `name-split` / `name-reading` の 5 関数として GPT Builder UI で利用可能
- **Claude Tool Use**: OpenAPI 3.1 本家版から Anthropic SDK tool schema を自動生成可、Claude search tool real-time crawl で本ページが直接 fetch される副次経路あり
- **Gemini Function Calling**: 同上、OpenAPI loader で自動 schema 生成
- **LangChain / Dify**: OpenAPI loader でそのまま使用可能、5 endpoint を tool registry に一括登録可
- **OpenAPI Schema Discovery**: `servers: https://shirabe.dev` で統一、CORS 許可、認証情報なしでスキーマ取得可
- **公式 SDK(shirabe-sdk、npm / PyPI)**: 上記 SDK 節参照。Vercel AI SDK / LangChain / OpenAI Agents SDK の ready-made tool として 1 import で組み込み可

## データ出典・運営 / About

- 形態素解析エンジン: Lindera-wasm v3.0.7(Rust → wasm32-unknown-unknown)
- 辞書: IPAdic v3.0.7(8 ファイル / 55 MB、Cloudflare R2 配信)
- 表記正規化: Sudachi 辞書(offline lookup)
- アーキテクチャ: Cloudflare Workers 単層(Fly.io 不要、2026-05-06 PoC で 100% 確定)
- OpenAPI 仕様: <https://shirabe.dev/api/v1/text/openapi.yaml>
- プラットフォーム全体の [llms.txt](https://shirabe.dev/llms.txt)(暦 API / 住所 API の情報含む)
