Chatgpt Prompt Actor - GEO Analyse with Citation Data avatar

Chatgpt Prompt Actor - GEO Analyse with Citation Data

Pricing

$15.00/month + usage

Go to Apify Store
Chatgpt Prompt Actor - GEO Analyse with Citation Data

Chatgpt Prompt Actor - GEO Analyse with Citation Data

This Actor automates interactions with ChatGPT by sending prompts and extracting responses. it opens the web interface, dismisses pop-ups, sends prompts, waits for responses (up to 2 minutes), and extracts generated results including citations for further use.

Pricing

$15.00/month + usage

Rating

5.0

(2)

Developer

Egon Maier

Egon Maier

Maintained by Community

Actor stats

6

Bookmarked

94

Total users

1

Monthly active users

86 days

Issues response

19 hours ago

Last modified

Share

ChatGPT Prompt Actor

This Actor automates interactions with ChatGPT by sending prompts and extracting responses. It uses PlaywrightCrawler with Camoufox - a stealthy fork of Firefox - to navigate ChatGPT's web interface and perform automated conversations.

What this Actor does:

  1. Navigates to ChatGPT: Opens the ChatGPT web interface at https://chatgpt.com/
  2. Handles UI Elements: Automatically closes any modal dialogs that might appear
  3. Processes Multiple Prompts: Sequentially sends all prompts from your input array
  4. Sends Prompts: Enters each prompt into ChatGPT's text input field
  5. Waits for Response: Monitors the page until ChatGPT completes its response (up to 2 minutes)
  6. Extracts Results: Captures the AI-generated response text and also citations, and news items
  7. Saves Data: Stores all prompts, responses, and metadata in a structured dataset

Input Parameters:

  • prompts (array): Messages/questions to send to ChatGPT — each runs in its own fresh conversation
  • maxConcurrency (integer, default 1): How many browser sessions to run in parallel (see "Parallel processing" below)
  • maxRequestRetries (integer, default 3): Retries per session on failure — each retry uses a fresh browser and IP; already-answered prompts in the session are skipped
  • promptsPerSession (integer, default 10): How many prompts to answer in one browser before starting a fresh browser/IP. Higher = faster (a running ChatGPT answers follow-ups in ~5s vs ~25s to start a new browser); those prompts share one IP
  • blockResources (boolean, default true): Block images/fonts/media to cut residential proxy traffic (the biggest cost driver). JS/CSS/XHR are kept, so response extraction is unaffected
  • proxyCountry (string): Select which country the proxy should be located in (optional, auto-selects if empty)

Parallel processing (chunking)

Prompts are grouped into sessions (chunks) of promptsPerSession. One session = one browser on one IP that answers its prompts one after another (reusing the browser via "new chat" — much faster than starting a new browser per prompt). maxConcurrency controls how many sessions run in parallel.

  • Number of sessions = ⌈ number of prompts ÷ promptsPerSession
  • Run in parallel = up to maxConcurrency sessions at a time

Each parallel session needs its own browser (~1 GB RAM), so raise the Actor's memory when you increase maxConcurrency. Parallelism makes the result arrive faster (less wall-clock time) for only a slight increase in usage cost — the total compute is roughly the same.

Examples (25 prompts):

ConfigSessionsBehaviourMemory
promptsPerSession: 10, maxConcurrency: 13 sessions of 10 / 10 / 5run one after another (1 browser at a time)2 GB (default)
promptsPerSession: 10, maxConcurrency: 33 sessions of 10 / 10 / 5run all 3 at once — fastest~4 GB (≈ 1 GB per parallel session)

Note: the chunk size is set purely by promptsPerSession. With promptsPerSession: 10 and 10 prompts you always get one session of 10 — maxConcurrency only matters once there is more than one session. For two parallel sessions of 5, set promptsPerSession: 5.

Output:

The Actor saves one dataset item per prompt:

  • prompt: Original input prompt
  • success: true if a response was extracted, false otherwise
  • error: null on success, otherwise an error message (e.g. EMPTY_RESPONSE, REQUEST_FAILED_AFTER_RETRIES)
  • attempts: Number of tries it took (including the final one)
  • responseText: ChatGPT's response as plain text
  • responseMarkdown: ChatGPT's response with formatting preserved (headings, lists, tables, code blocks) — ideal for further processing
  • sources: Web sources as { position, text, url, domain, type }, deduplicated by URL. The actor opens ChatGPT's full "Sources" sidebar, so bundled/hidden citations are included — not just the 2–3 inline pills. The type field tells you where each link came from:
    • citation — cited inline in the answer text
    • source — listed in the sources sidebar
    • more — additionally searched by ChatGPT but not directly cited
  • sourceDomains: Unique host names of cited sources (citation/source only, e.g. ["www.nike.com", "bbc.com"]) — the aggregated GEO metric. Host names are kept as-is (no www/subdomain stripping), so www.nike.com and nike.com count separately
  • newsListing: Array of news items if present in responses
  • responseTimeMs: How long the response generation took
  • promptIndex: Index of current prompt (0-based)
  • totalPrompts: Total number of prompts in batch
  • timestamp: ISO timestamp of when the interaction occurred

Breaking change (v0.1): response was replaced by responseText/responseMarkdown, citations was renamed to sources (now with domain and position, and now includes bundled/hidden citations — not just inline pills), sourceDomains was added, the url field was removed, and success/error are now present on every item.

Features:

  • Stealth Browsing: Uses Camoufox to avoid detection and blocking
  • Proxy Support: Automatically uses Apify proxy configuration when running on the platform
  • Country Selection: Choose proxy location from 35+ countries for geo-specific responses
  • Error Handling: Gracefully handles timeouts and extraction failures
  • Modal Handling: Automatically closes ChatGPT's welcome dialogs and popups