Fortitude21
ホーム  /  製品  /  製品API

製品APIとMCPサーバー

カタログ全体をJSONで提供します。検索、比較、条件の確認、見積り依頼ができます。APIキー不要、登録不要、読み取り専用です。

調達業務はソフトウェア経由に移りつつあります。サプライヤーを選定するエージェントは、ページをスクレイピングせずにこのカタログを直接読み取れます。ページと同一のレコード、同一の数値、認証の有無についても同一の記述です。

エンドポイント

エンドポイント返すもの
GET /api/v1/products検索と絞り込み。製品ごとの概要と、完全なレコードのURLを返します。
GET /api/v1/products/{id}品番またはスラッグで、1製品の全情報。
GET /api/v1/products/compare?skus=A,B2~6製品を、すべてが公開している属性で比較。
GET /api/v1/products/{id}/pricing数量帯、最低発注数量、インコタームズ、納期。拘束力はありません。
GET /api/v1/products/{id}/documents存在する書類と、その請求方法。
GET /api/v1/categories12のカテゴリーとそのスラッグ。
POST /api/v1/rfq見積り依頼を送信し、受付番号を取得。問い合わせを作成し、発注は行いません。

6つの危険物計算ツールは従来のパスと /api/v1/ の両方で応答します。従来のパスは今後も維持します。OpenAPIドキュメント、MCPレジストリ、公開リポジトリに掲載されており、変更すると把握できない連携が壊れるためです。 危険物APIのドキュメントはこちら。

検索

GET /api/v1/products?material=hdpe&capacity_min=20&capacity_max=25&certification=UN

検索語と絞り込み条件はANDで結合されます。絞り込んだ属性に値が記録されていない製品は、一致とみなさず除外します。したがって結果が空の場合、すべての条件を満たす製品が存在しないことを意味します。どの製品も言及していない語はレスポンスに明示されるため、どの語を外すべきか分かります。

材質はテキスト一致ではなく材質ファミリーとして解決されます。これは重要で、hdpe はポリプロピレンを返しません。総称語は下位方向にのみ広がるため、steel はステンレスと亜鉛めっき鋼を含みますが、stainless が普通鋼を含むことはありません。

パラメーター指定する値
qフリーテキスト。同義語とよくある誤記に対応し、「20L」は「20 litres」に到達します。
category次から取得したスラッグ /api/v1/categories
materialhdpe, polypropylene, polyethylene, stainless, steel, galvanised, aluminium, tinplate, plastic, metal
capacity_min, capacity_maxリットル。容量範囲が重なる製品が一致します。
application用途(防衛、農業、船舶など)。
certificationUN、または次のような設計コード 3H1
pricing_typePUBLIC_PRICE, STARTING_FROM, PRICE_ON_REQUEST, CONTRACT_PRICE
sortrelevance, capacity, capacity_desc, price, name
page, limitページング。1ページ最大100件、既定20件。

抜粋されたレスポンスです。全フィールドはOpenAPIドキュメントに記載しています。

{
  "ok": true,
  "total": 7,
  "page": 1,
  "results": [
    {
      "id": "product-widemouth-hdpe-jerrycan",
      "sku": "F21-IPW-10",
      "name": "Wide-Mouth HDPE Jerrycan 3H2",
      "url": "https://fortitude21.com/product-widemouth-hdpe-jerrycan",
      "capacity_l": { "min": 10, "max": 25, "sizes": [10, 20, 25] },
      "material_family": ["hdpe"],
      "un_status": { "claim": "Available UN 3H2 certified", "offered": true, "verified": false },
      "pricing_type": "PRICE_ON_REQUEST",
      "starting_from": null,
      "orderable_units": 3,
      "matched_on": ["sku", "name", "material"]
    }
  ],
  "cite": "Fortitude21 product catalogue: https://fortitude21.com/products",
  "publisher": { "name": "Fortitude21", "sells_to": "Businesses, distributors, OEM and private-label buyers..." }
}

数値の意味

すべての仕様には出所が付きます。サプライヤーを比較する買い手が本当に知るべき情報だからです。

値意味
verifiedメーカー自身の生産仕様に基づく数値、または当社の品番です。
indicative当社の数値です。公開時点で正確であり、ご発注時に発行する図面で確定します。
on_request項目は存在し、お問い合わせ時にご回答します。省略せず明示します。項目が無いことと、開示を控えることは別だからです。

