14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

認証不要で即使える日本語処理API「DevTools Japan API」を作った

14
Posted at

はじめに

仕事で全角半角の変換とか和暦⇔西暦の変換を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ほしい!」があれば、気軽にコメントで教えてください〜!

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?