# AI Rank Tracker - Brand Visibility in ChatGPT (`parseforge/ai-rank-tracker`) Actor

Track your brand in ChatGPT answers with no key: mentions, rank, sentiment, cited sources. Other AI assistants with your own API key (unverified). Export CSV, Excel, JSON or XML.

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

## Pricing

from $3.40 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)

## 🧭 AI Rank Tracker Scraper

> 🚀 **Export your AI answer visibility in seconds.** Send the questions your customers ask to ChatGPT and get one row per answer: is your brand named, at what rank against your competitors, with what tone, and which sources the AI cited.

More and more buyers ask an AI assistant "what is the best CRM for a small team" instead of searching Google. If your brand is not in that answer, you do not exist for that buyer. This Actor asks the assistant for you, reads the answer, and measures your visibility: mentions, rank among the brands you track, position in the answer's list, sentiment, share of voice, and whether your own domain is one of the cited sources.

ChatGPT works with no key at all. Gemini, Claude, OpenAI and Perplexity are available with your own API key, so a single run can compare several assistants on the same prompts. Note: the key-based platforms have not been verified against a real key yet. Every row carries **28 fields**, and a run summary (mention rate, cited rate, average rank, top cited domains) is saved next to the dataset.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| SEO and GEO agencies, in-house marketers, founders, product marketing teams, PR teams | Answer-engine visibility tracking, competitor share of voice, finding which sites the AI trusts, weekly brand monitoring |

### 📋 What the AI Rank Tracker does

- Sends each prompt to each selected AI platform and reads the full answer with its cited sources.
- Finds your brand (and its aliases) in the answer, counts mentions, and ranks it against the competitors you list by order of first mention.
- Reports the position of your brand inside the answer's list or table, the sentence it appears in, and a sentiment label.
- Checks whether your domain, or a competitor's, is among the sources the AI cited.
- Repeats each prompt as often as you ask, because AI answers change from one ask to the next.

> 💡 **Why it matters:** an answer engine names a handful of brands and cites a handful of sites. Knowing which ones, for which prompts, tells you where to publish, whom to outrank and what to fix.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

One row per prompt, platform and repeat. Fields, in order:

| Field | Meaning |
|---|---|
| 🔎 `query`, `platform`, `platformName`, `repeat` | What was asked, where, and which repeat |
| 🏷 `brand` | The brand you track |
| ✅ `brandMentioned`, `brandMentionCount` | Yes/No and how many times it is named |
| 🥇 `brandRank` | 1 = named first among your brand and the competitors, `N/A` if not named |
| 📋 `brandListPosition` | Which list item or table row names it first, `N/A` if it is not in a list |
| 📍 `brandFirstMentionAtChar` | Character offset of the first mention |
| 🔗 `brandCited`, `brandCitedPosition`, `brandCitedUrl` | Whether your domain is a cited source, its position in the source list and the URL |
| 💬 `brandSentiment`, `brandSentimentScore`, `brandContext` | positive, neutral, negative or mixed, a score from -1 to 1, and the sentence it appears in |
| 📊 `shareOfVoice`, `trackedMentions` | Your share of all mentions of the names you track, and that total |
| ⚔️ `competitors` | Per competitor: mentioned, count, rank, list position, cited, cited position, cited URL |
| 📄 `answerText`, `answerWordCount` | The full answer as text (tables kept) |
| 🔍 `searchQueries` | The web searches the assistant ran, when the provider returns them |
| 📚 `sourcesCount`, `citedDomains`, `sources` | The cited sources, deduplicated and numbered |
| ⏱ `responseTimeSeconds`, `scrapedAt`, `error` | Timing, timestamp and the error text |

Real records from a run (answer and source lists trimmed for length):

