Multilingual
Multilingual SDS Extraction
Read safety data sheets in the language they arrive in and get the same field names back every time.
Last updated: 2026-10-24
Why language matters for SDS
Under REACH (Article 31(5)) a safety data sheet must be supplied in the official language or languages of the Member State where the substance or mixture is placed on the market, unless that Member State provides otherwise. Suppliers therefore send the same product in different languages, and importers, distributors and EHS teams receive a mix. National rules differ, so always check with the competent authority.
How the API handles language
- It reads the PDF in the language the document is written in, for example Swedish, Norwegian, Danish, Finnish, German or English.
- You can pass an optional
language_hintsuch assv,nb,da,fiordeto help interpretation. - Field names are always the same English keys, so your integration does not change per language. See the OpenAPI contract for the schema.
- H and P statement codes, CAS numbers and UN numbers are language independent.
- Each response carries a
confidence_scoreandwarningsso you can route uncertain documents to review.
What we do not claim
- We have not published accuracy figures per language. Validate on a sample of your own documents before production.
- Free-text fields should be checked against the source document. We do not promise automatic translation of free text.
- Nothing here is legal advice on national SDS language requirements.
Language pages
Example
A request with a language hint, and the structure of the response (abbreviated; ... stands for text from the document):
curl -X POST "https://safetydatasheetapi.com/extract-sds" \
-H "Authorization: Bearer $SDS_API_KEY" \
-F "[email protected]" \
-F "language_hint=sv"
{
"ok": true,
"request_id": "2f6c1a54-7b0e-4d0a-9d52-6a1f0f3c9b11",
"confidence_score": 0.94,
"document_language": "en",
"warnings": [],
"outputs": {
"json": {
"product_identification": { "product_name": "...", "supplier_name": "..." },
"hazards_identification": { "ghs_classification": ["..."], "signal_word": "...", "h_statements": ["H225 ..."] },
"composition": [ { "substance_name": "...", "cas_number": "67-64-1", "concentration_percent": "95-100" } ],
"transport_information": { "un_number": "UN1090", "hazard_class": "3", "packing_group": "II" }
},
"xml": "<?xml version=...>",
"csv": "field,value ..."
}
}
How to validate before production
- Collect a sample per language you receive, for example 50 documents across suppliers.
- Run them through the API and compare against values you have already verified.
- Set thresholds on
confidence_scoreand rules forwarnings. - Send everything below the threshold to human review, and re-measure as your document mix changes.
FAQ
Which languages does the API read?
It reads PDF safety data sheets in the language they are written in, including Swedish, Norwegian, Danish, Finnish, German and English. We have not published accuracy figures per language, so validate on your own sample.
Do I need to set the language?
No. language_hint is optional and only helps interpretation.
Are the field names translated?
No. The field names are always the same English keys. H and P codes, CAS numbers and UN numbers are language independent.
Does it translate free text?
We do not promise automatic translation of free text. Check free-text fields against the source document.
Related pages
- SDS extraction API
- MSDS to JSON API
- Manual SDS entry vs API
- API docs
- SDKs, Postman collection and MCP server
- Field coverage matrix