Web & documents
Read the live web: browser rendering, screenshots, article extraction, PDFs, metadata.
Extract article
POST /api/extractExtract the main article content from any public URL as clean markdown.
try in playground →Page metadata
GET /api/metaFetch page metadata for a URL: title, description, OpenGraph, Twitter cards, canonical URL, favicon.
try in playground →Browser render
POST /api/renderRender a page in a real headless Chromium browser (JavaScript executed), then extract the main content as clean.
try in playground →Screenshot
GET /api/screenshotScreenshot any public URL in headless Chromium.
try in playground →PDF to text
POST /api/pdfFetch a PDF from a URL and extract its text content.
try in playground →Web search
GET /api/searchLive web search: ranked results[] of {title, url, description (the snippet, plain text), age, publishedAt (ISO)}.
try in playground →Web search (lite)
GET /api/search-liteQuick web sample: up to 5 ranked results (title, URL, snippet) from an independent search index as clean JSON.
try in playground →News search
GET /api/search-newsLive news search: ranked recent articles as results[] of {title, url, description (the snippet, plain text), age.
try in playground →Image search
GET /api/search-imagesLive image search: ranked image results (title, source page, image URL, thumbnail URL, dimensions) from an independent.
try in playground →Video search
GET /api/search-videosLive video search: ranked video results (title, video page URL, description, duration, creator, publisher, thumbnail.
try in playground →Search autocomplete
GET /api/search-suggestSearch autocomplete: query suggestions for a partial input as a flat JSON array.
try in playground →Web answer
GET /api/answerAI-generated answer to a natural-language question, grounded in live web search results with source citations.
try in playground →Multi-search (batch)
POST /api/multi-searchRun 2-5 web searches in one call with a 20% volume discount vs. individual searches.
try in playground →PDF info
POST /api/pdf-infoInspect a PDF without downloading the whole thing into your model: page count, title, author, subject, creator.
try in playground →Merge PDFs
POST /api/pdf-mergeCombine several PDFs into one, in order.
try in playground →Extract / split PDF pages
POST /api/pdf-extract-pagesPull a subset of pages into a new PDF (split).
try in playground →Images to PDF
POST /api/images-to-pdfCombine PNG/JPEG images into a single PDF, one image per page.
try in playground →Summarize a PDF
POST /api/pdf-summarizeFetch a PDF from a URL, extract its text, and return a concise AI-generated summary - factual, no information added.
try in playground →PDF to Markdown
POST /api/pdf-to-markdownConvert a PDF to clean markdown: headings, paragraphs, and bullets reconstructed from the text layer - ready to drop.
try in playground →Media info (ffprobe)
POST /api/media-infoInspect any audio/video URL with ffprobe: container, duration, bitrate, and per-stream codec details (sample.
try in playground →Audio convert (to MP3)
POST /api/audio-convertExtract/convert the audio track of any media URL (mp4, mov, wav, m4a, ogg…) to MP3 - the "mp4 to mp3" conversion.
try in playground →Audio normalize (EBU R128)
POST /api/audio-normalizeLoudness-normalize any audio/video URL to a target LUFS with ffmpeg's loudnorm (EBU R128) and return MP3 - consistent.
try in playground →Page speed (one lab measurement)
POST /api/page-speedLoad one public URL once in headless Chromium and report what that load measured: navigation timings (TTFB.
try in playground →HTML frames (render contract, frame check)
POST /api/html-framesFreeze frames of an animation under the render contract: the page defines window.renderAt(t).
try in playground →Image resize
POST /api/image-resizeResize an image to given pixel dimensions.
try in playground →Image convert
POST /api/image-convertConvert an image between formats (PNG, JPEG, BMP).
try in playground →Image thumbnail
POST /api/image-thumbnailMake a square thumbnail of an image - scales and center-crops to NxN (default 128).
try in playground →Image EXIF
POST /api/image-exifExtract EXIF metadata from an image (camera make/model, timestamps, exposure, orientation, GPS).
try in playground →Image dominant color
POST /api/image-dominant-colorExtract the dominant colors of an image as a palette of hex values with pixel ratios.
try in playground →Image crop
POST /api/image-cropCrop an image to a pixel box, and/or rotate (90/180/270) and flip it - applied in that order.
try in playground →HTML select
POST /api/html-selectRun a CSS selector against an HTML string and return the matches (text, attrs, and optionally outerHTML for each).
try in playground →HTML table to JSON/CSV
POST /api/html-tableExtract a <table> from an HTML string as JSON rows (header-keyed) or CSV.
try in playground →HTML strip to text
POST /api/html-stripStrip all HTML tags and return plain text.
try in playground →Hidden text scan
POST /api/hidden-text-scanCheck an email or web page for text a person reading it would not see but an AI reading it would: HTML comments.
try in playground →HTML links
POST /api/html-linksEnumerate every <a href> in an HTML string with its anchor text and rel attribute.
try in playground →HTML meta (from string)
POST /api/html-metaExtract <title>, <meta description>, OpenGraph/Twitter cards, canonical URL, and JSON-LD blocks from an HTML string.
try in playground →Site favicon grabber
POST /api/favicon-grabFetch a site's favicon/logo: reads the page's declared <link rel=icon…> tags (all variants with their sizes and types).
try in playground →Wayback Machine snapshot
POST /api/archive-snapshotLook up a URL in the Internet Archive's Wayback Machine: returns the archived snapshot closest to an optional timestamp.
try in playground →RSS/Atom feed parser
POST /api/feed-parseFetch an RSS 2.0, Atom, or RSS 1.0 feed URL and parse it into normalized JSON: feed title/description/link plus items.
try in playground →URL unshortener
POST /api/unshorten-urlFollow a short link's redirect chain (bit.ly, t.co, youtu.be, tracking links, …) without downloading any page body.
try in playground →X recent tweet search
POST /api/x-search-recentSearch public tweets from the last 7 days on X (Twitter) by query, using X API v2 search operators (keywords.
try in playground →X user profile
POST /api/x-userLook up one X (Twitter) account by username: id, display name, bio, account creation date, verification status and type.
try in playground →X user timeline
POST /api/x-user-tweetsFetch an X (Twitter) account's most recent tweets by user id or username (username is resolved first).
try in playground →X tweet lookup
POST /api/x-tweetFetch one public tweet on X (Twitter) by id: text, created time, language, conversation id, engagement metrics (likes.
try in playground →X bulk user lookup
POST /api/x-users-lookupLook up up to 10 X (Twitter) accounts by username in one call.
try in playground →Neural web search
POST /api/exa-searchNeural (embedding-based) web search over a curated web index, which finds pages by meaning rather than keyword overlap.
try in playground →Grounded answer with citations
POST /api/exa-answerAsk a question and get a written answer with the sources it was drawn from.
try in playground →Web page contents
POST /api/exa-contentsRetrieve the readable text of up to 10 web pages by URL, with optional query-focused highlights.
try in playground →Site map (URL discovery)
POST /api/site-mapDiscover a website's URLs in one call: reads robots.txt, its declared sitemap(s) (sitemap indexes and gzipped sitemaps.
try in playground →Site crawl (pages to markdown)
POST /api/site-crawlCrawl a website breadth-first from a start URL over its internal links and return each page as clean markdown (or plain.
try in playground →Farcaster cast search
POST /api/fc-cast-searchSearch Farcaster casts by keyword (literal, semantic or hybrid match), newest first, optionally filtered to one author.
try in playground →Farcaster channel feed
POST /api/fc-channel-feedLatest casts in one or more Farcaster channels (e.g. base, farcaster, ethereum), newest first, with optional replies.
try in playground →Farcaster trending channels
POST /api/fc-trendingTrending Farcaster channels ranked by casting activity over 1d, 7d or 30d, with cast counts for all three windows.
try in playground →Farcaster user casts
POST /api/fc-user-castsA Farcaster user's recent casts by fid or username, newest first, optionally including replies or limited to one.
try in playground →Farcaster cast lookup
POST /api/fc-castFetch one Farcaster cast by hash or warpcast.com / farcaster.xyz URL.
try in playground →Farcaster cast replies
POST /api/fc-cast-repliesThe reply thread under a Farcaster cast (by hash or URL): the root cast plus replies flattened with their depth (1-5.
try in playground →Farcaster channel details
POST /api/fc-channelDetails for one Farcaster channel by id (e.g. base) or FIP-2 parent URL: name, description, follower and member counts.
try in playground →Farcaster user search
POST /api/fc-user-searchSearch Farcaster users by name or username fragment.
try in playground →Farcaster cast volume
POST /api/fc-cast-metricsCast volume over time for a search query: how many Farcaster casts matched per bucket across the last 1d, 7d, 30d, 90d.
try in playground →LLM grounding context
POST /api/llm-contextWeb search that returns READY-TO-USE grounding text, not links: for one query you get the passages an independent search.
try in playground →Page change detection
POST /api/page-changeTell whether a public web page changed since you last looked, with nothing stored on this side.
try in playground →Email guard
POST /api/email-guardRead one email the way an agent that triages mail should before acting on it: observations with evidence and offsets, no.
try in playground →