# Web pages on Onekey > 25 endpoints for Web pages (23 stable, 2 beta), 1 to 12 credits each. Category: Web tools. One key, one JSON shape. Base URL: https://api.onekey.dev Auth: header `x-api-key: `. Call shape: `GET /v1/{platform}/{endpoint}?{params}`. Every response is `{success, data, metadata, error}`; check `success` first. Cost is in `metadata.credits_charged`. Free when served from cache (0.2 credit for a cached response over 100 KB). Failed and not-found calls are refunded. Status: stable = verified against the live source; beta = not yet verified, fields may be missing. Access: 2 of 25 endpoints are marked "needs a pack" or "may need a pack": free-grant credits reach only the open fetch path; a verified email and a purchased pack unlock the rest. Page: https://onekey.dev/platforms/web Reference (Markdown): https://onekey.dev/docs/api/web.md All docs: https://onekey.dev/llms.txt ## Canonical fields returned Unified-schema fields (same names on every platform), with how many of the 25 mapped Web pages endpoints return each: - `content.url` (URL): 13 - `content.title` (string): 12 - `content.text` (string): 9 - `entity.name` (string): 9 - `media.url` (URL): 8 - `content.createdAt` (ISO 8601 date): 6 - `content.language` (string): 6 - `entity.url` (URL): 6 - `author.displayName` (string): 5 - `entity.type` (string): 5 - `entity.tags` (list of strings): 2 - `entity.updatedAt` (ISO 8601 date): 2 - `author.username` (string): 1 - `content.id` (string): 1 - `entity.category` (string): 1 - `entity.location` (string): 1 - `entity.stats.score` (number): 1 - plus 82 platform-specific fields under `ext.` ## Endpoints ### web.article Article extraction: title, byline, date, markdown and plain text, reading time. - Price: 5 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/article?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_scraping` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `content.language`, `content.createdAt`, `author.displayName`, `entity.name`, `media.url`, `ext.markdown`, `ext.wordCount`, `ext.readingTimeMinutes`, `ext.excerpt` - Reference: https://onekey.dev/docs/api/web/article.md ### web.contacts Public contact points on a page: emails, phone numbers, social profile links. - Price: 3 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/contacts?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.url`, `ext.emails`, `ext.phones`, `ext.social`, `ext.emailCount`, `ext.phoneCount`, `ext.socialCount` - Reference: https://onekey.dev/docs/api/web/contacts.md ### web.extract Structured data extracted from a web page by instruction (JSON object). - Price: 12 credits per fresh call. Status: beta. Access: needs a pack. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/extract?url=https%3A%2F%2Fexample.com&prompt=page%20title%20and%20price` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Public URL to extract from - `prompt` (string, required): What to extract, in plain words (for example: product name and price) - Fields returned: `content.title`, `content.url`, `content.language`, `ext.extracted`, `ext.statusCode` - Reference: https://onekey.dev/docs/api/web/extract.md ### web.favicon Best favicon/app icon of a site plus every declared icon. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/favicon?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `media.url`, `content.url`, `ext.fallbackUrl`, `ext.declared`, `ext.manifestUrl`, `ext.icons` - Reference: https://onekey.dev/docs/api/web/favicon.md ### web.feed Parse an RSS 2.0/RSS 1.0/Atom/JSON Feed URL into normalized items. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/feed?url=https%3A%2F%2Fgithub.blog%2Ffeed%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.url`, `content.id`, `content.createdAt`, `author.displayName`, `content.text`, `media.url`, `entity.tags`, `ext.enclosureUrl` - Reference: https://onekey.dev/docs/api/web/feed.md ### web.feeds Discover RSS/Atom/JSON feeds advertised by a page. - Price: 2 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/feeds?url=https%3A%2F%2Fgithub.blog%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.url`, `content.title`, `entity.type`, `ext.source` - Reference: https://onekey.dev/docs/api/web/feeds.md ### web.headers HTTP status, response headers (cookie values redacted) and redirect chain of a URL. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/headers?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.url`, `ext.httpStatus`, `ext.https`, `ext.redirectCount`, `ext.headers`, `ext.contentType`, `ext.contentLength`, `ext.server`, `ext.poweredBy`, `ext.cacheControl`, `ext.lastModified`, `ext.etag`, `ext.contentEncoding`, `ext.chain` - Reference: https://onekey.dev/docs/api/web/headers.md ### web.headings Heading outline (h1-h6) of a page. - Price: 2 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/headings?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `ext.level` - Reference: https://onekey.dev/docs/api/web/headings.md ### web.images Images on a page (img, srcset, picture, og:image) with alt text and dimensions. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/images?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `media.url`, `content.text`, `ext.width`, `ext.height`, `ext.source` - Reference: https://onekey.dev/docs/api/web/images.md ### web.jsonld JSON-LD structured data blocks (schema.org) of a page. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/jsonld?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_scraping` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.type`, `entity.name`, `entity.url`, `ext.data` - Reference: https://onekey.dev/docs/api/web/jsonld.md ### web.links All links on a page with anchor text, internal/external and nofollow flags. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/links?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.url`, `content.text`, `content.title`, `ext.internal`, `ext.nofollow`, `ext.rel` - Reference: https://onekey.dev/docs/api/web/links.md ### web.markdown Main content of a page as clean markdown (readability-style). - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/markdown?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_scraping` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `content.language`, `content.createdAt`, `author.displayName`, `entity.name`, `media.url`, `ext.wordCount`, `ext.readingTimeMinutes`, `ext.excerpt` - Reference: https://onekey.dev/docs/api/web/markdown.md ### web.metadata Page metadata: title, description, canonical, language, OpenGraph, Twitter cards, favicon. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/metadata?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `content.language`, `content.createdAt`, `entity.updatedAt`, `entity.name`, `entity.type`, `media.url`, `entity.tags`, `ext.canonicalUrl`, `ext.faviconUrl`, `ext.author`, `ext.generator`, `ext.robots`, `ext.themeColor`, `ext.httpStatus`, `ext.openGraph`, `ext.twitter` - Reference: https://onekey.dev/docs/api/web/metadata.md ### web.microdata HTML microdata (itemscope/itemprop) items of a page. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/microdata?url=https%3A%2F%2Fschema.org%2FPerson` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.type`, `ext.properties` - Reference: https://onekey.dev/docs/api/web/microdata.md ### web.opengraph OpenGraph and Twitter card tags of a page. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/opengraph?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `entity.type`, `entity.name`, `media.url`, `ext.pageUrl`, `ext.twitterCard`, `ext.twitterSite`, `ext.openGraph`, `ext.twitter` - Reference: https://onekey.dev/docs/api/web/opengraph.md ### web.redirects Redirect chain of a URL, hop by hop (status and Location). - Price: 2 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/redirects?url=http%3A%2F%2Fpython.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.url`, `entity.location`, `ext.httpStatus` - Reference: https://onekey.dev/docs/api/web/redirects.md ### web.robots Parse a site's robots.txt: groups, allow/disallow rules, crawl-delay, sitemaps. - Price: 1 credit per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/robots?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.url`, `ext.httpStatus`, `ext.groupCount`, `ext.sitemapCount`, `ext.sitemaps`, `ext.groups`, `ext.userAgents`, `ext.disallowAll`, `ext.crawlDelay`, `ext.host` - Reference: https://onekey.dev/docs/api/web/robots.md ### web.security_headers Security header audit (HSTS, CSP, X-Frame-Options, ...) with score and grade. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/security_headers?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.url`, `entity.stats.score`, `ext.grade`, `ext.passed`, `ext.total`, `ext.checks`, `ext.informationLeaks` - Reference: https://onekey.dev/docs/api/web/security_headers.md ### web.sitemap Parse an XML/gzip/text sitemap or sitemap index into URL entries. - Price: 2 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/sitemap?url=https%3A%2F%2Fwww.bbc.com%2Fsitemap.xml` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.url`, `entity.updatedAt`, `ext.changeFrequency`, `ext.priority`, `ext.kind` - Reference: https://onekey.dev/docs/api/web/sitemap.md ### web.social_links Social network profile links found on a page. - Price: 2 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/social_links?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.name`, `entity.url`, `author.username` - Reference: https://onekey.dev/docs/api/web/social_links.md ### web.ssl_cert TLS certificate of a host: issuer, validity window, SANs, protocol, verification result. - Price: 2 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/ssl_cert?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.name`, `ext.host`, `ext.issuer`, `ext.issuerOrganization`, `ext.notBefore`, `ext.notAfter`, `ext.daysRemaining`, `ext.valid`, `ext.expired`, `ext.verified`, `ext.verifyError`, `ext.san`, `ext.protocol`, `ext.cipher`, `ext.serialNumber` - Reference: https://onekey.dev/docs/api/web/ssl_cert.md ### web.tables HTML tables of a page as headers + rows. - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/tables?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_scraping` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `ext.headers`, `ext.rows`, `ext.rowCount` - Reference: https://onekey.dev/docs/api/web/tables.md ### web.techstack Technology detection from response headers, meta tags, scripts and markup (CMS, framework, CDN, analytics). - Price: 3 credits per fresh call. Status: stable. Returns: a list. - Request: `GET https://api.onekey.dev/v1/web/techstack?url=https%3A%2F%2Fvercel.com%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `entity.name`, `entity.category`, `ext.evidence` - Reference: https://onekey.dev/docs/api/web/techstack.md ### web.text Main content of a page as plain text (readability-style). - Price: 5 credits per fresh call. Status: stable. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/text?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWeb_scraping` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `content.language`, `content.createdAt`, `author.displayName`, `entity.name`, `media.url`, `ext.wordCount`, `ext.readingTimeMinutes`, `ext.excerpt` - Reference: https://onekey.dev/docs/api/web/text.md ### web.unlocked_markdown Markdown of a page that is hard to reach from ordinary servers. - Price: 8 credits per fresh call. Status: beta. Access: needs a pack. Returns: one record. - Request: `GET https://api.onekey.dev/v1/web/unlocked_markdown?url=https%3A%2F%2Fwww.python.org%2F` with header `x-api-key: YOUR_API_KEY` - Parameters: - `url` (string, required): Absolute http(s) URL of the page (ports 80/443 only; private/internal hosts are refused) - Fields returned: `content.title`, `content.text`, `content.url`, `content.language`, `content.createdAt`, `author.displayName`, `ext.wordCount` - Reference: https://onekey.dev/docs/api/web/unlocked_markdown.md ## Sample request ```bash curl "https://api.onekey.dev/v1/web/robots?url=https%3A%2F%2Fwww.python.org%2F" \ -H "x-api-key: YOUR_API_KEY" ```