# AI Answer Engine Tracker: ChatGPT, Gemini & Claude (`docfoundry/ai-answer-engine-tracker`) Actor

Ask ChatGPT, Gemini and Claude your prompts with web search on, through their official APIs. Get each answer, the sources it cites, and whether your brand and competitors are mentioned. Pay per answer.

- **URL**: https://apify.com/docfoundry/ai-answer-engine-tracker.md
- **Developed by:** [Nick Nguyen](https://apify.com/docfoundry) (community)
- **Categories:** AI, SEO tools, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $45.00 / 1,000 answers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AI Answer Engine Tracker: ChatGPT, Gemini and Claude answers with sources

Ask ChatGPT, Gemini and Claude the questions your customers ask, with web search on, and get each
answer back as data: the full text, every source it cites, the searches it ran, and whether your brand,
your website and your competitors show up.

- **Official APIs, not scraping.** Answers come from OpenAI, Google and Anthropic's own APIs with web
  search turned on (models: `gpt-6-luna`, `gemini-3.5-flash-lite`, `claude-haiku-5-5`). No browser automation, no account logins, no broken runs when a website changes.
- **One record per prompt and engine**, with the same fields for every engine.
- **Brand visibility built in**: named or not, how many times, how early in the answer, your domain cited
  or not, which competitors are named.
- **Pay per answer.** Failed answers are never charged.

### Input

| Field | Type | Description |
|---|---|---|
| `prompts` | array | Questions, one per line. Each goes to every engine you pick. Empty = a free format example. |
| `engines` | array | Any of `chatgpt`, `gemini`, `claude` (default: all three). |
| `brand` | string | Optional. Your brand name. |
| `brandDomain` | string | Optional. Your website, e.g. `example.com`. |
| `competitors` | array | Optional. Competitor names. |

```json
{
    "prompts": ["best project management tool for a small team", "asana alternatives"],
    "engines": ["chatgpt", "gemini", "claude"],
    "brand": "Asana",
    "brandDomain": "asana.com",
    "competitors": ["Trello", "ClickUp", "monday.com"]
}
```

### Output (one record per prompt and engine)

```json
{
    "prompt": "best project management tool for a small team",
    "engine": "claude",
    "model": "claude-haiku-5-5",
    "status": "ok",
    "answer": "There's no single best tool for every team, but three names come up again and again ...",
    "citations": [{"url": "https://project-management.com/...", "title": "...", "domain": "project-management.com"}],
    "citedDomains": ["plaky.com", "project-management.com", "wrike.com"],
    "searchQueries": ["best project management tool small teams 2026"],
    "brandMentioned": true,
    "brandMentionCount": 3,
    "brandFirstPosition": 0.04,
    "brandDomainCited": false,
    "competitorsMentioned": ["ClickUp", "monday.com"],
    "askedAt": "2026-10-20T10:56:12+00:00"
}
```

`brandFirstPosition` is where the first mention starts, as a share of the answer (0 = the first word).

### Pricing

Pay per event, no subscription.

| Event | Price | When it is charged |
|---|---|---|
| Answer | **$0.045** | Once per prompt and engine, after the answer arrived. 10 prompts x 3 engines = 30 answers = $1.35. |

Failed answers are never charged. Set a maximum charge in the run options and the actor stops before
it would go over. Apify's standard run-start event adds $0.00005 per run.

### Limits, stated plainly

- **API answers are not copies of the consumer apps.** ChatGPT, Gemini and Claude in their apps add
  account memory, personalization and their own system prompts. This actor asks the same model families
  through their APIs with web search on. Answers are close in substance but can differ, and they vary
  from run to run, as the apps do.
- Every answer is based on a fresh web search: ChatGPT runs up to 2 searches, Gemini and Claude at least one.
- Gemini's citation links are Google redirect links (`vertexaisearch.cloud.google.com/...`); the `domain` field
  holds the real source site.
- Apify free plan: up to 3 answers per run (each answer costs us an API call). Paid plans have no cap.
- Prompts longer than a normal question are fine, but the actor is built for questions, not documents.

### Privacy

Prompts are sent to the engines you pick (OpenAI, Google, Anthropic) and nowhere else. Answers are stored
only in your run's dataset. No account data is read; the actor runs with limited permissions.

# Actor input Schema

## `prompts` (type: `array`):

The questions people ask AI assistants, one per line (for example "best CRM for a 5-person agency"). Each prompt is sent to every engine you pick. Leave empty for a free format example.

## `engines` (type: `array`):

Which AI assistants to ask. Each answer from each engine is one charged result.

## `brand` (type: `string`):

Flags whether each answer names it, how often, and how early in the answer.

## `brandDomain` (type: `string`):

Flags whether each answer cites a page on this domain (subdomains count), e.g. example.com.

## `competitors` (type: `array`):

Competitor names to look for in each answer.

## Actor input object example

```json
{
  "prompts": [
    "best project management tool for small teams"
  ],
  "engines": [
    "chatgpt",
    "gemini",
    "claude"
  ],
  "competitors": []
}
```

# Actor output Schema

## `results` (type: `string`):

Every answer with citations, search queries and brand-visibility flags.

## `resultsCsv` (type: `string`):

The same records as CSV.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "prompts": [
        "best project management tool for small teams"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("docfoundry/ai-answer-engine-tracker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "prompts": ["best project management tool for small teams"] }

# Run the Actor and wait for it to finish
run = client.actor("docfoundry/ai-answer-engine-tracker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "prompts": [
    "best project management tool for small teams"
  ]
}' |
apify call docfoundry/ai-answer-engine-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,docfoundry/ai-answer-engine-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/yvRm2VFg7dsXfUNP1/builds/d5g2I4LhRrbYeW9Be/openapi.json
