# Invoket Cosmetic Ingredient Regulatory Check

> Invoket Cosmetic Ingredient Regulatory Check is a paid API for AI agents from api.invoket.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-10).

Looks up the EU Cosmetics Regulation status of a cosmetic ingredient by CAS, EC, INCI, or chemical name, returning permitted/restricted/banned conditions sourced from official Annexes at a specified date.

## Facts

- Endpoint: GET https://api.invoket.com/label/cosmetic/ingredient?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/invoket-cosmetic-ingredient-regulatory-check-64883176
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OroL8o19q5bA75qREJEqd

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability invoket-cosmetic-ingredient-regulatory-check-64883176
```

Example prompt: Check if the ingredient with CAS number 120-47-8 is permitted in EU leave-on cosmetic products as of today, and tell me what concentration limits or conditions apply.

## When to prefer this

Use this endpoint when an AI agent needs authoritative, dated EU regulatory verdicts on cosmetic ingredients before formulating, launching, or importing a cosmetic product. It is the right choice when you need official Annex-backed provenance rather than a general web search, when you need a historical regulatory snapshot at a specific date, or when you need to filter conditions by product type. Prefer it over general legal search tools when the question is specifically about EU Cosmetics Regulation Annex I–VI status.

## Known failure modes

- 400 if zero or multiple identity keys provided (cas, ec, inci, name must be exactly one)
- 400 if CAS or EC number fails checksum validation
- 400 if date is earlier than oldest ingested Annex version, with the valid lower bound named
- 400 if product_type is provided as an empty string
- 200 with status 'not_listed' (billed) if ingredient identity resolves but is absent from all Annexes
- 404 (not billed) if ingredient identity cannot be resolved against Annexes or CosIng

## How this service works

The checks your agent runs before it acts: verify a bank account, a phone number, a law in force, the weather or a vehicle — computed from official sources, with provenance in every response. You only pay for answers.

## Output

A structured response containing the ingredient's regulatory classification from the EU Cosmetics Annexes (e.g., permitted, restricted, prohibited, not listed), applicable conditions of use such as maximum concentration, scope restrictions by product type, any warnings or labeling requirements, a count of conditions omitted due to product type filtering, and provenance information indicating which official source and version was used. Returns a 'not_listed' status (billable) if identity is resolved but absent from the Annexes, or a 404 (not billed) if the identity cannot be resolved at all.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "cas",
  "date",
  "product_type"
 ],
 "properties": {
  "cas": {
   "type": "string",
   "description": "CAS number, checksum-validated. Provide exactly ONE key among: cas, ec (EC number, checksum-validated), inci (exact INCI name), name (exact chemical name). Zero or several keys = 400; bad checksum = 400. Identity resolved but absent from the Annexes = 200 not_listed (billed - absence is not an authorisation); identity NOT resolved (unknown to the Annexes and to CosIng) = 404, not billed"
  },
  "date": {
   "type": "string",
   "description": "Optional date (YYYY-MM-DD, default today): serves the consolidated version in force at that date, not the latest. A date earlier than the oldest ingested version = 400 naming the bound (extrapolating a verdict would be factually wrong)"
  },
  "product_type": {
   "type": "string",
   "description": "Optional: keeps only the conditions whose published scope covers that product type, PLUS the conditions not bounded by product type. Each entry reports conditions_omitted_by_product_type - nothing is hidden. Provided empty = 400"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/invoket-cosmetic-ingredient-regulatory-check-64883176/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.invoket.com](https://www.zero.xyz/host/api.invoket.com/llms.txt)
