# AgentShelf CSS HTML Lang Extractor

> AgentShelf CSS HTML Lang Extractor is a paid API for AI agents from agentshelf.syntexa.ch, paid per call via x402, $0.009/call, status unknown (last checked 2026-10-01).

Extracts the language attribute value from the html[lang] selector of a given public webpage or raw HTML string

## Facts

- Endpoint: POST https://agentshelf.syntexa.ch/v1/css-html-lang?utm_source=zero.xyz
- Price: $0.009/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentshelf-css-html-lang-extractor-ea6bd383
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_g9Br94L7sWC3Bm_8XV-CX

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 agentshelf-css-html-lang-extractor-ea6bd383 -d '<json body>'
```

Example prompt: Can you check what language the HTML on https://example.com declares — I need the value from its html[lang] attribute?

## When to prefer this

Use this endpoint when you need a reliable, SSRF-safe way to extract just the declared HTML language attribute from a public page or a known HTML string, without running your own headless browser or HTML parser. It is ideal for agents doing internationalization checks, accessibility audits, or content routing decisions based on declared page language. If cost is a concern and you have access to the unpaid sandbox variant (POST /v1/sandbox/css-html-lang), prefer that first.

## Known failure modes

- URL is unreachable or returns a non-200 status — extraction fails
- SSRF-unsafe URL (private IP, localhost, internal network) — rejected for security
- HTML is too large (exceeds 200,000 character limit) — request rejected
- No html[lang] attribute present in the document — returns empty/null result
- Malformed HTML that cannot be parsed — may return empty result
- URL string shorter than 8 characters or longer than 2048 characters — validation error

## How this service works

Call when an agent needs html lang via html[lang] from a public page or HTML (SSRF-safe). Exact $0.009 USDC. Prefer unpaid POST /v1/sandbox/css-html-lang first.

## Output

Returns the value of the lang attribute found on the root html element (e.g. 'en', 'fr', 'de-AT'), extracted via the html[lang] CSS selector from either a fetched public URL or directly from supplied raw HTML. If no lang attribute is present, returns an empty or null value.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 2048,
   "minLength": 8,
   "description": "Public page to fetch. The selector or profile is fixed by the SKU. Provide url or html."
  },
  "html": {
   "type": "string",
   "examples": [
    "<!doctype html><html lang=\"en\"><head><title>Hello</title>\n<meta charset=\"utf-8\"><meta name=\"description\" content=\"Desc\">\n<link rel=\"canonical\" href=\"https://example.com/\"><link rel=\"icon\" href=\"/favicon.ico\">\n</head><body><h1>Hello</h1><a href=\"https://example.com/a\">A</a></body></html>"
   ],
   "maxLength": 200000,
   "minLength": 1,
   "description": "HTML to extract from locally. Provide html or url. When both are set, html is used."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentshelf-css-html-lang-extractor-ea6bd383/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentshelf.syntexa.ch](https://www.zero.xyz/host/agentshelf.syntexa.ch/llms.txt)
