---
title: "JSON"
method: POST
path: "/extract/json"
tags: ["Extract"]
---

# JSON

`POST /extract/json`

Fetches a URL and extracts structured data according to a provided JSON schema

## Request body

- V1ExtractJSONRequest
  - `effort` 'min' | 'standard' | 'max' — Fetch effort level controlling speed vs. capability tradeoff. "min": fastest, no fallback (1-5s). "standard": balanced with enhanced reliability (default, 3-15s). "max": full browser rendering for JS-heavy sites (15-60s).
  - `geo_target` GeotargetGeoTarget
    - `country` string — Country code using ISO 3166-1 alpha-2 standard (2 letters, e.g., "US", "GB", "JP"). See: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  - `json_schema` object, required — JSON schema definition that describes the structure of data to extract. If the schema includes a "page_title" or "favicon" property, those fields are automatically filled from page metadata when the AI leaves them empty.
  - `nocache` boolean — Bypass cache and force fresh data retrieval
  - `url` string, uri, required — URL to fetch and extract data from

## Response `200`

OK

- V1ExtractJSONResponse

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - Invalid or missing Bearer token
- `402` — Payment Required - organization is out of credits
- `422` — Invalid URL or inaccessible resource
- `429` — Too Many Requests - rate limit exceeded
- `500` — Server error

## Changes

> 8 revisions in range; 1 could not be searched.

- **2026-03-12** `8f80078ef30b` — 1 info
  - added the new optional request property `effort`
- **2026-01-30** `48ec35c63b70` — 1 info
  - added the new optional request property `geo_target`

[Change history](https://skmtc.dev/mozilla-ocho/apis/tabs-api/changes/extract/json/post.md)

---

[API](https://skmtc.dev/mozilla-ocho/apis/tabs-api.md) · [All operations](https://skmtc.dev/mozilla-ocho/apis/tabs-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mozilla-ocho/tabs-api/revisions/f3f7ba7d83e4/schema)
