openapi: 3.1.0
info:
title: Sigma-Aldrich Product Search API
description: >-
The Sigma-Aldrich Product Search API provides programmatic access to the
Sigma-Aldrich product catalog — one of the largest collections of research
chemicals, biochemicals, reagents, and laboratory supplies in the world.
Researchers and LIMS systems can search products by catalog number, CAS
number, product name, or chemical structure notation (SMILES/InChI) and
retrieve detailed product information including specifications, safety
data, pricing, and availability from global distribution centers.
version: '1.0'
contact:
name: Sigma-Aldrich Customer Support
url: https://www.sigmaaldrich.com/US/en/support/contact-us
termsOfService: https://www.sigmaaldrich.com/US/en/terms-and-conditions
license:
name: Proprietary
url: https://www.sigmaaldrich.com/US/en/terms-and-conditions
externalDocs:
description: Sigma-Aldrich Developer Portal
url: https://www.sigmaaldrich.com/US/en/technical-documents/technical-article/chemistry/labware/sigma-aldrich-developer-portal
servers:
- url: https://api.sigmaaldrich.com/v1
description: Sigma-Aldrich Production API
tags:
- name: Products
description: >-
Product catalog search and retrieval for research chemicals, biochemicals,
and laboratory supplies.
- name: Structures
description: >-
Chemical structure search using SMILES, InChI, or molecular formula
notation for cheminformatics workflows.
- name: Safety Data Sheets
description: >-
Retrieval of GHS-compliant Safety Data Sheets for regulatory compliance
and laboratory safety management.
- name: Pricing and Availability
description: >-
Real-time pricing and global stock availability for Sigma-Aldrich products.
security:
- ApiKeyAuth: []
paths:
/products/search:
get:
operationId: searchProducts
summary: Search Products
description: >-
Search the Sigma-Aldrich product catalog by keyword, product name,
catalog number, CAS number, or chemical formula. Returns paginated
product results with basic metadata.
tags:
- Products
parameters:
- name: q
in: query
required: true
schema:
type: string
description: Search query (product name, catalog number, CAS number, or formula)
- name: page
in: query
schema:
type: integer
default: 1
description: Page number for pagination
- name: pageSize
in: query
schema:
type: integer
default: 25
maximum: 100
description: Number of results per page
- name: brand
in: query
schema:
type: string
description: Filter by brand (e.g., Sigma, Aldrich, Fluka, Supelco)
- name: type
in: query
schema:
type: string
enum:
- substance
- kit
- labware
- reagent
description: Filter by product type
responses:
'200':
description: Product search results returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProductSearchResults'
'400':
description: Invalid search parameters
'401':
description: Invalid or missing API key
'429':
description: Rate limit exceeded
/products/{catalogNumber}:
get:
operationId: getProduct
summary: Get Product by Catalog Number
description: >-
Returns detailed information for a specific product by its Sigma-Aldrich
catalog number, including specifications, synonyms, physicochemical
properties, safety data, and packaging options.
tags:
- Products
parameters:
- $ref: '#/components/parameters/catalogNumber'
responses:
'200':
description: Product details returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'401':
description: Invalid or missing API key
'404':
description: Product not found
/products/cas/{casNumber}:
get:
operationId: getProductByCas
summary: Get Product by CAS Number
description: >-
Returns products matching a Chemical Abstracts Service (CAS) Registry
Number. Multiple products may match a CAS number when a substance is
available in different grades or formulations.
tags:
- Products
parameters:
- $ref: '#/components/parameters/casNumber'
responses:
'200':
description: Products matching CAS number returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProductSearchResults'
'401':
description: Invalid or missing API key
'404':
description: No products found for CAS number
/structures/search:
post:
operationId: searchByStructure
summary: Search by Chemical Structure
description: >-
Search for products by chemical structure using SMILES or InChI notation.
Supports exact match, substructure search, and similarity search modes.
Returns products containing or matching the specified chemical structure.
tags:
- Structures
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StructureSearchRequest'
responses:
'200':
description: Structure search results returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProductSearchResults'
'400':
description: Invalid structure notation
'401':
description: Invalid or missing API key
/products/{catalogNumber}/sds:
get:
operationId: getProductSds
summary: Get Safety Data Sheet
description: >-
Returns the GHS-compliant Safety Data Sheet for a specific product.
SDSs are available in multiple languages and can be returned as JSON
metadata or a PDF document URL for download.
tags:
- Safety Data Sheets
parameters:
- $ref: '#/components/parameters/catalogNumber'
- name: language
in: query
schema:
type: string
default: en-US
description: Language code for the SDS (e.g., en-US, de-DE, fr-FR, zh-CN)
- name: format
in: query
schema:
type: string
enum:
- json
- pdf-url
default: json
description: Response format — structured JSON or PDF download URL
responses:
'200':
description: Safety data sheet returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SafetyDataSheet'
'401':
description: Invalid or missing API key
'404':
description: SDS not found for this product
/products/{catalogNumber}/pricing:
get:
operationId: getProductPricing
summary: Get Product Pricing and Availability
description: >-
Returns current pricing and real-time stock availability for all
packaging sizes of a product in the specified country/region.
tags:
- Pricing and Availability
parameters:
- $ref: '#/components/parameters/catalogNumber'
- name: country
in: query
schema:
type: string
default: US
description: ISO 3166-1 alpha-2 country code for regional pricing
responses:
'200':
description: Pricing and availability returned successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProductPricing'
'401':
description: Invalid or missing API key
'404':
description: Product not found
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Sigma-Aldrich API key for authentication
parameters:
catalogNumber:
name: catalogNumber
in: path
required: true
schema:
type: string
description: Sigma-Aldrich catalog number (e.g., A1048, M8159, CAS1234-56-7)
casNumber:
name: casNumber
in: path
required: true
schema:
type: string
pattern: '^\d{1,7}-\d{2}-\d{1}$'
description: CAS Registry Number in standard format (e.g., 7732-18-5 for water)
schemas:
Product:
type: object
properties:
catalogNumber:
type: string
description: Sigma-Aldrich catalog number
name:
type: string
description: Product name
description:
type: string
description: Product description
brand:
type: string
description: Sigma-Aldrich brand (Sigma, Aldrich, Fluka, Supelco)
casNumber:
type: string
description: CAS Registry Number
formula:
type: string
description: Molecular formula (e.g., C2H6O for ethanol)
molecularWeight:
type: number
description: Molecular weight in g/mol
smiles:
type: string
description: SMILES notation for the chemical structure
inchi:
type: string
description: IUPAC International Chemical Identifier (InChI)
purity:
type: string
description: Purity specification (e.g., ≥99.5%)
grade:
type: string
description: Product grade (e.g., ACS reagent, BioReagent, HPLC Plus)
synonyms:
type: array
items:
type: string
description: Alternative names for the product
physicalState:
type: string
enum:
- solid
- liquid
- gas
description: Physical state at room temperature
packagingOptions:
type: array
items:
$ref: '#/components/schemas/PackagingOption'
PackagingOption:
type: object
properties:
packSize:
type: string
description: Package size (e.g., 100g, 500mL, 1kg)
packagingType:
type: string
description: Container type (e.g., bottle, ampule, vial)
ProductSearchResults:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/Product'
total:
type: integer
description: Total number of matching products
page:
type: integer
pageSize:
type: integer
StructureSearchRequest:
type: object
required:
- structure
- searchType
properties:
structure:
type: string
description: Chemical structure in SMILES or InChI notation
searchType:
type: string
enum:
- exact
- substructure
- similarity
description: Type of structure search to perform
similarityThreshold:
type: number
minimum: 0
maximum: 1
default: 0.7
description: Minimum similarity score for similarity searches (0-1)
notation:
type: string
enum:
- smiles
- inchi
default: smiles
description: Chemical structure notation format
SafetyDataSheet:
type: object
properties:
catalogNumber:
type: string
description: Catalog number the SDS applies to
version:
type: string
description: SDS version number
revisionDate:
type: string
format: date
description: Date of last SDS revision
language:
type: string
description: Language code of this SDS
sections:
type: object
description: GHS SDS sections (1-16) with structured content
properties:
section1:
type: object
description: Identification
section2:
type: object
description: Hazard Identification
section3:
type: object
description: Composition/Information on Ingredients
section7:
type: object
description: Handling and Storage
section8:
type: object
description: Exposure Controls/Personal Protection
pdfUrl:
type: string
format: uri
description: URL to download the PDF version of the SDS
ProductPricing:
type: object
properties:
catalogNumber:
type: string
country:
type: string
description: Country code for pricing
currency:
type: string
description: Currency code (e.g., USD, EUR, GBP)
prices:
type: array
items:
$ref: '#/components/schemas/PriceOption'
PriceOption:
type: object
properties:
packSize:
type: string
description: Package size
price:
type: number
description: List price
stockLevel:
type: string
enum:
- in-stock
- low-stock
- out-of-stock
- discontinued
description: Current stock availability
leadTimeDays:
type: integer
description: Expected delivery lead time in business days