API・AI連携

APIキーを発行・管理する

AIアシスタントから使う(MCP)

AIアシスタントに接続すると、「来週締切の横浜市の清掃案件を探して」と話しかけて案件を調べられます。登録やAPIキーは要りません。

接続先のURL

接続のしかた

APIキーを付けると、キーごとの上限(1日10,000回)で利用できます。キーを付けるときは、接続設定のヘッダーに Authorization: Bearer APIキー を追加してください。

AIが使える機能

AIの回答は、必ず原本のURLで公告・参加条件・期限を確認してください。参加資格や落札の見込みは保証していません。

1. APIキーを発行して使う

  1. ログインアカウント設定を開く
  2. キーを発行システム名を入れて発行
  3. キーを保存表示は一度だけです
  4. 呼び出す下の例のキーを置き換え

サーバー側のプログラムから、Authorization: Bearer APIキー ヘッダーを付けて呼び出します。JSONはUTF-8です。

読み込み中…

例のキーはダミーです。実際のキーをURL、公開リポジトリ、ブラウザ向けコードに含めないでください。不要なキーは設定画面で無効にできます。

ここで案内する公開APIは、キーなしでも少ない利用上限で使えます。案件の保存やアカウント変更はAPIキーでは操作できません。

2. エンドポイント

ベースURL:。{id} には検索結果の文字列IDを指定します。

メソッドとパス内容レスポンス
GET /api/tenders/search入札案件の検索total, total_kind, page, per, hits, facets
GET /api/tenders/{id}案件詳細案件概要、amounts、deadlines_detail、documents、changes、source
GET /api/tenders/{id}/similar前年の案件・類似案件items(kind: prev_year / similar)
GET /api/tenders/{id}/evidence期限・金額・契約の根拠値ごとの原文の表記、確認の状態、根拠の資料IDとページ。訂正前の値も含みます
GET /api/tenders/{id}/history変更の履歴と資料の一覧changes(訂正・期限の変更・資料の追加など)、documents
GET /api/tenders/{id}/brief案件の概要と要点summary(概要), points(資料とページ付き)。収集の後に1件1回作成。全体で1日300件まで
GET /api/documents/{id}/content資料の本文(ページ単位)document(取得元のURLと取得日時)、pages、next_page。1回に10ページまで
GET /api/changes前回からの変更items, has_more, next_cursor。直近31日まで
GET /api/results/search落札結果の検索total, page, per, hits, facets
GET /api/companies/search落札企業の検索total, page, per, hits
GET /api/companies/{id}企業の落札実績company, stats, recent
GET /api/organizations/search発注機関の名前検索機関の配列(id, name, pref, org_kind, open_count)。最大20件
GET /api/organizations/{id}発注機関の詳細organization, stats, open_tenders, recent_contracts, top_companies
GET /api/stats収録件数・更新日時open_count, new_24h, total, sources, updated_at
GET /api/sources収集対象と取得状況収集元の配列(id, name, url, kind, last_success_at, last_status, records)
GET /api/documents/{id}案件の資料ファイルを返すか、原本のURLに転送。JSONではありません

3. 検索パラメータ

入札案件:GET /api/tenders/search

パラメータ指定方法
q / not含む語 / 除外語。空白区切り、それぞれ200文字以内
q_modeall(省略時、全語一致)/ any(いずれか一致、10語以内)
q_scopeall(省略時、案件名と公告本文)/ title(案件名だけ)
pref / org_kind / category / method / org / dept / status都道府県名 / 機関種別 / 業種区分 / 入札方式 / 機関名 / 部局名 / 状態。カンマ区切りで複数指定、各50件まで。orgとdeptは完全一致
budget_min / budget_max予定価格の範囲(円の整数)。予定価格が分からない案件は含まれません
tabopen=受付中、new=24時間以内の新着。省略時はすべて
deadlinepublished=公示日、apply=参加申請、question=質問、submit=提出、bid=入札、open=開札
from / toYYYY-MM-DD。日本時間で開始日・終了日を含みます。入札検索ではdeadlineも指定
sortpublished / new / apply / bid / open / budget。期限は早い順、金額は高い順。省略時は関連度順(qなしは公示日順)
page / perpageは1から最大1000、perは既定20・最大100。索引の検索可能件数は最大10,000件

落札結果:GET /api/results/search

q(200文字以内)、pref、org_kind、org_id、company_id、from・to(落札決定日)、amount_min・amount_max(円の整数、0以上)、sort(date / amount)、page・per を指定できます。

企業:GET /api/companies/search

q(200文字以内)、pref(カンマ区切り)、sort(wins=落札件数 / amount=登録金額合計)、page・per を指定できます。

発注機関:GET /api/organizations/search

q(機関名、100文字以内)を指定します。最大20件を返します。q の代わりに pref(都道府県の番号 01〜47)を指定すると、その都道府県で最近1年に案件の多い機関を最大30件返します。

4. レスポンスの読み方

次は入札検索の構造を示す説明用の例です。実在する案件ではありません。

{
  "total": 1,
  "total_kind": "exact",
  "page": 1,
  "per": 20,
  "hits": [
    {
      "id": "123",
      "title": "庁舎清掃業務(説明用の例)",
      "org": "○○市",
      "pref": "東京都",
      "published_on": "2026-09-30",
      "deadlines": {
        "apply": "2026-10-15"
      },
      "budget_yen": null,
      "url": "https://example.jp/notice",
      "source_name": "○○市"
    }
  ],
  "facets": {
    "pref": [
      {
        "value": "東京都",
        "count": 1
      }
    ],
    "org_kind": [],
    "category": [],
    "method": []
  }
}

APIのデータには未収集・未確認の項目があります。収録範囲・更新状況も確認してください。

5. 前回からの変更を取る

自社のシステムに反映するときは、GET /api/changes を定期的に呼びます。初回は since(例:2026-10-01)を、2回目からは前回の応答の next_cursor を cursor に渡します。has_more が true のあいだは続けて取り、false になったら次の定期取得まで待ってください。

6. 利用上限・エラー

認証上限
APIキーなし接続元IPごとに120回 / 60秒
APIキーありキーごとに1,200回 / 60秒。日次上限は既定10,000回(日本時間0時にリセット)。設定画面にキーごとの上限と利用回数を表示

有効なAPIキーは1アカウントにつき最大20個です。短時間の制限はアクセス状況により前後することがあります。

HTTPステータス意味・対応
400条件や日付、ID等の指定を確認してください
401APIキーが無効です。設定画面で確認してください
404対象の案件・資料などが見つかりません
429利用上限です。時間をおいて再試行し、日次上限なら翌日まで待ってください
503まだ使えない条件です(部局・予定価格の範囲での絞り込みなど)。条件を外して再試行してください
500 / 502処理・検索基盤の一時的なエラーです。間隔を空けて再試行してください
{ "error": "検索の言葉が長すぎます。200文字以内にしてください。" }