Tools

Website to JSON API

Submit any URL. Get back page content, metadata, and a thumbnail as structured JSON. JavaScript-rendered pages included.

Try it below:

https://

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Turn web pages into structured JSON

Submit a URL, get structured JSON back.

{
  "kind": "bookmark",
  "name": "standard-glass-tilt-and-height-adjustable-stand.html",
  "url": "https://www.apple.com/shop/buy-mac/studio-display-xdr/standard-glass-tilt-and-height-adjustable-stand?fnode=788395af538d6b4d4cd7defb0dc55e4f9b56969ee9e91635bbfc75a9b60ce04ef5caef873eee699a55c7cae22a1b19d2a68c95047e92eac8910699ec49e27a89ccf2644754220bc148446c4135faae48360c846bb42892fd0ab9bc967539ef92",
  "state": "completed",
  "createdAt": "2026-07-18T22:32:10.415Z",
  "extraction": {
    "common": {
      "mimeType": "text/html",
      "size": null
    },
    "media": {
      "screenshot": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/60d70898-de1f-484b-8c13-e1bd56b84c84/website-scraper/screenshot.png?token=1Ghgs7us5lea3szFM75x_1T70fMA0qhYVX7ve7XeBBw&expires=1785009600"
      }
    },
    "web": {
      "title": "Buy Studio Display XDR - Standard glass - Tilt- and height-adjustable stand",
      "siteName": "Apple",
      "description": "Studio Display XDR. 27-inch 5K Retina XDR mini-LED display. Up to 2000 nits HDR. P3 + Adobe RBG. 120Hz. 0% financing available. Buy now at apple.com.",
      "image": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/60d70898-de1f-484b-8c13-e1bd56b84c84/website-scraper/link-preview-image.jpeg?token=XQ3hiwJAfWQMbzP9nokUGVuyPQMmA9tZeMjr596cNR8&expires=1785009600",
        "width": 1200,
        "height": 630,
        "mime": "image/jpeg"
      },
      "favicon": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/60d70898-de1f-484b-8c13-e1bd56b84c84/website-scraper/link-preview-favicon.ico?token=O-Kh0jZ5iU11vcRU3LYIDk_vmZpr7AJ7FBZXRRp_6FM&expires=1785009600",
        "width": 64,
        "height": 64,
        "mime": "image/vnd.microsoft.icon"
      },
      "html": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/60d70898-de1f-484b-8c13-e1bd56b84c84/website-scraper/page.html?token=l996iuNRT_N-taCP1TJvfd3IZ4oc40VBOabRDH07ltI&expires=1785009600"
      },
      "reader": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/60d70898-de1f-484b-8c13-e1bd56b84c84/website-scraper/page.md?token=Y94QPf-29ra4GqUUGjojHkuB_gKOjJlCR_2QDrRLjko&expires=1785009600"
      }
    }
  }
}

https://

apple.com/shop/buy-mac/studio-display-xdr/standard-glass-tilt-and-height-adjustable-stand?fnode=788395af538d6b4d4cd7defb0dc55e4f9b56969ee9e91635bbfc75a9b60ce04ef5caef873eee699a55c7cae22a1b19d2a68c95047e92eac8910699ec49e27a89ccf2644754220bc148446c4135faae48360c846bb42892fd0ab9bc967539ef92

What is Exabase's website to JSON API?

Submit any URL to the Exabase Extract API and get the full page content back as structured JSON. The response includes the page title, site name, a CDN-hosted thumbnail, and the body text split into searchable chunks. Pages rendered with JavaScript are processed the same way as static HTML. No headless browser on your end, no HTML parsing, no Puppeteer.

What you get back

The response includes the page title, site name, and full text content split into structured chunks. Each chunk has a sequence number and the extracted text. You also get a CDN-hosted thumbnail, MIME type, and total chunk count. The API reference has the complete response schema.

One multi-modal API

The same POST /v2/extract endpoint handles every content type Exabase supports. For web pages, it fetches and renders JavaScript before extracting. For PDFs, it returns page count, author, title, creation date, and (for recognised document types like invoices, contracts, and resumes) structured field extraction. For images, it runs OCR and returns the text. For audio and video, it generates full transcripts with timestamps.

The response structure adapts to the content type, but the submission flow is identical: one endpoint, one SDK method, one webhook configuration. You learn the pattern once and use it for everything. The Extract docs cover each content type in detail.

What you can build with it

The structured chunks are the same format used across the Exabase platform. Feed them into a RAG pipeline with source attribution. Build a web research agent that extracts and indexes pages from any URL. Power content aggregators that pull full article text from publisher sites. Automate competitive monitoring by extracting and comparing content across a set of URLs on a schedule.

Store extracted pages as Resources in a Base and they become searchable through Deep Search at the paragraph level. Workers can re-extract updated pages on a schedule, keeping your content index current without manual work.

Beyond extraction

The Extract API returns more than raw text. You get a CDN-hosted thumbnail, structured metadata, and chunks you can index directly. Store the output as a Resource and it's searchable through Deep Search immediately. Workers can re-extract pages on a schedule so your knowledge base stays up to date. The Submitting Jobs guide at https://exabase.io/docs/developer-guide/extraction/submitting-jobs walks through the full flow.

