はじめに
仕事で全角半角の変換とか和暦⇔西暦の変換をAPIでやりたい場面があって、探してみたんだけど…意外とちょうどいいのがない。
あっても認証が面倒だったり、英語圏向けで日本語に対応してなかったり。
ないなら作るか〜ってことで、結局自分で作っちゃいました。
ついでに祝日判定とか郵便番号検索とか、日本の開発でよく使うやつも全部まとめてAPIにしたよ。
DevTools Japan API
https://api.devtools-japan.com
30本以上のエンドポイントがあって、ほとんどが認証不要・無料で使えます!
特徴
- 認証不要でほぼ全APIがすぐ使える(curlで叩くだけ)
- 日本特化のAPIが充実(和暦、祝日、郵便番号、漢数字、全角半角)
- 開発でよく使うユーティリティ系もカバー(ハッシュ、UUID、正規表現、JWT、Diff等)
- レスポンスは全てJSON
- CORS対応済みなのでフロントエンドからも直接叩ける
API一覧
日本特化
| API | メソッド | エンドポイント |
|---|---|---|
| 和暦西暦変換 | POST | /v1/convert/wareki |
| 日本の祝日一覧 | GET | /v1/holidays/{year} |
| 祝日判定 | GET | /v1/holidays/check/{date} |
| 郵便番号→住所 | GET | /v1/postal/{code} |
| 郵便番号一括変換 | POST | /v1/postal/bulk |
| 漢数字→数字 | POST | /v1/convert/kanji-number |
| 数字→漢数字 | GET | /v1/convert/to-kanji/{n} |
| 全角半角変換 | POST | /v1/convert/zenkaku |
開発ユーティリティ
| API | メソッド | エンドポイント |
|---|---|---|
| 正規表現テスト | POST | /v1/regex/test |
| テキスト比較(Diff) | POST | /v1/diff |
| HTMLエスケープ | POST | /v1/html/escape |
| JSON整形 | POST | /v1/format/json |
| CSV⇔JSON変換 | POST | /v1/convert/csv-to-json |
| JWTデコード | POST | /v1/jwt/decode |
| ハッシュ生成 | POST | /v1/hash |
| UUID生成 | GET | /v1/generate/uuid |
| パスワード生成 | POST | /v1/generate/password |
| Unixタイムスタンプ変換 | GET | /v1/datetime/from-timestamp/{ts} |
| カラーコード変換 | GET | /v1/color/{hex} |
| バイト変換 | GET | /v1/convert/bytes/{n} |
| 単位変換 | POST | /v1/convert/unit |
| IPアドレス確認 | GET | /v1/ip |
| テキスト分析 | POST | /v1/analyze/text |
使い方
一番簡単な使い方(ブラウザだけ)
GETのAPIはアドレスバーにURLを貼るだけ。これだけでJSONが返ってくるの、ちょっと感動しません?
https://api.devtools-japan.com/v1/holidays/2026
https://api.devtools-japan.com/v1/postal/100-0001
https://api.devtools-japan.com/v1/generate/uuid
ぜひ上のURL、ブラウザで開いてみてください〜!
curlで使う
# 全角→半角変換
curl -X POST https://api.devtools-japan.com/v1/convert/zenkaku \
-H "Content-Type: application/json" \
-d '{"text": "Hello 123", "direction": "to_halfwidth"}'
{
"original": "Hello 123",
"converted": "Hello 123",
"characters_changed": 9
}
ちゃんと半角になってる…!
Pythonで使う
import requests
# 和暦変換
res = requests.post("https://api.devtools-japan.com/v1/convert/wareki", json={
"year": 2026, "month": 3, "day": 21
})
print(res.json()["wareki"]["formatted"]) # → 令和8年3月21日
# 祝日判定
res = requests.get("https://api.devtools-japan.com/v1/holidays/check/2026-05-05")
data = res.json()
print(data["is_holiday"]) # → True
print(data["holiday_name"]) # → こどもの日
JavaScriptで使う
// 郵便番号から住所を自動補完
const res = await fetch("https://api.devtools-japan.com/v1/postal/810-0001");
const data = await res.json();
if (data.found) {
document.getElementById("address").value = data.result.full_address;
// → 福岡県福岡市中央区天神
}
これ、ECサイトとかの住所入力フォームに組み込んだらめっちゃ便利だと思うんですよね。
なぜ祝日APIが必要なのか
「ChatGPTに聞けばよくない?」って思いますよね。わたしも最初そう思ってました。
でも祝日の判定って意外と面倒で、振替休日(祝日が日曜なら翌月曜が休み)や国民の休日(祝日に挟まれた平日が休み)のロジックがあるんです。しかも春分の日と秋分の日は天文計算に基づいて毎年日付が変わる…。
実際AIに騙されました。。。
LLMに聞いても「たぶん合ってる」レベルにしかならなくて、勤怠管理とか予約システムで「たぶん」は困るんですよね。
郵便番号→住所も同じ話で、日本郵便の公式データに基づく正確な変換じゃないとダメな場面がある。
このあたりのAPIは「正確なデータを返す」ことに価値があるんだなって、作ってみて改めて実感しました。
正規表現テストAPIが地味に便利
個人的に一番お気に入りがこれ。
curl -X POST https://api.devtools-japan.com/v1/regex/test \
-H "Content-Type: application/json" \
-d '{
"pattern": "(\\d{3})-(\\d{4})",
"text": "郵便番号は810-0001と100-0005です",
"flags": ["i"]
}'
マッチ位置、キャプチャグループ、マッチ数が全部返ってくるので、正規表現を書いてるときにターミナルからさっと確認できる。
これ使い始めたら手放せなくなっちゃった。
技術的な話
- FastAPI + Pythonで実装
- Railwayにデプロイ
- 認証不要のAPIは完全にステートレス(DBアクセスなし)なので高速
- 有料のAI校正APIだけClaude APIを内部で使ってる
- OpenAPI仕様を自動生成しているのでSwagger UIでそのまま試せる
Swagger UI: https://api.devtools-japan.com/docs
有料API(AI校正)
日本語校正API(POST /v1/proofread)だけはAIを使っているので認証が必要です。
月100リクエストまで無料枠があるので、よかったら試してみてね。
APIキーは https://api.devtools-japan.com の下部フォームから取得できます。
まとめ
- 30本以上の無料API、認証不要で即使える
- 日本特化API(和暦・祝日・郵便番号・漢数字・全角半角)が充実
- 開発ユーティリティ(正規表現・Diff・JWT・ハッシュ等)もカバー
- ドキュメント: https://api.devtools-japan.com
バグ報告や「こんなAPIほしい!」があれば、気軽にコメントで教えてください〜!