AIEO.ee

API Route Inventory

Every public REST endpoint, generated from the running route table and annotated with auth and scope.

Generated from createApp() — the same route table the API server runs. Internal platform/admin/webhook endpoints are excluded.

Base URL: https://app.aieo.ee/api · Auth: Authorization: Bearer aieo_... (API key) or the dashboard session cookie.

Mutating calls (POST/PATCH/DELETE) with an API key require the write scope; read-only keys get 403. API keys always act on their own organization; the x-org-id header is a session-auth feature for dashboard users with multiple memberships and does not switch an API key's org.

Hand-written request/response examples for core workflows will be added in the next documentation phase; this inventory is the complete, generated surface.

AI Visibility (GEO)

MethodPathAuthDescription
DELETE/api/projects/:projectId/geo/prompts/:promptIdsession or API keyDelete a tracked prompt.
GET/api/projects/:projectId/geo/citationssession or API keyWhich domains AI engines cite for the tracked prompts.
GET/api/projects/:projectId/geo/enginessession or API keyPer-engine visibility breakdown (aggregates blend live and sampled runs together).
GET/api/projects/:projectId/geo/promptssession or API keyTracked prompt list with per-prompt stats.
GET/api/projects/:projectId/geo/runssession or API keyGEO run history (per prompt×engine×day).
GET/api/projects/:projectId/geo/runs/:runIdsession or API keyOne GEO run detail: raw answer, mentions, citations.
GET/api/projects/:projectId/geo/seriessession or API keyDaily visibility time series for charts.
GET/api/projects/:projectId/geo/sovsession or API keyShare of voice by brand across AI answers.
GET/api/projects/:projectId/geo/summarysession or API keyAI visibility summary: mention rate, citation rate over a lookback window (?days).
PATCH/api/projects/:projectId/geo/prompts/:promptIdsession or API keyUpdate a prompt (text/engines/active; cadence is set at creation).
POST/api/projects/:projectId/geo/promptssession or API keyCreate a tracked prompt (text, category, engines, cadence).
POST/api/projects/:projectId/geo/prompts/:promptId/runsession or API keyRun one prompt across its engines now (1 credit per prompt×engine, quota-checked).
POST/api/projects/:projectId/geo/run-allsession or API keyRun all active prompts now (credit + daily quota pre-checked).

SEO Intelligence

MethodPathAuthDescription
DELETE/api/projects/:projectId/seo/keywords/:keywordIdsession or API keyRemove a tracked keyword.
GET/api/projects/:projectId/seo/backlink-gapsession or API keyBacklinks competitors have and the project lacks.
GET/api/projects/:projectId/seo/backlinkssession or API keyBacklink profile summary and top links.
GET/api/projects/:projectId/seo/competitor-discoverysession or API keyDiscover competitors sharing SERPs from stored snapshots (overlap score).
GET/api/projects/:projectId/seo/competitor-discovery/:domain/keywordssession or API keyCo-occurrence keyword drill-down for one discovered competitor.
GET/api/projects/:projectId/seo/competitorssession or API keyCompetitor matrix: overlap and position comparison.
GET/api/projects/:projectId/seo/competitors/missingsession or API keyKeywords competitors rank for and the project does not (?brandId).
GET/api/projects/:projectId/seo/distributionsession or API keyCumulative position buckets (top3, top10, top20, top100).
GET/api/projects/:projectId/seo/domain-overviewsession or API keyAggregated view of the project's tracked keywords: rank summary, estimated traffic, top pages, SERP features, stored backlinks, competitor matrix.
GET/api/projects/:projectId/seo/intersectionsession or API keyKeywords all selected competitors (2-4) hold top-20 for in the last 10 days, with each competitor's position.
GET/api/projects/:projectId/seo/keyword-gapsession or API keyKeyword gap vs selected competitors.
GET/api/projects/:projectId/seo/keywordssession or API keyTracked keyword table with positions, volume, difficulty, intent.
GET/api/projects/:projectId/seo/serpsession or API keyLive SERP lookup for one keyword (calls the provider on demand).
GET/api/projects/:projectId/seo/serp-featuressession or API keySERP feature stats over the last 7 days (demo-mode heuristic flags only; real feature detection not wired in).
GET/api/projects/:projectId/seo/summarysession or API keySEO headline metrics (avg position, tracked keywords, estimated traffic).
POST/api/projects/:projectId/competitorssession or API keyAdd a competitor brand/domain to the project.
POST/api/projects/:projectId/seo/keywordssession or API keyAdd tracked keywords (plan-limited).
POST/api/projects/:projectId/seo/refreshsession or API keyQueue a rank-check refresh for the project.
POST/api/projects/:projectId/seo/researchsession or API keyKeyword research for a seed term (DataForSEO when configured).

Search Console & Integrations

MethodPathAuthDescription
DELETE/api/projects/:projectId/integrations/gscsession, org owner/admin onlyDisconnect GSC (drops stored metrics).
GET/api/projects/:projectId/integrations/gscsession or API keyGSC connection status for the project.
GET/api/projects/:projectId/integrations/gsc/auth-urlsession, org owner/admin onlyStart GSC OAuth (one-time state URL).
GET/api/projects/:projectId/search-analytics/rowssession or API keyGSC row detail by query or page dimension, aggregated over the window (impressions-weighted CTR/position).
GET/api/projects/:projectId/search-analytics/summarysession or API keyGoogle Search Console summary (clicks, impressions, CTR, position).
PATCH/api/projects/:projectId/integrations/gscsession, org owner/admin onlyUpdate GSC connection settings (site URL).
POST/api/projects/:projectId/integrations/gsc/confirmsession, org owner/admin onlyConfirm site selection after OAuth (pending_token flow).
POST/api/projects/:projectId/integrations/gsc/syncsession or API keyTrigger a GSC data sync (day-dimension pull, 3-day re-pull).

