JSON
JSON文字列をパースし、任意のJSON Schema(Draft-07)で検証します。auto_repair を true にすると trailing comma などの構文エラーを自動修復してから検証します。エラーは JSON Pointer 形式の path で返します。
MCPツール名: data.validate_json
POST /v1/json/validate
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| json_str | string | ✓ | 検証するJSON文字列 |
| schema | object | - | JSON Schemaオブジェクト(Draft-07)。省略時はパースのみ |
| auto_repair | boolean | - | 構文エラーの自動修復(デフォルト false) |
リクエスト例:
curl -X POST https://api.thousand-api.com/v1/json/validate \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"json_str": "{\"name\": \"Thousand API\", \"features\": [\"MCP\", \"Speed\"]}",
"schema": {
"type": "object",
"required": ["name", "features"],
"properties": {
"name": { "type": "string" },
"features": { "type": "array", "items": { "type": "string" } }
}
}
}'レスポンス例:
{
"valid": true,
"repaired": false,
"json": {
"name": "Thousand API",
"features": ["MCP", "Speed"]
},
"errors": []
}レスポンス:
valid が false の場合も HTTP 200 を返します(パース・スキーマエラー)。auto_repair で修復した場合は repaired が true になり、original に入力の json_str が含まれます。
POST /v1/json/validate-schema
data.validate_json とは異なり、パース済みの JSON データを JSON Schema(Draft-07)で本格的に検証します。format・pattern・minimum/maximum・additionalProperties など Draft-07 の主要制約に対応。自動修復は行いません。エラーは path・message・schema_path(スキーマ内の失敗箇所)で返します。
MCPツール名: data.validate_schema
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| data | any | ✓ | 検証対象の JSON データ(null も有効な値として許容) |
| schema | object | ✓ | JSON Schema オブジェクト(Draft-07) |
| all_errors | boolean | - | 全エラーを返す(デフォルト false: 最初のエラーのみ) |
リクエスト例:
curl -X POST https://api.thousand-api.com/v1/json/validate-schema \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"data": { "name": "Alice", "age": -1, "email": "not-an-email" },
"schema": {
"type": "object",
"required": ["name", "age", "email"],
"properties": {
"name": { "type": "string" },
"age": { "type": "number", "minimum": 0 },
"email": { "type": "string", "format": "email" }
}
},
"all_errors": true
}'レスポンス例:
{
"valid": false,
"error_count": 2,
"errors": [
{
"path": "/age",
"message": "must be >= 0",
"schema_path": "#/properties/age/minimum"
},
{
"path": "/email",
"message": "must match format \"email\"",
"schema_path": "#/properties/email/format"
}
]
}レスポンス:
valid が false の場合も HTTP 200 を返します。schema がコンパイル不可能な場合は HTTP 400(schema is not a valid JSON Schema: ...)。リクエストボディは最大 1MB です。
統合バリデーション
JSON / UUID / Luhn / バーコードの検証を type で1つ指定して実行します。個別ツール(data.validate_json 等)と同じ shared ロジックを再利用します。
MCPツール名: data.validate_all(data.validate_json / security.validate_uuid / security.validate_luhn / security.validate_barcode の統合代替)
POST /v1/validate/all
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| type | string | ✓ | json / uuid / luhn / barcode |
| value | string | ✓ | 検証対象の文字列 |
| options | object | - | type 固有の追加パラメータ |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/validate/all" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "json",
"value": "{\"name\":\"Alice\"}"
}'レスポンス例:
{
"type": "json",
"valid": true,
"details": {
"json": { "name": "Alice" },
"repaired": false
}
}フォーマットバリデーション
IPv4・IPv6・CIDR・メールアドレス・URL・クレジットカード・日本の電話番号の形式を検証します。外部依存なし。
MCPツール名: data.validate_format
GET /v1/validate/{type}
type の選択肢
| パラメータ | 説明 |
|---|---|
| ipv4 | IPv4アドレス(プライベート・ループバック判定付き) |
| ipv6 | IPv6アドレス |
| cidr | CIDR表記(ネットワーク・ホスト数計算付き) |
| メールアドレス(local/domain分解付き) | |
| url | URL(http/httpsのみ) |
| credit_card | クレジットカード番号(Luhn検証・ブランド判定) |
| phone_jp | 日本の電話番号 |
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| value | string | ✓ | バリデーションする値 |
リクエスト例:
curl "https://api.thousand-api.com/v1/validate/ipv4?value=192.168.1.1" \
-H "x-api-key: YOUR_API_KEY"レスポンス例:
{
"value": "192.168.1.1",
"type": "ipv4",
"valid": true,
"details": {
"is_private": true,
"is_loopback": false,
"is_multicast": false,
"octets": [192, 168, 1, 1]
}
}JSONマージ/パッチ
2つのJSONオブジェクトをdeep mergeするか、RFC 6902 JSON Patch操作を適用します。設定の部分更新やエージェントによるJSON再生成を避けたい場合に使います。リクエストボディは最大1MBです。
MCPツール名: data.merge_json
POST /v1/json/merge
mode: merge(deep merge)
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | ✓ | merge または patch(省略時 merge) |
| base | object | ✓ | マージ元のJSONオブジェクト |
| patch | object | ✓ | マージするJSONオブジェクト |
| array_strategy | string | - | replace(上書き)/ concat(結合)。デフォルト replace |
| null_overwrites | boolean | - | patchのnullで上書きするか。デフォルト true |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/json/merge" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "merge",
"base": {
"app": { "name": "MyApp", "version": "1.0.0" },
"features": ["auth"]
},
"patch": {
"app": { "version": "1.1.0" },
"features": ["auth", "billing"],
"debug": true
}
}'レスポンス例:
{
"mode": "merge",
"result": {
"app": { "name": "MyApp", "version": "1.1.0" },
"features": ["auth", "billing"],
"debug": true
},
"changed_keys": ["/app/version", "/debug", "/features"]
}mode: patch(RFC 6902)
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | ✓ | patch |
| base | any | ✓ | パッチ適用対象のJSON |
| operations | array | ✓ | RFC 6902操作(op, path, value?, from?) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/json/merge" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "patch",
"base": { "name": "Alice", "tags": ["a"] },
"operations": [
{ "op": "replace", "path": "/name", "value": "Bob" },
{ "op": "add", "path": "/tags/-", "value": "b" },
{ "op": "remove", "path": "/tags/0" }
]
}'レスポンス例:
{
"mode": "patch",
"result": { "name": "Bob", "tags": ["b"] },
"changed_keys": ["/name", "/tags/-", "/tags/0"]
}レスポンスフィールド
| パラメータ | 型 | 説明 |
|---|---|---|
| mode | string | 使用したモード(merge / patch) |
| result | any | 処理後のJSON |
| changed_keys | string[] | 変更されたキーのJSON Pointer一覧(patchではtest操作を除く) |
配列差分
2つの配列を比較し、追加・削除・変更なしの要素を返します。文字列・数値などのプリミティブ配列と、key フィールドを指定したオブジェクト配列(IDベース比較)に対応。エージェントが長いリストを手動比較する必要をなくし、トークン節約とミス低減に役立ちます。各配列は最大1000要素です。
MCPツール名: data.diff_arrays
POST /v1/array/diff
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| before | array | ✓ | 比較元の配列(最大1000要素) |
| after | array | ✓ | 比較先の配列(最大1000要素) |
| key | string | null | - | オブジェクト配列の比較キー(例: id, name)。省略時 null(プリミティブ比較) |
| ignore_order | boolean | - | true のとき順序を無視して集合として比較(デフォルト: false) |
文字列配列の差分(key: null)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/array/diff" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"before": ["calendar", "cron", "scraper", "json"],
"after": ["calendar", "cron", "scraper", "json", "template", "utilities"]
}'レスポンス例:
{
"added": ["template", "utilities"],
"removed": [],
"unchanged": ["calendar", "cron", "scraper", "json"],
"reordered": false,
"summary": "+2 -0 =4"
}オブジェクト配列の差分(key: "id" 指定)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/array/diff" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"before": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}],
"after": [{"id": 1, "name": "Alice"}, {"id": 3, "name": "Carol"}],
"key": "id"
}'レスポンス例:
{
"added": [{"id": 3, "name": "Carol"}],
"removed": [{"id": 2, "name": "Bob"}],
"unchanged": [{"id": 1, "name": "Alice"}],
"reordered": false,
"summary": "+1 -1 =1"
}ignore_order: true での集合比較
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/array/diff" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"before": ["a", "b", "c"],
"after": ["b", "a", "c"],
"ignore_order": true
}'レスポンス例:
{
"added": [],
"removed": [],
"unchanged": ["b", "a", "c"],
"reordered": false,
"summary": "+0 -0 =3"
}レスポンスフィールド
| パラメータ | 型 | 説明 |
|---|---|---|
| added | array | after にあって before にない要素 |
| removed | array | before にあって after にない要素 |
| unchanged | array | 両方に存在する要素(after の順序で返却) |
| reordered | boolean | ignore_order: false 時、unchanged 要素の順序が before/after で異なる場合 true |
| summary | string | 差分サマリー(例: +2 -0 =4) |
JSON配列多キーソート
JSONオブジェクト配列を複数キー・昇順/降順混在でソートします。LLMは複合ソートの比較関数(Array.sort の compare 関数など)を書き間違えやすいため、安定ソートによる確実な並び替えを提供します。キーパスはドット記法(profile.age)と配列インデックス(items[0].name)に対応。各配列は最大1000要素です。
MCPツール名: data.sort_json
POST /v1/data/sort
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| items | array | ✓ | ソート対象のJSONオブジェクト配列(最大1000要素) |
| sort_keys | array | ✓ | ソートキーの配列(1件以上)。先頭のキーが優先され、同値時に次のキーで比較 |
| sort_keys[].key | string | ✓ | ドット記法のキーパス(例: age, profile.age, items[0].name) |
| sort_keys[].order | string | ✓ | asc(昇順)または desc(降順) |
単一キーソート(age 昇順)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/data/sort" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
],
"sort_keys": [{"key": "age", "order": "asc"}]
}'レスポンス例:
{
"sorted": [
{"name": "Bob", "age": 25},
{"name": "Alice", "age": 30}
],
"count": 2
}複数キー混在ソート(age 昇順 → 同年齢は name 降順)
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/data/sort" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Carol", "age": 30}
],
"sort_keys": [
{"key": "age", "order": "asc"},
{"key": "name", "order": "desc"}
]
}'レスポンス例:
{
"sorted": [
{"name": "Bob", "age": 25},
{"name": "Carol", "age": 30},
{"name": "Alice", "age": 30}
],
"count": 3
}レスポンスフィールド
| パラメータ | 型 | 説明 |
|---|---|---|
| sorted | array | ソート済み配列(安定ソート。同値要素は元の順序を維持) |
| count | integer | ソート済み配列の要素数 |
JSONPathクエリ
JSONPathクエリを使ってJSONデータから値を抽出します。フィルタ式対応・data.validate_jsonと組み合わせ可能。
MCPツール名: data.query_json
POST /v1/json/query
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| json | any | ✓ | クエリ対象のJSONデータ(最大1MB) |
| query | string | ✓ | JSONPathクエリ($で始まる) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/json/query" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"json": {
"users": [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
},
"query": "$.users[*].name"
}'レスポンス例:
{
"query": "$.users[*].name",
"result": ["Alice", "Bob"],
"count": 2
}JSONPathクエリ例:
| コード | 説明 |
|---|---|
| $.users[*].name | 全ユーザーのname |
| $.users[0].email | 最初のユーザーのemail |
| $.users[?(@.age > 25)].name | 26歳以上のユーザーのname |
| 深さを問わず全emailを再帰取得 |
数値統計計算
数値配列の統計値(平均・中央値・標準偏差・パーセンタイル等)を計算します。外部ライブラリ不要・最大1000要素対応。
MCPツール名: data.calc_stats
POST /v1/math/stats
パラメータ:
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| values | number[] | ✓ | 統計計算する数値配列(最大1000要素) |
リクエスト例:
curl -X POST "https://api.thousand-api.com/v1/math/stats" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"values": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]}'レスポンス例:
{
"count": 10,
"sum": 550,
"mean": 55,
"median": 55,
"mode": null,
"min": 10,
"max": 100,
"range": 90,
"variance": 825,
"std_dev": 28.72,
"percentiles": {
"p25": 32.5,
"p75": 77.5,
"p90": 91,
"p95": 95.5,
"p99": 99.1
}
}