Fragrance data for agents.

Public, read-only access to the published catalog and exact verified retailer bottle variants. No account or API key is required. OpenAPI 3.1 specification · Agent discovery index

HTTP API

Countries: US (default), GB, CA, AU, KR, OTHER. Query must contain 2–120 characters; page is 1–10000. IDs must be positive integers. Responses include apiVersion, generatedAt, country and disclosure. Invalid inputs return 400; missing products 404; temporary catalog failures 503. Responses use no-store. Search preserves usable-US-pairing-first discovery order; the requested country selects returned offers.

Exact identity and freshness

Each verified variant binds a catalog product ID, concentration and selected size label. Different concentrations and sizes remain separate. Variant IDs are stable within that identity; they are not manufacturer identifiers. Catalog year, notes and gender are catalog metadata, distinct from exact retailer identity verification. Unknown fields are null.

Only approved active retailer relationships and eligible exact bottle links are returned. Prices are observed values, not checkout guarantees. Each price includes currency, checkedAt and expiresAt. Reference prices appear only with verified same-SKU regular/MSRP evidence. A null price with browseOnly=true has no current price or stock claim; this includes retained OOS/preorder links. Re-fetch before presenting a price and honor expiresAt. Shipping, tax and final availability must be confirmed with the retailer.

Affiliate relationships are disclosed per offer. Preserve the original URL and its parameters. HTML commission-bearing links use rel="sponsored nofollow noopener". No item-specific commission rate is exposed. Shopping disclosure.

Connect through MCP

Server URL: https://parfumbible.com/mcp. Stateless Streamable HTTP, protocol 2025-11-25 (also 2025-06-18 / 2025-03-26). No session ID or standalone SSE stream is used. GET and DELETE return 405. Machine clients may omit Origin; browser-origin requests must match the site origin. The four tools are read-only and share the HTTP API's validation and data.

{
  "mcpServers": {
    "parfum-bible": {
      "url": "https://parfumbible.com/mcp"
    }
  }
}

Send JSON-RPC POST requests with Content-Type: application/json and Accept: application/json, text/event-stream. Initialize first, acknowledge notifications/initialized, then use tools/list or tools/call. Subsequent requests include MCP-Protocol-Version: 2025-11-25. Maximum request body: 32 KB. Client configuration syntax can vary; use its remote HTTP server setting.

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_verified_offers",
    "arguments": {
      "productId": 27708,
      "country": "US"
    }
  }
}

Tool failures return isError=true; unknown methods and invalid protocol envelopes use JSON-RPC errors. There are no purchase, collection, write, account or private OPS tools.

Existing website endpoints

GET /api/catalog/search?q=... returns {records,total} for a 2–120-character query. GET /api/catalog/records?ids=27708,92816 accepts 1–100 positive IDs and returns {records}; missing records are omitted. Each record contains id, path and public payload. GET /api/commerce/offers?productId=27708&country=US returns the existing shopping-panel {offers} representation. Prefer the versioned agent API for explicit variants, freshness and normalized browse-only fields.

Comparison output describes catalog-listed notes and accords. It does not invent sensory similarity, longevity, safety or suitability claims. Public endpoints do not expose private evidence files, credentials, personal collections or OPS reports.