OpenAPI 3.1.0 · v1.4.0

API Reference

68 endpoints across 11 resource groups. Bearer API key auth, JSON request and response bodies, one stable base URL. Every plan including Free ships with API access.

Base URL
https://aisightline.com/api/v1
Authentication
Bearer API key
Spec version
1.4.0 · 62 paths

Getting started

Authentication

Every request carries your API key as a bearer token. Keys are scoped to your organization and can be revoked at any time.

Authorization: Bearer fba_your_key_here

Create and revoke keys in API keys. A missing or invalid key returns 401.

Rate limits

Quota is metered per organization per billing month. Every response returns X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Exceeding quota returns 429 with code RATE_LIMIT_EXCEEDED.

PlanCalls / month
Free100
Starter500
Pro2,500
Business15,000
Agency50,000

Errors

Failures use a single envelope. Tier-gated errors also include upgrade_url.

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid input",
    "details": { }
  }
}
  • 400 validation or brand resolution
  • 401 missing or invalid API key
  • 403 plan does not allow this action
  • 429 rate limit exceeded

Selecting a brand

Most endpoints accept an optional brand_id query parameter. On a workspace with exactly one active brand you can omit it and the server resolves the brand for you. On a multi-brand workspace, omitting it returns 400 BRAND_REQUIRED with the full brand list in error.details.brands, so a client can recover without a second lookup.

68 endpoints

Visibility

10 endpoints

Current visibility scores, competitor rankings, share of voice

get/visibilityCurrent visibility score

Per-platform visibility score across ChatGPT, Google AIO, Perplexity, Claude, Gemini, Copilot.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Visibility snapshot
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded
get/competitorsCompetitor comparison

Ranked comparison versus tracked competitors with score deltas.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Ranked competitor list
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/share-of-voiceShare of AI Voice

AI mention rate plus competitive share of voice for the selected time period.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
periodqueryOptional7d | 30d | 90d

Responses

  • 200Mention rate + competitive SOV
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
get/content-gapsContent gaps (deprecated)

DEPRECATED. Use GET /prompts/gaps (Competitor Gaps) instead. This endpoint still responds but is no longer maintained. Queries where competitors appear in AI results but your brand does not.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
limitqueryOptionalinteger
platformqueryOptionalstring
competitorqueryOptionalstring
cursorqueryOptionalstring

Responses

  • 200Content gaps
get/prompts/gapsCompetitor gaps

Per-prompt competitor gap analysis ranked by an opportunity score (0-100, from absence weighted 0.65 + competitor dominance 0.35). Returns a deterministic hero insight (no LLM), a stat summary (prompts you are absent on, weak-source count, top rival, untracked rivals), and per-row competitor leaderboards with a "why you're losing" explanation on the top rows. Materialized at scan completion. Requires a paid plan (Starter and up; Free is locked).

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
filterqueryOptionalall | absent | weak_source | untracked_rivalSlice the gap list.
limitqueryOptionalinteger

Responses

  • 200Opportunity-scored gap rows with stats and hero insight
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded
get/topic-authorityTopic authority map

Keyword clusters with authority scores. Requires Pro tier or higher.

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)

Responses

  • 200Topic clusters
get/coveragePlatform coverage

Which AI platforms currently have data for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Coverage snapshot
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/competitor-scoresCompetitor scores

Per-competitor visibility scores for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Competitor score list
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/quadrantCompetitive quadrant

Positions the brand and its competitors on a visibility-versus-sentiment quadrant.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Quadrant positions
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded

Citations

4 endpoints

Domains and URLs cited in AI responses

get/citationsRanked citations

Domains cited in AI responses for your brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
limitqueryOptionalinteger
platformqueryOptionalstring

Responses

  • 200Ranked domains + enhanced citation data
get/citations/domainsDomain leaderboard

Stack-ranked domains cited in AI responses, with category labels and trend data.

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
rangequeryOptional7d | 30d | 90d
categoryqueryOptionalstring
limitqueryOptionalinteger

Responses

  • 200Domain leaderboard
get/citations/domains/categoriesCitation categories

Distribution of citation source categories (News, Education, Brand, etc.).

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
rangequeryOptional7d | 30d | 90d

Responses

  • 200Category distribution
get/citations/domains/{domain}Per-domain citation detail

