API & agent documentation
Public, unauthenticated endpoints for search, structured product data and quote requests — for developers and AI agents alike.
Discovery files
- /openapi.json — machine-readable OpenAPI 3.1 schema of every endpoint documented on this page.
- /llms.txt — site overview and entry points for AI search engines (/llms-full.txt for the extended version).
- /.well-known/api-catalog — RFC 9727 API catalog linkset.
- /.well-known/agent-skills/index.json — Agent Skills discovery index with ready-to-use SKILL.md instructions for searching parts, comparing part numbers, and requesting quotes.
- /robots.txt — crawl policy, including
Content-Signalpreferences for AI systems.
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
- All endpoints are rate-limited per IP; honor
Retry-Afteron 429. -
Respect robots.txt: the structured facts feed under
/api/mcp/is explicitly allowed for crawling; other/api/routes are not. - Stagger bulk fetches — the facts index changes slowly (daily granularity).