Skip to main content
GEO (generative engine optimization) is the primary product in Notra. It asks AI answer engines the questions your buyers ask, records whether the answer names your brand or a competitor, and shows you where you are missing. The same workspace tracks AI crawler and referral traffic on your site, checks how ready your website is for AI agents, and turns the gaps it finds into content briefs and draft articles.
GEO is included in the Starter, Growth, and Scale plans. On a workspace without one of these plans the GEO pages show an upgrade gate, and the API answers 402 with “GEO plan or available AI credits required”.

Projects

All GEO data is scoped to a project. A project links a name to one brand identity, so an organization can track several brands or products side by side without mixing prompts, competitors, or scan results. Every GEO page in the dashboard reads the active project from the sidebar’s Projects menu, and every project-scoped API route takes projectId in its path.
  • The first project is created for you during onboarding.
  • New project in the sidebar opens a dialog with two fields: Project name and Brand identity.
  • Deleting a project cascades to its GEO settings, prompts, sequences, competitors, scans, checks, and reports. The organization’s last project cannot be deleted.
brandSettingsId is optional; it defaults to the organization’s default brand identity. PATCH /v1/projects/{projectId} renames a project or relinks its brand identity.

The GEO sidebar

The dashboard sidebar has two modes, GEO and Studio. GEO is the default. Its groups are: The primary action button in GEO mode is Write. Utility pages (Integrations, Skills, API Keys) and workspace settings are shared with Studio mode.

Prompts and Competitors

Tracked prompts, conversations, bulk import, and competitor tracking.

AI Traffic

Install the tracker and see which AI crawlers and referrals visit your site.

Agent Readiness

Score how well AI agents can discover, understand, and use your website.

Content Gaps and Writer

Find the questions you are missing from and write articles that close them.

How a scan works

A scan is the unit of work behind every visibility number. It runs inside the Notra dashboard, which owns the model credentials and billing gates; the public API only queues scans and reads results.
1

Build the task list

The scan takes every enabled prompt (custom and auto-derived), every enabled engine from your Settings, and every tracked language. Prompts in languages other than English are translated first. Each engine, prompt, and language combination becomes one task; tasks run four at a time.
2

Ask the engines

Engines come from the model catalog: a live model list grouped by provider (Anthropic, OpenAI, Google, Moonshot AI, Meta, Z.AI, DeepSeek, Mistral AI, and others as the feed changes). Each enabled model answers each prompt without web access. This is what the dashboard labels Without search.
3

Grounded scanning

A fixed set of grounded engines also answers with live web search: ChatGPT, Claude Sonnet, Gemini, and Perplexity. Notra records the search queries the engine issued and the sources it cited, so you can see which pages an engine read before it answered. Grounded checks cover the first six prompts per scan in English and the first three per additional language. The dashboard labels these results Search.
4

Judge every answer

A separate judge model reads each answer and records whether your brand (company name or any alias) is mentioned, at what position, with which sentiment, which tracked competitors appear, and a short excerpt.
5

Play conversations

Multi-turn prompt sequences (called Conversations in the dashboard) are replayed turn by turn against the grounded engines during English scans. See Prompts and Competitors.

Recurring scans

Scans run on a schedule stored on the project’s GEO settings as scanIntervalHours. The options are 24, 48, 72, 168, 336, and 720 hours, shown in Settings as Every day, Every 48 hours, Every 3 days, Every week, Every 2 weeks, and Every 30 days. Daily is the default. Under the hood each project carries a next_scan_at due stamp. A cron sweep polls for projects whose stamp has passed, advances the stamp by one interval, and then starts the scan. Because the stamp moves before the scan starts, a failed scan simply waits for the next interval instead of retrying immediately. A scan row that is still marked running after two hours is treated as stuck and marked failed on the next sweep. Turning Automatic scans off in Settings stops the schedule. Manual scans always work: press Run Scan on the Overview page (shortcut R) or call the API.

The first scan

During onboarding, saving your brand enables GEO tracking with the daily interval, and the competitors step of onboarding starts your first scan as soon as you finish it. Results usually appear within minutes; the Overview page polls while a scan is running.

Triggering scans from the API

The response is 202 Accepted and statusUrl is also returned as the Location header. Poll GET /v1/projects/{projectId}/geo/scans/{scanId} until status leaves running (it becomes completed or failed). While a scan for the project is in flight the trigger endpoint answers 409. This endpoint allows 4 requests per hour per organization.

What the Overview page shows

The Overview page (/geo) is titled GEO with the subtitle “How AI engines talk about” your company name. The range picker offers Today, Yesterday, Last 7 days, Last 14 days, Last 30 days (default), Last 90 days, and Year to date. A GEO sections switch flips between three views.

Visibility

  • Mentions: a per-provider mention rate card with the delta against the first half of the range.
  • Mention activity: the daily mention trend across all providers, with a per-provider breakdown.
  • Mention rate by engine: a table with Engine, Mentions, Mention rate, Avg position, Last checked, and Trend columns. Rows group into provider families; a family sheet shows the Search versus Without search split.
  • Share of voice: your brand against tracked competitors, as a donut and a table, with the top five brands broken out and the rest grouped under Other.
  • Performance by language: Language, Mention rate, and Trend for each tracked language.

Prompts

The latest answer per prompt and engine, with the presence badge, the excerpt, and a link to All prompts and to Content Gaps.

Journeys

The sessions AI agents took through your site, fed by the AI traffic tracker: median depth, journeys per source, most fetched pages, and the Agent journeys table. See AI Traffic.

Reading visibility from the API

Every visibility endpoint accepts days (1 to 365) for a rolling window or from and to (YYYY-MM-DD) for an explicit one. from/to win when both are present. All paths are prefixed with /v1/projects/{projectId}.
Each response also carries configured. When it is false, the analytics backend is not available for the deployment and the payload is empty rather than an error.

API scopes

GEO routes use granular scopes in the form <resource>.read and <resource>.write. The resources are projects, geo-settings, prompts (which also covers sequences), competitors, scans, visibility, briefs (which also covers gaps), agent-readiness, and traffic (which also covers the organization-level ingest token routes). The legacy api.read and api.write scopes expand to every read or every scope. Create keys under API Keys in the sidebar; see Authentication.

API Reference: GEO

Every GEO endpoint with request and response schemas.

Rate limits

Per-endpoint limits for scans, imports, sequences, and the writer.
Last modified on September 2, 2026