Prompt Tracking API: create, tag, run and read prompts on 6 AI engines

The Prompt Tracking API creates the prompts a brand monitors in AI answers, tags them by topic, market and funnel stage, runs them on ChatGPT, Perplexity, Google AI Mode, Claude, Copilot and Grok, then returns the stats of each prompt. One execution costs one credit, between $0.013 and $0.007.

Updated

  • ChatGPT
  • Perplexity
  • Google AI Mode
  • Claude
  • Microsoft Copilot
  • Grok

Playground

Two POSTs create 4 prompts and queue them on 3 models for 12 credits

The Prompt Tracking API takes a prompt list with its tags, then the models to run it on. Edit the list and pick models: the payload, the job and the credit count update as you type. One prompt run once on one model costs one credit, so four prompts on three models charge twelve credits when the job starts.

POST /v1/queries · POST /v1/jobs/execute

models[]

Credits per run
12
Credits per month
360
Estimated cost per month
$4.68
# 1. upsert the prompt set
curl -X POST https://api.apiforgeo.com/v1/queries \
  -H "Authorization: Bearer $API_FOR_GEO_KEY" \
  -H "x-project-id: $PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": [
      {
        "text": "best project management tool for creative agencies",
        "type": "commercial",
        "language": "en",
        "country": "US",
        "tagIds": [
          "t_pm-tools",
          "t_us"
        ]
      },
      {
        "text": "project management software with client portals",
        "type": "informational",
        "language": "en",
        "country": "US",
        "tagIds": [
          "t_pm-tools",
          "t_us"
        ]
      },
      {
        "text": "alternatives to spreadsheet based studio planning",
        "type": "informational",
        "language": "en",
        "country": "US",
        "tagIds": [
          "t_pm-tools",
          "t_us"
        ]
      },
      {
        "text": "which pm tool has the best time tracking",
        "type": "informational",
        "language": "en",
        "country": "US",
        "tagIds": [
          "t_pm-tools",
          "t_us"
        ]
      }
    ]
  }'

# 2. run it on 3 models
curl -X POST https://api.apiforgeo.com/v1/jobs/execute \
  -H "Authorization: Bearer $API_FOR_GEO_KEY" \
  -H "x-project-id: $PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "models": [
      "chatgpt",
      "perplexity",
      "google-ai-mode"
    ],
    "executionsPerQuery": 1
  }'

200 OK · POST /v1/jobs/execute

{
  "created": 4,
  "updated": 0,
  "job": {
    "id": "job_7c1f9ad2",
    "status": "queued",
    "models": [
      "chatgpt",
      "perplexity",
      "google-ai-mode"
    ],
    "queries": 4,
    "creditsCharged": 12,
    "createdAt": "2026-09-03T09:41:02Z"
  }
}

Schema

A prompt object carries 7 fields, including its own locale

The Prompt Tracking API stores each prompt as an object: the text sent to the model, its intent type, one language, one country and its tag links. A prompt carries its own locale, so the same question tracked in four markets is four prompts and four result sets you can compare.

Prompt object, as created by POST /v1/queries
FieldTypeDescription
iduuidPrompt identifier, stable across re-imports.
textstringThe prompt sent to the model, verbatim.
typeenuminformational · commercial · comparison · branded · navigational
languagestringISO language code, from the supported allowlist.
countrystringISO country code, validated against per-model availability.
tagIds[]arrayTag links. Replacing the array replaces the associations.
lastExecutedAtdatetimeFreshness marker for this prompt, null before the first run.

Lifecycle

Four calls take a prompt list to per-prompt stats

The Prompt Tracking API takes a prompt list to per-prompt stats in four POST requests: create tags, upsert prompts, execute, read. The key is generated in the app, with one project per brand or per client. Credits are charged when a job starts, and the fourth call can be repeated as often as needed without being billed.

  1. Step 1

    Create tags

    Create the topics, markets and funnel stages of the project. Tags slice every statistic later, so they come before the prompts.

    POST /v1/tags
  2. Step 2

    Upsert prompts

    Send the prompt list in bulk with its tag links. Tag ids are checked against the project before anything is written, and prompts are matched on text, language and country.

    POST /v1/queries
  3. Step 3

    Execute

    Pick the models and the number of executions per prompt. Credits are charged up front and the call returns a job to poll.

    POST /v1/jobs/execute
  4. Step 4

    Read per-prompt stats

    Read visibility, entities, sources and raw responses for each prompt once the job completes. Reads over stored runs are not billed.

    POST /v1/queries/stats

Failed executions are refunded to the balance automatically.

Prompt performance tracking

Prompt performance tracking shows a 36.9-point visibility gap inside one prompt set

The Prompt Tracking API reads the stats of each prompt separately: number of runs, brand visibility, average position and cited sources. In this sample set of 4 prompts on 3 models in US English, the brand appears in 64.8% of answers to its best prompt and 27.9% to its weakest, over the same 90 runs per prompt.

POST /v1/queries/stats

curl -X POST https://api.apiforgeo.com/v1/queries/stats \
  -H "Authorization: Bearer $API_FOR_GEO_KEY" \
  -H "x-project-id: $PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "models": [
      "chatgpt",
      "perplexity",
      "google-ai-mode"
    ],
    "country": "US"
  }'

200 OK

