DroMap 無人航空機飛行マップ

API

法人向け 判定API

ドロマップの飛行可否判定エンジンを、APIキーを使って自社のシステムやアプリから呼び出せます。緯度・経度を送るだけで、その地点にかかる規制をJSONで取得できます。料金・プランなどのご利用条件は、ご利用規模・用途に応じて個別にご案内しています。まずはお問い合わせフォームからご相談ください。

できること

  • 緯度・経度を指定した1地点の判定(GET)
  • 最大100地点をまとめて判定する一括判定(POST。1地点=利用回数1回)
  • 人口集中地区(DID)・空港等の周辺空域・小型無人機等飛行禁止法のレッド/イエローゾーンの該当有無をまとめて取得
  • 工業専用地域の DID 除外特例(2026年7月施行)を反映した判定
  • 海上の地点かどうかの判定(海上で陸上の規制に当たらない地点は「海域」として返します)
  • 空港周辺空域の実効の制限高を、海抜(標高)と地上高の両方の数値で取得
  • 当月の利用回数と上限の確認

ベースURL

https://www.dromap.jp/api/v1

認証

すべてのリクエストに、発行されたAPIキーを次のいずれかの方法で付与してください。

  • リクエストヘッダー X-API-Key: <APIキー>
  • または Authorization: Bearer <APIキー>

APIキーはサーバー間通信でのみ使用し、ブラウザやモバイルアプリのコードに直接埋め込まないでください。クライアント側に埋め込むと第三者に読み取られ、不正利用や利用上限の消費につながるおそれがあります。

エンドポイント

GET /judge — 1地点の判定

パラメーター型必須説明
latnumber○緯度
lngnumber○経度
curl "https://www.dromap.jp/api/v1/judge?lat=35.6812&lng=139.7671" \
  -H "X-API-Key: YOUR_API_KEY"

POST /judge — 最大100地点の一括判定

JSONボディで points 配列(最大100件)を送信します。1地点=利用回数1回として数えます。

フィールド型必須説明
pointsarray○判定したい地点の配列(最大100件)
points[].idstring または number-任意の識別子。レスポンスにそのまま含まれます。省略した場合はレスポンスで null になります
points[].latnumber○緯度
points[].lngnumber○経度
curl -X POST "https://www.dromap.jp/api/v1/judge" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "points": [
      { "id": "A-1", "lat": 35.6812, "lng": 139.7671 },
      { "id": "A-2", "lat": 34.6937, "lng": 135.5023 }
    ]
  }'

レスポンスは count(判定した地点数)とresults(判定結果の配列)を持つ形式です。resultsの各要素は、リクエストで渡した id に加えて、GET /judgeと同じ判定結果の項目(level・did・airport など)を持ちます。

{
  "count": 2,
  "results": [
    { "id": "A-1", "lat": 35.6812, "lng": 139.7671, /* 以下 GET と同じ項目 */ ... },
    { "id": "A-2", "lat": 34.6937, "lng": 135.5023, ... }
  ]
}

GET /usage — 利用状況の確認

パラメーターは不要です。当月の判定回数(利用済み件数)と月間の上限をJSONで返します。GET /usageの呼び出し自体は月間の判定回数には数えません。

curl "https://www.dromap.jp/api/v1/usage" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "name": "株式会社サンプル",
  "plan": "",
  "month": "2026-09",
  "used": 1234,
  "limit": 10000,
  "remaining": 8766,
  "perMinute": 60,
  "maxBatch": 100,
  "expiresAt": null
}

レスポンス項目(判定結果)

GET /judge ・POST /judge 共通の判定結果の形式です。