Detailed citation analysis for a specific domain: cited URLs, brand vs competitor presence, freshness, trend. Tier-gated response shape (Free: summary only; Starter: + URLs; Pro+: + competitor co-mentions). PRD-2026-049: pass prompt_id to scope the view to one prompt's citations on this domain (time range is ignored, fanout sources excluded). Mirrors the portal's per-prompt leaderboard drilldown.

Parameters

NameInRequiredTypeDescription
domainpathRequiredstringDomain to inspect (e.g. reddit.com)
brand_idqueryRequiredstring (uuid)
rangequeryOptional7d | 30d | 90dTime range. Ignored when prompt_id is set.
pagequeryOptionalinteger
page_sizequeryOptionalinteger
prompt_idqueryOptionalstring (uuid)PRD-2026-049: when set, scope to one prompt's citations on this domain. Response includes promptId + promptText fields. Time range is ignored. Fanout sources are excluded.

Responses

  • 200Domain detail
  • 404Domain not found in citation data for this brand

Prompts

7 endpoints

Tracked queries that AI Sightline monitors

get/promptsList tracked prompts

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
includequeryOptionalstringComma-separated list of optional data to attach. PRD-2026-049: include=citations adds distinct_cited_domains (number of unique URLs cited per prompt) + your_brand_cited (boolean) to each row via a grouped citations aggregation query. One extra DB query: opt-in.

Responses

  • 200Array of tracked prompts
post/promptsCreate a tracked prompt

Requires Pro tier or higher for MCP write access.

Request body (application/json, required)

FieldTypeRequiredDescription
textstringRequiredThe prompt text to track
brand_idstring (uuid)OptionalOptional. Auto-resolved when absent.

Responses

  • 201Prompt created
  • 400Validation or brand-resolution error
  • 403Tier limit: the caller's plan does not allow this action
delete/prompts/{id}Delete a prompt

Requires Pro tier or higher.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Deleted
  • 404Prompt not found
get/prompts/{id}/citationsPer-prompt competitor citation leaderboard

PRD-2026-049. Returns every domain cited on this prompt grouped by tracked competitor / untracked brand / reference / community / video / other, with per-platform pills and total URL count. The YOU row is always at index 0 (even when zero citations). Fanout sources (URLs the model searched but did not cite) are excluded. For just the per-prompt cited URLs from a single domain, use /citations/domains/{domain}?prompt_id={id} instead.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)Prompt UUID

Responses

  • 200Leaderboard payload. data.leaderboard is an array of rows, data.totals contains distinct_domains and your_platforms_cited, data.brand_domain + data.brand_name carry the brand identity.
  • 404Prompt not found
post/prompts/generateAuto-generate prompts from brand context

Uses your brand's keywords, description, and industry. Requires Pro tier or higher.

Request body (application/json, optional)

FieldTypeRequiredDescription
brand_idstring (uuid)OptionalOptional. Auto-resolved when absent.

Responses

  • 201Generated prompts
get/prompt-resultsPer-prompt per-platform scan results

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
prompt_idqueryOptionalstring (uuid)

Responses

  • 200Prompt results
post/prompts/url-discoverDiscover prompts from a URL

Suggest tracked prompts derived from the content of a supplied URL.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 200Suggested prompts
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded

Recommendations

5 endpoints

Prioritized actions to improve visibility

get/recommendationsPrioritized recommendations

Actions to improve visibility. Response shape is tier-gated: Free tier sees only titles, Pro+ sees full action plans.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
statusqueryOptionalpending | accepted | dismissed | completed
typequeryOptionalstring
impactqueryOptionalhigh | medium | low
limitqueryOptionalinteger

Responses

  • 200Recommendation list
get/recommendations/impactImpact report

Points gained, actions completed, per-recommendation score deltas. Requires Pro tier or higher.

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
rangequeryOptional30d | 90d | 180d

Responses

  • 200Impact report
post/recommendations/{id}/acceptAccept a recommendation

Requires Starter tier or higher.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Request body (application/json, optional)

FieldTypeRequiredDescription
notesstringOptional

Responses

  • 200Accepted
post/recommendations/{id}/dismissDismiss a recommendation

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Request body (application/json, optional)

FieldTypeRequiredDescription
reasonstringOptional

Responses

  • 200Dismissed
post/recommendations/{id}/completeMark a recommendation complete

