Stuck on integration? Have a question? The developer is standing by.

Japan Post Tracking API

WhereParcelの統合追跡APIで日本郵便の荷物を追跡。EMS、eパケットなど全サービスに対応。

クイックスタート

Japan Postの荷物を1回のAPI呼び出しで追跡:

curl -X POST https://api.whereparcel.com/v2/track \
  -H "Authorization: Bearer YOUR_API_KEY:YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trackingItems": [{
      "carrier": "jp.post",
      "trackingNumber": "EJ123456789JP"
    }]
  }'

Japan Post 追跡番号フォーマット

サービスフォーマット
EMSEJ XXXX XXXX JPEJ123456789JP
eパケット / 書留RX XXXX XXXX JPRB123456789JP

コード例

JavaScript / Node.js

const response = await fetch('https://api.whereparcel.com/v2/track', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}:${SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    trackingItems: [{
      carrier: 'jp.post',
      trackingNumber: 'EJ123456789JP',
    }],
  }),
});

const data = await response.json();
console.log(data.trackingItems[0].status);
// → "in_transit", "delivered", etc.

Python

import requests

response = requests.post(
    'https://api.whereparcel.com/v2/track',
    headers={
        'Authorization': f'Bearer {API_KEY}:{SECRET_KEY}',
        'Content-Type': 'application/json',
    },
    json={
        'trackingItems': [{
            'carrier': 'jp.post',
            'trackingNumber': 'EJ123456789JP',
        }],
    },
)

data = response.json()
print(data['trackingItems'][0]['status'])

Webhookでリアルタイム更新

ポーリングの代わりにWebhookを登録して、Japan Postのステータス更新を自動的に受信しましょう。追跡番号1件あたり1リクエストのみカウントされます。

// Webhookエンドポイントを登録
await fetch('https://api.whereparcel.com/v2/webhook-endpoints', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}:${SECRET_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://yourapp.com/webhooks/tracking',
    description: 'Japan Post tracking updates',
  }),
});