# upAPI > An API marketplace and gateway. One API key and one pooled quota call every > operation in the catalog — social media, search, maps, finance, developer > tools, file and browser operations — over a single uniform HTTP contract, so > integrating the tenth API costs no more than the first. ## Calling an API Every operation is one POST, authenticated with one header: POST https://api.upapi.io/{slug} X-Api-Key: Content-Type: application/json { ...operation input... } - `{slug}` is the operation id from the catalog, e.g. `ip-geolocation.get`. - The request body is the operation's input schema; the response body is its output schema. Both are published per operation (see Catalog below). - Errors share one envelope — `{"error":{"code":"...","message":"..."}}` — with the HTTP status matching the code. `RATE_LIMITED` is the per-minute burst gate and is safe to retry after `Retry-After`; `QUOTA_EXCEEDED` is the monthly plan quota and is not. - Usage is metered in weighted units: operations cost what they cost to run, so a cheap lookup and a browser-backed screenshot do not bill the same. ## Documentation - [Docs](https://upapi.io/docs): the platform guide — authentication, the universal request contract, errors, quotas, the SDK and the MCP server. - [Full docs corpus](https://upapi.io/docs/llms-full.txt): every documentation page concatenated as Markdown, for loading into context in one fetch. - [Docs index](https://upapi.io/docs/llms.txt): the page tree alone, if you want to fetch pages selectively. Any docs page also has a `.md` twin at its own URL plus `.md`. ## Catalog - [Marketplace](https://upapi.io/marketplace): browse and search every public operation, with its schema and copy-paste snippets. - [All APIs by category](https://upapi.io/apis): the crawlable directory. - [Catalog JSON](https://app.upapi.io/api/catalog): every public operation with its input and output schema, machine-readable. - [OpenAPI](https://app.upapi.io/api/openapi.json): the same surface as an OpenAPI document, including each operation's unit weight. `/openapi.json` on this host redirects there. - [API catalog](https://upapi.io/.well-known/api-catalog): RFC 9727 linkset of the gateway, the MCP server and every public operation. - [MCP server card](https://upapi.io/.well-known/mcp/server-card.json): the hosted MCP server's name, version, endpoint and OAuth metadata. - Markdown: the home page, `/pricing`, `/compare/search-api-pricing`, `/compare/llm-api-pricing` and every page under `/apis` and `/tools` have a Markdown twin at their own URL plus `.md` (the home page's is `/index.md`), also served to a request that sends `Accept: text/markdown`. ## Popular APIs Task-shaped pages: what the operation returns, a request and response example, its unit price and an FAQ. - [Google Maps Scraper API](https://upapi.io/apis/maps/google-maps-scraper): Search Google Maps by text or coordinates, look up one place, or read its reviews — JSON endpoints behind one API key, no browser and no CAPTCHA-solving. - [Instagram User ID & Info API](https://upapi.io/apis/social-media/instagram-profile-scraper): Instagram API to get a user ID from a username, get user info by username or ID, and get posts by user — no login, no session cookie. One upAPI key. - [Instagram Post Scraper API](https://upapi.io/apis/social-media/instagram-post-scraper): Read a user’s recent posts, one post’s metadata, its commenters, or a location’s post feed on Instagram — public-read operations, no login required. - [TikTok Scraper API](https://upapi.io/apis/social-media/tiktok-scraper-api): TikTok operations behind one key: profiles, video metadata, comments and replies, comment-thread user discovery and account-health checks — no login. - [LinkedIn Jobs Scraper API](https://upapi.io/apis/social-media/linkedin-jobs-scraper): Search LinkedIn job postings by keyword and location, then fetch one posting’s full detail — over LinkedIn’s public guest surface, no login. - [Upwork Jobs Scraper API](https://upapi.io/apis/social-media/upwork-jobs-scraper): Search Upwork job postings by keyword, then fetch one posting’s full detail including client stats — over Upwork’s public visitor surface. - [Screenshot API](https://upapi.io/apis/tools/screenshot-api): Screenshot API: capture any public URL as a PNG or JPEG in headless Chromium — full page, custom viewport, ad blocking — as JSON behind one upAPI key. - [HTML to PDF API](https://upapi.io/apis/tools/html-to-pdf-api): HTML to PDF API: render a public URL or a raw HTML string to a print-quality PDF in headless Chromium — paper size, margins, page ranges. One upAPI key. - [URL to Markdown API](https://upapi.io/apis/tools/url-to-markdown-api): URL to Markdown API: fetch a web page and get clean, LLM-ready Markdown with title, byline and links — article extraction or full page. One upAPI key. - [Open Graph Scraper API](https://upapi.io/apis/seo-tools/open-graph-scraper-api): Open Graph scraper API: read any URL’s og:title, og:image, Twitter card, canonical and favicon as JSON for link previews and SEO audits. One upAPI key. - [Crypto Price API](https://upapi.io/apis/finance/crypto-price-api): Crypto price API: current price, market cap and 24-hour change for any CoinGecko coin id, quoted in USD, EUR, BTC or other currencies. JSON, one upAPI key. - [Google Autocomplete API](https://upapi.io/apis/search/google-autocomplete-api): Google autocomplete and suggest scraper API: suggestions for any query by language and country, with a–z expansion for long-tail keywords. One upAPI key. - [Sitemap Parser API](https://upapi.io/apis/seo-tools/sitemap-parser-api): Sitemap parser API: fetch an XML sitemap, index or plain-text URL list and get each URL with lastmod, changefreq and priority as JSON. One upAPI key. - [LinkedIn Profile Search API](https://upapi.io/apis/search/linkedin-profile-search-api): LinkedIn search API: find LinkedIn profiles by job title and location as JSON, with name, headline and profile URL. No LinkedIn login. One upAPI key. ## APIs Every public operation, one line each: its page on upapi.io, what a call costs in weighted units, and what it does. This list is generated from the `@upapi/sdk` catalog when the site is built, so it follows each deploy; the live, always-current list is the Catalog JSON above. A page also has a Markdown twin at its URL plus `.md`. ### Communication - [Translate Text](https://upapi.io/apis/communication/translate-text) (1 unit): Translate short text (<=500 chars) between language codes via MyMemory Translated. Free tier is 5,000 words/day shared across callers; no auth required. ### Data - [Geolocate IP Address](https://upapi.io/apis/data/ip-geolocation) (1 unit): Resolve an IP (IPv4 or IPv6) to city, region, country, lat/long, timezone, ASN, and currency. Omit the ip field to geolocate the caller. - [Get BBC News Headlines](https://upapi.io/apis/data/bbc-news) (1 unit): Fetch headlines from a BBC section (news / world / business / technology / science-environment / entertainment-arts / sport) via the official BBC RSS feeds. Pure HTTP (no browser). Returns title, article URL, and summary for each headline. - [Get Current Weather](https://upapi.io/apis/data/weather-current) (1 unit): Current temperature, humidity, wind, precipitation, and condition code at the given lat/long via Open-Meteo (free, no auth). Metric or imperial units. - [Get Wikipedia Article Summary](https://upapi.io/apis/data/wikipedia-article) (1 unit): Fetch a Wikipedia article summary (description + extract + thumbnail + coordinates) from any supported language via the public REST API. - [Look Up Timezone](https://upapi.io/apis/data/timezone-lookup) (1 unit): Resolve a lat/long to its IANA timezone, country, current local time, UTC offset (with DST detection), and standard offset. Uses the free timeapi.io. - [Wayback Machine Lookup](https://upapi.io/apis/data/archive-wayback) (1 unit): Find the closest Wayback Machine snapshot of a URL (optionally near a target timestamp). Returns the snapshot URL, its capture timestamp, and HTTP status. ### Developer Tools - [Detect Website Tech Stack](https://upapi.io/apis/developer-tools/detect-tech-stack) (1 unit): Analyze any website to detect its technology stack — frameworks (Next.js, Nuxt, WordPress, Shopify), hosting (Vercel, Netlify, AWS), analytics (GA, Plausible, Segment), CDNs, CSS frameworks, payment providers, and more. Uses HTTP headers, HTML patterns, and script analysis. - [Get GitHub Repository](https://upapi.io/apis/developer-tools/github-repo) (1 unit): Fetch metadata (stars, forks, topics, license, dates) for a public GitHub repository via the REST API. - [Get GitHub Trending Repositories](https://upapi.io/apis/developer-tools/github-trending) (1 unit): Fetch the github.com/trending page for the most-starred repos in a time window, optionally filtered by language. Pure HTTP (no browser). Returns full name, URL, description, language, total stars, stars this window, forks. - [Get GitHub User](https://upapi.io/apis/developer-tools/github-user) (1 unit): Fetch a GitHub user or organization's public profile: name, bio, company, location, follower/repo counts, avatar, Twitter handle, hireable flag. Plus the rate-limit headers. Works without a token; pass your own for 5,000 req/h. - [Get GitHub User Commit Emails](https://upapi.io/apis/developer-tools/github-user-emails) (3 units): Collect the public commit-author emails a GitHub user has pushed with, from their most recently updated repositories (noreply addresses dropped). One listing call plus one per repository scanned. Plus the rate-limit headers. - [Get npm Package](https://upapi.io/apis/developer-tools/npm-package) (1 unit): Fetch metadata for a public npm package: latest version, recent versions, maintainers, license, repository, keywords. - [Get PyPI Package](https://upapi.io/apis/developer-tools/pypi-package) (1 unit): Fetch metadata for a public PyPI package: latest version, author, license, project URLs, classifiers, requirements. - [List GitHub Issue Comments](https://upapi.io/apis/developer-tools/github-issue-comments) (1 unit): List the comments on a GitHub issue or pull request, paginated: author, association (OWNER/MEMBER/CONTRIBUTOR/NONE), body, reaction count, timestamps. Plus the rate-limit headers. - [List GitHub Repository Contributors](https://upapi.io/apis/developer-tools/github-repo-contributors) (1 unit): List a repository's contributors ranked by commit count, paginated: login, id, type, contributions, profile URL. Plus the rate-limit headers. - [List GitHub Repository Issues](https://upapi.io/apis/developer-tools/github-repo-issues) (1 unit): List a repository's issues with state/label/date filters and pagination. Pull requests are filtered out by default. Returns parsed rows (author, labels, comment and reaction counts) plus the rate-limit headers. - [Search dev.to Articles](https://upapi.io/apis/developer-tools/devto-articles-search) (1 unit): Search articles on dev.to by tag, username, or top-of-week trending. Returns title, description, tags, author, reading time, reaction and comment counts. - [Search GitHub Discussions](https://upapi.io/apis/developer-tools/github-search-discussions) (1 unit): Search GitHub Discussions across all repositories (GraphQL). Returns title, body, author, repository, category, comment count and the node id you need to reply, with cursor pagination. Requires your own GitHub token - GitHub's GraphQL API does not serve anonymous callers. - [Search GitHub Issues](https://upapi.io/apis/developer-tools/github-search-issues) (6 units): Search issues and pull requests across all of GitHub with GitHub's search syntax. Returns parsed rows (author, repo, labels, comment count, reactions) plus the rate-limit headers so you can pace yourself. Works without a token (10 searches/min per IP); pass your own token for 30/min. - [Search GitHub Repositories](https://upapi.io/apis/developer-tools/github-search-repos) (6 units): Search repositories across GitHub with GitHub's search syntax (language, stars, topics, pushed dates). Returns parsed rows plus the rate-limit headers. Works without a token; pass your own for the higher limit. - [Search GitHub Users](https://upapi.io/apis/developer-tools/github-search-users) (6 units): Search GitHub users and organizations by login, location, language, follower count and more. Returns login/id/type/avatar rows (follow with Get GitHub User for the full profile) plus the rate-limit headers. - [Search Stack Exchange](https://upapi.io/apis/developer-tools/stackexchange-search) (1 unit): Full-text search over any Stack Exchange site (stackoverflow, superuser, askubuntu, etc.). Returns question id, title, tags, score, answer count, accepted-answer flag, asker, timestamps. - [Text Analyze](https://upapi.io/apis/developer-tools/text-analyze) (1 unit): Analyze text: character / word / line / sentence / byte counts plus a SHA-256 digest. Pure-compute, no network — a native Rust marketplace endpoint. ### Finance - [Convert Currency](https://upapi.io/apis/finance/currency-convert) (1 unit): Convert a fiat amount across one or more target currencies using ECB daily reference rates via Frankfurter. Returns both unit rates and the converted amounts. - [Get Crypto Prices](https://upapi.io/apis/finance/crypto-price) (1 unit): Current crypto prices (+ optional market cap and 24h change) for one or more coins across fiat or crypto quote currencies via CoinGecko's free simple-price endpoint. ### Maps - [Google Maps Business Search](https://upapi.io/apis/maps/google-maps-search) (6 units): Search Google Maps for businesses by text query, optionally centred on coordinates. Returns each place with its name, address, coordinates, category, rating, review count, opening hours, website and phone where Google publishes them, plus the place id you can pass to Google Maps Place Details. - [Google Maps Place Details](https://upapi.io/apis/maps/google-maps-place) (4 units): Look up one Google Maps place by place id, CID, feature id or a pasted Maps link, and get its name, full address, coordinates, categories, rating, review count, phone, website and opening hours. Pairs with Google Maps Business Search, which returns the identifiers this accepts. - [Google Maps Reviews](https://upapi.io/apis/maps/google-maps-reviews) (6 units): Read the reviews on any Google Maps place by place id, CID, feature id or a pasted Maps link. Returns each review's rating, full text, author, photos, timestamp and the owner's reply, sorted by relevance, date or rating, with cursor pagination through the whole feed. ### Media - [Get NASA Astronomy Picture of the Day](https://upapi.io/apis/media/nasa-apod) (1 unit): Fetch NASA's Astronomy Picture of the Day (APOD). Today's by default, or any date from 1995-06-16 onwards. Returns title, explanation, media URL (+ HD variant), copyright. Uses DEMO_KEY by default; set NASA_API_KEY env for higher rate limits. - [Get Pokemon](https://upapi.io/apis/media/pokeapi-pokemon) (1 unit): Look up a Pokemon by name or national dex id. Returns types, abilities, base stats (HP/attack/defense/sp.atk/sp.def/speed), height/weight, and artwork URLs. - [Get Transcription Result](https://upapi.io/apis/media/audio-transcribe-result) (1 unit): Fetch the result of a transcription started by audio-transcribe, using its jobId. Returns the finished transcript with time-coded segments, or the current progress while it is still running. Job ids are kept for 24 hours. - [Transcribe Audio or Video](https://upapi.io/apis/media/audio-transcribe) (10 units): Transcribe speech from an audio or video URL, with time-coded segments and automatic language detection. Short clips come back in the same call; longer ones return a jobId to poll with audio-transcribe-result. GPU Whisper, up to two hours per file. ### Search - [Google Autocomplete](https://upapi.io/apis/search/google-autocomplete) (1 unit): Real Google search suggestions (autocomplete/suggest) via pure HTTP — no browser, no CAPTCHA. Set expand=true to mine long-tail keywords. - [Google Search](https://upapi.io/apis/search/google-search) (6 units): Search Google and get organic results (title, URL, snippet, domain) for any query, with language and country control. For query suggestions use google-autocomplete.post; for a lighter general web search use web-search.post. - [LinkedIn Profile Search](https://upapi.io/apis/search/linkedin-profile-search) (15 units): Find LinkedIn profiles by job title and location. Returns name, headline, and profile URL. Web-search backed — no login required. - [Web Search](https://upapi.io/apis/search/web-search) (1 unit): Search the web and get structured results (titles, URLs, snippets). DuckDuckGo-backed — no browser, no CAPTCHA, fast. ### SEO Tools - [Get Bing Search Results](https://upapi.io/apis/seo-tools/bing-serp) (25 units): Get Bing search results (title, URL, snippet) for a query, fetched through a real headless browser. - [Get DuckDuckGo Search Results](https://upapi.io/apis/seo-tools/duckduckgo-search) (25 units): Get DuckDuckGo search results (title, URL, snippet) for a query, fetched through a real headless browser. - [Get Google Search Results](https://upapi.io/apis/seo-tools/google-serp) (25 units): Get Google search results (title, URL, snippet) for a query, fetched through a real headless browser. - [Parse Open Graph Metadata](https://upapi.io/apis/seo-tools/opengraph-parse) (1 unit): Fetch a URL and extract its Open Graph, Twitter Card, , description, canonical, and favicon metadata - everything needed to render a rich link preview. - [Parse Sitemap](https://upapi.io/apis/seo-tools/sitemap-parse) (1 unit): Fetch and parse an XML sitemap, sitemap index, or plaintext URL list. Returns URL entries (with lastmod/changefreq/priority) or child sitemap locations. ### Social Media - [Chatous Check Session](https://upapi.io/apis/social-media/chatous-check-session) (1 unit): Check whether a Chatous connect.sid cookie is still accepted. Returns Chatous's own verdict (0 authenticated, 1111 anonymous or expired) so an expired session is reported as data rather than as a failure. - [Chatous Get Account State](https://upapi.io/apis/social-media/chatous-get-account-state) (4 units): Read a Chatous account's own profile, its open conversations and their message history in one bounded WebSocket read. Chatous exposes no REST endpoint for any of this, so the socket's opening burst is the only source. - [Chatous Poll Events](https://upapi.io/apis/social-media/chatous-poll-events) (4 units): Listen on a Chatous account's WebSocket for a bounded window and return the events that arrived: new matches with the partner's profile, incoming messages, chat disconnects and queue acknowledgements. - [Check Reddit Account Health](https://upapi.io/apis/social-media/reddit-check-account-health) (4 units): Check the health and status of a Reddit account. Pass sessionCookies for the reliable authenticated read (required for new/low-karma accounts); otherwise falls back to parsing the public profile. - [Check Reddit Comment Visibility](https://upapi.io/apis/social-media/reddit-check-comment-visibility) (4 units): Detect shadowban/auto-removal: read a comment's focused permalink JSON as a non-author and report whether it is actually visible to the public. - [Get Bluesky Profile](https://upapi.io/apis/social-media/bluesky-profile) (1 unit): Fetch a Bluesky (AT Protocol) profile by handle or DID. Returns display name, description, avatar/banner, follower and post counts, labels, and DID. Uses the public AppView - no auth required. - [Get Contra Company Profile](https://upapi.io/apis/social-media/contra-company-profile) (4 units): Read one contra.com company profile by its slug: name, description, website, location, year founded, verification badge, review count and the client statistics Contra publishes (average rating, projects hired, total spend). Reads Contra's public page — no Contra account is required. - [Get Contra Opportunity](https://upapi.io/apis/social-media/contra-job-detail) (4 units): Read one contra.com freelance opportunity by its slug: title, full description, budget range, required roles and tools, application window, and the hiring company with its review count and spend statistics. Reads Contra's public page — no Contra account is required. - [Get LinkedIn Job Details](https://upapi.io/apis/social-media/linkedin-jobs-detail) (6 units): Fetch one LinkedIn job posting: full description, seniority level, employment type, job function, industries, applicant count and posting age. Accepts the job id from linkedin-jobs-search, a job URL or a urn:li:jobPosting URN. Reads LinkedIn's public guest surface — no LinkedIn account or cookie is required. - [Get Mastodon Profile](https://upapi.io/apis/social-media/mastodon-profile) (1 unit): Look up a Mastodon account by fully-qualified handle (e.g. Gargron@mastodon.social). Works against any Mastodon instance via its open REST API - no auth needed. - [Get Subreddit Info](https://upapi.io/apis/social-media/reddit-subreddit-info) (4 units): Fetch subreddit metadata: subscriber count, description, rules, active users and appearance settings. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30. - [Get Trending Reddit Posts](https://upapi.io/apis/social-media/reddit-get-trending) (4 units): Fetch trending, hot, rising, top, or new posts from any subreddit with pagination and time filtering. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30. - [Get Upwork Job Details](https://upapi.io/apis/social-media/upwork-jobs-detail) (10 units): Read one Upwork job posting in full: the complete description, required skills, budget, how many freelancers have applied and been interviewed, and the client's country, rating, hire count and total spend. Accepts the job ciphertext or the job URL. Reads Upwork's public visitor surface — no Upwork account is required. - [Instagram Check Account](https://upapi.io/apis/social-media/instagram-check-account) (15 units): Check if a username/email/phone is linked to an Instagram account. Returns existence + recovery channels. - [Instagram Check Account Health](https://upapi.io/apis/social-media/instagram-check-account-health) (15 units): Check if Instagram account is active/suspended. Returns follower, post counts, and verification status. - [Instagram Discover Location Posts](https://upapi.io/apis/social-media/instagram-discover-location) (15 units): Get 50-95 post shortcodes from a location page. No auth needed. Use with get-post-commenters for massive lead discovery. - [Instagram Get Post Commenters](https://upapi.io/apis/social-media/instagram-get-post-commenters) (15 units): Extract commenters, comment text, and sibling posts from a post page. One call = ~24 lead-gen entities. No auth needed. - [Instagram Get Post Info](https://upapi.io/apis/social-media/instagram-get-post-info) (15 units): Get post metadata (caption, owner, media, comment count) via embed page. No auth needed, not rate-limited. - [Instagram Get User By Id](https://upapi.io/apis/social-media/instagram-get-user-by-id) (15 units): Resolve an Instagram profile from a numeric user id, no login. Anonymous returns identity (username, profile picture) — see detailLevel. - [Instagram Get User Posts](https://upapi.io/apis/social-media/instagram-get-user-posts) (15 units): Get a user's recent posts with engagement metrics. Rate-limited — use proxy rotation for bulk. No auth needed. - [Instagram Get User Profile](https://upapi.io/apis/social-media/instagram-get-user-profile) (15 units): Get full Instagram user profile (bio, stats, verified, business status). Works for public profiles without auth. - [LinkedIn Check Account Health](https://upapi.io/apis/social-media/linkedin-check-account-health) (15 units): Check whether a LinkedIn session (cookies) is still authenticated via the Voyager me endpoint. Returns isValid plus the logged-in profile name/URL. - [LinkedIn Get Profile](https://upapi.io/apis/social-media/linkedin-get-profile) (15 units): Fetch a LinkedIn profile (name, headline, location, vanity) by vanity name via the Voyager dash API. Cookie-authenticated. - [Reddit - post a comment as a registered app](https://upapi.io/apis/social-media/reddit-oauth-post-comment) (4 units): Posts a comment through Reddit's documented OAuth2 API using a refresh token, with the caller's own User-Agent. Verifies the token's account against expectedUsername before creating anything, and turns Reddit's HTTP-200 `json.errors` refusals (locked thread, subreddit ban, rate limit) into classified failures. No browser, no captcha, no cookies. - [Reddit - who does this OAuth app speak as?](https://upapi.io/apis/social-media/reddit-oauth-me) (4 units): Exchanges a Reddit OAuth2 refresh token and reads the account it belongs to over Reddit's documented API: username, suspension state, verified email, karma, account age and the token's scopes. Reads only -- it creates nothing. The access token and the supplied secrets are never returned or logged. - [Scrape Reddit Post & Comments](https://upapi.io/apis/social-media/reddit-scrape-post) (4 units): Fetch a Reddit post with its comment tree: post metadata, selftext, and nested comments with scores and authorship. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30. - [Search Contra Freelancers](https://upapi.io/apis/social-media/contra-discover-people) (5 units): Search contra.com's public directory of independent professionals by role or free text. Returns each profile's name, headline, roles, location, review average and count, follower and hire counts, availability and minimum hourly rate. Reads Contra's public page — no Contra account is required. - [Search LinkedIn Jobs](https://upapi.io/apis/social-media/linkedin-jobs-search) (6 units): Search LinkedIn job postings by keyword and location. Returns title, company, location, posting date, salary hint and the job id you pass to linkedin-jobs-detail. Reads LinkedIn's public guest surface — no LinkedIn account or cookie is required. - [Search Reddit Posts](https://upapi.io/apis/social-media/reddit-search-posts) (4 units): Search Reddit posts by keyword with subreddit filtering, sort and time range. Returns structured post data including scores, comment count and metadata. Requires a Reddit session cookie in sessionCookies (obtain it from reddit-login.post, or copy reddit_session out of a signed-in browser) — Reddit has blocked every anonymous read surface since 2026-07-30. - [Search Upwork Jobs](https://upapi.io/apis/social-media/upwork-jobs-search) (10 units): Search Upwork job postings by keyword. Returns title, description, contract type, budget, publish time and the job reference you pass to upwork-jobs-detail. Reads Upwork's public visitor surface — no Upwork account or cookie is required. - [TikTok Check Account Health](https://upapi.io/apis/social-media/tiktok-check-account-health) (15 units): Check if TikTok account is active/suspended. Returns follower, video, and like counts. - [TikTok Discover Users from Comments](https://upapi.io/apis/social-media/tiktok-discover-users) (15 units): Mine unique commenters from a video for lead discovery. No auth needed. Returns user profiles from comment threads. - [TikTok Get Comment Replies](https://upapi.io/apis/social-media/tiktok-get-comment-replies) (3 units): Get the replies under a single TikTok comment, with each replier's handle and profile info. No auth needed. Paginated by cursor. - [TikTok Get Comments](https://upapi.io/apis/social-media/tiktok-get-comments) (15 units): Get comments on a video with commenter info. No auth needed. Supports pagination via cursor. - [TikTok Get User Profile](https://upapi.io/apis/social-media/tiktok-get-user-profile) (15 units): Get full user profile (bio, stats, verified status) via SSR scraping. No auth needed. - [TikTok Get Video By Id](https://upapi.io/apis/social-media/tiktok-get-video-embed) (3 units): Full video metadata (description, hashtags, play/like/comment counts, author and author follower stats) from a video id alone — no author handle needed, no auth. - [TikTok Get Video Detail](https://upapi.io/apis/social-media/tiktok-get-video-detail) (15 units): Get full video metadata (description, stats, author, music) via SSR scraping. No auth needed. - [TikTok oEmbed Lookup](https://upapi.io/apis/social-media/tiktok-oembed) (1 unit): Resolve any TikTok profile or video URL to its title, author and thumbnail via TikTok's public oEmbed endpoint. No auth, no signing. - [Wellfound Application Modal](https://upapi.io/apis/social-media/wellfound-application-modal) (4 units): Read a Wellfound listing's application modal: its screening questions with option ids, whether this account has already applied, and the qualification report. Read-only, and the intended step immediately before wellfound-apply. Requires an authenticated session blob from wellfound-login. - [Wellfound Browse Jobs](https://upapi.io/apis/social-media/wellfound-browse-jobs) (6 units): Browse public Wellfound job listings through the anonymous SEO GraphQL search: job id, slug, title, compensation, equity, locations, full description and the hiring company, with deep pagination. No login. Takes a blob from wellfound-public-session and must run on the exit that minted it. Company funding fields are empty on anonymous results; use wellfound-company-overview for those. - [Wellfound Company Overview](https://upapi.io/apis/social-media/wellfound-company-overview) (4 units): Fetch a Wellfound company overview: product description, headcount band, total raised, market and location tags, and the website, LinkedIn, X and blog links. Read-only, and works with an anonymous session from wellfound-public-session. - [Wellfound Conversation Detail](https://upapi.io/apis/social-media/wellfound-conversation-detail) (4 units): Fetch one Wellfound recruiter conversation with its full message history. Takes the bare conversation modelId from wellfound-list-conversations. Read-only. Requires an authenticated session blob from wellfound-login. - [Wellfound Job Detail](https://upapi.io/apis/social-media/wellfound-job-detail) (6 units): Fetch one Wellfound job listing in full (description, skills, compensation, equity, remote configuration, locations) together with the hiring company, including funding stage and total raised. Read-only, and works with an anonymous session from wellfound-public-session. An expired or removed listing is reported as such rather than returned as an empty job. - [Wellfound List Applications](https://upapi.io/apis/social-media/wellfound-list-applications) (4 units): List one page of the signed-in candidate's Wellfound job applications, each with its status, the listing and the company. The response carries no page info, so a page with no new applications means the end. Read-only. Requires an authenticated session blob from wellfound-login. - [Wellfound List Conversations](https://upapi.io/apis/social-media/wellfound-list-conversations) (4 units): List the signed-in candidate's Wellfound recruiter conversations with the company, the unread flag and the latest message in each thread. Read-only. Requires an authenticated session blob from wellfound-login. - [Wellfound Pipeline Stats](https://upapi.io/apis/social-media/wellfound-pipeline-stats) (4 units): Fetch the signed-in candidate's Wellfound pipeline counts: interested, matched, messages and saved listings. Read-only. Requires an authenticated session blob from wellfound-login and the viewer id from wellfound-viewer. - [Wellfound Public Session](https://upapi.io/apis/social-media/wellfound-public-session) (6 units): Mint an anonymous Wellfound browsing session (DataDome cookie, Apollo signature and persisted-query map) with no credentials and no account. Returns an opaque blob for the Wellfound read operations. The blob is bound to the exit IP that minted it: pass the same proxyUrl to every call in a chain, or omit it on all of them. - [Wellfound Refresh Operations](https://upapi.io/apis/social-media/wellfound-refresh-ops) (6 units): Re-scan Wellfound's public JS bundle for the current Apollo signature and persisted-query op-id map after a frontend deploy, and return the session blob with that material refreshed. No login and no credentials. A Wellfound deploy invalidates every persisted-query hash at once and looks identical to an expired session, so run this before concluding a session died. - [Wellfound Search Jobs](https://upapi.io/apis/social-media/wellfound-search-jobs) (6 units): Search Wellfound job listings as a signed-in candidate, with role, skill, job-type, remote-preference and location filters, and an already-applied flag per listing. Read-only. Requires an authenticated session blob from wellfound-login; for public browsing with no account use wellfound-browse-jobs. - [Wellfound Viewer](https://upapi.io/apis/social-media/wellfound-viewer) (4 units): Fetch the signed-in Wellfound viewer: user id, whether the account may still apply to jobs, candidate state and analytics traits. The cheapest way to check that a session is alive and the account is unrestricted. Read-only. Requires an authenticated session blob from wellfound-login. ### Tools - [Capture Website Screenshot](https://upapi.io/apis/tools/screenshot) (20 units): Render any public web page in headless Chromium and return a PNG or JPEG screenshot as base64 — viewport or full page, with a configurable viewport size, wait strategy and settle delay. - [Extract Text from PDF](https://upapi.io/apis/tools/pdf-extract-text) (2 units): Extract the text of a PDF, by URL or as an inline base64 upload. Optionally restrict it to a page range and detect tables, returned as Markdown. Runs locally on PDFium — no third-party document API, no per-page fee. - [Fetch URL as Markdown](https://upapi.io/apis/tools/fetch-markdown) (3 units): Convert any web page into clean, LLM-ready Markdown. Fetches over plain HTTP with browser headers (retrying once through a residential or datacenter proxy when the origin serves a bot wall), removes boilerplate with Mozilla Readability, and converts with GitHub-flavored Markdown tables, lists and code blocks. Article mode is verified against a whole-page conversion and downgrades itself when Readability strips too much, so you are never handed a gutted page. Returns the markdown plus title, byline, language, excerpt, the extracted link list, the final URL after redirects, and which transport served the body. No browser is used, so a client-rendered page is reported as an error rather than as empty content. - [Get Cloudflare Page Title](https://upapi.io/apis/tools/cloudflare-page-title) (1 unit): Fetch the <title> of a URL, with the HTTP status and Server header. The URL is read through an SSRF guard: private addresses and redirects to them are refused. - [OCR an Image](https://upapi.io/apis/tools/image-ocr) (4 units): Read the text in an image, by URL or as an inline base64 upload. Returns the full text plus every detected line with its confidence score and pixel bounding box. Runs locally on PP-OCR/ONNX — no cloud vision API, no per-image fee. - [Render HTML or URL to PDF](https://upapi.io/apis/tools/html-to-pdf) (20 units): Render a public web page or a raw HTML document to a print-quality PDF with headless Chromium — paper size, orientation, margins, scale and page ranges included. Returns base64 PDF bytes. - [Search Hacker News](https://upapi.io/apis/tools/hackernews-search) (1 unit): Full-text + filter search over Hacker News (stories, comments, Show/Ask HN, front page) via Algolia's open API. Ordered by relevance or date. ### Utility - [Email Generate Address](https://upapi.io/apis/utility/email-generate-address) (1 unit): Generate a fresh disposable email address for account signup. Supports catch-all domains, plus-addressing, and pre-created Outlook aliases. - [Email Read Verification Code (Microsoft Graph)](https://upapi.io/apis/utility/email-read-verification-code-graph) (1 unit): Poll an outlook.com mailbox over Microsoft Graph for a verification code. For accounts whose IMAP switch is off. Returns the code or an error. - [Read Email Verification Code](https://upapi.io/apis/utility/email-read-verification-code) (1 unit): Connect to an IMAP mailbox and extract a verification code from the SUBJECT of a recent email. Polls with retries. Supports Gmail (with App Password), Outlook, and any IMAP server. Generic — works for any platform that puts its code in the subject line; for a token that only appears in the body, use email-read-verification-link. - [Read Email Verification Link](https://upapi.io/apis/utility/email-read-verification-link) (1 unit): Connect to an IMAP mailbox and extract a link from the BODY of a recent email. Decodes quoted-printable/base64 bodies before matching, so URLs split across lines are returned whole. Polls with retries. Use this for verification mail whose token is a one-time URL rather than a code in the subject. ## Free tools No account and no key: each IP address gets 30 runs a minute and 300 a day across all of these tools. Index as JSON: https://app.upapi.io/api/tools · OpenAPI: https://app.upapi.io/api/tools/openapi.json · hub: https://upapi.io/tools - [Open Graph checker](https://upapi.io/tools/open-graph-checker): Free Open Graph checker: see the og:title, og:description, og:image, Twitter Card tags, canonical URL and favicon any page serves to link previews. No sign-up. No key: `GET https://app.upapi.io/api/tools/open-graph-checker?url=https%3A%2F%2Fgithub.com` - [Sitemap URL extractor](https://upapi.io/apis/seo-tools/sitemap-parse): Free sitemap URL extractor: paste a sitemap.xml, sitemap index or plain-text URL list and get every URL with its lastmod, changefreq and priority. No sign-up. No key: `GET https://app.upapi.io/api/tools/sitemap-url-extractor?url=https%3A%2F%2Fupapi.io%2Fsitemap.xml` - [Google Autocomplete explorer](https://upapi.io/apis/search/google-autocomplete): Free Google Autocomplete tool: type a seed keyword and get the suggestions Google shows for it, by language and country. Useful for keyword research. No sign-up. No key: `GET https://app.upapi.io/api/tools/google-autocomplete?query=api%20for` - [Crypto price checker](https://upapi.io/apis/finance/crypto-price): Free crypto price checker: current price, market cap and 24-hour change for any CoinGecko-listed coin, in USD, EUR or any other currency. No sign-up. No key: `GET https://app.upapi.io/api/tools/crypto-price?coins=bitcoin%2Cethereum` - [JSON formatter and validator](https://upapi.io/tools/json-formatter): Free JSON formatter and validator: pretty-print with 2 or 4 spaces or tabs, minify, sort keys, and see the exact line and column of a syntax error. Runs in your browser. - [JWT decoder](https://upapi.io/tools/jwt-decoder): Free JWT decoder: paste a JSON Web Token to read its header and payload, with exp, iat and nbf shown as dates and whether it has expired. Runs in your browser. - [HTTP status codes reference](https://upapi.io/tools/http-status-codes): Every HTTP status code in the IANA registry, from 100 Continue to 511 Network Authentication Required, with its reason phrase, its RFC and what it means. - [DNS provider detector](https://dodomain.io/tools/provider-detector) (DoDomain): Which DNS host serves a domain, read from its authoritative nameservers, and whether one-click setup is available there. - [DNS propagation checker](https://dodomain.io/tools/dns-lookup) (DoDomain): One record read from the authoritative nameservers and three public resolvers side by side. - [SPF record checker](https://dodomain.io/tools/spf-checker) (DoDomain): Parses an SPF record, walks every include and redirect, and counts DNS lookups against the limit of ten. - [Uptime / SLA calculator](https://getuptimely.com/tools/uptime-calculator) (Uptimely): How much downtime an availability target such as 99.9% or 99.99% allows. - [SSL certificate checker](https://getuptimely.com/tools/ssl-certificate-checker) (Uptimely): Expiry date, days left, issuer, covered hostnames and chain trust for any public host. - [Status badge builder](https://getuptimely.com/tools/status-badge) (Uptimely): An embeddable live status badge for a public status page. - [ElevenLabs credit calculator](https://voicelabs.now/tools/elevenlabs-credit-calculator) (VoiceLabs): ElevenLabs credits converted to minutes of speech and transcription, plan by plan. - [Browser text-to-speech tester](https://voicelabs.now/tools/browser-text-to-speech) (VoiceLabs): Hear a sample from every text-to-speech voice your browser has, and see which are remote. - [Marketplace seller fees in Canada](https://joinmarka.com/en/fees) (Marka): What eBay, Etsy, Amazon.ca and Facebook Marketplace keep of a sale in Canada, side by side. - [Online file converter](https://aishorty.com/file-converter) (Shorty): Audio, video, image and PDF conversions such as MP4 to MP3, HEIC to JPG and PDF to JPG, with no sign-up. - [YouTube video summarizer](https://aishorty.com/youtube-video-summarizer) (Shorty): Timestamped key points from a YouTube video, with no login. ## Tooling - `@upapi/sdk` on npm: a typed, zero-runtime-dependency client generated from the catalog. - `@upapi/mcp` on npm: the operations as MCP tools, over stdio or the hosted endpoint at https://app.upapi.io/api/mcp. Setup per client is documented at https://upapi.io/docs/mcp-clients. ## Agent setup - [Add to Claude](https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=upAPI&connectorUrl=https%3A%2F%2Fapp.upapi.io%2Fapi%2Fmcp): one click for a human: opens Claude's Add custom connector dialog with the hosted upAPI MCP server (https://app.upapi.io/api/mcp) filled in; the user clicks Add and signs in, and the connector syncs to Claude Desktop and mobile. - [prompt.md](https://upapi.io/docs/agent-setup/prompt.md): instructions an AI coding agent fetches and executes to set itself up for upAPI (MCP server, SDK, API key, verification). - [Agent setup guides](https://upapi.io/docs/agent-setup): the same steps for Claude Code, Codex, Cursor, OpenCode and VS Code, written for a human. - [FAQ](https://upapi.io/docs/faq): guests, key scope, quotas, hosted versus local MCP, what a failed call costs, and caching. ## Pricing - [Pricing](https://upapi.io/pricing): the four plans, what 1,000 weighted units cost on each, what the free tier buys in concrete terms, and an FAQ. - [Alternatives](https://upapi.io/alternatives): honest per-vendor comparisons against Apify, Bright Data, ScraperAPI, Serper, ApyHub, RapidAPI, ScrapingBee, Firecrawl and ScreenshotOne, each written from that vendor's own published pages and each stating where they win. - [API marketplaces for AI agents (2026)](https://upapi.io/compare/api-marketplaces-for-ai-agents): RapidAPI, Apify, ApyHub, Zyla API Hub and upAPI on MCP support, one key, pricing model, free tier, who runs the APIs and agent-facing docs, each cell sourced and dated. - [Search API pricing compared](https://upapi.io/compare/search-api-pricing): Price per 1,000 requests, free tier, rate limit and auth for 9 web search APIs, each read from the vendor's own pricing page, with upAPI's web search in the same table. - [LLM API pricing compared](https://upapi.io/compare/llm-api-pricing): Input and output price per million tokens for 18 models from 7 vendors, each read from the vendor's own pricing page, with the free tiers they state. ## Account - [Dashboard](https://app.upapi.io): keys, usage, billing, and hosted functions. - [Status](https://app.upapi.io/status): live platform status. - [Support](https://app.upapi.io/support) - [Terms](https://upapi.io/terms) · [Privacy](https://upapi.io/privacy)