API · v1
注文を入れ、ルートを受け取る
すでにお使いのシステムから案件を送り、自社の識別子をそのまま保ったルートを受け取れます。エンドポイントは 3 つ、SDK は不要です。
ベース URL
api.routemate.app/v1
認証
OAuth2 client_credentials
トークン有効期間
3600 s
提供範囲
Team プラン以上
3 つの呼び出しで、これが全体です
| メソッド | パス | 用途 |
|---|---|---|
| POST | /v1/integration-token | クライアント資格情報をベアラートークンと交換します。有効期間は 1 時間です |
| POST | /v1/integration-import | 案件と停車地点を取り込み、住所をジオコーディングし、ルートを最適化し、ドライバーを割り当てます — すべて 1 リクエストで |
| GET | /v1/integration-jobs | 案件と停車地点の状態:進捗件数、地点ごとの状態、最適化後の順序 |
取り込み、ジオコーディング、最適化、割り当て
リクエスト
POST /v1/integration-import HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"external_job_id": "WMS-2026-07-30-A",
"driver_email": "driver@fleet.com.au",
"optimize": true,
"stops": [
{ "external_stop_id": "SO-88214",
"address": "3/216 Brunswick St, Fitzroy VIC 3065",
"parcel_count": 2,
"duration_minutes": 4 }
]
}レスポンス · 200 OK
{
"job_id": "job_7Yq2c",
"external_job_id": "WMS-2026-07-30-A",
"assigned_to": "driver@fleet.com.au",
"optimized": true,
"stops_imported": 142,
"stops": [
{ "external_stop_id": "SO-88214",
"stop_id": "stp_9f2",
"sequence": 38,
"status": "pending" }
],
"warnings": []
}お客様の識別子はそのまま
送信した識別子はすべて、案件にも各停車地点にも付いて返ります。お客様の注文番号と当社の番号との対応表を持つ必要はありません。
| external_job_id | お客様側のバッチ参照 — すべての停車地点に付いて返るため、対応表は不要です |
| external_stop_id | お客様の注文番号または送り状番号。状態と完了まで引き継がれます |
| address | 住所 1 行。取り込み時にジオコーディングされ、失敗は警告として返ります |
| parcel_count | 停車地点での積載・取り扱いの前提に使われます |
| duration_minutes | 戸口での作業時間 — モデル内で実際に消費されます |
| driver_email | 完成したルートを、すでにアカウントにいるドライバーへ割り当てます |
うまくいかないときの動き
冪等な書き込み
同じ external_job_id を再度取り込むと、二つ目を作るのではなく既存の案件を更新します。タイムアウト後の再試行は安全です。
部分的な成功
ジオコーディングできなかった停車地点は warnings[] に入り、案件の残りは取り込まれます。住所が 1 件おかしいだけでリクエスト全体が失敗することはありません。
バージョン管理
バージョンはパスに含まれます。同じバージョンの中でフィールドが追加されることはあっても、削除や意味の変更はありません。今日書いた連携はそのまま動き続けます。