Snapshots the current visibility score so impact can be measured. Requires Starter tier or higher.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Completed

Sentiment

3 endpoints

Brand Sentiment Index (BSI) over time and across competitors

get/sentiment/brandBrand Sentiment Index (BSI)

-100 to +100 score with directional trend. How positively AI platforms talk about the brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
rangequeryOptional7d | 30d | 90d

Responses

  • 200BSI snapshot
get/sentiment/competitorsBSI versus competitors

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
rangequeryOptional7d | 30d | 90d

Responses

  • 200Ranked BSI table
get/sentiment/trendBSI trend over time

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
entity_namequeryRequiredstring
rangequeryOptional30d | 90d

Responses

  • 200BSI points over time

Brands

6 endpoints

Brand management for multi-brand workspaces

get/brandsList brands

Responses

  • 200Brands in this organization
post/brandsCreate a brand

Requires Pro tier or higher for MCP write access. Creating a brand consumes a brand slot against your tier limit.

Request body (application/json, required)

FieldTypeRequiredDescription
namestringRequired
website_urlstring (uri)Required
descriptionstringOptional
industrystringOptional
keywordsarray of stringOptional
competitorsarray of objectOptional

Responses

  • 201Brand created
  • 403Tier limit: the caller's plan does not allow this action
get/brands/{brandId}Get a brand

Parameters

NameInRequiredTypeDescription
brandIdpathRequiredstring (uuid)

Responses

  • 200Brand details
  • 404Brand not found
post/brands/{brandId}/archiveArchive a brand

Removes the brand from active scanning and frees quota. Reversible via /brands/{brandId}/reactivate.

Parameters

NameInRequiredTypeDescription
brandIdpathRequiredstring (uuid)

Responses

  • 200Archived
post/brands/{brandId}/reactivateReactivate an archived brand

Parameters

NameInRequiredTypeDescription
brandIdpathRequiredstring (uuid)

Responses

  • 200Reactivated
post/brandCreate a brand

Register a new brand in the workspace (subject to the tier brand limit).

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 201Brand created
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded

Discoveries

3 endpoints

Brands mentioned alongside yours that you do not track yet

get/discoveriesDiscovered brands

Brands AI platforms mention alongside yours that you have not added as competitors.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Array of discoveries
post/discoveries/{id}/acceptAccept a discovery

Promote a discovered brand into a tracked competitor.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Discovery accepted
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded
post/discoveries/{id}/dismissDismiss a discovery

Dismiss a discovered brand so it is no longer surfaced.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Discovery dismissed
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded

Account

10 endpoints

Usage, quota, and organization-level data

get/usageCurrent usage

Monthly API call count, rate limit remaining, billing period window.

Responses

  • 200Usage snapshot
get/org/quotaOrganization quota

Prompts used vs limit, brand count, per-brand keyword and competitor limits.

Responses

  • 200Quota summary
get/statusPlatform status

Live circuit-breaker state for each AI platform, so you can surface a degradation banner. Reflects breaker state only: operational means the breaker is closed, not a guarantee of live data (a platform may be skipped by a separate rate-limit guardrail, or serve cached results).

Responses

  • 200Per-platform status snapshot
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/summaryExecutive summary

AI-generated executive summary of the brand's current visibility.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Executive summary
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/refreshRefresh status

Current on-demand refresh availability for the workspace.

Responses

  • 200Refresh status
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/refreshTrigger a refresh

Request an on-demand data refresh for the selected brand.

Request body (application/json, optional)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 200Refresh accepted
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded
get/digest/preferencesGet digest preferences

Current email digest cadence and channel preferences.

Responses

  • 200Digest preferences
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/digest/preferencesUpdate digest preferences

Update the email digest cadence and channel preferences.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 200Preferences updated
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/prospect-reportsGenerate a prospect report

Generate a shareable prospect visibility report for a target domain.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 201Prospect report created
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded
post/share/createCreate a share link

Create a public, read-only share link for a brand report.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 201Share link created
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded

Content

6 endpoints

AI-readability auditing and content generation

post/content-auditStart AI-readability audit

Scores structured data, FAQ sections, freshness, and heading structure. Requires Pro tier or higher.

Request body (application/json, required)

FieldTypeRequiredDescription
brand_idstring (uuid)Required
page_urlsarray of string (uri)Optional
max_pagesintegerOptional

