{
  "method": "published",
  "publisher": "SafetyDataSheetAPI (Dscvry)",
  "source": "https://safetydatasheetapi.com/apis.yml",
  "aid": "safetydatasheetapi",
  "name": "SafetyDataSheetAPI",
  "description": "SafetyDataSheetAPI, a product of Dscvry, converts Safety Data Sheet (SDS/MSDS) PDFs into normalized 16-section compliance records returned as JSON, XML, and CSV, with a confidence score and warnings on every extraction. It covers product identity, GHS classification and H/P statements, composition, exposure controls and PPE, transport data such as UN number, regulatory references, and revision metadata. It handles scanned and multilingual PDFs, offers a synchronous single-document endpoint and asynchronous bulk jobs with signed webhooks and idempotency keys, and publishes an OpenAPI 3.1 contract, a schema versioning and deprecation policy, and a changelog.",
  "url": "https://safetydatasheetapi.com/apis.yml",
  "image": "https://safetydatasheetapi.com/assets/images/logos/icon-dark.png",
  "created": "2026-02-23",
  "modified": "2026-10-25",
  "specificationVersion": "0.21",
  "tags": [
    "Safety Data Sheets",
    "SDS",
    "MSDS",
    "GHS Classification",
    "Chemical Compliance",
    "EHS",
    "Regulatory Compliance",
    "Document Extraction",
    "PDF to JSON",
    "Data Normalization",
    "Webhooks",
    "Chemicals"
  ],
  "apis": [
    {
      "name": "SDS Extraction API",
      "description": "Synchronous REST endpoint. POST /extract-sds accepts one SDS/MSDS PDF as multipart/form-data and returns the normalized record as JSON, XML, and CSV in a single JSON response, with a confidence score, warnings, and a request id. Authenticated with an API key sent as a Bearer token or an X-API-Key header.",
      "humanURL": "https://safetydatasheetapi.com/api-docs/",
      "baseURL": "https://safetydatasheetapi.com",
      "tags": [
        "Safety Data Sheets",
        "Document Extraction",
        "GHS Classification",
        "PDF to JSON"
      ],
      "properties": [
        {
          "type": "OpenAPI",
          "url": "https://safetydatasheetapi.com/openapi.yaml"
        },
        {
          "type": "Documentation",
          "url": "https://safetydatasheetapi.com/api-docs/"
        },
        {
          "type": "LLMsTxt",
          "url": "https://safetydatasheetapi.com/llms.txt"
        },
        {
          "type": "ChangeLog",
          "url": "https://safetydatasheetapi.com/changelog/"
        },
        {
          "type": "SpectralRules",
          "url": "https://safetydatasheetapi.com/spectral-ruleset.yaml"
        },
        {
          "type": "Versioning",
          "url": "https://safetydatasheetapi.com/schema-versioning/"
        },
        {
          "type": "SDK",
          "url": "https://safetydatasheetapi.com/sdk/python/safetydatasheetapi.py",
          "name": "Python client"
        },
        {
          "type": "SDK",
          "url": "https://safetydatasheetapi.com/sdk/node/safetydatasheetapi.mjs",
          "name": "JavaScript client"
        },
        {
          "type": "Postman",
          "url": "https://safetydatasheetapi.com/postman/safetydatasheetapi.postman_collection.json"
        },
        {
          "type": "CodeExamples",
          "url": "https://safetydatasheetapi.com/sdks/"
        },
        {
          "type": "MCPServer",
          "url": "https://safetydatasheetapi.com/mcp"
        },
        {
          "type": "MCPManifest",
          "url": "https://safetydatasheetapi.com/mcp-manifest.yml"
        },
        {
          "type": "AgentSkills",
          "url": "https://safetydatasheetapi.com/.well-known/agent-skills/index.json"
        },
        {
          "type": "OAuthProtectedResource",
          "url": "https://safetydatasheetapi.com/.well-known/oauth-protected-resource"
        }
      ]
    },
    {
      "name": "SDS Bulk Extraction API",
      "description": "Asynchronous REST endpoints. POST /extract-sds/bulk accepts up to 10 PDFs and returns 202 with a job id; GET /extract-sds/bulk/{jobId} reports status and per-file results. Supports an Idempotency-Key header, per-file and per-job size limits, and an optional HTTPS callback_url that receives a webhook signed with X-Webhook-Signature.",
      "humanURL": "https://safetydatasheetapi.com/api-docs/#bulk-webhooks",
      "baseURL": "https://safetydatasheetapi.com",
      "tags": [
        "Safety Data Sheets",
        "Webhooks",
        "Document Extraction",
        "Data Normalization"
      ],
      "properties": [
        {
          "type": "OpenAPI",
          "url": "https://safetydatasheetapi.com/openapi.yaml"
        },
        {
          "type": "Documentation",
          "url": "https://safetydatasheetapi.com/api-docs/#bulk-webhooks"
        },
        {
          "type": "ChangeLog",
          "url": "https://safetydatasheetapi.com/changelog/"
        }
      ]
    }
  ],
  "maintainers": [
    {
      "FN": "SafetyDataSheetAPI (Dscvry)",
      "email": "sales@safetydatasheetapi.com",
      "url": "https://safetydatasheetapi.com/contact/"
    }
  ],
  "common": [
    {
      "type": "Website",
      "url": "https://safetydatasheetapi.com"
    },
    {
      "type": "Documentation",
      "url": "https://safetydatasheetapi.com/api-docs/"
    },
    {
      "type": "GettingStarted",
      "url": "https://safetydatasheetapi.com/api-docs/#quickstart"
    },
    {
      "type": "SDKs",
      "url": "https://safetydatasheetapi.com/sdks/"
    },
    {
      "type": "MCPServer",
      "url": "https://safetydatasheetapi.com/mcp"
    },
    {
      "type": "AgentSkills",
      "url": "https://safetydatasheetapi.com/.well-known/agent-skills/index.json"
    },
    {
      "type": "Webhooks",
      "url": "https://safetydatasheetapi.com/api-docs/#bulk-webhooks"
    },
    {
      "type": "Postman",
      "url": "https://safetydatasheetapi.com/postman/safetydatasheetapi.postman_collection.json"
    },
    {
      "type": "Authentication",
      "url": "https://safetydatasheetapi.com/api-docs/#quick-answer"
    },
    {
      "type": "RateLimits",
      "url": "https://safetydatasheetapi.com/api-docs/#rate-limits"
    },
    {
      "type": "Pricing",
      "url": "https://safetydatasheetapi.com/#pricing"
    },
    {
      "type": "Plans",
      "url": "https://safetydatasheetapi.com/plans.yml"
    },
    {
      "type": "RateLimits",
      "url": "https://safetydatasheetapi.com/rate-limits.yml"
    },
    {
      "type": "FinOps",
      "url": "https://safetydatasheetapi.com/finops.yml"
    },
    {
      "type": "Vocabulary",
      "url": "https://safetydatasheetapi.com/vocabulary.yml"
    },
    {
      "type": "JSONSchema",
      "url": "https://safetydatasheetapi.com/schema/sds-record-1.0.json"
    },
    {
      "type": "JSONSchema",
      "url": "https://safetydatasheetapi.com/schema/sections/product_identification.json"
    },
    {
      "type": "APIReference",
      "url": "https://safetydatasheetapi.com/api-docs/"
    },
    {
      "type": "DeveloperPortal",
      "url": "https://safetydatasheetapi.com/api-docs/"
    },
    {
      "type": "Playground",
      "url": "https://safetydatasheetapi.com/api-docs/"
    },
    {
      "type": "Examples",
      "url": "https://safetydatasheetapi.com/sdks/"
    },
    {
      "type": "SignUp",
      "url": "https://safetydatasheetapi.com/#self-serve-signup"
    },
    {
      "type": "TermsOfService",
      "url": "https://safetydatasheetapi.com/terms/"
    },
    {
      "type": "PrivacyPolicy",
      "url": "https://safetydatasheetapi.com/privacy/"
    },
    {
      "type": "Support",
      "url": "https://safetydatasheetapi.com/contact/"
    },
    {
      "type": "ChangeLog",
      "url": "https://safetydatasheetapi.com/changelog/"
    },
    {
      "type": "StatusPage",
      "url": "https://status.safetydatasheetapi.com/"
    },
    {
      "type": "RoadMap",
      "url": "https://safetydatasheetapi.com/roadmap/"
    },
    {
      "type": "Blog",
      "url": "https://safetydatasheetapi.com/blog/"
    },
    {
      "type": "Security",
      "url": "https://safetydatasheetapi.com/security/"
    },
    {
      "type": "SecurityTxt",
      "url": "https://safetydatasheetapi.com/.well-known/security.txt"
    },
    {
      "type": "DeprecationPolicy",
      "url": "https://safetydatasheetapi.com/schema-versioning/"
    },
    {
      "type": "SpectralRules",
      "url": "https://safetydatasheetapi.com/spectral-ruleset.yaml"
    },
    {
      "type": "LLMsTxt",
      "url": "https://safetydatasheetapi.com/llms.txt"
    },
    {
      "type": "LLMsFullTxt",
      "url": "https://safetydatasheetapi.com/llms-full.txt"
    },
    {
      "type": "SiteIndex",
      "url": "https://safetydatasheetapi.com/site-index.json"
    },
    {
      "type": "APICatalog",
      "url": "https://safetydatasheetapi.com/.well-known/api-catalog"
    },
    {
      "type": "APIsJSON",
      "url": "https://safetydatasheetapi.com/.well-known/apis.json"
    },
    {
      "type": "GitHubOrganization",
      "url": "https://github.com/safetydatasheetapi"
    }
  ]
}
