360 Secure SkillHub
360 安全技能中心

ChatGPT Scraper API - Answers, Citations, AI Visibility

通过 Scavio 的 ChatGPT 接口提交提示词,返回结构化 JSON:Markdown 回答、被引用页面及其标题/发布方/日期、ChatGPT 执行的搜索查询、推荐商品;用于 AI 可见度、GEO 与品牌监测,按成功提示计费,需配置 API 密钥。

scavio-ai
scavio-ai
热度 26.19
最近更新 2026-10-14 21:40:17
分类:营销依赖:第三方 API应用场景:市场分析 / 研究 / 推荐

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add scavio-ai/chatgpt-scraper-api
Metadata
name
chatgpt-scraper-api
description
Send a prompt to ChatGPT and get the answer it gives as structured JSON - the full Markdown answer, every page it cites with title, publisher and date, the web searches it ran, and the products it recommended. For AI visibility, GEO and brand monitoring. 2 credits per answered prompt.
version
1.0.0
tags
chatgpt, chatgpt-scraper, chatgpt-api, ai-visibility, geo, generative-engine-optimization, brand-monitoring, llm-citations, answer-engine, share-of-voice, agents, langchain, crewai, autogen, structured-data, json, ai-agents
metadata
{"openclaw":{"requires":{"env":["SCAVIO_API_KEY"]},"primaryEnv":"SCAVIO_API_KEY","timeout":120,"throttle":1,"emoji":"💬","homepage":"https://scavio.dev/docs/chatgpt-api?utm_source=agent-skills&utm_medium=skill&utm_campaign=chatgpt-scraper-api"}}

ChatGPT answers via Scavio

Send a prompt to ChatGPT and get back what ChatGPT tells the people asking it: the full answer as Markdown, every page it cites (title, publisher, publish date), the web searches it ran to answer, and the products it recommended. One endpoint, 2 credits per answered prompt; failed prompts are free.

When to trigger

Use this skill when the user asks to:

  • See what ChatGPT says or recommends for a question, product category or brand
  • Check whether a brand, product or website is mentioned or cited in ChatGPT's answer
  • Find which pages and publishers ChatGPT cites for a topic (citation / source analysis)
  • Track AI visibility or share of voice in ChatGPT across a list of prompts
  • See what web searches ChatGPT runs to answer a prompt (query fan-out)
  • Compare ChatGPT's answer with Gemini's (use the gemini-scraper-api skill for the other half)

Setup

Get a free API key at scavio.dev (50 free credits to get started, no card required):

export SCAVIO_API_KEY=sk_live_your_key

If you do not have a key yet

An agent running this skill without SCAVIO_API_KEY set will get 401 on every call below. The whole path from nothing to a working key is self-serve:

  1. Sign up at dashboard.scavio.dev - email or Google, no card required.
  2. A key is created for the account automatically at signup. It is on the dashboard under API Keys, ready to copy.
  3. A new account starts with 50 credits, enough for 25 prompts on this endpoint.

When the balance runs out the API answers 402 with a JSON body carrying billing_url. Topping up needs no code change - the same key keeps working. The smallest purchase is 2,500 credits for $25, and monthly plans work out cheaper per credit if the usage is steady rather than one-off.

Endpoint

POST https://api.scavio.dev/api/v1/chatgpt/prompt
Authorization: Bearer $SCAVIO_API_KEY

Every answered prompt costs 2 credits. Answers typically take 10-40 seconds: use an HTTP timeout of at least 90 seconds.

Workflow

  1. Send the question the way a buyer would type it as prompt.
  2. Add country when the answer should be localized (2-letter code).
  3. Read data.answer.markdown for the answer, data.sources[] for the pages it cited, data.search_queries[] for the searches it ran and data.shopping[] for the products it recommended.
  4. For visibility tracking, run each prompt several times: answers vary between runs, so report a mention rate, not a single yes or no.

Parameters

Parameter Type Default Description
prompt string required The prompt, 1-1024 characters
model string auto Model id; auto is the model ChatGPT picks by default
country string us 2-letter country code the answer is localized for
include_html boolean false Also return the answer as HTML in answer.html

Example

import requests

# Your key from https://scavio.dev. Load it from your environment or secret
# store in real code - keep it out of source control.
API_KEY = "sk_your_key_here"

response = requests.post(
    "https://api.scavio.dev/api/v1/chatgpt/prompt",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"prompt": "What are the best running shoes for beginners?"},
    timeout=120,
)
data = response.json()["data"]
print(data["answer"]["markdown"][:800])
print("Brooks mentioned:", "Brooks" in data["answer"]["markdown"])
for s in data["sources"]:
    print("cited:", s["source"], s["url"])
print("searched:", data["search_queries"])
print("recommended:", [p["title"] for p in data["shopping"]])

Response

{
  "data": {
    "platform": "chatgpt",
    "prompt": "What are the best running shoes for beginners?",
    "model": "gpt-6",
    "answer": {
      "markdown": "The best running shoes for beginners are usually **comfortable, well-fitting daily trainers**... ## 1\\. Brooks Ghost 18 ..."
    },
    "sources": [
      {
        "url": "https://www.rtings.com/running-shoes/reviews/best/beginners",
        "title": "The 6 Best Running Shoes for Beginners of 2026",
        "snippet": null,
        "source": "RTINGS.com",
        "published_at": "2026-09-18T00:00:00.000Z"
      }
    ],
    "search_queries": [
      "best running shoes for beginners 2026 review Brooks Ghost ASICS Nimbus Saucony Ride Nike Pegasus"
    ],
    "shopping": [
      { "title": "Brooks Ghost 18", "url": null, "price": null, "image_url": null, "merchant": null }
    ]
  },
  "response_time": 28081,
  "credits_used": 2,
  "credits_remaining": 48
}

shopping[] is often title only; url, price and image_url are filled when ChatGPT shows them.

Guardrails

  • Each answered prompt costs 2 credits. Confirm before running large prompt lists.
  • Never fabricate or paraphrase the answer as if it were ChatGPT's words. Quote answer.markdown and surface sources so the user can verify.
  • Answers vary between runs and are never cached. Do not present one run as ChatGPT's fixed opinion.
  • Prompts are limited to 1024 characters.

Failure handling

  • 400 means a missing or too-long prompt, or a malformed country / model - fix and retry.
  • 401 means the API key is invalid or missing. Check SCAVIO_API_KEY.
  • 429 means rate or usage limit exceeded. Wait before retrying. See rate limits.
  • 502 means ChatGPT did not return an answer. Retry once; it is not charged.
  • 503 means answer capacity is busy. Wait for the Retry-After header, then retry; it is not charged.
  • If SCAVIO_API_KEY is not set, prompt the user to export it before continuing.