Safety Data Sheet Parser

Safety data sheet (SDS/MSDS) OCR — extract product, hazards, and key safety fields into JSON, CSV, or Excel.

Drag & drop your document here

Supports PDF, JPG, PNG, WEBP

Docyield's safety data sheet parser reads an SDS — scanned, photographed, or supplied as a PDF — and returns its key fields as structured data. A safety data sheet accompanies a hazardous chemical and documents what it is, how it is classified, and the hazards it presents. The parser pulls out the product and manufacturer, the CAS number, the GHS hazard class and signal word, the hazard and precautionary statements, a first-aid summary, the flash point, and the revision date, and exports them as JSON, CSV, or Excel.

An SDS follows a familiar sixteen-section structure under the GHS framework, but in practice the documents are long, dense, and far from uniform: suppliers format them differently, translate them for different markets, and revise them on their own schedules. The hazard codes, the signal word, and the physical properties are scattered across sections that run for pages. Rather than read the whole sheet to find them, Docyield locates the key fields by meaning and returns them in a compact, comparable form so an EHS team can catalogue a chemical inventory without transcribing each sheet end to end.

Inputs
PDF, JPG, PNG, WEBP
Outputs
JSON · CSV · Excel · XML
Price
Free · no signup

What a safety data sheet documents

A safety data sheet is the standardised document that travels with a hazardous substance to communicate its hazards to the people who handle it. It opens by identifying the product and its manufacturer or supplier and, where applicable, the CAS number that uniquely identifies the chemical substance. From there it sets out the GHS hazard classification — the hazard class or category and the signal word, either Danger or Warning, that flags the severity.

The hazard communication is carried in two coded lists: the H (hazard) statements that describe the nature of the hazard, and the P (precautionary) statements that describe the recommended handling. Beyond these, the sheet records physical properties such as the flash point and a summary of first-aid measures, and every SDS carries a revision date marking the version. The parser captures this core set so a sheet can be indexed and compared rather than re-read.

Why structured extraction beats raw OCR and manual entry

A single SDS can run to many pages, and an organisation may hold hundreds across its chemical inventory. Reading each one to copy out the hazard class, the signal word, and the H and P codes is tedious, and the codes in particular — short alphanumeric strings like H315 or P280 — are exactly the kind of value a person mis-transcribes when working through a long document.

Plain OCR converts the pages to text but leaves the key fields buried among everything else. Structured extraction lifts just the fields that matter into named slots, and returns the hazard and precautionary statements as clean lists rather than a paragraph of run-together codes. That turns a stack of multi-page PDFs into a comparable table an EHS team can actually work with.

Who uses a safety data sheet parser

  • EHS and safety officers building and maintaining a chemical inventory from supplier SDS files.
  • Manufacturing and laboratory teams cataloguing the substances held on site.
  • Procurement teams capturing hazard data for chemicals as they are sourced.
  • Facilities and warehouse managers indexing stored chemicals and their hazards.
  • Compliance and document-control teams tracking SDS revision dates across an archive.
  • Developers feeding SDS fields into an EHS or inventory system through the API.

Hazard and precautionary statements as lists

Two of the fields are returned as lists rather than single values, and it helps to know how they come back. The hazard statements are the H-coded phrases describing the hazards, and the precautionary statements are the P-coded phrases describing safe handling; each is returned as a list of entries so you keep every statement separately rather than mashed into one cell. Exported to CSV or Excel, the lists travel alongside the single-value fields like the signal word and flash point.

Keeping these as discrete lists is what makes an inventory searchable: you can find every chemical carrying a particular H statement, or compare the precautionary measures across products. The signal word and hazard class sit beside them as the at-a-glance classification, while the CAS number provides the unambiguous chemical identity that ties a sheet to a substance.

Accuracy, limitations, and review

No parser reads every sheet perfectly, and an SDS is a demanding document — long, dense, and full of codes and chemical names that are easy to confuse. Accuracy is highest on clean, native PDFs and flat scans; a low-resolution photo of small-print statement tables is where a code or a name can be misread, and a sharper image consistently helps. The parser keeps the source sheet beside the extracted fields so the values are quick to verify.

Where a field is genuinely absent — a sheet that lists no flash point, for instance — it comes back empty rather than filled with a guess, because an invented hazard code or property is worse than a gap. Critically, this tool extracts the information printed on the sheet and offers no safety, regulatory, or handling advice; it makes no judgement about how a chemical should be used or stored. The authoritative source is always the full SDS itself, and the extracted fields should be checked against it.

Output formats, API, and batch

Each parse exports as JSON, CSV, Excel, or XML from the same result. CSV and Excel suit an inventory table where each chemical is a row; JSON suits an EHS or inventory-system integration; XML fits an older compliance import. The free tool handles one sheet at a time.

When an organisation digitises a whole library of SDS files at once, the Docyield API and batch dashboard run the same extraction at scale, return results by webhook, and let you apply your own checks — for example flagging any sheet whose revision date is older than a set threshold. The field names are identical between the free tool and the API.

What the safety data sheet parser extracts

Each sheet is returned against a fixed schema. Fields the document does not list come back empty rather than guessed. The hazard and precautionary statements are returned as lists.

Product name
The product or substance name.
Manufacturer
The manufacturer or supplier.
CAS number
The CAS number identifying the substance, where listed.
Hazard class
The GHS hazard class or category.
Signal word
The signal word, Danger or Warning.
Hazard statements
A list of the H (hazard) statements describing the hazards.
Precautionary statements
A list of the P (precautionary) statements describing safe handling.
First-aid measures
A summary of the first-aid measures stated on the sheet.
Flash point
The flash point, with its unit where given.
Revision date
The revision date of the sheet.

How to convert a safety data sheet to JSON, CSV, or Excel

  1. 1Upload your SDS — drop a PDF, scan, or photo of the sheet onto the box above, or choose a file.
  2. 2Wait a few seconds while Docyield reads the document and pulls out the key hazard and identity fields.
  3. 3Review the structured result, checking the hazard class, signal word, and statement codes against the sheet.
  4. 4Pick your output tab — JSON, CSV, Excel, or XML.
  5. 5Copy the result or download the file, ready for your EHS or chemical-inventory system.

Frequently asked questions

Processing documents at scale?

Batch upload, an extraction API, and webhooks for 100+ documents a month.

View the API

Related tools