# Email and SEO Metadata Extraction
A lightweight JSON API for email syntax checks, known disposable-domain detection, and metadata extraction from public HTML pages. Useful for signup forms, content previews, and SEO workflows.
## Authentication and billing
Connect to this API in the marketplace, choose a plan, and send your own consumer key in the `X-JoJAPI-Key` request header. Use the gateway URL and code snippets shown on each endpoint. Never share your account key or send provider proxy secrets from client code. Each endpoint call consumes one request from your selected plan; see Pricing for current allowances and billing rules.
## Endpoints
- `GET /validate-email?email=hello%40example.com` checks syntax and the domain against a built-in disposable-domain list. It returns `email`, `domain`, `validSyntax`, and `isDisposable`. An invalid address is a normal HTTP 200 assessment with `validSyntax: false`; a missing or empty parameter returns HTTP 400.
- `GET /extract-seo?url=https%3A%2F%2Fexample.com` fetches a public HTML page and returns its final `url`, `title`, `description`, and `openGraph` object containing `title` and `image`. Missing tags are `null`; relative image URLs are resolved against the final page URL.
- `GET /health` returns `status: ok` and a UTC ISO 8601 `timestamp`. This endpoint checks service availability, not the availability of every external target website.
## Responses
The validation and extraction endpoints use `{ "success": true, "data": { ... }, "error": null }` for successful results. Origin errors use `{ "success": false, "data": null, "error": { "code": "...", "message": "..." } }`. Health uses its simpler response described above. Concrete JSON examples and HTTP statuses are documented on each endpoint.
Gateway authentication, subscription and quota errors can use a different format with a `message` field. See [gateway-generated responses](https://docs.jojapi.com/gateway/gateway-generated-responses). A successful health response does not confirm that a subscriber has remaining quota for every request.
## Limits and interpretation
Email checks do not verify mailbox existence, check MX records, contact SMTP servers, send messages, or guarantee deliverability. Disposable-domain detection is list-based and cannot identify every temporary email service.
SEO extraction reads server-returned HTML only: it does not execute JavaScript, bypass logins, solve challenges, or guarantee access to websites that block automated requests. It allows an 8-second request timeout, at most 3 redirects, and scans at most 256 KiB of HTML. Metadata beyond this scan limit may be absent. URLs must use HTTP or HTTPS without embedded credentials or custom ports. IP-literal URLs, local hostnames, and this service itself are rejected.
URL-encode query values. Do not treat a missing metadata field as a server error. For target timeouts or upstream failures, retry conservatively with backoff; correct invalid parameters instead of repeatedly retrying them. Only retrieve pages you are authorized to access.