サービス概要
ポストくんは、日本全国の郵便番号データを検索できる無料APIサービスです。2015年の提供開始以来、多くの開発者や企業にご利用いただいており、累計で数億回以上のAPIコールを処理してきました。
郵便番号から住所を検索する際、多くのサービスでは有料プランへの誘導や複雑な認証が必要です。しかし、ポストくんは完全無料・無制限でご利用いただけます。APIキーの取得も不要で、すぐに使い始められる手軽さが特徴です。
Cloudflare CDNを活用することで、日本全国どこからアクセスしても約70msの高速レスポンスを実現。ユーザー体験を損なうことなく、スムーズな住所入力補助機能を実装できます。
ECサイト、業務システム、スマートフォンアプリなど、あらゆる場面で郵便番号検索が必要になります。ポストくんは、そのような開発者のニーズに応えるために生まれたサービスです。
なぜ無料で提供しているのか
2011年当時、大容量ストレージを提供するレンタルサーバが少なく、データのやり取りに不便を感じていました。そこで1TBのレンタルサーバサービスを開始したのがテラレンの始まりです。
その後、デジタル空間(レンタルサーバ)から実空間(不動産)へと事業を拡大する中で、「テクノロジーで人々の体験を最適化する」というミッションを掲げるようになりました。
郵便番号APIもその一環です。開発者が本当に価値あるサービスを作ることに集中できるよう、インフラ部分は無料で提供する。それが私たちの考え方です。
使い方
基本的なリクエスト
郵便番号を7桁の数字で指定してGETリクエストを送るだけです。
// JavaScript (Fetch API)
const postcode = '1000001';
fetch(`https://postcode.teraren.com/postcodes/${postcode}.json`)
.then(response => response.json())
.then(data => {
console.log(data);
// {
// "postcode": "1000001",
// "prefecture": "東京都",
// "city": "千代田区",
// "town": "千代田"
// }
})
.catch(error => console.error('Error:', error));
Reactでの利用例
import { useState } from 'react';
function AddressForm() {
const [postcode, setPostcode] = useState('');
const [address, setAddress] = useState(null);
const handleSearch = async () => {
const response = await fetch(
`https://postcode.teraren.com/postcodes/${postcode}.json`
);
const data = await response.json();
setAddress(data);
};
return (
<div>
<input
type="text"
value={postcode}
onChange={(e) => setPostcode(e.target.value)}
placeholder="郵便番号(7桁)"
maxLength="7"
/>
<button onClick={handleSearch}>検索</button>
{address && (
<div>
<p>都道府県: {address.prefecture}</p>
<p>市区町村: {address.city}</p>
<p>町域: {address.town}</p>
</div>
)}
</div>
);
}
Pythonでの利用例
import requests
def search_postcode(postcode):
url = f"https://postcode.teraren.com/postcodes/{postcode}.json"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(f"都道府県: {data['prefecture']}")
print(f"市区町村: {data['city']}")
print(f"町域: {data['town']}")
else:
print("郵便番号が見つかりませんでした")
# 使用例
search_postcode("1000001")
レスポンス形式
成功時(200 OK):
{
"postcode": "1000001",
"prefecture": "東京都",
"city": "千代田区",
"town": "千代田"
}
エラー時(404 Not Found):
{
"error": "Postcode not found"
}
パフォーマンスとインフラ
ポストくんは、以下のような技術スタックで構築されています:
- Cloudflare Workers: エッジコンピューティングで世界中どこからでも高速アクセス
- Cloudflare KV: 低レイテンシーのKey-Valueストア
- Rust: 高速で安全なバックエンド処理
- 日本郵便公式データ: 信頼性の高いデータソース
Cloudflareのエッジネットワークを活用することで、日本全国どこからアクセスしても約70msのレスポンスタイムを実現しています。これは、一般的なサーバーベースのAPIと比較して3〜5倍高速です。
データの信頼性
郵便番号データは、日本郵便が公開している公式データを使用しています。毎月更新されるデータを自動で取り込み、常に最新の状態を保っています。
新しい郵便番号の追加や変更があった場合でも、通常1〜2週間以内に反映されます。
トラブルシューティング
郵便番号が見つからない
- ハイフンを除いた7桁の数字で検索してください(例: 100-0001 → 1000001)
- 最新の郵便番号の場合、反映に時間がかかることがあります
- 一部の事業所専用郵便番号には対応していない場合があります
レスポンスが遅い
- CDNキャッシュのウォームアップに時間がかかる場合があります
- 通常は70ms程度ですが、初回アクセス時は200ms程度かかることがあります
CORSエラーが発生する
- ポストくんはCORS対応済みです。ブラウザから直接APIを呼び出すことができます
- それでもエラーが出る場合は、サーバーサイドでプロキシを設定してください
競合サービスとの比較
| 項目 | ポストくん | 某APIサービスA | 某APIサービスB |
|---|---|---|---|
| 料金 | 完全無料 | 月額5,000円〜 | 無料枠あり(月1万回) |
| レスポンス | 約70ms | 150ms〜 | 100ms〜 |
| 認証 | 不要 | APIキー必須 | APIキー必須 |
| データソース | 日本郵便公式 | 日本郵便公式 | 独自データ |
| 更新頻度 | 月1回 | 月1回 | 不定期 |
今後の予定
- 住所から郵便番号を逆引きする機能
- 緯度経度情報の追加
- GraphQL対応
- より詳細な町域情報の提供
皆様からのフィードバックをお待ちしています。機能追加のリクエストがあれば、お気軽にお問い合わせください。