> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/web-scraper-api/targets/llms-and-ai/chatgpt.md).

# ChatGPT

Extract ChatGPT responses by submitting prompts, with parsed data including response text, Markdown output, citations, external links, and shopping product details.

The `chatgpt` source lets you submit a prompt to **ChatGPT** and receive a fully parsed, structured response, including the plain-text and Markdown answer, source citations, and shopping products and ads.

## Request samples

The following code examples demonstrate how to submit a prompt to ChatGPT using [**Push-Pull**](/products/web-scraper-api/integration-methods/push-pull.md).

{% tabs %}
{% tab title="cURL" %}

```bash
curl 'https://data.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
        "source": "chatgpt",
        "prompt": "best supplements for better sleep",
        "parse": true,
        "geo_location": "United States",
        "callback_url": "https://your-server.com/oxylabs-callback"
    }'
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
from pprint import pprint

# Structure payload.
payload = {
    'source': 'chatgpt',
    'prompt': 'best supplements for better sleep',
    'parse': True,
    'geo_location': "United States",
    'callback_url': "https://your-server.com/oxylabs-callback"
}

# Get response.
response = requests.request(
    'POST',
    'https://data.oxylabs.io/v1/queries',
    auth=('USERNAME', 'PASSWORD'),
    json=payload,
)

# Print prettified response to stdout.
pprint(response.json())
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const https = require("https");

const username = "USERNAME";
const password = "PASSWORD";
const body = {
    source: "chatgpt",
    prompt: "best supplements for better sleep",
    parse: true,
    geo_location: "United States",
    callback_url: "https://your-server.com/oxylabs-callback"
};

const options = {
    hostname: "data.oxylabs.io",
    path: "/v1/queries",
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        Authorization:
            "Basic " + Buffer.from(`${username}:${password}`).toString("base64"),
    },
};

const request = https.request(options, (response) => {
    let data = "";

    response.on("data", (chunk) => {
        data += chunk;
    });

    response.on("end", () => {
        const responseData = JSON.parse(data);
        console.log(JSON.stringify(responseData, null, 2));
    });
});

request.on("error", (error) => {
    console.error("Error:", error);
});

request.write(JSON.stringify(body));
request.end();
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$params = array(
    'source' => 'chatgpt',
    'prompt' => 'best supplements for better sleep',
    'parse' => true,
    'geo_location' => "United States",
    'callback_url' => "https://your-server.com/oxylabs-callback"
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://data.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "USERNAME" . ":" . "PASSWORD");


$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
```

{% endtab %}

{% tab title="Golang" %}

```go
package main

import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

func main() {
const Username = "USERNAME"
const Password = "PASSWORD"

  payload := map[string]interface{}{
        "source": "chatgpt",
        "prompt": "best supplements for better sleep",
        "parse":  true,
        "geo_location": "United States",
        "callback_url": "https://your-server.com/oxylabs-callback",
    }

jsonValue, _ := json.Marshal(payload)

client := &http.Client{}
request, _ := http.NewRequest("POST",
"https://data.oxylabs.io/v1/queries",
bytes.NewBuffer(jsonValue),
)

request.SetBasicAuth(Username, Password)
response, _ := client.Do(request)

responseText, _ := ioutil.ReadAll(response.Body)
fmt.Println(string(responseText))
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;

namespace OxyApi
{
    class Program
    {
        static async Task Main()
        {
            const string Username = "USERNAME";
            const string Password = "PASSWORD";

            var parameters = new
            {
                source = "chatgpt",
                prompt = "best supplements for better sleep",
                parse = true,
                geo_location = "United States",
                callback_url = "https://your-server.com/oxylabs-callback"
            };

            var client = new HttpClient();

            Uri baseUri = new Uri("https://data.oxylabs.io");
            client.BaseAddress = baseUri;

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
            requestMessage.Content = JsonContent.Create(parameters);

            var authenticationString = $"{Username}:{Password}";
            var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(authenticationString));
            requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);

            var response = await client.SendAsync(requestMessage);
            var contents = await response.Content.ReadAsStringAsync();

            Console.WriteLine(contents);
        }
    }
}
```

{% endtab %}

{% tab title="Java" %}

