AI Answer Visibility Audit
Pricing
Pay per event
AI Answer Visibility Audit
Paste a website URL to see whether AI answers recommend that company for real buyer questions, which competitors they name instead, and which sources they cite. Uses the official OpenAI API with web search. Not affiliated with OpenAI.
Paste a website URL and see whether AI answer engines recommend that company when buyers ask for help, which competitors they name instead, and which sources they cite.
The Actor reads the homepage, works out what the company sells and who buys it, writes realistic buyer questions, finds current competitors, and asks each question through the official OpenAI API with web search turned on (the engine behind ChatGPT search). You get one evidence row per answer plus a ready-to-share report.
This is an API benchmark with web search. It is not a recording of the consumer ChatGPT app, and answers there can differ. Not affiliated with OpenAI, Google, or Perplexity.
What you can use it for
- Find the buyer questions you are losing. It lists every question where a competitor or another firm was recommended and your brand was not.
- See who wins those answers. Each answer lists the companies it recommends, with their domains when the answer cites them.
- Build an outreach list from cited sources. It ranks the domains the engine cites, so you know which pages and directories shape the answers.
- Check how AI describes your brand. Optional brand questions ask about the company by name and flag answers that confuse it with a different company.
- Repeat the same audit for many clients. Agencies can run it per client and hand over the HTML report.
How to use it
- Enter the Website URL of the company to audit.
- Optional: add your own buyer questions or competitors. If you leave them empty, the Actor infers them from the website.
- Optional: turn on Brand-prompted questions to add 2 questions that name the brand. These are scored separately.
- Start the run. A 10-question audit usually finishes in about 1 to 2 minutes.
- Open the Output tab for the answer table, or the Storage → Key-value store for
REPORT_HTML,REPORT_MARKDOWN, andREPORT(JSON).
What you get
Dataset (one row per question and sample):
- question, engine, model, method label
- brand status:
cited(an answer cites the brand's own domain),mentioned(named but not cited),absent, ormisidentified(the name is used for a different company) - status for each tracked competitor
- the companies the answer recommends, with domains when cited
- answer snippet and full answer text
- citation URLs and timestamp
- a
site-profilerow with the inferred company, buyer, questions, and competitors
Report (key-value store, JSON + Markdown + HTML):
- Share of Answer and appears rate on questions that do not name the brand
- losing questions, with who appeared instead
- other companies recommended, with counts
- top cited domains, ranked by how many questions cite them
- brand-prompted results in their own section
- method notes and any warnings, such as a provider error
Input
websiteUrl is the only required field.
| Field | Default | Notes |
|---|---|---|
websiteUrl | Public http(s) homepage. Private and local addresses are rejected. | |
brandName, brandAliases | inferred | Extra names count as mentions. |
competitors | inferred, 3 to 5 | Objects with name and domain. Inferred competitors must be operating now, and their domains must resolve. Service firms are compared with service firms of a similar size. |
questions | inferred, 5 to 15 | Your own buyer questions. Inferred questions are full sentences a buyer would ask, mixing "who should I hire", "how do I", and comparison questions, and they never name the brand. |
brandPrompted | false | Adds exactly 2 questions that name the brand. Reported separately. |
maxQuestions | 10 | Maximum 25. |
engines | openai | openai is the OpenAI Responses API with web search. Gemini and Perplexity options are listed for a later release. If you select one before it is enabled, its rows are marked skipped or error and are not charged. |
country, language | US, en | Passed into the prompts. |
samplesPerQuestion | 1 | Up to 3. Answers vary between calls, so more samples give a steadier picture. Each sample is charged. |
includeReport | true | Saves the JSON, Markdown, and HTML report. |
timezone | UTC | Time zone for the date printed on the report, for example America/New_York. |
Example input
{"websiteUrl": "https://apify.com","maxQuestions": 10,"engines": ["openai"],"brandPrompted": true,"includeReport": true}
Example output
One answer row (shortened):
{"recordType": "answer","question": "Which AI automation agencies help small businesses with CRM follow-up?","engine": "openai","model": "gpt-4.1-mini","method": "API benchmark with search","brandName": "Example Co","brandStatus": "absent","competitorStatuses": [{ "name": "Northline", "domain": "northline.example", "status": "cited" },{ "name": "Fieldnote", "domain": "fieldnote.example", "status": "absent" }],"otherBrands": ["Harbor Automation"],"otherBrandDomains": [{ "name": "Harbor Automation", "domain": "harborautomation.example" }],"citationUrls": ["https://northline.example/services/crm"],"status": "ok"}
Report summary for the same kind of run:
| Metric | Example |
|---|---|
| Answers checked | 10 |
| Brand appears in | 2 of 10 answers |
| Share of Answer | 25% (brand vs. tracked competitors) |
| Losing questions | 6, each with who appeared instead |
| Top cited domains | the 10 domains cited most across questions |
Pricing
Pay per event. You pay only for successful work, and platform usage is included.
| Event | Price | When it is charged |
|---|---|---|
| Engine answer checked | $0.05 | One successful answer to one question, saved to the dataset. |
| Site profile built | $0.05 | Once per run, when questions or competitors are inferred from the website. |
| Audit report | $0.25 | Once per run, when the report is saved. |
Example: 10 questions on one engine, with the inferred profile and the report: 10 × $0.05 + $0.05 + $0.25 = $0.80. With the 2 brand questions added: $0.90.
Provider errors are saved on the row and are not charged. If the profile cannot be built and you gave no questions or competitors, no answers are charged and the run fails with the reason. If the AI provider behind the Actor is temporarily out of credit, the run stops at once and fails with a clear message. Answers that were not delivered and the report are not charged. You can set a maximum cost per run; the Actor stops before going over it.
Free Apify plan
Runs started from a free Apify plan are limited to 3 questions, 2 engines, and 1 sample. The run still finishes and returns results, with the notice "Free tier limit reached". This limit exists because every answer calls a paid AI API. Upgrade to any paid Apify plan to run the full audit.
How the scores work
- Share of Answer = the brand's appearances ÷ all appearances of the brand and the tracked competitors, on questions that do not name the brand. If neither appears, it is shown as n/a with a one-line reason.
- Appears rate = the share of answers in which the brand is cited or mentioned.
- Losing question = the brand is absent and at least one competitor or another named company is present.
- Scoring uses plain name and URL matching. A model is not asked to grade the answers. A second call to the same engine only lists which companies an answer recommends; it is not charged as a separate event.
Limits and good practice
- Answers change from day to day and between calls. Treat one run as a snapshot. Re-run on a schedule to see the trend, and raise
samplesPerQuestionfor important audits. - Results come from the official API with web search. The consumer ChatGPT app can show different answers.
- The homepage is read without a browser. A site that only renders in a browser may give a thin profile. In that case, supply your own questions and competitors.
- This Actor measures visibility. It does not change or guarantee how any AI engine ranks or recommends a company.
FAQ
Do I need my own OpenAI key? No. The Actor uses its own keys, and the cost is included in the event prices.
Can I audit a competitor's site? Yes. Any public homepage works.
Can I use it from an AI agent or via API? Yes. Call it like any Apify Actor, from the API, the Apify MCP server, or integrations such as Make, Zapier, and n8n.
Is my data used to train models? The Actor sends the public homepage text and the questions to the OpenAI API. Under OpenAI's API terms, API data is not used for training by default.
Something looks wrong? Open an issue on the Actor's Issues tab with the run ID. We aim to reply within 3 business days.
