Data Formats and Errors

The exact shape of every file you can export from 99Visibility, the enums inside them, and the error envelope the dashboard receives. Use it to parse exports in a spreadsheet, a script or an agent. There is no public API; see API and programmatic access.

Enums

NameValues
Platform keychatgpt (ChatGPT), aio (Google AI Overviews), ai_mode (Google AI Mode), google (Gemini), perplexity (Perplexity), claude (Claude)
Audit statusrunning, pending, completed, failed
Sentimentpositive, neutral, negative
Flag typeincorrect, hallucination, outdated (not emitted)
Flag severitycritical, moderate, minor
Recommendation categoryvisibility_gap, accuracy, platform_specific, competitor, content_structure, schema, freshness, eeat, quick_win
Recommendation prioritycritical, high, medium, low
Recommendation effortlow, medium, high
Fact categorypricing, feature, founding, leadership, other

Audit JSON

File name 99visibility-audit-[brand]-[YYYY-MM-DD].json. Top-level keys:

KeyContents
exported_at, exported_byISO timestamp; the string "99Visibility (https://www.99visibility.com)".
auditid, status, score, breakdown {mentionRate, accuracyRate, sentimentScore, citationRate}, created_at, completed_at, competitor_data, accuracy_checked, started_by, region (the country the engines were asked from), not_fact_checked, previous_score, previous_score_comparable, previous_score_reason, new_market_baseline.
brandid, name, url, facts [{key, value, category}].
platform_results[]id, platform, score, mention_count, query_count, breakdown, raw_results[] {keyword, mentioned, mention_count, truncated}, query_results[], unmeasured[] {keyword, reason}.
query_results[] (inside each platform)keyword, prompt, mentioned, mention_count, sentiment, sentiment_score, score, context, raw_response, citations[] {url, title, is_own_site}.
accuracy_flags[]type, severity, claim, fact, explanation. Below Starter, only type and severity.
accuracy_flags_gatedtrue when the flag text was withheld for the plan.
recommendations[]id, audit_id, category, priority, title, action, why, effort, target_url, completed, completed_at, created_at.

Audit CSV

File name 99visibility-audit-[brand]-[YYYY-MM-DD].csv. Every cell is quoted. Up to three blocks, separated by an empty row:

  1. Results: Platform, Prompt, Mentioned, Mention Count, Platform Score. One row per prompt per platform; Mentioned is Yes or No.
  2. "Accuracy Issues": Type, Severity, AI Claim, Actual Fact, Explanation. Below Starter, a count line instead.
  3. "Recommendations": Priority, Category, Title, Action, Effort, Completed.

Other CSVs

  • Prompts (99visibility-prompts-[brand]-[date].csv): Prompt, Type, Topic, Status, Visibility Score, Mention Rate, Sentiment, Search Volume, Competition, CPC, ChatGPT, Google AI Overviews, Gemini, Perplexity, Claude, Created. Only the rows on screen.
  • Citation gaps (99visibility-citation-gaps-[brand]-[date].csv): Domain, Gap Score, Competitor Citations, Platforms, Prompts, Top URL.

Account data export

File name 99visibility-data-export-[date].json. Keys: exported_at, user {id, email, created_at}, profile, then one array per table, named after it: brands, keywords, recommended_queries, audits, platform_results, query_results, citations, retrieved_sources, accuracy_flags, accuracy_claim_reviews, recommendations, access_checks, site_health_checks, ai_referral_events, ai_referral_daily, session_answers, extension_tokens, report_exports, agent_runs, agent_steps, support_tickets, subscription_cancellations, outreach_targets, teams, team_members, team_invites, referral_codes, referrals, quest_completions, quest_rewards, academy_lesson_passes, academy_exam_attempts, academy_certificates, login_activity. query_results holds the AI answers; agent_runs and agent_steps hold your Agent V conversations; subscription_cancellations holds the reason and feedback you gave when cancelling. Every row is yours: a table you share with other accounts, such as a team, contributes only your own rows. If any part of your data cannot be read, the export answers ACCOUNT_EXPORT_FAILED (500) and no file, never a file with parts missing.

PDF report

A rendering of the audit page as it is on screen; collapsed sections are left out. Only a completed audit can be exported. Monthly allowance: Starter 3, Growth 10 and Pro 50 a month; the Free plan has none. Exporting the same audit again in the same month uses no extra report.

Error envelope

Every error the dashboard receives has the body {"error": "message", "code": "DOMAIN_DESCRIPTION"}. The message is for people and may be reworded; the code is stable. Common codes: AUTH_UNAUTHORIZED (401), AUTH_FORBIDDEN (403), AUDIT_NOT_FOUND (404), QUOTA_AUDIT_LIMIT, QUOTA_AGENT_RUN_LIMIT, SPEND_CAP_REACHED (503), RATE_LIMITED (429). The full list of messages is in Error messages.