```java
package org.example;

import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;

public class Main implements Runnable {
    private static final String AUTHORIZATION_HEADER = "Authorization";
    public static final String USERNAME = "USERNAME";
    public static final String PASSWORD = "PASSWORD";

    public void run() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("source", "chatgpt");
        jsonObject.put("prompt", "best supplements for better sleep");
        jsonObject.put("parse", true);
        jsonObject.put("geo_location", "United States");
        jsonObject.put("callback_url", "https://your-server.com/oxylabs-callback");

        Authenticator authenticator = (route, response) -> {
            String credential = Credentials.basic(USERNAME, PASSWORD);
            return response
                    .request()
                    .newBuilder()
                    .header(AUTHORIZATION_HEADER, credential)
                    .build();
        };

        var client = new OkHttpClient.Builder()
                .authenticator(authenticator)
                .build();

        var mediaType = MediaType.parse("application/json; charset=utf-8");
        var body = RequestBody.create(jsonObject.toString(), mediaType);
        var request = new Request.Builder()
                .url("https://data.oxylabs.io/v1/queries")
                .post(body)
                .build();

        try (var response = client.newCall(request).execute()) {
            if (response.body() != null) {
                try (var responseBody = response.body()) {
                    System.out.println(responseBody.string());
                }
            }
        } catch (Exception exception) {
            System.out.println("Error: " + exception.getMessage());
        }

        System.exit(0);
    }

    public static void main(String[] args) {
        new Thread(new Main()).start();
    }
}
```

{% endtab %}

{% tab title="JSON" %}

```json
{
        "source": "chatgpt",
        "prompt": "best supplements for better sleep",
        "parse": true,
        "geo_location": "United States",
        "callback_url": "https://your-server.com/oxylabs-callback"
}
```

{% endtab %}
{% endtabs %}

