# ai-cmo.dev > Measure and improve how your brand appears in AI answer engines. Drive it all from a REST API, an MCP server, or the geo CLI. ## Docs - [Platform overview](https://docs.noisemaker.dev/overview.md): Measure how a brand appears in search and AI answers, then turn the evidence into reviewed work. - [Local quickstart](https://docs.noisemaker.dev/quickstart.md): Run the application locally, create a workspace, and complete a first measurement. - [Core concepts](https://docs.noisemaker.dev/concepts.md): The nouns and lifecycle boundaries used throughout the platform. - [Workspaces](https://docs.noisemaker.dev/workspaces.md): Create, isolate, and configure a brand workspace. - [Dashboard](https://docs.noisemaker.dev/dashboard.md): Read the SEO and GEO scores, evidence breakdowns, and operational handoffs. - [Runs and measurement](https://docs.noisemaker.dev/runs.md): Choose a preset, follow the job lifecycle, and inspect a completed run. - [GEO Score](https://docs.noisemaker.dev/geo-score.md): The versioned five-component score for AI answer visibility. - [SEO platform](https://docs.noisemaker.dev/seo-platform.md): Versioned SEO scoring, deterministic insights, and pipeline technical audits. - [Page evaluation](https://docs.noisemaker.dev/page-evaluation.md): Run an on-demand desktop Lighthouse check without changing the SEO pipeline audit. - [Prompts](https://docs.noisemaker.dev/prompts.md): Manage tracked questions and regenerate an ICP-driven prompt set. - [Research pipeline](https://docs.noisemaker.dev/research.md): Build traceable market and ICP artifacts for prompt and recommendation work. - [Reports](https://docs.noisemaker.dev/reports.md): Understand report taxonomy, frozen snapshots, and the weekly operating report. - [Recommendations](https://docs.noisemaker.dev/recommendations.md): Generate, review, implement, and verify evidence-backed SEO and GEO work. - [Chat copilot](https://docs.noisemaker.dev/chat-copilot.md): Use workspace tools with explicit approvals, model controls, and credit limits. - [Connections](https://docs.noisemaker.dev/connections.md): Configure GA4 and Search Console while keeping provider secrets in operator custody. - [Workspace email](https://docs.noisemaker.dev/email.md): Provision and recover AgentMail inboxes used for third-party property access. - [Team](https://docs.noisemaker.dev/team.md): Manage workspace members, invites, and role safeguards. - [Credits and billing](https://docs.noisemaker.dev/credits-billing.md): Follow the integer ledger from top-up through reservation, provider calls, and settlement. - [API keys](https://docs.noisemaker.dev/api-keys.md): Create scoped workspace keys with one-time delivery, rotation grace, and CIDR controls. - [Settings map](https://docs.noisemaker.dev/settings.md): Find each workspace setting and understand legacy route redirects. - [MCP overview](https://docs.noisemaker.dev/mcp/overview.md): What the ai-cmo.dev MCP server is and when to use it. - [Installation](https://docs.noisemaker.dev/mcp/install.md): Install the ai-cmo.dev MCP server and set up your first session. - [Authorization](https://docs.noisemaker.dev/mcp/authorization.md): How the MCP server authenticates with the ai-cmo.dev API. - [MCP tool reference](https://docs.noisemaker.dev/mcp/tools.md): \"Complete reference for all 10 ai-cmo.dev MCP tools.\" - [Usage examples](https://docs.noisemaker.dev/mcp/usage-examples.md): Real prompts you can use and a worked multi-step workflow. - [Troubleshooting](https://docs.noisemaker.dev/mcp/troubleshooting.md): Common issues and their solutions. - [CLI overview](https://docs.noisemaker.dev/cli/overview.md): What the geo CLI is and how it relates to the ai-cmo.dev platform. - [CLI commands](https://docs.noisemaker.dev/cli/commands.md): Complete reference for every geo CLI subcommand. - [CLI configuration](https://docs.noisemaker.dev/cli/configuration.md): Environment variables used by the geo CLI. - [Customer-site measurement](https://docs.noisemaker.dev/operations/measurement.md): Install the GA4 tag and complete Search Console verification on a customer site. - [Deployment](https://docs.noisemaker.dev/operations/deployment.md): Configure identity, operator custody, application secrets, and loopback metering. - [Data model](https://docs.noisemaker.dev/operations/data-model.md): Understand the two SQLite databases and the pipeline migration ladder. - [What is GEO?](https://docs.noisemaker.dev/learn/what-is-geo.md): Generative Engine Optimization — how answer engines changed the unit of value from the click to the citation. - [GEO vs SEO vs AEO](https://docs.noisemaker.dev/learn/geo-vs-seo-vs-aeo.md): How the three optimization disciplines differ, overlap, and sometimes conflict. - [How answer engines work](https://docs.noisemaker.dev/learn/how-answer-engines-work.md): The mechanics of retrieval, grounding, synthesis, and why single-shot checking is unreliable. - [LLM engines](https://docs.noisemaker.dev/learn/llm-engines.md): The engines ai-cmo.dev measures, their providers, and how engine weighting feeds the GEO score. - [Visibility metrics](https://docs.noisemaker.dev/learn/visibility-metrics.md): Mention rate, share of voice, position, sentiment, citations — defined and explained. - [Search Console and Analytics](https://docs.noisemaker.dev/learn/search-console-and-analytics.md): How GSC and GA4 data seed prompt generation and measure the demand side of visibility. - [Prompt sets](https://docs.noisemaker.dev/learn/prompt-sets.md): How curated prompt sets form the measurement instrument for answer-engine visibility. - [Reading your results](https://docs.noisemaker.dev/learn/reading-your-results.md): A practical guide to interpreting your first GEO measurement run. - [Glossary](https://docs.noisemaker.dev/learn/glossary.md): Every term used across the ai-cmo.dev docs, alphabetized. - [API overview](https://docs.noisemaker.dev/api-reference/overview.md): Use the workspace-scoped v1 API and its generated OpenAPI operations. - [Quickstart](https://docs.noisemaker.dev/api-reference/quickstart.md): Authenticate, list workspaces, read your score, start a run, and poll the job. - [Authentication](https://docs.noisemaker.dev/api-reference/authentication.md): Session cookies, API keys, scopes, lifecycle, and device authorization. - [Errors](https://docs.noisemaker.dev/api-reference/errors.md): Error envelope, error codes table, and retry guidance. - [Pagination and limits](https://docs.noisemaker.dev/api-reference/pagination-limits.md): Current collection semantics, hard result caps, concurrency, and input bounds. - [Workspaces](https://docs.noisemaker.dev/api-reference/workspaces.md): Create and manage workspaces, settings, profile, competitors, model configuration, and icon. - [Runs and jobs](https://docs.noisemaker.dev/api-reference/runs-and-jobs.md): Measurement lifecycle: start, poll, cancel, and read run detail. - [Scores and metrics](https://docs.noisemaker.dev/api-reference/scores-and-metrics.md): GEO score, scoreboard, timeseries, SEO dashboard, and page evaluation. - [Recommendations](https://docs.noisemaker.dev/api-reference/recommendations.md): List, transition, generate, and draft recommendations. - [Credits and billing](https://docs.noisemaker.dev/api-reference/credits-and-billing.md): Credit model, balance, usage, Stripe checkout, and webhook fulfilment. - [Chat](https://docs.noisemaker.dev/api-reference/chat.md): SSE chat stream, thread CRUD, and credit reservation. - [Webhooks](https://docs.noisemaker.dev/api-reference/webhooks.md): Stripe webhook endpoint, signature verification, and event handling. - [Health check endpoint](https://docs.noisemaker.dev/api-reference/health-check-endpoint.md) - [Start browser device authorization](https://docs.noisemaker.dev/api-reference/start-browser-device-authorization.md) - [Inspect a pending device authorization](https://docs.noisemaker.dev/api-reference/inspect-a-pending-device-authorization.md) - [Approve device access to a workspace](https://docs.noisemaker.dev/api-reference/approve-device-access-to-a-workspace.md) - [Deny a device authorization](https://docs.noisemaker.dev/api-reference/deny-a-device-authorization.md) - [Poll and claim an approved device API key once](https://docs.noisemaker.dev/api-reference/poll-and-claim-an-approved-device-api-key-once.md) - [Get the canonical ai-cmo.dev MCP install prompt](https://docs.noisemaker.dev/api-reference/get-the-canonical-ai-cmodev-mcp-install-prompt.md) - [Create an allowlisted user account](https://docs.noisemaker.dev/api-reference/create-an-allowlisted-user-account.md) - [Create a user session](https://docs.noisemaker.dev/api-reference/create-a-user-session.md) - [Revoke the current user session](https://docs.noisemaker.dev/api-reference/revoke-the-current-user-session.md) - [Get the current user and authorization context](https://docs.noisemaker.dev/api-reference/get-the-current-user-and-authorization-context.md) - [Start Google OAuth with PKCE](https://docs.noisemaker.dev/api-reference/start-google-oauth-with-pkce.md) - [Complete Google OAuth](https://docs.noisemaker.dev/api-reference/complete-google-oauth.md) - [Consume a single-use email verification token](https://docs.noisemaker.dev/api-reference/consume-a-single-use-email-verification-token.md) - [Resend email verification with cooldown](https://docs.noisemaker.dev/api-reference/resend-email-verification-with-cooldown.md) - [Stream a workspace-scoped assistant turn](https://docs.noisemaker.dev/api-reference/stream-a-workspace-scoped-assistant-turn.md) - [List workspace chat threads](https://docs.noisemaker.dev/api-reference/list-workspace-chat-threads.md) - [Create a workspace chat thread](https://docs.noisemaker.dev/api-reference/create-a-workspace-chat-thread.md) - [Get a chat thread and its messages](https://docs.noisemaker.dev/api-reference/get-a-chat-thread-and-its-messages.md) - [Delete a workspace chat thread](https://docs.noisemaker.dev/api-reference/delete-a-workspace-chat-thread.md) - [Update a workspace chat thread](https://docs.noisemaker.dev/api-reference/update-a-workspace-chat-thread.md) - [List accessible workspaces](https://docs.noisemaker.dev/api-reference/list-accessible-workspaces.md) - [Create a workspace](https://docs.noisemaker.dev/api-reference/create-a-workspace.md) - [Check whether a public username is available](https://docs.noisemaker.dev/api-reference/check-whether-a-public-username-is-available.md) - [Exchange a one-time setup token for a scoped connector API key](https://docs.noisemaker.dev/api-reference/exchange-a-one-time-setup-token-for-a-scoped-connector-api-key.md) - [Provision workspace email addresses for existing workspaces](https://docs.noisemaker.dev/api-reference/provision-workspace-email-addresses-for-existing-workspaces.md) - [Get workspace metrics](https://docs.noisemaker.dev/api-reference/get-workspace-metrics.md) - [Get workspace scoreboard](https://docs.noisemaker.dev/api-reference/get-workspace-scoreboard.md) - [Get deterministic SEO and GEO scores, insights, and technical evidence](https://docs.noisemaker.dev/api-reference/get-deterministic-seo-and-geo-scores-insights-and-technical-evidence.md) - [Start a metered technical audit, insight refresh, and deterministic score refresh](https://docs.noisemaker.dev/api-reference/start-a-metered-technical-audit-insight-refresh-and-deterministic-score-refresh.md) - [Get the explainable workspace GEO Score](https://docs.noisemaker.dev/api-reference/get-the-explainable-workspace-geo-score.md) - [Get workspace metric timeseries](https://docs.noisemaker.dev/api-reference/get-workspace-metric-timeseries.md) - [Get the explainable GEO Score using the compact brand route](https://docs.noisemaker.dev/api-reference/get-the-explainable-geo-score-using-the-compact-brand-route.md) - [Get visibility history using the compact brand route](https://docs.noisemaker.dev/api-reference/get-visibility-history-using-the-compact-brand-route.md) - [List workspace runs](https://docs.noisemaker.dev/api-reference/list-workspace-runs.md) - [Start a workspace run](https://docs.noisemaker.dev/api-reference/start-a-workspace-run.md) - [Get authoritative posted, held, and available workspace credit](https://docs.noisemaker.dev/api-reference/get-authoritative-posted-held-and-available-workspace-credit.md) - [Get minimal ledger and metered-operation data](https://docs.noisemaker.dev/api-reference/get-minimal-ledger-and-metered-operation-data.md) - [Post a mocked top-up receipt and immutable credit lot](https://docs.noisemaker.dev/api-reference/post-a-mocked-top-up-receipt-and-immutable-credit-lot.md) - [Create a Stripe Checkout session for a workspace credit top-up](https://docs.noisemaker.dev/api-reference/create-a-stripe-checkout-session-for-a-workspace-credit-top-up.md) - [List recent Stripe top-up receipts for post-redirect polling](https://docs.noisemaker.dev/api-reference/list-recent-stripe-top-up-receipts-for-post-redirect-polling.md) - [Signature-verified Stripe webhook receiver that fulfils top-ups](https://docs.noisemaker.dev/api-reference/signature-verified-stripe-webhook-receiver-that-fulfils-top-ups.md) - [Get a workspace run job](https://docs.noisemaker.dev/api-reference/get-a-workspace-run-job.md) - [Cancel a workspace run](https://docs.noisemaker.dev/api-reference/cancel-a-workspace-run.md) - [Get persisted run results grouped by engine](https://docs.noisemaker.dev/api-reference/get-persisted-run-results-grouped-by-engine.md) - [List workspace recommendations](https://docs.noisemaker.dev/api-reference/list-workspace-recommendations.md) - [Execute a CAS-guarded recommendation transition](https://docs.noisemaker.dev/api-reference/execute-a-cas-guarded-recommendation-transition.md) - [Deprecated alias for the transition endpoint](https://docs.noisemaker.dev/api-reference/deprecated-alias-for-the-transition-endpoint.md) - [Generate a draft comment for a reddit recommendation](https://docs.noisemaker.dev/api-reference/generate-a-draft-comment-for-a-reddit-recommendation.md) - [List workspace prompts](https://docs.noisemaker.dev/api-reference/list-workspace-prompts.md) - [Add a user-authored workspace prompt](https://docs.noisemaker.dev/api-reference/add-a-user-authored-workspace-prompt.md) - [Edit a workspace prompt's text, topic, or importance](https://docs.noisemaker.dev/api-reference/edit-a-workspace-prompts-text-topic-or-importance.md) - [Archive or restore a workspace prompt](https://docs.noisemaker.dev/api-reference/archive-or-restore-a-workspace-prompt.md) - [Poll the running prompt regeneration job status](https://docs.noisemaker.dev/api-reference/poll-the-running-prompt-regeneration-job-status.md) - [Start a prompt regeneration background job](https://docs.noisemaker.dev/api-reference/start-a-prompt-regeneration-background-job.md) - [Read durable prompt bias rejections and lineage](https://docs.noisemaker.dev/api-reference/read-durable-prompt-bias-rejections-and-lineage.md) - [List workspace research runs and staleness](https://docs.noisemaker.dev/api-reference/list-workspace-research-runs-and-staleness.md) - [Stage immutable workspace inputs and trigger research](https://docs.noisemaker.dev/api-reference/stage-immutable-workspace-inputs-and-trigger-research.md) - [Read a research run with artifact and source traceability](https://docs.noisemaker.dev/api-reference/read-a-research-run-with-artifact-and-source-traceability.md) - [List reports with stable identities](https://docs.noisemaker.dev/api-reference/list-reports-with-stable-identities.md) - [Start credit-gated idempotent SEO or GEO recommendation generation](https://docs.noisemaker.dev/api-reference/start-credit-gated-idempotent-seo-or-geo-recommendation-generation.md) - [Fetch a report by stable report identity](https://docs.noisemaker.dev/api-reference/fetch-a-report-by-stable-report-identity.md) - [List categorized GEO, SEO, combined, and run reports](https://docs.noisemaker.dev/api-reference/list-categorized-geo-seo-combined-and-run-reports.md) - [Get a categorized report and its pinned score snapshots](https://docs.noisemaker.dev/api-reference/get-a-categorized-report-and-its-pinned-score-snapshots.md) - [Get workspace settings](https://docs.noisemaker.dev/api-reference/get-workspace-settings.md) - [Update workspace settings](https://docs.noisemaker.dev/api-reference/update-workspace-settings.md) - [List workspace team members](https://docs.noisemaker.dev/api-reference/list-workspace-team-members.md) - [Invite a workspace team member](https://docs.noisemaker.dev/api-reference/invite-a-workspace-team-member.md) - [Remove a workspace team member](https://docs.noisemaker.dev/api-reference/remove-a-workspace-team-member.md) - [Update a workspace team member role](https://docs.noisemaker.dev/api-reference/update-a-workspace-team-member-role.md) - [Resend a pending team invitation](https://docs.noisemaker.dev/api-reference/resend-a-pending-team-invitation.md) - [Inspect a team invitation by token](https://docs.noisemaker.dev/api-reference/inspect-a-team-invitation-by-token.md) - [Accept a team invitation](https://docs.noisemaker.dev/api-reference/accept-a-team-invitation.md) - [Get workspace profile](https://docs.noisemaker.dev/api-reference/get-workspace-profile.md) - [Update workspace profile](https://docs.noisemaker.dev/api-reference/update-workspace-profile.md) - [Import workspace design markdown](https://docs.noisemaker.dev/api-reference/import-workspace-design-markdown.md) - [Extract a workspace design system](https://docs.noisemaker.dev/api-reference/extract-a-workspace-design-system.md) - [Upload a workspace icon](https://docs.noisemaker.dev/api-reference/upload-a-workspace-icon.md) - [Refresh a workspace icon from its domain](https://docs.noisemaker.dev/api-reference/refresh-a-workspace-icon-from-its-domain.md) - [Get connection presence only](https://docs.noisemaker.dev/api-reference/get-connection-presence-only.md) - [Test a workspace connection](https://docs.noisemaker.dev/api-reference/test-a-workspace-connection.md) - [Write fixed GA4/GSC connector credentials](https://docs.noisemaker.dev/api-reference/write-fixed-ga4gsc-connector-credentials.md) - [Mint a one-time connector setup token and agent prompt](https://docs.noisemaker.dev/api-reference/mint-a-one-time-connector-setup-token-and-agent-prompt.md) - [List masked workspace credentials](https://docs.noisemaker.dev/api-reference/list-masked-workspace-credentials.md) - [Set or rotate a workspace credential](https://docs.noisemaker.dev/api-reference/set-or-rotate-a-workspace-credential.md) - [Set a workspace credential](https://docs.noisemaker.dev/api-reference/set-a-workspace-credential.md) - [Delete a workspace credential](https://docs.noisemaker.dev/api-reference/delete-a-workspace-credential.md) - [List workspace competitors](https://docs.noisemaker.dev/api-reference/list-workspace-competitors.md) - [Update a workspace competitor by index](https://docs.noisemaker.dev/api-reference/update-a-workspace-competitor-by-index.md) - [Add a competitor to a workspace](https://docs.noisemaker.dev/api-reference/add-a-competitor-to-a-workspace.md) - [Remove a workspace competitor by index](https://docs.noisemaker.dev/api-reference/remove-a-workspace-competitor-by-index.md) - [Get the AI model for a workspace](https://docs.noisemaker.dev/api-reference/get-the-ai-model-for-a-workspace.md) - [Set the AI model for a workspace](https://docs.noisemaker.dev/api-reference/set-the-ai-model-for-a-workspace.md) - [Explicitly reveal a workspace credential](https://docs.noisemaker.dev/api-reference/explicitly-reveal-a-workspace-credential.md) - [List page evaluations for a workspace](https://docs.noisemaker.dev/api-reference/list-page-evaluations-for-a-workspace.md) - [Start a page evaluation job for a workspace](https://docs.noisemaker.dev/api-reference/start-a-page-evaluation-job-for-a-workspace.md) - [List workspace API keys](https://docs.noisemaker.dev/api-reference/list-workspace-api-keys.md) - [Create a workspace API key](https://docs.noisemaker.dev/api-reference/create-a-workspace-api-key.md) - [Get an API key detail](https://docs.noisemaker.dev/api-reference/get-an-api-key-detail.md) - [Resume delivery, acknowledge, revoke, rotate, or confirm rotation of an API key](https://docs.noisemaker.dev/api-reference/resume-delivery-acknowledge-revoke-rotate-or-confirm-rotation-of-an-api-key.md) - [Get the OpenAPI document](https://docs.noisemaker.dev/api-reference/get-the-openapi-document.md) ## Optional - [Open the dashboard](https://ai-cmo.dev/login)