Responses

  • 202Audit queued
post/content/generateGenerate AI-optimized content

Produces briefs, articles, or FAQs. Requires Business tier or higher.

Request body (application/json, required)

FieldTypeRequiredDescription
brand_idstring (uuid)Required
typebrief | article | faqRequired
topicstringRequired
target_queriesarray of stringOptional
titlestringOptional
tonestringOptional

Responses

  • 202Generation queued
get/schema-suggestionsSchema markup recommendations

JSON-LD suggestions and detected schemas. Requires Starter tier or higher.

Parameters

NameInRequiredTypeDescription
brand_idqueryRequiredstring (uuid)
page_urlqueryOptionalstring (uri)

Responses

  • 200Suggestions
get/content/{id}Get generated content

Retrieve a previously generated content item by id.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Content item
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded
get/content-audit/{id}Get content audit

Retrieve an AI-readability content audit by id.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Content audit
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded
post/content-gaps/{id}/briefGenerate a content brief

Generate a content brief for a specific competitor content gap.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Content brief
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded

Traffic

9 endpoints

AI crawler and referral traffic captured by the AI Traffic pixel

get/traffic/summaryAI traffic summary

Aggregate AI crawler and referral traffic for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Traffic summary
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/traffic/timelineAI traffic timeline

Time-series of AI crawler and referral traffic for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Traffic timeline
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/traffic/botsAI bot crawls

Cursor-paginated list of AI crawler visits for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
limitqueryOptionalinteger
cursorqueryOptionalstringOpaque cursor from the previous page's meta.cursor.

Responses

  • 200Bot crawl list
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/traffic/referralsAI referrals

Cursor-paginated list of AI-platform referral visits for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.
limitqueryOptionalinteger
cursorqueryOptionalstringOpaque cursor from the previous page's meta.cursor.

Responses

  • 200Referral list
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/traffic/discoveryAI discovery-file events

Requests for llms.txt and other AI discovery files for the selected brand.

Parameters

NameInRequiredTypeDescription
brand_idqueryOptionalstring (uuid)Target brand. Optional on single-brand workspaces: the server auto-resolves. On multi-brand workspaces, omitting this returns 400 BRAND_REQUIRED with the list of brands in error.details.brands.

Responses

  • 200Discovery-file events
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/traffic/install/verifyVerify pixel install

Verify that the AI Traffic pixel is installed and reporting for a website.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 200Install verification result
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
get/traffic/website-keysList website keys

List the AI Traffic pixel website keys for the workspace.

Responses

  • 200Website key list
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/traffic/website-keysCreate a website key

Create a new AI Traffic pixel website key.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 201Website key created
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 429Rate limit exceeded
delete/traffic/website-keys/{id}Delete a website key

Revoke an AI Traffic pixel website key.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Website key deleted
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded

Webhooks

5 endpoints

Outbound event subscriptions (score changes, competitors, scan completion)

get/webhooksList webhooks

List the workspace's outbound webhook subscriptions.

Responses

  • 200Webhook list
  • 401Missing or invalid API key
  • 429Rate limit exceeded
post/webhooksCreate a webhook

Subscribe an HTTPS endpoint to events (score.changed, score.threshold, competitor.new, scan.completed). Deliveries are HMAC-SHA256 signed.

Request body (application/json, required)

Accepts a JSON object. Individual fields for this endpoint are not enumerated in the spec yet.

Responses

  • 201Webhook created
  • 400Validation or brand-resolution error
  • 401Missing or invalid API key
  • 403Tier limit: the caller's plan does not allow this action
  • 429Rate limit exceeded
delete/webhooks/{id}Delete a webhook

Remove an outbound webhook subscription.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Webhook deleted
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded
get/webhooks/{id}/deliveriesList webhook deliveries

Recent delivery attempts (status, response code, timestamps) for a webhook.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Delivery log
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded
post/webhooks/{id}/testSend a test delivery

Send a signed test payload to the webhook's endpoint.

Parameters

NameInRequiredTypeDescription
idpathRequiredstring (uuid)

Responses

  • 200Test delivery result
  • 401Missing or invalid API key
  • 404Validation or brand-resolution error
  • 429Rate limit exceeded

Building on the API?

Pull the machine readable spec into your codegen pipeline, or email the founder directly with integration questions. Response time is 24 hours.