SafetyDataSheetAPI is a product of Dscvry. Explore Dscvry →

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_hint such as sv, nb, da, fi or de to 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_score and warnings so 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

  1. Collect a sample per language you receive, for example 50 documents across suppliers.
  2. Run them through the API and compare against values you have already verified.
  3. Set thresholds on confidence_score and rules for warnings.
  4. 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

Want to see it on your own document? Try a sample SDS or request an implementation plan.