文字列ケース変換
camel・snake・kebab・pascal・constant・title 等に相互変換します。入力ケースを自動検出。to=all で全ケースを一括取得可能。
MCPツール名: text.convert_string_case
GET /v1/string/case
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | 変換する文字列 |
| to | string | ✓ | camel / snake / kebab / pascal / constant / title / lower / upper / all |
リクエスト例:
curl "https://api.thousand-api.com/v1/string/case?text=hello_world_foo&to=camel" \
-H "x-api-key: YOUR_API_KEY"レスポンス例:
{
"text": "hello_world_foo",
"to": "camel",
"detected_case": "snake",
"result": "helloWorldFoo"
}レスポンス:
to=all の場合、result は各ケース名をキーとするオブジェクトになります。日本語を含む文字列は lower / upper のみ変換し、それ以外のケースは入力をそのまま返します。
ランダム文字列生成
暗号学的に安全なランダム文字列を生成します。文字セット・長さ・生成個数を指定可能。Node.js標準crypto使用。
MCPツール名: text.generate_random_string
GET /v1/random/string
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| length | integer | - | 文字数(デフォルト: 16・最大: 128) |
| charset | string | - | alphanumeric / alphabetic / numeric / hex / urlsafe / uppercase |
| count | integer | - | 生成個数(デフォルト: 1・最大: 10) |
リクエスト例:
curl "https://api.thousand-api.com/v1/random/string?length=8&charset=uppercase&count=3" \
-H "x-api-key: YOUR_API_KEY"レスポンス例:
{
"length": 8,
"charset": "uppercase",
"count": 3,
"results": ["AB3K7MN2", "PQ9XL4WZ", "R7MN2PQ9"]
}レスポンス:
生成された文字列はセッショントークン・一時パスワード・招待コード等に使用できます。本番環境での暗号鍵生成には、用途に応じた適切な鍵生成方法(例: crypto.generateKeyPair)を使用してください。
テキスト統計
HTMLからプレーンテキストを抽出したり、テキストの文字数・単語数・段落数・推定読了時間・トークン数見積もりを返したり、長文を文・段落の境界を保ったままチャンク分割したり、個人情報(メール・電話番号・クレジットカード)をマスキングしたり、2つのテキスト間の差分・類似度を計算したり、人間が読めるタイトルからURLセーフなスラッグを生成します。
MCPツール名: text.extract_text_from_html, text.get_text_stats, text.estimate_tokens, text.split_text, text.mask_pii, text.diff_text, text.diff_markdown_tables, text.calc_text_similarity, text.generate_slug
POST /v1/text/html-to-text
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| html | string | ✓ | HTMLテキスト(最大1MB) |
| max_length | integer | - | 出力テキストの最大文字数(正の整数) |
| preserve_links | boolean | - | trueのときリンク一覧(text / href)を返す(デフォルトfalse) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/html-to-text" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>Hello</h1><p>Visit <a href=\"https://example.com\">Example</a></p>",
"max_length": 500,
"preserve_links": true
}'レスポンス例:
{
"text": "Hello\n\nVisit Example",
"char_count": 19,
"truncated": false,
"links": [
{
"text": "Example",
"href": "https://example.com"
}
]
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| text | タグ除去・エンティティデコード・空白正規化済みのプレーンテキスト |
| char_count | textの文字数 |
| truncated | max_lengthによりテキストが切り詰められた場合true |
| links | preserve_links: true のときのみ。{ text, href } の配列 |
レスポンス:
script / style タグとその中身は完全に除去されます。ブロック要素(p, div, h1〜h6, li 等)は改行に変換され、3行以上の連続改行は2行に圧縮されます。Scraperで取得したHTMLのトークン削減に使えます。
POST /v1/text/stats
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | 解析するテキスト(最大100KB) |
| lang | string | - | 言語コード(ja / en・デフォルトen) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/stats" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "AIエージェントに確実性を与えるMCPサーバー。",
"lang": "ja"
}'レスポンス例:
{
"characters": 22,
"characters_no_spaces": 22,
"words": 22,
"sentences": 1,
"paragraphs": 1,
"reading_time_seconds": 3
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| characters | 全文字数(スペース・改行含む) |
| characters_no_spaces | スペース・タブ・改行を除いた文字数 |
| words | 単語数(ja: 空白除く文字数 / en: スペース区切り) |
| sentences | 文数(ja: 。!? / en: .!?) |
| paragraphs | 段落数(空行で区切る) |
| reading_time_seconds | 推定読了時間(秒・切り上げ) |
レスポンス:
読了速度: ja は 500文字/分(characters_no_spaces)、en は 225単語/分(words)。外部APIへの依存なし。
POST /v1/text/estimate-tokens
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | トークン数を見積もるテキスト(最大1MB) |
| model_hint | string | - | モデルヒント(claude / gpt / generic・デフォルトgeneric) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/estimate-tokens" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "AIエージェントに確実性を与えるMCPサーバー。HTMLや長文を渡す前に消費トークン数を確認できます。",
"model_hint": "generic"
}'レスポンス例:
{
"char_count": 42,
"estimated_tokens": 28,
"model_hint": "generic",
"method": "approximation",
"breakdown": {
"ascii_chars": 0,
"japanese_chars": 22,
"other_chars": 20
},
"note": "This is an approximation. Actual token count may vary by ±15%."
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| char_count | テキストの全文字数 |
| estimated_tokens | 近似トークン数(切り上げ) |
| model_hint | 使用したモデルヒント |
| method | 常に approximation(近似計算) |
| breakdown.ascii_chars | ASCII英数字の文字数 |
| breakdown.japanese_chars | ひらがな・カタカナ・漢字の文字数 |
| breakdown.other_chars | 記号・スペース・改行などその他の文字数 |
| note | 近似である旨と誤差範囲(±15%)の注記 |
レスポンス:
TOKENを節約するため、HTML抽出や長文をLLMに渡す前に消費トークン数を事前確認する用途に最適です。外部ライブラリ(tiktoken等)は使用しません。
POST /v1/text/split
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | 分割するテキスト(最大1MB)。空文字列は chunk_count: 0 を返す |
| max_chars | integer | ✓ | 1チャンクの最大文字数(コードポイント単位・1以上の整数) |
| overlap | integer | - | 直前チャンク末尾から重複させる文字数(0 <= overlap < max_chars・デフォルト0) |
| boundary | string | - | 分割単位(sentence / paragraph / char・デフォルトsentence)。1単位が max_chars を超える場合は 段落→文→文字 の順にフォールバック |
例1: boundary "sentence"(文境界・デフォルト)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/split" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "一文目です。二文目です。三文目です。",
"max_chars": 11,
"boundary": "sentence"
}'レスポンス例:
{
"chunk_count": 3,
"chunks": [
{ "index": 0, "text": "一文目です。", "char_count": 6 },
{ "index": 1, "text": "二文目です。", "char_count": 6 },
{ "index": 2, "text": "三文目です。", "char_count": 6 }
]
}例2: boundary "paragraph"(空行区切り)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/split" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "はじめに。\n\n本文の段落です。\n\nまとめ。",
"max_chars": 12,
"boundary": "paragraph"
}'レスポンス例:
{
"chunk_count": 3,
"chunks": [
{ "index": 0, "text": "はじめに。\n\n", "char_count": 7 },
{ "index": 1, "text": "本文の段落です。\n\n", "char_count": 10 },
{ "index": 2, "text": "まとめ。", "char_count": 4 }
]
}例3: boundary "char"(固定長スライス)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/split" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "abcdefghij",
"max_chars": 4,
"boundary": "char"
}'レスポンス例:
{
"chunk_count": 3,
"chunks": [
{ "index": 0, "text": "abcd", "char_count": 4 },
{ "index": 1, "text": "efgh", "char_count": 4 },
{ "index": 2, "text": "ij", "char_count": 2 }
]
}例4: overlap でチャンク間の文脈を保持(RAG向け)
RAGのチャンキングでは、overlap を指定すると各チャンクの先頭に直前チャンク末尾の文字列が重複して残るため、チャンク単体をベクトル検索したときの文脈欠落を防げます。
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/split" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "検索対象の文書です。前の文脈を保ちたい。",
"max_chars": 12,
"overlap": 4,
"boundary": "sentence"
}'レスポンス例:
{
"chunk_count": 2,
"chunks": [
{ "index": 0, "text": "検索対象の文書です。", "char_count": 10 },
{ "index": 1, "text": "書です。前の文脈を保ちたい。", "char_count": 14 }
]
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| chunk_count | チャンク数 |
| chunks[].index | 0始まりのチャンク番号 |
| chunks[].text | チャンクのテキスト |
| chunks[].char_count | チャンクの文字数(コードポイント単位・絵文字も1文字と数える) |
レスポンス:
LLMのコンテキストウィンドウに収まるよう長文を分割したり、RAGのチャンキング前処理、文・段落の意味を保ったままの要約/翻訳用分割に使えます。text.estimate_tokens と組み合わせるとトークン予算に応じたチャンクサイズ調整ができます(現在は文字数ベースのみ)。MCPツール名: text.split_text
POST /v1/text/mask-pii
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | マスキング対象のテキスト(最大50,000文字) |
| types | string[] | - | 検出する種類(email / phone_jp / credit_card)。省略時は全種類 |
| mask_char | string | - | マスクに使う1文字(デフォルト *。サロゲートペア不可) |
マスキング形式(固定仕様)
| パラメータ | 説明 |
|---|---|
| ****@****.{TLD}(ローカル部・ドメイン第1ラベルは長さに関わらず固定4文字。中間サブドメインは省略しTLDのみ残す。例: taro.yamada@mail.example.co.jp → ****@****.jp)。固定長にすることでマスク後の文字数から元の長さを推測できないようにしています | |
| phone_jp | 先頭ブロックと末尾4桁を残し、中間を****に置換(桁数に関わらず固定4文字)。例: 090-1234-5678 → 090-****-5678、03-1234-5678 → 03-****-5678 |
| credit_card | 13〜19桁の候補をLuhn検証し、合格したもののみ対象。区切り文字を保持したまま末尾4桁以外をマスク。例: 4111-1111-1111-1111 → ****-****-****-1111 |
例1: メールと電話番号のマスキング
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/mask-pii" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "連絡先: taro.yamada@mail.example.co.jp / TEL: 090-1234-5678"
}'レスポンス例:
{
"masked_text": "連絡先: ****@****.jp / TEL: 090-****-5678",
"detected": [
{ "type": "email", "count": 1 },
{ "type": "phone_jp", "count": 1 }
]
}例2: クレジットカード(Luhn合格のみ)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/mask-pii" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "CARD: 4111-1111-1111-1111 / INVALID: 4111-1111-1111-1112",
"types": ["credit_card"]
}'レスポンス例:
{
"masked_text": "CARD: ****-****-****-1111 / INVALID: 4111-1111-1111-1112",
"detected": [
{ "type": "credit_card", "count": 1 }
]
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| masked_text | マスキング後のテキスト |
| detected | 検出された種類ごとの件数(countが0の種類は含めない) |
| detected[].type | email / phone_jp / credit_card |
| detected[].count | その種類の検出・マスキング件数 |
レスポンス:
処理順は email → credit_card → phone_jp です(カード番号中の数字が電話番号として誤検出されるのを防ぐため)。外部APIは使いません。MCPツール名: text.mask_pii
POST /v1/text/diff
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| original | string | ✓ | 比較元テキスト(最大256KB) |
| modified | string | ✓ | 比較先テキスト(最大256KB) |
| context_lines | integer | - | 差分前後に含める文脈行数(0〜10・デフォルト3) |
| format | string | - | 出力形式(unified / json・デフォルトunified) |
例: format "unified"(unified diff 文字列)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/diff" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"original": "line1\nline2\nline3\n",
"modified": "line1\nline3\nline4\n",
"context_lines": 3,
"format": "unified"
}'レスポンス例:
{
"diff": "===================================================================\n@@ -1,3 +1,3 @@\n line1\n-line2\n line3\n+line4\n",
"added_lines": 1,
"removed_lines": 1,
"has_changes": true
}例: format "json"(構造化データ)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/diff" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"original": "alpha\nbeta\n",
"modified": "alpha\ngamma\n",
"format": "json"
}'レスポンス例:
{
"diff": [
{ "type": "unchanged", "lines": ["alpha"] },
{ "type": "removed", "lines": ["beta"] },
{ "type": "added", "lines": ["gamma"] }
],
"added_lines": 1,
"removed_lines": 1,
"has_changes": true
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| diff | format: unified なら unified diff 文字列(--- / +++ ヘッダー行は除去済み)。format: json なら { type, lines } の配列 |
| added_lines | 追加された行数 |
| removed_lines | 削除された行数 |
| has_changes | 差分が存在する場合 true |
レスポンス:
行単位の差分計算。コードレビュー、AI生成テキストと原文の比較、ドキュメント改訂の要約に使えます。MCPツール名: text.diff_text
POST /v1/text/diff-table
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| before | string | ✓ | 比較元の Markdown テーブル文字列(最大100KB) |
| after | string | ✓ | 比較先の Markdown テーブル文字列(最大100KB) |
| key_column | string | number | - | 行の識別キーとなる列名または0始まりの列インデックス。省略時は before テーブルの1列目(先頭列)の列名をキーに使い、各行のその列のセル値で行を対応付けます。数値指定時は両テーブルのヘッダー配列の同じインデックス位置の列名を解決してキー列とします。列名が before / after で異なる場合は列名を明示指定してください。 |
例1: DB定義の変更検出(key_column: "ID")
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/diff-table" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"before": "| ID | 名前 | 型 |\n|---|---|---|\n| 1 | id | bigint |\n| 2 | name | int |\n| 3 | email | varchar(255) |",
"after": "| ID | 名前 | 型 | NULL許容 |\n|---|---|---|---|\n| 1 | id | bigint | NO |\n| 2 | name | bigint | NO |\n| 4 | created_at | datetime | NO |",
"key_column": "ID"
}'レスポンス例:
{
"headers": {
"before": ["ID", "名前", "型"],
"after": ["ID", "名前", "型", "NULL許容"]
},
"added_columns": ["NULL許容"],
"removed_columns": [],
"rows": {
"added": [{ "ID": "4", "名前": "created_at", "型": "datetime", "NULL許容": "NO" }],
"removed": [{ "ID": "3", "名前": "email", "型": "varchar(255)" }],
"changed": [{
"key": "2",
"changes": [{ "column": "型", "before": "int", "after": "bigint" }]
}],
"unchanged_count": 1
},
"has_changes": true
}例2: key_column 省略(先頭列 ID をキーに、非キー列のヘッダー名のみ変更)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/diff-table" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"before": "| ID | Label |\n|---|---|\n| 1 | alpha |\n| 2 | beta |",
"after": "| ID | Name |\n|---|---|\n| 1 | alpha |\n| 2 | gamma |"
}'レスポンス例:
{
"headers": {
"before": ["ID", "Label"],
"after": ["ID", "Name"]
},
"added_columns": ["Name"],
"removed_columns": ["Label"],
"rows": {
"added": [],
"removed": [],
"changed": [],
"unchanged_count": 2
},
"has_changes": true
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| headers.before / headers.after | 各テーブルの列ヘッダー配列 |
| added_columns | after にのみ存在する列名 |
| removed_columns | before にのみ存在する列名 |
| rows.added | after にのみ存在する行(キー列の値で before にない行) |
| rows.removed | before にのみ存在する行 |
| rows.changed | 両方に存在し、共通列のいずれかのセル値が異なる行。key はキー列の値、changes は { column, before, after } の配列 |
| rows.unchanged_count | キーが一致し共通列のセル値がすべて同一の行数 |
| has_changes | 列の追加・削除、行の追加・削除、セル変更のいずれかがある場合 true |
text.diff_text は Markdown テーブルも行単位のテキストとして比較します(パイプ記号やセル境界の変更も1行差分として検出)。本APIは GFM テーブルをパースし、列の追加・削除、行の追加・削除、セル単位の変更を構造化して返します。DBスキーマや仕様表のレビューには text.diff_markdown_tables、自由文やコード全体の差分確認には text.diff_text を使い分けてください。
レスポンス:
GFM Markdown テーブルの構造化 diff。DB定義・API仕様表・設計ドキュメントの変更検出に使えます。MCPツール名: text.diff_markdown_tables
POST /v1/text/similarity
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text1 | string | ✓ | 比較元テキスト(最大10,000文字) |
| text2 | string | ✓ | 比較先テキスト(最大10,000文字) |
| algorithms | string[] | - | 実行するアルゴリズム(levenshtein / jaro_winkler / jaccard・デフォルト: 全3種) |
レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| levenshtein | 文字単位の編集距離。誤字・タイポ検出に適している |
| jaro_winkler | 前方一致を重視。人名・会社名など固有名詞の名寄せに適している |
| jaccard | 単語集合の重複率。文書の内容的な類似度に適している |
例1: 会社名の名寄せ
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/similarity" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text1": "株式会社千代田",
"text2": "(株)千代田"
}'レスポンス例:
{
"text1_length": 7,
"text2_length": 6,
"levenshtein": { "distance": 4, "similarity": 0.4286 },
"jaro_winkler": { "similarity": 0.746 },
"jaccard": { "similarity": 0.2222 }
}例2: 文書の重複チェック
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/similarity" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text1": "AIエージェントに確実性を与えるMCPサーバー。リアルタイムデータと副作用を扱います。",
"text2": "AIエージェントに確実性を与えるMCPサーバー。為替・祝日などのリアルタイムデータを扱います。"
}'レスポンス例:
{
"text1_length": 43,
"text2_length": 47,
"levenshtein": { "distance": 12, "similarity": 0.7447 },
"jaro_winkler": { "similarity": 0.9474 },
"jaccard": { "similarity": 0.3333 }
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| text1_length | text1 の文字数 |
| text2_length | text2 の文字数 |
| levenshtein.distance | 編集距離(操作回数) |
| levenshtein.similarity | 類似度スコア(0〜1・小数第4位) |
| jaro_winkler.similarity | Jaro-Winkler 類似度(0〜1・小数第4位) |
| jaccard.similarity | Jaccard 係数(0〜1・小数第4位) |
text.diff_text は「どこが違うか」(行単位の差分)を返します。本APIは「どれくらい似ているか」を数値スコアで返します。重複検出や名寄せの閾値判定には text.calc_text_similarity、変更箇所の確認には text.diff_text を使い分けてください。両方を組み合わせると「類似度」と「差分の位置」の両方が得られます。
レスポンス:
外部APIへの依存なし。同じ入力で常に同じ結果が得られる決定論的な計算です。MCPツール名: text.calc_text_similarity
POST /v1/text/slugify
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | スラッグ化するテキスト(最大1000文字) |
| locale | string | - | ja(デフォルト): 日本語をヘボン式ローマ字に変換してからスラッグ化。en 等: ローマ字変換をスキップ |
| separator | string | - | 単語区切り(- / _ / .・デフォルト -) |
| max_length | integer | - | スラッグの最大文字数(1〜200) |
| lowercase | boolean | - | 小文字化(デフォルト true) |
text.convert_string_case(GET /v1/string/case)は既存の英数字識別子のケース変換(camel / snake / kebab 等)向けで、日本語は lower / upper のみ対応します。本APIは日本語タイトルからURLパス・ドキュメントID・ナビゲーションキーを生成する用途向けで、locale: ja のとき kuromoji + kuroshiro でローマ字化してから正規化します。
MCPツール名: text.generate_slug
例1: 日本語タイトル(locale: ja)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/slugify" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Thousand API — 祝日カレンダー機能",
"locale": "ja"
}'レスポンス例:
{
"input": "Thousand API — 祝日カレンダー機能",
"slug": "thousand-api-shukujitsu-karendaa-kinou",
"truncated": false,
"char_replaced": ["—"]
}例2: 英語テキスト(locale: en)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/slugify" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello World! This is a Test.",
"locale": "en"
}'レスポンス例:
{
"input": "Hello World! This is a Test.",
"slug": "hello-world-this-is-a-test",
"truncated": false,
"char_replaced": ["!", "."]
}例3: separator と max_length の指定
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/text/slugify" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "My Long Document Title Here And More",
"locale": "en",
"separator": "_",
"max_length": 30
}'レスポンス例:
{
"input": "My Long Document Title Here And More",
"slug": "my_long_document_title_here",
"truncated": true,
"char_replaced": []
}レスポンスフィールド:
| パラメータ | 説明 |
|---|---|
| input | リクエストの text をそのまま返す |
| slug | 生成されたURLセーフなスラッグ |
| truncated | max_length により切り詰められた場合 true |
| char_replaced | 除去・置換された文字の一覧(重複なし・出現順) |
レスポンス:
日本語処理は /v1/ja/convert と同じ Lambda(kuromoji 辞書)を使用します。初回リクエストはコールドスタートで数秒かかることがあります。
日本語変換
日本語テキストをひらがな・カタカナ・ローマ字に変換します。kuromojiによる形態素解析で固有名詞も正確に変換。
MCPツール名: text.convert_japanese
GET /v1/ja/convert
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | ✓ | 変換する日本語テキスト(最大1000文字) |
| to | string | ✓ | hiragana / katakana / romaji |
リクエスト例:
curl "https://api.thousand-api.com/v1/ja/convert?text=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%B8%8B%E8%B0%B7%E5%8C%BA&to=hiragana" \
-H "x-api-key: YOUR_API_KEY"レスポンス例:
{
"text": "東京都渋谷区",
"to": "hiragana",
"result": "とうきょうとしぶやく"
}