What you get
The record.
Every cosmetic product the hub can source from the brand's own page — what it is on the taxonomy of record, its Global Trade Item Number (GTIN), its market status, its claim status — read live, every field with its source.
A registry for security.
Every answer names the market, the rule set and the version it was judged against, and is signed; an agent that transacts carries a credential from the issuer.
x402 to pay on it.
Your agent asks, the hub answers, your agent pays and the order settles machine to machine, with a receipt naming what was bought, where and under which rule.
Who it's for
Brands, manufacturers, retailers, distributors and their AI agents. The consumer is never the counterparty.
If your business makes, owns, distributes or sells cosmetics, your agents have one place to ask: is this a cosmetic here, what must be filed, is the ingredient allowed, who makes it, can I order it. If the answer is no, the hub says so with the rule.
The gate
Three calls before any price: resolve_jurisdiction → resolve_actor → gate_transaction.
Twelve reason codes, one rule set per market (thirteen; the six EU markets share one), every answer stamped with the version it was read against.
- Codes — ALLOW · REQUIRE_NOTIFICATION · REQUIRE_RESPONSIBLE_PERSON · DENY_NOT_A_COSMETIC_HERE · DENY_INGREDIENT_BANNED · DENY_INGREDIENT_LIMIT · DENY_CLAIM · DENY_MARKET · DENY_ACTOR_CLASS · DENY_UNLICENSED_AGENT · DENY_NO_GTIN · DENY_NOT_VERIFIED.
- Actors — brand · manufacturer · retailer · distributor · auditor. An agent inherits the class of the credential it presents. The consumer is never the counterparty.
- Market status — a product type is a cosmetic, a drug, a special class or not permitted, market by market, with the regulator's page.
The door
The Model Context Protocol (MCP) door of record is mcp.a2a-cosmetics.ai/mcp, a stateless streamable-HTTP server named a2a-cosmetics with 20 tools at version 1.0.0 (read from the door at build). Open schemas; the stock clients of the three major clouds attach with no adapter.
- Gate (3) —
resolve_jurisdictionWhere is this going? Returns the market and rule set.;resolve_actorWho is asking? Brand, manufacturer, retailer or distributor.;gate_transactionAllow or deny, with the reason and the rule. - Regulatory truth (5) —
get_ingredient_recordOne ingredient, and its status in every market.;get_market_statusIs this product type a cosmetic here?;get_notification_requirementsWhat must be filed before sale.;get_label_and_claimsWhat the label must say, and which claims are allowed.;get_enforcement_watchRecalls, bans and safety alerts, dated. - Catalogue (3) —
search_cleared_itemsFind products cleared for this market.;get_itemOne product by GTIN, fully resolved.;compare_itemsCompare products, variants and shades. - Supply (3) —
find_verified_supplierVerified makers and brands for this product.;get_availabilityIn stock, and where.;get_priceThe price for this buyer. - Documents (2) —
get_product_documentsSafety report, certificate of analysis, data sheet.;verify_gtinIs this GTIN real, and whose is it? - Commerce (2) —
create_order_intentOpen an order between two agents.;a2a_handoffHand the buyer to the right agent. - Operations (2) —
get_safety_labelWarnings and age limits.;log_auditWrite a line to the audit record.
The record
Spine: the GSC SPARKS Beauty and Personal Care Taxonomy — four levels, then variant or form, then SKU / GTIN. Segments and claims are attributes, never branches.
- Products — keyed by GTIN; taxonomy path; shades as parent and child so one product answers as one product.
- Ingredients — by standard ingredient name (INCI), with status per rule set from the official lists.
- Market status — product type by market: cosmetic, drug, special class, or not permitted.
- Suppliers and retailers — brands and makers; banners, country, channel. A retailer record never implies the retailer buys through the hub.
- Every record — carries claim_status: listed · claimed · verified. An unclaimed record answers: listed from public sources, not verified by the brand.
- The showcase standard — every URL read live at load; dead, wrong or parked goes to the pond with its reason; only validated rows are served; every field carries its source; counts are read from the validated set at request time.
Eighteen markets
Eighteen Microsoft Azure regions, and the buyer's agent is answered from the one it's in.
- US — United States · South Central US
- MX — Mexico · Mexico Central
- CA — Canada · Canada Central
- BR — Brazil · Brazil South
- UK — UK · UK South
- FR — France · France Central
- DE — Germany · Germany West Central
- NL — Netherlands · West Europe
- IT — Italy · Italy North
- ES — Spain · Spain Central
- PL — Poland · Poland Central
- CH — Switzerland · Switzerland North
- AE — United Arab Emirates · UAE North
- IN — India · Central India
- SG — Singapore · Southeast Asia
- JP — Japan · Japan East
- KR — Korea · Korea Central
- AU — Australia · Australia East
Regulators, linked by home page only: FDA (United States) · COFEPRIS (Mexico) · Health Canada · ANVISA (Brazil) · Office for Product Safety and Standards (UK) · European Commission · Federal Food Safety and Veterinary Office (Switzerland) · Ministry of Industry and Advanced Technology (UAE) · Central Drugs Standard Control Organisation (India) · Health Sciences Authority (Singapore) · Ministry of Health, Labour and Welfare (Japan) · Ministry of Food and Drug Safety (Korea) · Australian Industrial Chemicals Introduction Scheme (Australia) · Therapeutic Goods Administration (Australia, sunscreens).
The agents
One app, identity as a parameter: every agent is a hostname with a signed card and an Agent-to-Agent (A2A) endpoint at /a2a, counted from the agent table at request time.
- Hub trio — concierge (a2a-cosmetics.ai) · issuer (a2a-registry.ai) · payments door (a2a-x402.ai)
- 19 market agents — one per market in its own Azure region, plus eu. for the shared EU rule set
- 4 actor entries — brand. · manufacturer. · retailer. · distributor. — a default, never a bypass
- handoff. · watch. · audit. — the referral, the enforcement watch, the auditor port
- 6 lane agents — suncare. · fragrance. · dermocosmetics. · peptides. · korean. · sustainable. — attribute views over the one record
- The tenant seat — GSC's declared showcase brand, with the same guardrails as on its own site
- Sun care (suncare.a2a-cosmetics.ai) — SPF, UVA, broad spectrum, water resistance and the market's status: drug, special class or cosmetic.
- Fragrance (fragrance.a2a-cosmetics.ai) — Concentration, family and format; allergens on the label.
- Dermocosmetics (dermocosmetics.a2a-cosmetics.ai) — Clinical and pharmacy positioning; claims read against the rules.
- Peptides (peptides.a2a-cosmetics.ai) — Peptide actives on the record; anything prescription hands off to a2a-peptides.ai.
- Korean (korean.a2a-cosmetics.ai) — Korean origin and K-beauty positioning; functional cosmetics reviewed by the Ministry of Food and Drug Safety.
- Sustainable (sustainable.a2a-cosmetics.ai) — Refill, vegan, certified organic and recycled claims read against the rules.
Pay on it
x402 is live: an order intent settles in USDC on Base after the gate; the receipt is signed and names what was bought, where and under which rule. The Machine Payments Protocol (MPP), the Universal Commerce Protocol (UCP) and the Agentic Commerce Protocol (ACP) are built and dark until they can settle; the Agent Payments Protocol (AP2) sits on the Agent Card.
- a2a-pay.ai — the five rails in plain words, each with its door
- a2a-x402.ai — the x402 rail and its receipts
- a2a-registry.ai — the issuer: registration, tokens, keyring, revocation
Rulings of record
- A2A Cosmetics is a2a-peptides.ai remade as is — same surface, door, issuer, payments door and agents app — for cosmetics: 18 markets, 13 rule sets, twenty tools, twelve reason codes.
- Business to business: brands, manufacturers, retailers, distributors and their agents. The consumer is never the counterparty.
- The taxonomy of record is the GSC SPARKS Beauty and Personal Care Taxonomy: four levels, then variant or form, then SKU / GTIN; segments and claims are attributes, never branches.
- The showcase standard: every URL is read live at load; dead, wrong or parked goes to the pond with its reason; only validated rows are served; every field carries its source; counts are read from the validated set.
- Every record carries claim_status — listed · claimed · verified. An unclaimed record answers: listed from public sources, not verified by the brand.
- No brand or retailer name renders on any web path. Names are served by the door and the agents only.
- The four agent- rail doors are GreenCore's: x402 live; MPP, UCP and ACP built and dark; nothing advertised that cannot settle.
Machine kit
Everything on this page is served for machines at these paths, each answering 200:
- /.well-known/agent-card.json — A2A Agent Card, signed ES256 under kid a2ac-2026-09
- /.well-known/jwks.json — the hub keyring
- /llms.txt — the plain-text guide for language models
- /ai-catalog.json — the resource catalogue (also /.well-known/ai-catalog.json)
- /index.md — this page as Markdown (also by Accept: text/markdown)
- /docs — the door's reference
- /setup — the connection page
- /claim — claim your record
- /icon.svg — the mark, with /icon-512.png and /icon-512-dark.png
- /site.webmanifest — the web manifest
- /health.json — surface status
- /.well-known/security.txt — the security contact
- /robots.txt — crawl policy, open
- /sitemap.xml — the sitemap
Questions
The first question set: each answer is the tool that answers it and what comes back.
Skin care
Is this skin care product a cosmetic or a drug in this market?
get_market_status — the product type's status in the market (cosmetic, drug, special class or not permitted), the rule set and version it was read against, and the regulator.
Which skin care ingredients are banned or limited here?
get_ingredient_record — the ingredient's status under the market's rule set (prohibited, restricted with its limit, or listed), with the official source of each line.
Which verified suppliers make skin care for this market?
find_verified_supplier — the suppliers on the record for the market and product type, each with its claim status and the source its fields were read from.
Fragrance
Which fragrance allergens must be on the label in this market?
get_label_and_claims — the label lines the market requires for fragrance, the allergen declaration rule that applies, and the rule set version.
What must be filed before a fragrance goes on sale here?
get_notification_requirements — the notification or registration the market requires before sale, who files it, and the regulator's own page.
Which fragrance products are cleared for this market?
search_cleared_items — the fragrance items on the record cleared for the market, each keyed by GTIN with its claim status and taxonomy path.
Sun care
Is sunscreen a cosmetic, a drug or a therapeutic good here?
get_market_status — sunscreen's class in the market (cosmetic, drug or therapeutic good), the rule set that decides it, and the regulator.
Which ultraviolet filters are allowed, and at what limit?
get_ingredient_record — the filter's status under the market's rule set with its permitted limit and the official list it was read from.
What sun protection claims can the label make?
get_label_and_claims — the protection claims the market permits, the ones it forbids, and the rule set version read.
Dermocosmetics
What can a dermocosmetic claim before it becomes a drug claim?
get_label_and_claims — the claims that stay cosmetic under the market's rule set, the wording that crosses into a drug claim, and the source.
Are there recalls or safety alerts on this product type?
get_enforcement_watch — the enforcement events on the record for the market and product type, each with its date, register and the notice read live.
Which documents come with this product?
get_product_documents — the documents on the product's record (safety data, certificates, notifications), each with its source URL and read date.
Contact
A person reads the form. Claims, registry and supply questions arrive here.
The form is the only human door on this surface. Machine contact is on the Agent Card and in the headers.