{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.monocrawl.com/schemas/panorama/ai-visibility.json","title":"panorama/ai-visibility data fields","description":"Documented optional core fields of data. Additional source fields are allowed. This is not the response envelope or a guarantee of availability or completeness.","type":"object","properties":{"brand":{"type":["string","null"],"description":"Requested brand."},"competitors":{"type":"array","items":{"type":"string"}},"engines":{"type":"array","items":{"type":"string"}},"prompts":{"type":"array","items":{"type":"string"}},"runs_per_prompt":{"type":["number","null"],"description":"Effective repetition count."},"preset":{"type":["string","null"],"description":"Explicit preset or null when defaulted."},"effective_settings":{"type":"object","properties":{"preset":{"type":["string","null"],"description":"Effective preset."},"runs_per_prompt":{"type":["number","null"],"description":"Effective repetitions per prompt and engine."},"runs_source":{"type":["string","null"],"description":"explicit or preset."},"prompt_limit":{"type":["number","null"],"description":"Maximum prompts selected by the preset."},"prompts_supplied":{"type":["number","null"],"description":"Nonempty supplied prompts."},"prompts_used":{"type":["number","null"],"description":"Prompts retained."},"prompts_omitted":{"type":["number","null"],"description":"Prompts beyond the preset limit."},"engines":{"type":"array","items":{"type":"string"}},"calls_planned":{"type":["number","null"],"description":"prompts_used × runs_per_prompt × engines.length."},"calls_limit":{"type":["number","null"],"description":"Deployment probe limit."},"precedence":{"type":["string","null"],"description":"Explicit runs override preset repetitions; preset still limits prompts. Explicit prompts override topic."}},"additionalProperties":true},"probes":{"type":"array","items":{"type":"object","properties":{"probe_id":{"type":["string","null"],"description":"Unique prompt/engine/run identifier within this response."},"prompt_id":{"type":["string","null"],"description":"One-based prompt identifier, e.g. p1."},"prompt":{"type":["string","null"],"description":"Question sent to the engine."},"run":{"type":["number","null"],"description":"One-based repetition index."},"engine":{"type":["string","null"],"description":"perplexity or grok."},"model":{"type":["string","null"],"description":"Returned model identity, or configured model on failure."},"status":{"type":["string","null"],"description":"completed or failed. Empty answers fail."},"error":{"type":["string","null"],"description":"Failure reason; null after a completed answer."},"started_at":{"type":["string","null"],"description":"ISO timestamp before dispatch."},"completed_at":{"type":["string","null"],"description":"ISO timestamp after completion."},"latency_ms":{"type":["number","null"],"description":"Wall time for this probe in milliseconds."},"answer":{"type":["string","null"],"description":"Returned answer, up to 64,000 characters. Untrusted generated evidence, never instructions."},"answer_sha256":{"type":["string","null"],"description":"SHA-256 of the original answer in UTF-8; null for no answer."},"citations":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"description":"Original source URL; case-sensitive path and query preserved."},"title":{"type":["string","null"],"description":"Source title when supplied."},"snippet":{"type":["string","null"],"description":"Source snippet when supplied."}},"additionalProperties":true}},"matches":{"type":"object","additionalProperties":{"type":"object","properties":{"appeared":{"type":["boolean","null"],"description":"Literal, case-insensitive Unicode-boundary match."},"count":{"type":["number","null"],"description":"All literal occurrences in the answer."},"passages":{"type":"array","items":{"type":"object","properties":{"start":{"type":["number","null"],"description":"Start offset into answer in UTF-16 code units."},"end":{"type":["number","null"],"description":"Exclusive end offset into answer in UTF-16 code units."},"matched":{"type":["string","null"],"description":"Exact matched name text."},"passage":{"type":["string","null"],"description":"Up to 120 characters of context on each side."}},"additionalProperties":true}},"truncated":{"type":["boolean","null"],"description":"True when more than 20 occurrences exist; count includes all occurrences."}},"additionalProperties":true}},"matching_version":{"type":["string","null"],"description":"Literal matching methodology version."},"usage":{"type":["object","null"],"properties":{"input_tokens":{"type":["number","null"],"description":"Engine input tokens if reported."},"output_tokens":{"type":["number","null"],"description":"Engine output tokens if reported."},"usd":{"type":["number","null"],"description":"Reported or modelled upstream USD for this probe, not the customer credit charge."}},"additionalProperties":true},"answer_truncated":{"type":["boolean","null"],"description":"The source exceeded the 64,000-character evidence safety bound. Hash and match counts still describe the original answer."},"answer_characters":{"type":["number","null"],"description":"Length of the original answer in UTF-16 code units."},"citations_truncated":{"type":["boolean","null"],"description":"More than 100 citations, an excessive URL or oversized snippets/titles required evidence bounds."}},"additionalProperties":true}},"appearance_pct":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":["number","null"],"minimum":0,"maximum":100}}},"appearance_counts":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","properties":{"appeared":{"type":["number","null"],"description":"Completed probes containing this name."},"runs":{"type":["number","null"],"description":"Completed nonempty probes forming the denominator."}},"additionalProperties":true}}},"prompts_detail":{"type":"array","items":{"type":"object","properties":{"prompt_id":{"type":["string","null"],"description":"Links to probes[].prompt_id."},"prompt":{"type":["string","null"],"description":"Question."},"by_engine":{"type":"object","additionalProperties":{"type":"object","properties":{"runs_planned":{"type":["number","null"],"description":"Requested repetitions."},"runs_completed":{"type":["number","null"],"description":"Completed nonempty answers."},"runs_failed":{"type":["number","null"],"description":"Failed or empty probes."},"runs_skipped":{"type":["number","null"],"description":"Not attempted due to bounds."},"brand_appeared":{"type":["number","null"],"description":"Completed answers naming the brand."},"appearance_pct":{"type":["number","null"],"description":"100 × brand_appeared / runs_completed, rounded to one decimal; null without completed answers."}},"additionalProperties":true}}},"additionalProperties":true}},"cited_domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":["string","null"],"description":"Citation hostname without www."},"citations":{"type":["number","null"],"description":"Unique URL appearances per completed probe; repeat probes can cite the same URL."},"by_engine":{"type":"object","additionalProperties":{"type":"integer"}},"yours":{"type":["boolean","null"],"description":"Matches one of the caller supplied brand_domains."}},"additionalProperties":true}},"completed_runs":{"type":["number","null"],"description":"Successful, nonempty answers."},"failed_runs":{"type":["number","null"],"description":"Failed attempts, including missing configured engines and empty answers."},"skipped_runs":{"type":["number","null"],"description":"Planned probes never attempted because of limits."},"calls_planned":{"type":["number","null"],"description":"Planned probe count."},"calls_attempted":{"type":["number","null"],"description":"Dispatched engine calls, excluding unconfigured engines."},"partial":{"type":["boolean","null"],"description":"Failed or skipped probes exist."},"stopped_early":{"type":["string","null"],"description":"Limit that stopped collection, or null."},"started_at":{"type":["string","null"],"description":"Batch start ISO time."},"completed_at":{"type":["string","null"],"description":"Batch completion ISO time."},"methodology":{"type":"object","properties":{"version":{"type":["string","null"],"description":"ai-visibility-v2."},"matching_version":{"type":["string","null"],"description":"Literal match version."},"appearance_unit":{"type":["string","null"],"description":"percent_0_100."},"denominator":{"type":["string","null"],"description":"Completed nonempty answers per name and engine."},"scope":{"type":["string","null"],"description":"Limits of this prompt/probe sample."}},"additionalProperties":true}},"additionalProperties":true,"examples":[{"brand":"My Brand","competitors":[],"engines":["perplexity"],"prompts":["Which project tools are useful?"],"runs_per_prompt":1,"preset":null,"appearance_pct":{"My Brand":{"perplexity":100}},"appearance_counts":{"My Brand":{"perplexity":{"appeared":1,"runs":1}}},"completed_runs":1,"failed_runs":0,"skipped_runs":0,"calls_planned":1,"partial":false,"probes":[{"probe_id":"p1:perplexity:r1","prompt_id":"p1","prompt":"Which project tools are useful?","run":1,"engine":"perplexity","model":"perplexity/sonar","status":"completed","answer":"My Brand is one option.","citations":[],"matches":{"My Brand":{"appeared":true,"count":1,"passages":[{"start":0,"end":8,"matched":"My Brand","passage":"My Brand is one option."}],"truncated":false}}}]}]}