Documentation has been updated: see help center and changelog in one place.

Multi-format Output

See how to get more than one output format with a single API call.

You can get multiple result types in a single API response. This feature works the same way with Realtime and Push-Pull integration methods.

Available result types

Output type
Description

png

The PNG screenshot of a web page.

parsed

Parsed content of the web page, formatted as a JSON data structure.

markdown

Markdown of a web page.

xhr

XHR requests made while loading the page.

raw

The raw content found at a given URL. It's likely to be (but won’t always be) an HTML document.

Step 1: Specify result types to be available for fetching

Start by enabling the result types in your initial request payload to make them available.

Sample POST https://data.oxylabs.io/v1/queries payload:

{
  "source": "universal",
  "url": "https://example.com",
  "parse": true,
  "markdown": true,
  "xhr": true,
  "render": "png"
}

Set only the result types you want to retrieve.

Step 2: Retrieve multiple result types

Then, specify which types to retrieve using the type URL parameter when fetching results. For example:

  • type=parsed,png will return parsed results and the PNG screenshot

  • type=parsed,markdown,xhr,png,raw will return all result types

Realtime API endpoint:

POST https://realtime.oxylabs.io/v1/queries?type=parsed,markdown,xhr,png,raw

Push-Pull API endpoint:

GET https://data.oxylabs.io/v1/queries/{job_id}/results?type=parsed,markdown,xhr,png,raw

Output sample

The API will return all requested types together in a single results[] array:

{
    "results": [
        {
            "content": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Example Domain</title>\n\n...",
            "type": "raw",
            "created_at": "2025-08-14 07:59:07",
            "updated_at": "2025-08-14 07:59:08",
            "page": 1,
            "url": "https://example.com",
            "job_id": "7333804527868451841",
            "is_render_forced": false,
            "status_code": 200
        },
        {
            "content": {"title": "Example Domain", "paragraph_text": "This domain..."},
            "type": "parsed",
            "created_at": "2025-08-14 07:59:07",
            "updated_at": "2025-08-14 07:59:08",
            "page": 1,
            "url": "https://example.com",
            "job_id": "7333804527868451841",
            "is_render_forced": false,
            "status_code": 200
        },
        {
            "content": "abcd1234",
            "type": "png",
            "created_at": "2025-08-14 07:59:07",
            "updated_at": "2025-08-14 07:59:08",
            "page": 1,
            "url": "https://example.com",
            "job_id": "7333804527868451841",
            "is_render_forced": false,
            "status_code": 200
        },
        {
            "content": "# Example Domain...",
            "type": "markdown",
            "created_at": "2025-08-14 07:59:07",
            "updated_at": "2025-08-14 07:59:08",
            "page": 1,
            "url": "https://example.com",
            "job_id": "7333804527868451841",
            "is_render_forced": false,
            "status_code": 200
        },
        {
            "content": [
              {"url": "...", "headers": "..."},
              {"url": "...", "headers": "..."}
            ],
            "type": "xhr",
            "created_at": "2025-08-14 07:59:07",
            "updated_at": "2025-08-14 07:59:08",
            "page": 1,
            "url": "https://example.com",
            "job_id": "7333804527868451841",
            "is_render_forced": false,
            "status_code": 200
        }
      ]
}

Last updated

Was this helpful?