> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uapi.nl/llms.txt
> Use this file to discover all available pages before exploring further.

# /v1/extract

Returns normalized, schema-aligned JSON for the target URL. Use this endpoint whenever you want structured data from a public page without writing your own scraper.

<ParamField header="X-API-Key" type="string" required>
  API key used for authentication. Required for all requests.
</ParamField>

<ParamField header="x-cache-ttl" type="integer">
  Optional cache lifetime hint in seconds for successful GETs. Valid range is 0–3600. `0` disables caching for this request.
</ParamField>

<ParamField query="url" type="string" required>
  Publicly reachable URL to extract. Always URL-encode the value.
</ParamField>

## Make a request (recommended: SDKs)

<CodeGroup>
  ```python Python (usdk) theme={null}
  import os
  from uapi import uAPI

  client = uAPI(api_key=os.environ.get("UAPI_API_KEY"))

  response = client.extract(
      url="https://finance.yahoo.com/quote/NVDA/",
  )

  print(response.to_dict())
  ```

  ```javascript Node.js (usdk-js) theme={null}
  import 'dotenv/config'
  import uAPI from 'usdk-js'

  const client = new uAPI({
    apiKey: process.env['UAPI_API_KEY'],
  })

  const data = await client.extract({
    url: 'https://finance.yahoo.com/quote/NVDA/',
  })

  console.log(data)
  ```

  ```bash cURL (raw HTTP) theme={null}
  curl -s "https://api.uapi.nl/v1/extract?url=https%3A%2F%2Ffinance.yahoo.com%2Fquote%2FNVDA%2F" \
    -H "X-API-Key: ${UAPI_API_KEY}"
  ```
</CodeGroup>

## Example response

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "id": "1f7015c8-b10c-45a3-ad39-3cd3e296688a",
    "success": true,
    "data": {
      "name": "NVIDIA Corporation",
      "open": 181.13,
      "price": 180.28,
      "change": -0.88,
      "symbol": "NVDA",
      "volume": 161039698,
      "currency": "USD",
      "timestamp": null,
      "avg_volume": 173590218,
      "day_range_low": 176.77,
      "market_status": "closed",
      "day_range_high": 183.44,
      "percent_change": -0.49,
      "previous_close": 181.16,
      "fifty_two_week_low": 86.62,
      "fifty_two_week_high": 195.62
    },
    "error": null,
    "request": {
      "endpoint": "/v1/extract",
      "method": "GET",
      "params": {
        "url": "https://finance.yahoo.com/quote/NVDA/"
      },
      "payload": {},
      "status_code": 200,
      "requested_at": "2025-10-23T09:05:18.802Z",
      "served_at": "2025-10-23T09:05:35.299Z",
      "elapsed_ms": 16497,
      "cache_info": {
        "is_cached": false,
        "cached_at": null,
        "expires_at": null
      }
    },
    "uapi_version": "1.2.5",
    "schema_version": "v1",
    "deprecation_warnings": []
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /v1/extract
openapi: 3.1.0
info:
  title: uAPI
  description: One API for the entire web.
  version: 1.2.5
servers: []
security: []
paths:
  /v1/extract:
    get:
      summary: Extract Get
      operationId: extract_get_v1_extract_get
      parameters:
        - name: url
          in: query
          required: true
          schema:
            type: string
            title: Url
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - APIKeyHeader: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-Valet-Key

````