{
  "scope": {
    "models": [
      "chatgpt",
      "perplexity",
      "google-ai-mode"
    ],
    "country": "US"
  },
  "results": [
    {
      "id": "q_3f9a1c20",
      "text": "best project management tool for creative agencies",
      "type": "commercial",
      "language": "en",
      "country": "US",
      "tagIds": [
        "t_pm-tools",
        "t_us"
      ],
      "runs": 90,
      "visibility": 64.8,
      "avgPosition": 1.8,
      "entities": [
        {
          "name": "Loopwork",
          "entityType": "brand",
          "visibility": 64.8,
          "avgPosition": 1.8
        },
        {
          "name": "Cadence",
          "entityType": "competitor",
          "visibility": 52.2,
          "avgPosition": 2.4
        },
        {
          "name": "Northbeam",
          "entityType": "competitor",
          "visibility": 40,
          "avgPosition": 3.2
        }
      ],
      "sources": [
        {
          "url": "https://review-site.com/pm-tools",
          "domain": "review-site.com",
          "category": "review",
          "mentionsBrand": true
        },
        {
          "url": "https://loopwork.io/agencies",
          "domain": "loopwork.io",
          "category": "brand",
          "mentionsBrand": true
        }
      ],
      "responses": [
        {
          "model": "chatgpt",
          "executedAt": "2026-09-02T06:00:14Z",
          "answer": "For creative agencies, Loopwork is often recommended for its proofing workflow, while Cadence is favoured by larger studios..."
        }
      ],
      "lastExecutedAt": "2026-09-02T06:00:14Z"
    }
  ]
}
Fields returned per prompt by POST /v1/queries/stats, on top of the prompt object
FieldTypeDescription
runsintStored responses for the prompt in scope, the base of every rate.
visibilityfloatResponses mentioning the project brand ÷ runs, from 0 to 100.
avgPositionfloatMean rank of the brand's first mention inside the answer. Lower is better.
entities[]arrayEvery brand and competitor named in the answers, with its own visibility and average position.
sources[]arrayCited URLs with domain, category and whether the page mentions the brand.
responses[]arrayRaw answer text per run, with model and execution time, for verification.
lastExecutedAtdatetimeTime of the most recent run in scope.
The four prompts of the sample set, read page by page with the same call (fictional data)
PromptRunsBrand visibilityAvg positionTags
best project management tool for creative agencies 9064.8%1.8pm-tools
project management software with client portals 9051.2%2.2comparison
alternatives to spreadsheet based studio planning 9038.4%2.6pm-tools
which pm tool has the best time tracking 9027.9%3.0comparison

Comparison

The Prompt Tracking API covers all 5 needs, a scraping API covers 1

The Prompt Tracking API stores each prompt and returns its answers with citations, resolved entities and positions already computed. An AI scraping API returns the raw answer and bare URLs, which leaves the prompt store, entity resolution and ranking to build for each engine. A GEO dashboard tool computes those layers but keeps them inside its interface.

5 of the 15 capabilities on the full comparison
Capability API for GEOAI scraping APIGEO dashboard toolIn-house build
Raw answer text YesYesSometimesBuild it
Citations with domain + category YesURLs onlyIn the UIBuild it
Entity resolution across aliases YesNoYes, closedBuild it
Average position in answer YesNoYes, closedBuild it
Ongoing maintenance when engines change OursPartly theirsTheirsYours

Pricing

Prompt Tracking API pricing runs from $0.013 to $0.007 per credit

The Prompt Tracking API is billed pay-as-you-go: one credit is one prompt, executed once, against one model, in one locale, with every enrichment layer included. Creating prompts and reading their stats is not billed. There are no seats and no platform fee, and credits never expire.

0 – 50k / month
$0.013
per credit
50k – 250k / month
$0.011
per credit
250k – 1M / month
$0.009
per credit
1M+ / month
$0.007
per credit

Price per credit, set by the month's total volume.

200 prompts × 3 models × 30 runs = 18,000 credits a month, $234 at $0.013

FAQ

Prompt tracking, answered

What does a stats call return?

The Prompt Tracking API returns one object per prompt from POST /v1/queries/stats: the number of runs in scope, brand visibility, average position, every entity named with its own figures, the cited sources and the raw answers. The read is scoped by tag, model, country and date range, and it is not billed, so a dashboard can call it as often as it needs.

What does a small pilot cost?

The Prompt Tracking API bills one credit per prompt, per model, per run. A pilot of 80 prompts on 3 models, run 4 times in a month, uses 960 credits, which comes to $12.48 at the first tier's $0.013. Creating prompts, tagging them and reading the stats are not billed.

Can I run the same prompt several times per execution?

The Prompt Tracking API accepts several executions per prompt in one job. Generative answers change from one run to the next, so repeated runs give a steadier rate. Credits scale with the count and each run is stored as its own response: one prompt run three times on two models costs six credits.

What happens if I re-import my prompt list?

The Prompt Tracking API upserts prompts on text, language and country, so a re-import creates no duplicate and only the tag links change. A bulk tag update matches on those same three fields instead of ids, which suits pipelines that never stored the prompt ids. Each prompt keeps its id through every re-import.

Do deleted prompts destroy history?

The Prompt Tracking API keeps every response a deleted prompt generated. Deleting a prompt unlinks its stored answers from the prompt list, so historical aggregates by tag, model or market stay intact and past reports still add up. Only the prompt itself leaves the active set.

Can I resell prompt tracking data?

The Prompt Tracking API allows resale and white-label use at every tier. The payload carries no attribution requirement, and one organisation can hold an isolated project per end customer, so an agency or a platform can deliver the prompt stats under its own brand and at its own price.

Import a prompt list and run it on 6 AI engines