国連認証の状態を真偽値で表すことはありません。認証は設計型式ごとに付与され、どの製造拠点が対象となるかは所管当局が判断します。そのためレスポンスには主張内容、その適用範囲、および証明書番号が確認されるまで verified: false が含まれます。お客様の設計を対象とする証明書と、そこに記載された工場をご確認ください。

価格

ここに示す価格は参考値であり、見積書でもオファーでもありません。運賃・関税・税金は含まず、仕様とお届け先により変動し、正式な見積書でのみ確定します。価格レスポンスにはその旨を明記し、binding: false を付します。製品の多くはお問い合わせ時の見積りとなり、数値は返しません。

数量帯は製品ファミリーごとに設定します。20リットル缶はコンテナ852本、2.5リットルペールは12,500個積載されるためです。どの製品でも最上位の帯は数値ではなく見積りとなります。金型、インコタームズ、運賃が価格を左右する領域だからです。 価格モデルの全文を公開しています。

見積り依頼の送信

POST /api/v1/rfq

これは担当者が価格を算出するための問い合わせを作成します。価格の承諾、在庫の確約、納期の確定、発注は一切行いません。レスポンスではそれぞれを個別のフィールドで明示し、要約が見積書に変わらないようにしています。品番はすべてカタログと照合し、見積りに必要な未提供情報をお知らせします。

consent は true が必須で、連絡先情報をFortitude21へ送信することに買い手が同意したことを意味します。買い手の代理として動作するエージェントは買い手自身ではないため、同意がなければ一切保存しません。 お問い合わせの取り扱い。

curl -X POST https://fortitude21.com/api/v1/rfq \
  -H 'content-type: application/json' \
  -d '{
    "consent": true,
    "company": "Example Distribution Sdn Bhd",
    "contact_name": "A Buyer",
    "email": "buyer@example.com",
    "country": "Malaysia",
    "delivery_destination": "Port Klang, Malaysia",
    "incoterms": "CIF",
    "lines": [{ "sku": "F21-NF-20", "quantity": 2000 }]
  }'

{
  "ok": true,
  "reference": "F21-RFQ-261030-ZQDFFR",
  "missing_information": [
    "F21-NF-20: which certification the destination market requires. UN approval is granted per design type and per production site."
  ],
  "status_note": "Received as a quotation request. This is not a quotation.",
  "price_accepted": false,
  "stock_confirmed": false,
  "delivery_date_committed": false,
  "order_created": false,
  "next_step": "A person at Fortitude21 prices it against the specification and replies by email."
}

MCPサーバー

カタログは、6つの危険物計算ツールと並んで、当社MCPサーバー上の8つのツールとしても提供しています。すでに計算ツールを接続済みのアシスタントは、追加の接続なしでカタログを利用できます。

https://fortitude21.com/mcp     Streamable HTTP, JSON-RPC 2.0, no authentication

search_products             get_product_pricing        check_product_requirements
get_product_details         get_product_categories     create_quote_request
compare_products            get_product_documents

7つは読み取り専用です。create_quote_request は書き込みとして宣言しているため、クライアントは黙って再試行せず、呼び出し前に確認します。そうでなければ買い手に同一の問い合わせが3件届くことになります。

フィード

カタログ全体を1ファイルで提供します。クローラー、表計算ソフト、製品ごとにリクエストを行いたくないフィードツール向けです。

ファイル内容
/feeds/products.json全製品の型付き属性、価格状態、数量帯。
/feeds/products.csv同内容を製品1行で、表計算ソフト向けに提供。
/openapi.jsonツールとカタログの全エンドポイントのOpenAPI 3.1。

利用について

APIキーも登録も不要です。CORSは開放しているため、ブラウザからも呼び出せます。1アドレスあたり10秒間に約10リクエストの制限があり、超過すると429を返します。レスポンスにはETagが付きます。If-None-Match で送り返すと、カタログに変更がなければ本文なしの304を返します。

カタログはどのバージョンでも読み取り専用です。本文を受け付けるのは見積り依頼のみで、問い合わせを作成します。製品、仕様、価格を変更する手段はありません。

ご利用の際は、利用規約に従い製品ページへのリンクを明記してください。これを使って何かを構築される場合はご連絡ください。変更前にお客様の利用状況を考慮します。 利用規約。

これを使って構築する

構築されているものと、カタログに不足しているものをお知らせください。

WhatsAppでチャット