How do I use it?

  1. Get your API key

Free, no credit card:

Sign up at exabase.io and copy your API key from the dashboard.

  1. Submit a URL

Using the SDK (Node.js):

import { Exabase } from "@exabase/sdk";

const api = new Exabase({
  apiKey: process.env.EXABASE_API_KEY,
});

const job = await api.extract.create({
  url: "https://example.com/article",
});

console.log(job.id);    // extraction job id
console.log(job.state); // "pending"
  1. Get the result

Poll the job until state reaches completed, or skip polling entirely with webhooks.

const result = await api.extract.get({ jobId: job.id });

if (result.state === "completed") {
  console.log(result.extraction?.web?.title);
  console.log(result.extraction?.web?.siteName);
  console.log(result.extraction?.common?.chunkCount);
  console.log(result.extraction?.common?.thumbnail);
}

One API call. No headless browser, no HTML parser, no Puppeteer.

What you get back

Field

Type

Description

state

string

completed or failed

kind

string

bookmark for web pages

extraction.common.mimeType

string

Detected MIME type

extraction.common.size

number

Page size in bytes

extraction.common.thumbnail

string

CDN-hosted thumbnail URL

extraction.common.chunkCount

number

Number of text chunks extracted

extraction.web.title

string

Page title

extraction.web.siteName

string

Site name

Text chunks are retrieved separately via GET /v2/extract/{jobId}/chunks. Each chunk includes a sequence number and the extracted text.

API quick reference

Endpoint

Method

Description

/v2/extract

POST

Submit extraction job

/v2/extract

GET

List extraction jobs

/v2/extract/{jobId}

GET

Poll for result

/v2/extract/{jobId}/chunks

GET

Fetch text chunks

/v2/extract-settings

PUT

Configure webhook

Auth: X-Api-Key header on all requests.

File retention: Stored files are retained for 1 day from job creation. Download or copy anything you need before they expire.

Need file extraction or full page content?

Exabase offers a full set of tools to extract content from any media, document or website.

All your data extraction needs in one place.

Why Exabase

Comparisons

Use cases

FAQs

What is Exabase?

Exabase is infrastructure for AI agents. It gives your agents memory, versioned file storage, AI deep search, and context automation through a set of APIs. Store what your agent learns, search inside any content type, and keep knowledge bases current automatically. Built for production use. Give your agent precise context and cut your token spend by up to 81%.

Who uses Exabase?

Developers and teams building AI agents, copilots, and RAG applications. If your agent needs to remember things between sessions, store and retrieve files, search across documents and media, or stay up to date without manual maintenance, Exabase handles that infrastructure so you can focus on your product.

How fast is it?

Processing time depends on the target site. Most pages complete in a few seconds. JavaScript rendering adds 1-2 seconds when needed. Processing is asynchronous, so your application is not blocked while extraction runs.

Does it handle JavaScript-rendered pages?

Yes. Pages built with React, Next.js, Vue, Angular, or any JavaScript framework are rendered before content extraction. Dynamic content that loads after the initial HTML is captured.

What about sites that block scrapers?

Exabase handles proxy rotation, browser fingerprinting, and retry logic. Success rates are high across the web. Some sites explicitly block all third-party access via robots.txt, and those return an error. Custom integrations with major content providers (YouTube, Amazon, Twitter, and others) ensure reliable results on commonly shared URLs.

How is this different from the Link Preview API?

The Link Preview API returns surface-level metadata: title, description, image, URL. Website to JSON returns the full page content as structured text chunks. Link Preview is a lightweight GET request for rendering link cards. Website to JSON is async processing for deeper extraction.

Can I submit multiple URLs at once?

Each URL is a separate POST /v2/extract call. You can submit many jobs in parallel and process results as they complete, either by polling or through webhooks.

What if the page redirects?

The API follows redirects and processes the final destination page.

Can I extract content from pages behind a login?

No. The API can only access publicly available pages. Login-protected URLs will return the login page's content or an error.

How long are extracted files retained?

Stored files are retained for 1 day from job creation, then permanently deleted. Download or copy anything you need before the retention window expires.

Can I use the extracted content with other Exabase features?

Yes. Store extracted content as a Resource in a Base and it becomes searchable through Deep Search. Extract key facts into Memory so your agent retains what it read between sessions. Workers can re-extract updated pages on a schedule.

Is there an SDK?

Yes. The @exabase/sdk package for Node.js/TypeScript handles job creation, polling, and chunk retrieval. Install with npm install @exabase/sdk. Or call the REST API directly from any language.

What other content types does Extract support?

PDFs, images (with OCR), audio files (with transcription), video files (with transcription), and documents. The same POST /v2/extract endpoint handles all of them. See the PDF to JSON, Image to JSON, Audio to JSON, and Video to JSON tool pages.

Deciding?

Ask your favourite AI about Exabase:

Cut your token spend and give your agent precise context.

Get started in minutes.

Cut your token spend and give your agent precise context.

Get started in minutes.