項目説明
level / levelLabel総合判定。prohibited(飛行禁止)/ permission_required(許可・確認が必要)/ caution(注意)/ sea(海域)/ none(該当なし)と、その日本語表示名(levelLabel)。sea は陸上の規制データに当たらない海上の地点で、「規制なし」を意味しません(港則法・海上交通安全法等の規制や、船舶・漁業への配慮が必要な場合があります)。
did人口集中地区(DID)の該当有無(hit)と地区名(name)。工業専用地域と重なり、DIDに係る飛行許可が不要になる場合は exempt が true になり、総合判定(level)には DID を含めません。
industrialZone工業専用地域の該当有無(hit)と市区町村名(city)。2026年7月1日施行の国土交通省告示第435号により「人又は家屋の密集している地域」から除外される区域です。国土数値情報(都市計画決定情報、令和6年度)に基づき判定します。データが整備されていない一部の市区町村では hit が false となり、DID の除外特例は適用しません(安全側の判定)。データを取得できない場合は null です。
airport空港等の周辺空域の該当有無(hit)、実効の制限高を海抜(heightLimitAmsl)・地上高(heightLimitAgl)・地表面標高(groundElevation)の数値で、該当する区域の一覧(zones)を返します。heightLimitAglが0以下の場合は、地表からすでに飛行に許可が必要であることを示します。
airport.zones[]該当した区域ごとの明細。name / airport(空港名)/ surface(制限表面名)/ limitAmsl / limitAgl / note。制限表面ではない区域(空港の敷地など)を含むため、その場合は airport・surface・limitAmsl・limitAgl が null になることがあります。空港の敷地に該当する場合は surface が "敷地" になり、高さにかかわらず許可が必要です。
redZone / yellowZone小型無人機等飛行禁止法のレッドゾーン(対象施設の敷地)・イエローゾーン(周囲おおむね1,000m、令和8年改正)の該当有無(hit)と対象施設名の一覧(names)。複数施設のエリアが重なる場合は該当する全施設名を含みます。
marine.isSea海上の地点かどうか(国土地理院の標高データがない地点を海上とみなします)。判定できない場合は null です。人口集中地区(DID)内の地点は陸上として扱います。
marine.portArea / route / trainingArea港則法の港域・航路・演習/訓練区域の情報(海しる/海上保安庁のデータ)。現在提供準備中のため null を返します。
judgedAt判定日時(ISO 8601、日本時間)。

サンプルレスポンス

東京駅付近(lat=35.6812, lng=139.7671)を GET /judge で判定した例です。(数値は今後の実データ更新で変わる場合があります)

{
  "lat": 35.6812,
  "lng": 139.7671,
  "level": "permission_required",
  "levelLabel": "許可・確認が必要",
  "did": { "hit": true, "name": "千代田区", "exempt": false },
  "industrialZone": { "hit": false, "city": null },
  "airport": {
    "hit": true,
    "heightLimitAmsl": 256.9,
    "heightLimitAgl": 253.3,
    "groundElevation": 3.6,
    "zones": [
      {
        "name": "東京国際空港円錐表面",
        "airport": "東京国際空港",
        "surface": "円錐表面",
        "limitAmsl": 256.9,
        "limitAgl": 253.3,
        "note": null
      }
    ]
  },
  "redZone": { "hit": false, "names": [] },
  "yellowZone": { "hit": true, "names": ["皇居"] },
  "marine": {
    "isSea": false,
    "portArea": null,
    "route": null,
    "trainingArea": null
  },
  "judgedAt": "2026-09-28T15:29:05+09:00"
}

エラー

エラー時は {"error":{"code":"...","message":"..."}} の形式でJSONを返します。

codeHTTPステータス説明
missing_api_key401APIキーが指定されていません
invalid_api_key401APIキーが無効です
key_disabled403APIキーが無効化されています
key_expired403APIキーの有効期限が切れています
https_required403HTTPS 以外で呼び出されました(https://www.dromap.jp/api/v1/ をお使いください)
invalid_parameter400パラメーターが不正です
too_many_points400一括判定の地点数が上限(100件)を超えています
payload_too_large413リクエスト本文が64KBを超えています
method_not_allowed405対応していないHTTPメソッドです
not_found404エンドポイントが存在しない、または www.dromap.jp 以外の URL で呼び出されました
rate_limited4291分あたりのリクエスト数の上限を超えました(Retry-Afterヘッダー付き)
quota_exceeded429当月の判定回数の上限を超えました(Retry-Afterヘッダー付き)
internal_error500サーバー側の内部エラーです。利用回数には数えません

利用上限

1分あたりのリクエスト数と、月間の判定回数にはそれぞれ上限があります(契約内容に応じて設定します)。レスポンスヘッダーのX-RateLimit-RemainingとX-Quota-Remainingで、それぞれの残数を確認できます。

ご利用にあたっての注意

判定結果は、国勢調査人口集中地区(総務省統計局)、国土数値情報(都市計画決定情報・用途地域)(国土交通省)、国土地理院、DIPS、小型無人機等飛行禁止法の対象施設情報など、公開データを加工して作成した参考情報です。法的な許可・承認の要否を保証するものではありません。自治体の条例、緊急用務空域、土地・施設の管理者のルール、地表・水面から150m以上の高度、港湾区域(港湾法)、海上の規制(港則法・海上交通安全法等。提供準備中)は判定対象外です。工業専用地域の DID 除外特例は、国土数値情報(都市計画決定情報)のデータがある市区町村について反映しています。実際の飛行前には、DIPS等で必ず最終確認を行ってください。

APIの利用を申し込む

料金・プランなどのご利用条件は、ご利用規模・用途に応じて個別にご案内しています。まずはお問い合わせフォームからご相談ください。