```json
[
  {
    "query": "best project management software for startups",
    "platform": "chatgpt",
    "platformName": "ChatGPT",
    "repeat": 1,
    "brand": "Notion",
    "brandMentioned": "Yes",
    "brandMentionCount": 3,
    "brandRank": 2,
    "brandListPosition": 3,
    "brandFirstMentionAtChar": 472,
    "brandCited": "No",
    "brandCitedPosition": "N/A",
    "brandCitedUrl": "N/A",
    "brandSentiment": "neutral",
    "brandSentimentScore": 0,
    "brandContext": "Notion | Founder-led / documentation-heavy | Free; $10/user/mo | Docs, wiki, specs, databases + lightweight PM |",
    "shareOfVoice": 0.25,
    "competitors": [
      {
        "name": "Asana",
        "mentioned": "Yes",
        "mentionCount": 3,
        "rank": 3,
        "listPosition": 4,
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "monday.com",
        "mentioned": "No",
        "mentionCount": 0,
        "rank": "N/A",
        "listPosition": "N/A",
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "ClickUp",
        "mentioned": "Yes",
        "mentionCount": 3,
        "rank": 1,
        "listPosition": 2,
        "cited": "Yes",
        "citedPosition": 3,
        "citedUrl": "https://clickup.com/learn/topic/project-management/tools/"
      },
      {
        "name": "Trello",
        "mentioned": "Yes",
        "mentionCount": 3,
        "rank": 4,
        "listPosition": 5,
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      }
    ],
    "trackedMentions": 12,
    "answerText": "If you mean for a typical early-stage startup in 2026, the right choice depends heavily on whether you're engineering-heavy or running a broader cross-functional team.\n\n| Tool | Best fit | Current starting price* | Main strength |\n| --- | --- | --- | --- |\n| Linear | Product/engineering startups | Free; $10/user/mo paid | Fast issues, cycles, roadmaps, GitHub workflow |\n|...",
    "answerWordCount": 359,
    "searchQueries": [],
    "sourcesCount": 5,
    "citedDomains": [
      "stackfyi.com",
      "linear.app",
      "clickup.com",
      "waveup.com",
      "devmatrix.us.com"
    ],
    "sources": [
      {
        "position": 1,
        "title": "Best Project Management Tools for Startups 2026 | StackFYI",
        "url": "https://www.stackfyi.com/guides/best-pm-tools-startups-2026",
        "domain": "stackfyi.com",
        "publisher": "StackFYI"
      },
      {
        "position": 2,
        "title": "Pricing – Linear",
        "url": "https://linear.app/pricing?sid=d0f577d7-9ad7-4751-9871-f60e9eddedf1",
        "domain": "linear.app",
        "publisher": "Linear"
      }
    ],
    "responseTimeSeconds": 10.3,
    "scrapedAt": "2026-09-29T04:00:47.584Z",
    "error": null
  },
  {
    "query": "Asana alternatives",
    "platform": "chatgpt",
    "platformName": "ChatGPT",
    "repeat": 1,
    "brand": "Notion",
    "brandMentioned": "Yes",
    "brandMentionCount": 2,
    "brandRank": 5,
    "brandListPosition": 6,
    "brandFirstMentionAtChar": 632,
    "brandCited": "No",
    "brandCitedPosition": "N/A",
    "brandCitedUrl": "N/A",
    "brandSentiment": "positive",
    "brandSentimentScore": 1,
    "brandContext": "Notion | Docs + projects | Combines knowledge base, docs, databases and task management |",
    "shareOfVoice": 0.167,
    "competitors": [
      {
        "name": "Asana",
        "mentioned": "Yes",
        "mentionCount": 4,
        "rank": 1,
        "listPosition": "N/A",
        "cited": "Yes",
        "citedPosition": 2,
        "citedUrl": "https://asana.com/resources/best-project-management-software"
      },
      {
        "name": "monday.com",
        "mentioned": "Yes",
        "mentionCount": 2,
        "rank": 3,
        "listPosition": 2,
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "ClickUp",
        "mentioned": "Yes",
        "mentionCount": 2,
        "rank": 2,
        "listPosition": 1,
        "cited": "Yes",
        "citedPosition": 1,
        "citedUrl": "https://clickup.com/learn/topic/project-management/tools/asana/alternatives/"
      },
      {
        "name": "Trello",
        "mentioned": "Yes",
        "mentionCount": 2,
        "rank": 4,
        "listPosition": 4,
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      }
    ],
    "trackedMentions": 12,
    "answerText": "If you’re looking for Asana alternatives, the strongest options depend on what you want to improve.\n\n| Alternative | Best fit | Key difference from Asana |\n| --- | --- | --- |\n| ClickUp | All-in-one project management | More customization, docs, whiteboards, time tracking, goals |\n| monday.com | Operations & business teams | Very visual, spreadsheet-like, easy to customize |\n|...",
    "answerWordCount": 260,
    "searchQueries": [],
    "sourcesCount": 2,
    "citedDomains": [
      "clickup.com",
      "asana.com"
    ],
    "sources": [
      {
        "position": 1,
        "title": "10 Best Asana Alternatives in 2026 (With Switching Guides)",
        "url": "https://clickup.com/learn/topic/project-management/tools/asana/alternatives/",
        "domain": "clickup.com",
        "publisher": "ClickUp"
      },
      {
        "position": 2,
        "title": "Best Project Management Software: 11 Tools Compared [2026] • Asana",
        "url": "https://asana.com/resources/best-project-management-software",
        "domain": "asana.com",
        "publisher": "Asana"
      }
    ],
    "responseTimeSeconds": 6.9,
    "scrapedAt": "2026-09-29T04:01:21.976Z",
    "error": null
  },
  {
    "query": "best note taking app for teams",
    "platform": "chatgpt",
    "platformName": "ChatGPT",
    "repeat": 1,
    "brand": "Notion",
    "brandMentioned": "Yes",
    "brandMentionCount": 3,
    "brandRank": 1,
    "brandListPosition": 1,
    "brandFirstMentionAtChar": 254,
    "brandCited": "Yes",
    "brandCitedPosition": 2,
    "brandCitedUrl": "https://www.notion.com/help/collaborate-with-people",
    "brandSentiment": "positive",
    "brandSentimentScore": 0.5,
    "brandContext": "Notion | Flexible team workspace | Notes + docs + wikis + databases + project tracking in one place; strong collaboration | Can become messy without good organization |",
    "shareOfVoice": 1,
    "competitors": [
      {
        "name": "Asana",
        "mentioned": "No",
        "mentionCount": 0,
        "rank": "N/A",
        "listPosition": "N/A",
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "monday.com",
        "mentioned": "No",
        "mentionCount": 0,
        "rank": "N/A",
        "listPosition": "N/A",
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "ClickUp",
        "mentioned": "No",
        "mentionCount": 0,
        "rank": "N/A",
        "listPosition": "N/A",
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      },
      {
        "name": "Trello",
        "mentioned": "No",
        "mentionCount": 0,
        "rank": "N/A",
        "listPosition": "N/A",
        "cited": "No",
        "citedPosition": "N/A",
        "citedUrl": "N/A"
      }
    ],
    "trackedMentions": 3,
    "answerText": "The “best” team note-taking app depends on whether you need meeting notes, a company knowledge base, project documentation, or simple shared notes. These are the strongest options:\n\n| App | Best for | Strengths | Watch-outs |\n| --- | --- | --- | --- |\n| Notion | Flexible team workspace | Notes + docs + wikis + databases + project tracking in one place; strong collaboration |...",
    "answerWordCount": 311,
    "searchQueries": [],
    "sourcesCount": 6,
    "citedDomains": [
      "support.microsoft.com",
      "notion.com",
      "atlassian.com",
      "confluence.atlassian.com"
    ],
    "sources": [
      {
        "position": 1,
        "title": "Manage your team's notes with OneNote | Microsoft Support",
        "url": "https://support.microsoft.com/en-us/onenote/teams-apps-and-service/manage-your-team-s-notes-with-onenote",
        "domain": "support.microsoft.com",
        "publisher": "Microsoft Support"
      },
      {
        "position": 2,
        "title": "Collaborate with people in Notion | Notion Help – Notion Help Center",
        "url": "https://www.notion.com/help/collaborate-with-people",
        "domain": "notion.com",
        "publisher": "Notion"
      }
    ],
    "responseTimeSeconds": 9.4,
    "scrapedAt": "2026-09-29T04:01:55.073Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- 🆓 **ChatGPT with no key.** The public ChatGPT web app is read directly, with web search on.
- 🔑 **Bring your own key for the rest.** Gemini, Claude, OpenAI and Perplexity are called directly with your key, which is never written to the log or the dataset. These key-based platforms have not been verified against a real key yet.
- 📐 **Rank, not just presence.** Rank among competitors, list position, cited position and share of voice.
- 🔁 **Repeats.** Ask every prompt 2 to 5 times to see how stable your visibility is.
- ❌ **Failed checks are never billed.** They come back as error rows, and a run that delivers nothing ends as failed.

### 📈 How it compares to alternatives

| | AI Rank Tracker | Typical AI visibility Actors |
|---|---|---|
| ChatGPT without an API key | Yes | Varies |
| Gemini, Claude, OpenAI, Perplexity | With your own key | Bundled or with a key |
| Google AI Mode, Google AI Overview | Not available (see FAQ) | Some |
| Competitor rank and share of voice | Yes | Yes |
| Sentiment | Word-list heuristic, documented | Model-based or none |
| Cited domain check | Your domain and each competitor | Yes |

### 🚀 How to use

1. Create a free Apify account with $5 credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Actor and type your prompts, one per line, in "Prompts to test".
3. Enter your brand name and, if you have one, your domain. Add competitors by name or domain.
4. Leave "AI platforms" on ChatGPT, or add the API platforms and paste the matching key.
5. Click Start, then download the dataset as CSV, Excel, JSON or XML. The per-platform summary is in the run's key-value store under `SUMMARY`.

Example input:

```json
{
  "queries": ["best project management software for startups", "Asana alternatives"],
  "brandName": "Notion",
  "brandDomain": "notion.com",
  "competitors": ["Asana", "monday.com", "ClickUp", "Trello"],
  "platforms": ["chatgpt"],
  "repeatsPerPrompt": 2
}
```

### 💼 Business use cases

#### 📣 SEO and GEO agencies

Report each client's visibility across the prompts that matter, month over month, and show which competitor the AI prefers.

#### 🏢 In-house marketing

Find the prompts where your brand is missing and the sites the AI cites instead, then plan content and outreach against them.

#### 🧪 Product marketing

Check how the assistant describes you next to competitors (the sentence and the sentiment) after a launch or a rebrand.

#### 🗞 PR and communications

Track whether a campaign or a review earns a place in the answers, using the cited domains as the signal.

### 🔌 Automating AI Rank Tracker

Schedule the Actor weekly and send the dataset where you work: Make, Zapier, Slack, Airbyte, GitHub or Google Drive. Keep the same prompts and repeats between runs so the numbers are comparable.

### 🌟 Beyond business use cases

- **Research:** study how answer engines pick sources for a topic.
- **Personal:** check what an assistant says about you or your project.
- **Non-profit:** see whether your cause is found by people who ask an assistant.
- **Experimentation:** compare how phrasing changes who gets recommended.

### 🤖 Ask an AI assistant about this scraper

Paste this page into your assistant and ask: "Which prompts should I track for my brand, and how do I read `brandRank` and `shareOfVoice`?"

### ❓ Frequently Asked Questions

#### 🔑 Do I need an API key?

Not for ChatGPT. The API platforms (Gemini, Claude, OpenAI, Perplexity) need your own key in the matching field. It is sent only to that provider, and you pay the provider for its use.

#### 🧪 Have the API platforms been tested?

The request and answer formats follow each provider's documented web-search API and are covered by offline tests. The refused-key path was checked against all four live endpoints. A full answer with a valid key has not been run by us yet, so try one prompt first.

#### 🚫 Why is Google AI Mode not available?

Google shows a captcha to automated browsers from cloud addresses, including with residential proxies. It was tried and returned no answers, so it is not offered.

#### 🚫 Why is the public Perplexity web app not available?

It refuses many commercial questions to visitors without an account, and those are the questions brand tracking needs. Use the Perplexity API platform with your key instead.

#### 🥇 How is `brandRank` computed?

By order of first mention among your brand and the competitors you list. 1 means your brand is named first. It is `N/A` when the brand is not named.

#### 📋 What is `brandListPosition`?

The position of the first list item or table row that names your brand. Table header rows are not counted. `N/A` when the brand is only named in running text.

#### 💬 How is sentiment computed?

A fixed word list is applied to the sentences that name your brand, with simple negation handling. It is a heuristic, not a language model: read `brandContext` when a label matters.

#### 🔗 How does the cited check work?

If you give a brand domain, the check is exact (the domain or a subdomain). A competitor given as a domain is checked the same way. A competitor given only as a name is matched against the domain labels of the cited sources, so treat that as a strong hint.

#### 🔁 Why do two identical checks give different answers?

AI answers are generated, so they vary. Use "Repeats per prompt" and read the averages in the `SUMMARY` record.

#### ⏱ How long does a check take, and how many fit in a run?

About 15 to 20 seconds of wall time per ChatGPT check (the answer itself takes 7 to 10 seconds), one after another. Runs default to 2048 MB of memory; keep it there. The default one-hour run timeout fits roughly 200 checks. The Actor stops starting new checks a minute before the timeout and reports how many were not run.

#### 🌍 Does the country matter?

ChatGPT answers follow the address the request comes from. The proxy setting is off by default. Turn it on to change the exit address.

#### 🌐 Is the ChatGPT route official?

No. ChatGPT answers are read from its public web app without an official API, and OpenAI may change or restrict it at any time.

#### 🛑 What happens when a check fails?

It comes back as an error row that is never billed. If no check returns an answer, the run ends as failed with the reason in its status message.

### 🔌 Integrate with any app

Use the Apify API, webhooks or the integrations above to send results to your BI tool, spreadsheet or alerting system.

### 🔗 Recommended Actors

- [Google Search Scraper](https://apify.com/parseforge/google-search-scraper): run the same prompts as classic searches (paste your prompts into its `queries`) and compare who ranks there with who the AI names.
- [Bing Search Scraper](https://apify.com/parseforge/bing-search-scraper): the same prompts on Bing (its `queries` field takes your list).
- [Reddit Scraper](https://apify.com/parseforge/reddit-posts-scraper): when `citedDomains` shows reddit.com, search Reddit for the same prompts with its `searchQueries` field.
- [DuckDuckGo Search Scraper](https://apify.com/parseforge/duckduckgo-search-scraper): a third classic search view of the same prompts.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** independent tool, not affiliated with OpenAI, Google, Anthropic or Perplexity; it reads publicly available answers and calls provider APIs only with keys you supply. ChatGPT answers are read from its public web app without an official API, and OpenAI may change or restrict it.

# Actor input Schema

## `queries` (type: `array`):

The questions your customers ask AI assistants, one per line, for example 'best CRM for small business'. Each prompt is sent to every selected platform.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `brandName` (type: `string`):

The brand to look for in every answer, for example 'HubSpot'. Matching is case-insensitive and whole-word.

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

Your website, for example 'hubspot.com'. Lets the Actor tell whether the AI cites your own site as a source, not only names your brand.

## `brandAliases` (type: `array`):

Other spellings that count as a mention of your brand, for example 'Hub Spot'. Optional.

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

Competitor names or domains, for example 'Salesforce' or 'pipedrive.com'. Each one is counted in every answer, so you get rank and share of voice against them.

## `platforms` (type: `array`):

Which assistants to ask. Each prompt on each platform is one check. ChatGPT needs no key. The '(API)' choices need the matching key below and call the provider directly.

## `repeatsPerPrompt` (type: `integer`):

AI answers change from one ask to the next. Set 2 to 5 to ask every prompt several times and see how stable your visibility is. Each repeat is one more check.

## `openaiKey` (type: `string`):

Needed for 'ChatGPT via OpenAI API'. The model uses OpenAI's web search tool.

## `openaiModel` (type: `string`):

Leave empty for gpt-4.1-mini. Must be a model that supports web search.

## `geminiKey` (type: `string`):

Needed for 'Gemini via Google API'. Answers are grounded with Google Search.

## `geminiModel` (type: `string`):

Leave empty for gemini-2.5-flash.

## `anthropicKey` (type: `string`):

Needed for 'Claude via Anthropic API'. The model uses Anthropic's web search tool.

## `anthropicModel` (type: `string`):

Leave empty for claude-haiku-4-5. Must be a model that supports web search.

## `perplexityKey` (type: `string`):

Needed for 'Perplexity via Sonar API'. Uses Perplexity's Sonar API with your key.

## `perplexityModel` (type: `string`):

Leave empty for sonar.

## `proxyConfiguration` (type: `object`):

Apify proxy settings for ChatGPT.

## Actor input object example

```json
{
  "queries": [
    "best CRM software for small business",
    "HubSpot alternatives"
  ],
  "maxItems": 10,
  "brandName": "HubSpot",
  "brandDomain": "hubspot.com",
  "competitors": [
    "Salesforce",
    "Pipedrive",
    "Zoho CRM"
  ],
  "platforms": [
    "chatgpt"
  ],
  "repeatsPerPrompt": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields

## `fullData` (type: `string`):

Complete dataset with all 28 fields

# 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 = {
    "queries": [
        "best CRM software for small business",
        "HubSpot alternatives"
    ],
    "maxItems": 10,
    "brandName": "HubSpot",
    "brandDomain": "hubspot.com",
    "competitors": [
        "Salesforce",
        "Pipedrive",
        "Zoho CRM"
    ],
    "platforms": [
        "chatgpt"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/ai-rank-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 = {
    "queries": [
        "best CRM software for small business",
        "HubSpot alternatives",
    ],
    "maxItems": 10,
    "brandName": "HubSpot",
    "brandDomain": "hubspot.com",
    "competitors": [
        "Salesforce",
        "Pipedrive",
        "Zoho CRM",
    ],
    "platforms": ["chatgpt"],
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/ai-rank-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 '{
  "queries": [
    "best CRM software for small business",
    "HubSpot alternatives"
  ],
  "maxItems": 10,
  "brandName": "HubSpot",
  "brandDomain": "hubspot.com",
  "competitors": [
    "Salesforce",
    "Pipedrive",
    "Zoho CRM"
  ],
  "platforms": [
    "chatgpt"
  ]
}' |
apify call parseforge/ai-rank-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/ai-rank-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/9paYBZz1VJBaNz4PI/builds/K2S8fkXrqyqprgzda/openapi.json
