Skip to main content
uAPI is a universal data access layer for the web. It turns arbitrary web pages into normalized, schema-aligned JSON with stable field names, ISO 8601 timestamps, and clean value types. You integrate once—via HTTPS or official SDKs—and get consistent output without managing scrapers, proxies, or anti-bot systems.

Start under a minute

Install the SDK, add your API key, call /v1/extract, and read normalized JSON.

Authentication

Authenticate every request with the X-API-Key header.

Responses

Learn the standard envelope, request metadata, and how to log it.

Caching

Control freshness per key with the x-cache-ttl header.

Errors

Stable error codes, messages, and HTTP statuses for robust handling.

Types

Field types and normalization guarantees across targets.

Changelog

Track behavior and compatibility across uAPI releases.

What you get on every call

Every endpoint returns the same stable envelope. You always receive: id for correlation and support. success to indicate whether structured data is available. data containing the normalized payload when success is true. error containing a stable code and message when success is false. uapi_version and schema_version for compatibility tracking. request with endpoint, method, parameters, timestamps, status_code, and cache_info. deprecation_warnings as a non-breaking channel for upcoming changes. Billing and usage are handled account-side; your integration logic stays focused on success, data, and error.
Authentication is a single header: X-API-Key. No additional auth headers are required.

Try it now with the SDKs

The fastest way to see uAPI in action is to extract structured data from a public URL using the official clients.
import os
from uapi import uAPI  # provided by the usdk package

client = uAPI(
    api_key=os.environ.get("UAPI_API_KEY"),  # or omit to use UAPI_API_KEY by default
)

response = client.extract(
    url="https://example.com",
)

print(response.to_dict())
Optionally send the x-cache-ttl header (0–3600) to cache successful GET responses for your own key. Caching is isolated per API key; other users cannot affect your cache.

Why teams choose uAPI

Predictable integration: one schema-normalized API across heterogeneous sites, so your downstream models, analytics, and pipelines do not need per-site adapters. Operational clarity: a single envelope with stable fields for logging, monitoring, and debugging. You can build alerts on success, error.code, and request.status_code without chasing special cases. Developer-first tooling: officially supported Python and TypeScript SDKs, typed responses, clear error surfaces, and docs that match real behavior.

Next steps

Go to Quickstart to: Create an API key. Install the SDK for your stack. Make your first /v1/extract and /v1/search calls. Then: Use the Endpoints pages for precise request/response contracts. Read Responses and Types to lock in how you parse the envelope. See Caching to tune x-cache-ttl for your workloads. Review Our Pledge and Support to understand how we handle stability, fairness, and incident response.

Get started fast

From API key to first successful response in minutes.

Explore endpoints

Definitive reference for /v1/extract, /v1/search, and /v1/perform.