Content Gaps & Briefs

MethodPathAuthDescription
GET/api/projects/:projectId/content/briefssession or API keyList generated content briefs.
GET/api/projects/:projectId/content/briefs/:briefIdsession or API keyOne content brief (outline, entities, FAQ).
GET/api/projects/:projectId/content/gapssession or API keyContent gaps: keywords competitors rank top-10 for and the project does not.
POST/api/projects/:projectId/content/gaps/:gapId/briefsession or API keyGenerate a content brief for a gap (credits pre-consumed, refunded on failure).
POST/api/projects/:projectId/content/recompute-gapssession or API keyRecompute content gaps from current rankings.

Technical Audit

MethodPathAuthDescription
GET/api/projects/:projectId/audit/latestsession or API keyLatest audit run with scored issues.
POST/api/projects/:projectId/auditsession or API keyQueue a technical SEO site audit (crawler, maxPages).

Growth Agent & Recommendations

MethodPathAuthDescription
GET/api/projects/:projectId/agent/conversationssession or API keyList Growth Agent conversations.
GET/api/projects/:projectId/agent/conversations/:conversationId/messagessession or API keyMessages of one conversation.
GET/api/projects/:projectId/recommendationssession or API keyPrioritized growth recommendations for the project.
PATCH/api/projects/:projectId/recommendations/:recIdsession or API keyUpdate recommendation status (done/dismissed).
POST/api/projects/:projectId/agent/analyzesession or API keyRun the full diagnostic analysis (credit-metered).
POST/api/projects/:projectId/agent/chatsession or API keySend a message to the Growth Agent (credit-metered, refunded on provider failure).
POST/api/projects/:projectId/agent/conversationssession or API keyCreate a Growth Agent conversation.

Organization, Keys & Billing

MethodPathAuthDescription
DELETE/api/org/keys/:keyIdsession, org owner/admin onlyRevoke an API key — owner/admin only.
GET/api/orgsession or API keyActive organization profile: plan, entitlements, seat count.
GET/api/org/billing/invoicessession, org owner/admin onlyInvoice history from Stripe.
GET/api/org/billing/preview-changesession, org owner/admin onlyPreview a plan change with line-level proration (30-min freshness).
GET/api/org/billing/session-statussession, org owner/admin onlyPoll a checkout session's completion status.
GET/api/org/invitationssession, org owner/admin onlyList pending member invitations — owner/admin only.
GET/api/org/keyssession or API keyList the org's API keys (masked).
GET/api/org/usagesession or API keyCurrent-period usage vs plan limits (runs, briefs, keywords, credits).
PATCH/api/orgsession, org owner/admin onlyUpdate organization settings (name etc.) — owner/admin sessions only.
POST/api/org/billing/cancelsession, org owner/admin onlyCancel the subscription (at period end or immediately per body).
POST/api/org/billing/change-plansession, org owner/admin onlyExecute a previewed plan change (always_invoice + proration_date).
POST/api/org/billing/checkoutsession, org owner/admin onlyCreate a Stripe Checkout session for a plan (seat quantity aware).
POST/api/org/billing/portalsession, org owner/admin onlyOpen a Stripe Billing Portal session (invoices, payment methods).
POST/api/org/billing/resumesession, org owner/admin onlyResume a pending cancellation.
POST/api/org/billing/topupsession, org owner/admin onlyOne-off credit top-up checkout.
POST/api/org/keyssession, org owner/admin onlyCreate an API key (optional read+write scope) — owner/admin only.
POST/api/org/leavesession cookieLeave the organization (refuses last owner; syncs seat quantity).
POST/api/org/transfer-ownershipsession, org owner/admin onlyTransfer org ownership atomically (org lock + role swap).

Projects & Overview

MethodPathAuthDescription
GET/api/projectssession or API keyList projects (websites) in the active org.
GET/api/projects/:projectId/overviewsession or API keyDashboard overview: Growth Score inputs, trend highlights.
GET/api/projects/:projectId/overview/reportsession or API keyWhite-label HTML growth report for the project.
POST/api/projectssession or API keyCreate a project (domain, name) — plan-limited.

Account & Notifications

MethodPathAuthDescription
GET/api/account/exportsession cookieExport the account's personal data (GDPR-style JSON export).
GET/api/notificationssession only (no API keys)List in-app notifications for the current user (API keys rejected).
GET/api/notifications/unread-countsession only (no API keys)Unread notification count.
PATCH/api/account/preferencessession cookieSet the account locale ('en' | 'zh') driving UI and transactional mail language.
POST/api/account/deletesession cookieDelete the account (cancels Stripe subscriptions, cascades sole-org data; 409 when blocked by shared orgs).
POST/api/notifications/mark-readsession only (no API keys)Mark notifications read (by ids or all).

Free Tools

MethodPathAuthDescription
POST/api/tools/robotssession or API keyFree tool: fetch and parse a site's robots.txt.
POST/api/tools/schemasession or API keyFree tool: extract structured data (schema.org) from a URL.
POST/api/tools/serpsession or API keyFree tool: live SERP check for a query (DataForSEO or mock pool).
POST/api/tools/sitemapsession or API keyFree tool: fetch and summarize a site's sitemap.

Meta

MethodPathAuthDescription
GET/healthpublicLiveness probe: service name and the AI engine IDs currently configured.

On this page