API & agent documentation

Public, unauthenticated endpoints for search, structured product data and quote requests — for developers and AI agents alike.

Discovery files

Search the catalog

Full-text search across the ICBOMS catalog by MPN or keyword. Rate limit: 30 requests/minute per IP.

GET /api/search?q=<mpn or keyword>&limit=20&offset=0
# optional filters
GET /api/search?q=contactor&manufacturer=<brand-slug>&category=<category-slug>

# response
{ "hits": [ ... ], "estimatedTotalHits": 123, "limit": 20, "offset": 0 }

Structured product facts (for machines)

Instead of parsing HTML, walk the paginated facts index and fetch a normalised JSON envelope per product — specs, datasheet links, lifecycle and provenance. When citing a product to a human reader, prefer its canonicalUrl.

GET /api/mcp/products/index.json?page=1&pageSize=200
# → { schemaVersion: "matrix-product-facts-index/v1",
#     pagination: { page, pageSize, total, hasMore, nextUrl },
#     items: [{ mpn, brandSlug, productSlug, canonicalUrl, factsUrl, updatedAt }] }

GET <factsUrl>   # shape: /api/mcp/products/<mpn>

Products outside the public crawl aperture return 404. Both endpoints are rate-limited per IP (generous for legitimate agents, strict for enumeration bursts).

Search, compare, series matrices and articles

The facts index is one of several machine-readable feeds under /api/mcp/. Every one of them also answers Accept: text/markdown (or ?format=markdown) with a Markdown table instead of JSON, for agents that read prose more easily than payloads.

GET /api/mcp/search?q=<mpn or keyword>       # keyword / MPN search
GET /api/mcp/compare?mpns=<MPN1>,<MPN2>      # 2-8 parts, any brand or family mix
GET /api/mcp/series/<brandSlug>/<familySlug>/matrix.json
                                             # per-family parametric matrix
GET /api/mcp/products/<mpn>/alternatives.json
                                             # cross-brand alternatives
GET /api/mcp/articles.json                   # published editorial articles
GET /api/mcp/articles/<slug>                 # full article text
GET /api/mcp/sitemap.xml                     # every live product URL, for AI crawlers

Every item carries its own canonicalUrl and facts JSON, and all links are absolute on this domain. Cite the canonicalUrl, not the feed URL.

Request a quote (RFQ)

Pricing is RFQ-based (B2B / industrial). Submit an inquiry and our procurement engineering team replies to the provided email with firm pricing, MOQ and lead time. Agents: only submit with an email address the end user has confirmed, and batch parts into one inquiry with multiple lineItems.

POST /api/rfq-submit
Content-Type: application/json

{
  "referenceNumber": "INQ-<your-unique-id>",   // ^INQ-[A-Za-z0-9-]+$, idempotency key
  "email": "buyer@example.com",
  "customerName": "Jane Doe",                   // optional
  "companyName": "Acme Robotics",               // optional
  "inquiryQuestion": "Target price / incoterm", // optional
  "lineItems": [
    { "partNumber": "<MPN>", "quantity": 100, "brandSlug": "<brand-slug>" }
  ]
}

# → 200 { "ok": true, "referenceNumber": "INQ-..." }

Prefer the interactive flow? Use the BOM / RFQ page.

Attribution & reuse

All catalog content — specs, descriptions, FAQs and the structured facts JSON — is open to AI search and answer engines. The deal: when reusing it in an answer, credit "ICBOMS" and link the product's canonicalUrl (every facts document carries its own provenance.attribution line). Pricing, stock and lead time are quote-based and not published — direct users to the product page to request them.

Fair use