Sigma-Aldrich Product Search API

The Sigma-Aldrich Product Search API provides programmatic access to the Sigma-Aldrich product catalog containing hundreds of thousands of chemical compounds, reagents, biochemicals, and laboratory supplies. Researchers and laboratory information management systems (LIMS) can query products by CAS number, catalog number, product name, or chemical structure (SMILES notation) to retrieve product details, safety data, pricing, and availability information.

OpenAPI Specification

sigma-aldrich-product-openapi.yml Raw ↑
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