Developer

Public API

A free, read-only REST API for EU cosmetic ingredient data. No authentication required. Returns JSON.

Base URL

https://cosingchecker.com/api/v1/

Annex entries

GET /api/v1/entries/

Search annex entries. At least one parameter is required.

Parameter Type Description
qstringSearch term — name, CAS, EC or colour index
annexstringAnnex code: II, III, IV, V or VI
cmr1 / trueFilter to CMR substances only
pageintegerPage number (default 1)
per_pageintegerResults per page (max 100, default 50)

Example requests:

GET https://cosingchecker.com/api/v1/entries/?q=sodium+benzoate
GET https://cosingchecker.com/api/v1/entries/?annex=III&cmr=1
GET https://cosingchecker.com/api/v1/entries/?annex=V&page=2&per_page=20

GET /api/v1/entries/{slug}/

Get a single annex entry by its slug (from the entry page URL).

GET https://cosingchecker.com/api/v1/entries/iii-12-benzoic-acid-sodium-benzoate/

Entry response fields

FieldDescription
idInternal record ID
slugURL slug
urlRelative URL of the entry page
annexAnnex code (II, III, IV, V, VI)
entry_numberEntry number within the annex
display_namePrimary display name
chemical_nameChemical name
inci_glossary_nameINCI / Glossary name
cas_numberCAS number(s)
ec_numberEC number(s)
product_typeProduct type restrictions
max_concentrationMaximum allowed concentration
warningsWarning labels
other_restrictionsOther restrictions
cmrCMR classification
update_dateLast update date

Ingredient inventory

GET /api/v1/ingredients/

Search the CosIng ingredient inventory by INCI name, INN name, CAS or EC number.

ParameterDescription
qSearch term (required)
pagePage number (default 1)
per_pageResults per page (max 100, default 50)
GET https://cosingchecker.com/api/v1/ingredients/?q=glycerin

GET /api/v1/ingredients/{slug}/

Get a single ingredient by slug.

GET https://cosingchecker.com/api/v1/ingredients/12345-glycerin/

Response format

All list endpoints return paginated JSON:

{
  "count": 1739,
  "num_pages": 35,
  "page": 1,
  "per_page": 50,
  "results": [ ... ]
}

Usage and terms

This API is free to use for non-commercial and commercial projects. No API key required. Please cache responses where possible to avoid excessive load.

Data is derived from publicly available European Commission materials. Always verify regulatory decisions against official source documents. See the sources page for provenance details.