Submitting a job with [**Push-Pull**](/products/web-scraper-api/integration-methods/push-pull.md) integration method (including [batch queries](/products/web-scraper-api/integration-methods/push-pull.md#batch-query)) method returns the job ID immediately – not the result. Once the job status is `done`, retrieve the parsed response. See [**Integration method**](/products/web-scraper-api/integration-methods/push-pull.md) on the LLMs and AI page for the full submit-and-retrieve flow.

### Request parameters

Basic setup and customization options for scraping ChatGPT.

<table><thead><tr><th width="222">Parameter</th><th width="350.3333333333333">Description</th><th>Default Value</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong><code>source</code></strong></mark></td><td>Sets the scraper target. Use <code>chatgpt</code>.</td><td>–</td></tr><tr><td><mark style="background-color:green;"><strong><code>prompt</code></strong></mark></td><td>The prompt or question to submit to ChatGPT. Up to 4,000 characters.</td><td>–</td></tr><tr><td><code>callback_url</code></td><td><strong>Recommended.</strong> URL where we deliver a notification once the job completes. <a href="https://developers.oxylabs.io/products/web-scraper-api/integration-methods/push-pull"><strong>More info</strong></a></td><td>–</td></tr><tr><td><code>search</code></td><td>Set to <code>true</code> for web search.</td><td><code>false</code></td></tr><tr><td><code>parse</code></td><td>Set to <code>true</code> for structured JSON results.</td><td><code>false</code></td></tr><tr><td><code>geo_location</code></td><td>Specify a country to route the request from. <a href="/products/web-scraper-api/features/localization.md"><strong>More info</strong></a>. </td><td>–</td></tr></tbody></table>

&#x20;   \- mandatory parameter

## Structured data

Once the job is retrieved via the Push-Pull results endpoint, Web Scraper API returns either an HTML or JSON object that contains ChatGPT output, with structured data on various elements of the results page.

In the examples below, long text values are shortened (`...`) and arrays are trimmed to the first few items.

<details>

<summary><code>chatgpt</code> structured output</summary>

```json
{
    "results": [
        {
            "job_id": "7513507166020492289",
            "status_code": 200,
            "url": "https://chatgpt.com/uc/6ac5fb18-4da4-83ea-a621-c610d8c36283",
            "content": {
                "prompt": "best supplements for better sleep",
                "response_text": "If your goal is better sleep , I’d keep the supplement stack simple. The evidence for most “sleep supplements” is surprisingly weak. Best options Melatonin — best for timing, jet lag, or trouble falli ...",
                "markdown_text": "If your goal is **better sleep**, I’d keep the supplement stack simple. The evidence for most “sleep supplements” is surprisingly weak.\n\n### Best options\n\n1. **Melatonin — best for timing, jet lag, or ...",
                "markdown_json": [
                    {
                        "children": [
                            {
                                "raw": "If your goal is ",
                                "type": "text"
                            },
                            {
                                "children": [
                                    {
                                        "raw": "better sleep",
                                        "type": "text"
                                    }
                                ],
                                "type": "strong"
                            },
                            {
                                "raw": ", I’d keep the supplement stack simple. The evidence for most “sleep supplements” is surprisingly weak.",
                                "type": "text"
                            }
                        ],
                        "type": "paragraph"
                    },
                    {
                        "type": "blank_line"
                    }
                ],
                "citations": [
                    {
                        "text": "NCCIH",
                        "title": "Melatonin: What You Need To Know | NCCIH",
                        "url": "https://www.nccih.nih.gov/health/melatonin-what-you-need-to-know?a70bf911_page=2&aa69e157_page=1&c159a325_page=2&utm_source=chatgpt.com"
                    },
                    {
                        "text": "NCCIH",
                        "title": "Sleep Disorders and Complementary Health Approaches: Usefulness and Safety | NCCIH",
                        "url": "https://www.nccih.nih.gov/health/sleep-disorders-and-complementary-health-approaches?utm_source=chatgpt.com"
                    },
                    {
                        "text": "PubMed",
                        "title": "Oral magnesium supplementation for insomnia in older adults: a Systematic Review & Meta-Analysis - PubMed",
                        "url": "https://pubmed.ncbi.nlm.nih.gov/33865376/?utm_source=chatgpt.com"
                    }
                ],
                "parse_status_code": 12000
            }
        }
    ]
}
```

</details>

When ChatGPT recommends products, the response also contains `shopping_products` with the product cards shown in the answer. The following example is from the prompt `What are the best running shoes for flat feet under $150?`:

<details open>

<summary><code>shopping_products</code> example</summary>

```json
...
  "shopping_products": [
                    {
                        "badge": "Best overall",
                        "citations": [
                            {
                                "source": "Shoes for Flat-Footed Runners",
                                "title": "The 8 Best Running Shoes for Flat Feet in 2026",
                                "url": "https://www.runnersworld.com/gear/a25750345/running-shoes-flat-feet/?utm_source=chatgpt.com"
                            },
                            {
                                "source": "Runner's World",
                                "title": "Our Favorite Stability Shoe Is Nearly 20% Off Right Now",
                                "url": "https://www.runnersworld.com/gear/a74094003/brooks-adrenaline-gts-october-sale-2026/?utm_source=chatgpt.com"
                            }
                        ],
                        "currency": null,
                        "description": "1. Brooks Adrenaline GTS 25\nBest overall\n$125 on sale\nA great all-around option for daily runs and longer distances. GuideRails provide gentle stability when your feet roll inward, without feeling overly rigid.\nBest for: dependable support and everyday training.",
                        "image_page_title": "Brooks Adrenaline GTS 25 pánske bežecké topánky | Leitner Sport",
                        "image_page_url": "https://www.leitnersport.sk/eshop/brooks-adrenaline-gts-25-panske-bezecke-topanky",
                        "images": [
                            "https://images.openai.com/static-rsc-4/-_nwr1pfG8ye991Q_mloy_Sw9A4PSYyQzaFeHPIVK0kAHKVKUyYXTYwS9m8okvWA6lrHhznRGjw-5QSB6IoRM1FefeAANBpkIWq-U8cOhDFXxAhydmCqg8zKHtw5xX7JHBY6USX_m3ktqo2OkDTd64GwrtwGpLgWz_YIx5WJMcnd2-fOcvfLCBQ2q2whiDcQ?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/O7_Fr1GrO50BLbLHeJybIy7JToUvsWVHM-MRnq92fdTBY2bBse7WBUxvLOGTc5HoBJqj-ppSsEIcEr2cS96wckZnELSDi5JB_iXk80w8c84nHdgg_UfRw2PmHzh5K2nipQjjR5fFlQq3xIBTC80AGPUeiYwLV5zzuuPNLZb3P2PXnViLclAhwoP0gYeyPi44?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/Y9o0eWI02yWN0-gAW5SlixtWDvCeDgMIlY5_l3h8lUHuY5IW_rYndUaHstYlEJORPkm9HeX5HMfv8sY2ST7WehEiVLMwqnCgWKniiJYpGUJNdB3e2M6EnD6iVaeZoY8sxr6vn1NzUqFFZfLMV905LmYViOjLA_-Lgz2SDQ0EEepnbjxcYGCGmmWU6OOtHd5z?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/eBkFqh-W0WvgYCmEl43CAGCc6Gnt4Ryp70AGkAabrrXx6yn_ki3hAMEYEONskZeKu3tbbfYhOEuptxzEMcauc9Al2ymxWUzql1bxdvDOeuvSI8tFckjMCJWlbYto3GSNolXhUYv6Fb4MOmhUCEsClN8tgSF7_visxsL9t2DlMiWMQJvySOq_LiaVAFiKQSxI?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/5Exh1_JteT5QxYDn-rb2HGlw-RaBw-vA1zHDrJDQqisyQU1QXirusmO2nqQqj0UJd6ppqSiNdkyKdZJsnbk8j36T-AJH8iINjCxqgxSppUOL8HSsapDrIjsbEoD7GC-zcOhtYL4BrABvTG6pn5HfUHMShLFhAZXodNjQA200xOKXR0cgum8KFj9ea3tz50nc?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/InccpeyXQufhbnCFX0t6vBE7N66U7oY7qsSR6vr3hhzDg5OQlpa5Zu-9HRrUt44XVa_oSQoafiG5eAwbXZpMmU8UmImer0foBbRbO0pgt2ZjuA56Wiv4ExM-qCVMBc08N9hho4-f4Pm0HU_-frEAHmc2d51oEEHKcUzSfasDD9OU8YjKwcu1eiOaJvi2QCIl?purpose=fullsize"
                        ],
                        "price": null,
                        "price_str": "$125",
                        "rating": null,
                        "thumbnail": "https://images.openai.com/static-rsc-4/O2Bqob-_-Bs6Z7PviWstxsP9wCePklqoGx07MS20H-r-quUhKQ-9z_pr2I-HLJlwpvB9OP1iSSb_jnum5jg5wWy01I1G0liR0zBhtdsO-KWU2eYBPwMokt8H7nnxghlrDW1ugtfFsxAwByruujjHEt4XfmZTbfTxTcpDC8IKcRc?purpose=inline",
                        "title": "Brooks Adrenaline GTS 25",
                        "url": "https://www.brooksrunning.com/"
                    },
                    {
                        "badge": "Best balanced support",
                        "citations": [
                            {
                                "source": "RunRepeat",
                                "title": "7 Best Running Shoes For Flat Feet in 2026",
                                "url": "https://runrepeat.com/guides/best-flat-feet-running-shoes?utm_source=chatgpt.com"
                            },
                            {
                                "source": "Road Runner Sports",
                                "title": "Best Running Shoes for Flat Feet",
                                "url": "https://www.roadrunnersports.com/blog/best-running-shoes-flat-feet/?utm_source=chatgpt.com"
                            }
                        ],
                        "currency": null,
                        "description": "2. ASICS GT-2000 15\nBest balanced support\n$140–$150\nA well-rounded stability shoe with responsive cushioning and adaptive guidance. Worth trying if you want support without the bulk of a maximum-support shoe.\nBest for: daily miles, treadmill running and moderate support.",
                        "image_page_title": "Asics GT-2000 15 Laufschuhe Herren | Plutosport",
                        "image_page_url": "https://www.plutosport.de/asics-gt-2000-15-laufschuhe-herren-1011c235-001",
                        "images": [
                            "https://images.openai.com/static-rsc-4/BO_Z8CKmL2QlNuP_2ECP1Ud6A7WAkHYR0Wj-nu4b0yV4Lgz_jBcdic8dRqX6_07ZtTll5pmnOb8v9CHg8dLvWu7vfbh_E-QCTG8zt0FSYfgkTgCdO6o-iZitNVYV33Lq0OSYhNoutGoUSKgPDCqaXmDmnktlmNuWxMHY6xfDuZTjlv2X8iDDqcP_NGpViIvE?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/mtAYtg3fr9TncCfQgbDCKsN0kJY7GOHjRc0kfphZLQidJ99YZAwDATMmLZFtnqZDszoN7Fma2TmpYrypqgbItq7NyJdaInYylqf5oL2qzabr1bJ-TdrM27FkWC6jKF69oov0oftFnetBx5dXPYliJ27LRH4On_RXWDKMtKeK8cRlZlpeayCeOoRpLdSTuILP?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/z3To9ui7l6_x0i9e3yeqD2MkZFxZTZVNKrcvOx02pCfapZbE49waYMFtvOPu1DWcw7D-Tge2LWN6PppwmnG09OXB8TereCu81iFTjV97-PyUDAbrUefgtl3f8WMvBZCRb-rV1uJaObdt8zcp2wUSDuOzGGnRqSEHdwfXlxman832mJt-do1MkG6TYT0x7zEr?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/qspg2X__xKWR-m5SBZtrlJa2VcOjOhFWV5R6SW1UcgFfiMUq6q_EdmIT0MYMRqRs5nM51olKFzxDHZZ-g_epwC6xbqpVy22CCQxHZHQ1YiEgZZE2NIpOHtpnrtiCkqnbMi5exkF1-4zcCyz64XCnnVliO1dItgKwyhJ31ziViBJCr3Qd0ilC05eMncw8--7v?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/z49nBl6_wyYNMrq0saUr5PcTjzCndaIWTtvw9MOp4Cv-pBv9DytMT5x6KrbV067LowRynbYZjradEvMpeOmjV8mpqN-I3KdbDfhimRjQ59QHeUFE5duCGGGRHF0_gS0pVHsiDYuUxD6gWBrxUUN4SLMcZAGDv4-u2w2bHpsHLl4EfuOUzARXnzT08rQCervX?purpose=fullsize",
                            "https://images.openai.com/static-rsc-4/y0AqGd1C-CQJPPK1UwX9oqoHdC-oCHup77ZkwBOidZHV2j_-G6Qjc3-wPbADXV-N5GfCEvNTuad_fWrfCIwOuEeWBkaCMP8fwOGlOvOs9GjsNMFO4Oln28HFW7BnbdzUbgTHaqBHBnPq-AjHkYfoyD_yRy7qT4u11dkDYn0c4reK8jzd_0eX57PtQxcI1tKF?purpose=fullsize"
                        ],
                        "price": null,
                        "price_str": "$140–$150",
                        "rating": null,
                        "thumbnail": "https://images.openai.com/static-rsc-4/nD6cECoYa6IOA1fn8_lVHaklxpFfR8dbgzLMAXiZcjcpoX072yzcpb41TZzEXqpEKi3DXl2aVJ9oz4YMQ8JfzK4vxF9XkqD-mjk1ArmuXLCwB-jEOZflYfx5-UIl7qYIrLjY50O9TA9yL4dHjkKDHMc3cq7rlwInCowaKo27reA?purpose=inline",
                        "title": "ASICS GT-2000 15",
                        "url": "https://www.asics.com/us/en-us/"
                    },
                    {
                        "badge": "Best for beginners",
                        "citations": [
                            {
                                "source": "Road Runner Sports",
                                "title": "Best Running Shoes for Flat Feet",
                                "url": "https://www.roadrunnersports.com/blog/best-running-shoes-flat-feet/?utm_source=chatgpt.com"
                            },
                            {
                                "source": "nordstrom.com",
                                "title": "Saucony Guide 19 Running Shoe in Black/silver at Nordstrom, Size 12",
                                "url": "https://www.nordstrom.com/s/guide-19-running-shoe-men/8882467?color=black%2F+silver&size=12&utm_campaign=genai_shopping&utm_medium=organic&width=w&utm_source=chatgpt.com"
                            }
                        ],
                        "currency": "USD",
                        "description": "3. Saucony Guide 19\nBest for beginners\n$150\nIts broad platform and CenterPath support system help guide your stride, while the cushioned midsole makes it suitable for regular training.\nBest for: new runners who want a stable, comfortable ride.",
                        "image_page_title": "Saucony Men's Guide 19 Cushioned Running Shoes | SportChek",
                        "image_page_url": "https://www.sportchek.ca/en/pdp/saucony-men-s-guide-19-cushioned-running-shoes-85626243f.html",
                        "price": 150,
                        "price_str": "$150",
                        "rating": null,
                        "thumbnail": "https://images.openai.com/static-rsc-4/I5aw-GmeQTLZ6h1oFBCGAewLRU8xi62tmzzNfNmK3kP2UUg3w67dYVnwexp6baDRlep_o3LxfpPanXy4Ru9X2ZF3YxVvp6j0K6t8S4qaqnznPmmZPcnuBlVicKkHHDueYksJ4j41DBflfn-lXCcVGwjBXiiiinJAA0S0Knk8S6E?purpose=inline",
                        "title": "Saucony Guide 19",
                        "url": "https://www.saucony.com/"
                    },
                    {
                        "badge": "Best lightweight feel",
                        "citations": [
                            {
                                "source": "Shoes for Flat-Footed Runners",
                                "title": "The 8 Best Running Shoes for Flat Feet in 2026",
                                "url": "https://www.runnersworld.com/gear/a25750345/running-shoes-flat-feet/?utm_source=chatgpt.com"
                            },
                            {
                                "source": "Yahoo Shopping",
                                "title": "Do You Need Stability Shoes? Podiatrists and Editors Recommend These 7 Pairs for Walking and Running",
                                "url": "https://shopping.yahoo.com/health/fitness/articles/stability-shoes-podiatrists-editors-recommend-191148720.html?utm_source=chatgpt.com"
                            }
                        ],
                        "currency": null,
                        "description": "4. HOKA Arahi 8\nBest lightweight feel\n$120–$150\nHOKA's H-Frame support helps limit excessive inward rolling. The rocker-shaped sole encourages smooth transitions, and the shoe feels less bulky than many stability models.\nBest for: runners who want stability with a streamlined feel.",
                        "image_page_title": "Women's HOKA ONE ONE Arahi 8\n – Pacers Running",
                        "image_page_url": "https://runpacers.com/products/womens-hoka-one-one-arahi-8-birch-alabaster",
                        "price": null,
                        "price_str": "$120–$150",
                        "rating": null,
                        "thumbnail": "https://images.openai.com/static-rsc-4/SmiNYwJModoU7Yj6YqlH20ShcBErwjJXnGWYv4jp9uSHv8N93XwGEMFEgS1wqOOjyIEaaCrmrrV0bfTDJLnOWTe-POGXLnnNfvCHqOZSqCE9CJIIYpjl-aRt6K7EYIv0pcZ9v3QLf-bUCKsD6J4_h6s7dHXublF2JvZcVr0qK3U?purpose=inline",
                        "title": "HOKA Arahi 8",
                        "url": "https://www.hoka.com/"
                    },
                    {
                        "badge": "Best value",
                        "citations": [
                            {
                                "source": "Buyer's Guide",
                                "title": "Best Stability Running Shoes 2026",
                                "url": "https://www.fleetfeet.com/running-shoe-buyers-guide/best-stability?utm_source=chatgpt.com"
                            },
                            {
                                "source": "Outside Online",
                                "title": "The 11 Best Stability Running Shoes of 2026",
                                "url": "https://www.outsideonline.com/outdoor-gear/run/best-stability-shoes?scope=anon&utm_source=chatgpt.com"
                            }
                        ],
                        "currency": null,
                        "description": "5. New Balance Fresh Foam X 860 v14\nBest value\n$100–$110 on sale\nA supportive, cushioned daily trainer with a wide, stable platform. The previous version is worth considering if you want to save money, and New Balance offers multiple width options.\nBest for: budget-conscious runners and people who need extra width.",
                        "image_page_title": "New Balance 紐巴倫 Fresh Foam X 860v14 男 慢跑鞋_M860S14-2E - PChome 24h購物",
                        "image_page_url": "https://24h.pchome.com.tw/prod/DXAX69-A900IXKZ7",
                        "price": null,
                        "price_str": "$100–$110",
                        "rating": null,
                        "thumbnail": "https://images.openai.com/static-rsc-4/jGTPZGasulixP1nGGqKd_Ei9ikMqELyMaGGO7M07EDpUWml8q61iIk1rNoMLp1wsq5bYm7xNkaN6u6LuPUoxMrqmhgsF-2vcUQIJV7oh98Ym4tDBVDngu9T80zSrlaFhvh55emHlsBTck3Qhut_DVmFuyId4lWrRroOuLeiWvEI?purpose=inline",
                        "title": "New Balance Fresh Foam X 860 v14",
                        "url": "https://www.newbalance.com/"
                    }
                ]
    ...
```

</details>

{% hint style="warning" %}
The composition of the response may vary depending on whether the query was made from a **desktop** or **mobile** device.
{% endhint %}

### Output data dictionary

#### HTML example

<figure><img src="https://3826932121-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBQ7Zf9paoN3FTeGcyfY1%2Fuploads%2Fgit-blob-cb12a6dab81c0843699e150f596d72e0b5041eda%2FScreenshot%202025-07-21%20at%2012.54.42.png?alt=media" alt=""><figcaption></figcaption></figure>

#### JSON structure

All LLM targets return the same top-level `job` and `results[]` envelope. See [LLMs and AI](/api-reference/dedicated-scrapers/llm-and-ai-scrapers.md) for the full metadata reference.

The following table shows ChatGPT-specific `results[].content` fields:

{% hint style="info" %}
The number of items and fields for a specific result type may vary depending on the submitted prompt.

In addition to this, parsed fields follow ChatGPT's current layout and can change when ChatGPT changes it.
{% endhint %}

<table><thead><tr><th width="173">Field</th><th width="476">Description</th><th width="90">Type</th></tr></thead><tbody><tr><td><code>prompt</code></td><td>Submitted prompt to generate result.</td><td>string</td></tr><tr><td><code>response_text</code></td><td>Plain-text response from ChatGPT.</td><td>string</td></tr><tr><td><code>markdown_text</code></td><td>ChatGPT response as Markdown.</td><td>string</td></tr><tr><td><code>markdown_json</code></td><td>Structured JSON representation of the Markdown response. Each item contains <code>type</code> and <code>children</code>.</td><td>array</td></tr><tr><td><mark style="background-color:yellow;"><code>citations</code></mark></td><td>List of response source citations. Objects contain <code>title</code>, <code>url</code>, <code>text</code>, and <code>description</code>.</td><td>array</td></tr><tr><td><mark style="background-color:yellow;"><code>links</code></mark></td><td>List of objects for inline source link details: <code>url</code> and <code>text</code>.</td><td>array</td></tr><tr><td><mark style="background-color:yellow;"><code>shopping_products</code></mark></td><td>List of products ChatGPT recommends, as shown on the product cards in the answer. Objects contain <code>title</code>, <code>url</code> (link to the product page), <code>price</code>, <code>price_str</code>, <code>currency</code>, <code>merchant</code> (the store selling the product), <code>badge</code> (ChatGPT's label for the product, e.g. "Best overall"), <code>description</code> (ChatGPT's description of the product), <code>thumbnail</code>, <code>image_page_title</code> and <code>image_page_url</code> (title and URL of the web page the card image comes from, which may be a different store than <code>merchant</code>), <code>rating</code> (the product's star rating from the store listing), <code>citations</code>, and <code>offers</code>.</td><td>array</td></tr><tr><td><code>shopping_products.offers</code></td><td>Merchant offers for the product. ChatGPT usually lists one store per product. Objects contain <code>merchant</code>, <code>price</code>, <code>price_str</code>, <code>currency</code>, <code>url</code>, and <code>details</code> (availability and delivery details, as displayed).</td><td>array</td></tr><tr><td><code>shopping_products.citations</code></td><td>Sources ChatGPT cites for the product. Objects contain <code>source</code> (the website or publication name), <code>title</code>, and <code>url</code>.</td><td>array</td></tr><tr><td><mark style="background-color:yellow;"><code>ads</code></mark></td><td>Ad details containing <code>url</code>, <code>title</code>, <code>image_url</code>, <code>description</code>, and an <code>advertiser_info</code> object.</td><td>array</td></tr><tr><td><mark style="background-color:yellow;"><code>ads.advertiser_info</code></mark></td><td>Object with advertiser <code>url</code>, <code>name</code>, and <code>image_data</code>.</td><td>object</td></tr><tr><td><code>raw_response</code></td><td>Raw streamed response from ChatGPT, one line per item.</td><td>array of strings</td></tr><tr><td><code>parse_status_code</code></td><td><code>12000</code> – successful. Otherwise, parser failed to extract some or all structured fields.</td><td>integer</td></tr></tbody></table>

&#x20;    – conditional, returned only when content is in the LLM's response.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/products/web-scraper-api/targets/llms-and-ai/chatgpt.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
