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

95

Total users

1

Monthly active users

8 days 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