# ai_visibility

> Query ChatGPT's public signed-out search interface with the supplied question.

URL: https://mcp-docs.opennomos.com/docs/tools/research/ai_visibility

> Query ChatGPT's public signed-out search interface with the supplied question. Returns answer markdown, sources, mentioned brands and search sub-queries. Does not store the answer.

| Field | Value |
| --- | --- |
| Pack | SEO & AI visibility (`seo`) |
| Estimated cost per call | ~$0.004 (upstream cost; see the description for per-action figures) |
| Monthly pack limit | $3 of upstream cost (not shown to users) |
| Project | optional (`project` or `X-OpenNomos-Project`); only attaches the project id to the result |

## Parameters

| Parameter | Required | Type | Description |
| --- | --- | --- | --- |
| `project` | no | `string` | Project slug or id. Omit to use the credential or workspace default. |
| `question` | yes | `string` | The question to ask ChatGPT, e.g. 'best open source CRM for startups'. |
| `location_code` | no | `integer (≥ 1) \| string` | Where to search from: a country name (e.g. "United States", "China", "Hong Kong", "Japan"), a 2-letter country code ("US", "CN"), or a numeric DataForSEO location code (e.g. 2840). Default United States. |
| `language_code` | no | `string` | Language code, e.g. 'en', 'de', 'ja'. Default 'en'. |

## Example call

```json
{
  "question": "best open source CRM for startups",
  "location_code": "US",
  "language_code": "en"
}
```

REST: `POST https://service.opennomos.com/v1/tools/ai_visibility` with that JSON as the body. MCP: `tools/call` with `name: "ai_visibility"` and that JSON as `arguments`.

## Example result

Values are illustrative; the shape comes from the service code.

```json
{
  "answer": "Several open source CRMs are popular with startups: …",
  "sources": [
    {
      "url": "https://example.com/best-crms",
      "domain": "example.com",
      "title": "Best open source CRMs"
    }
  ],
  "brands": [
    "Twenty",
    "SuiteCRM"
  ],
  "fan_out_queries": [
    "open source crm for startups",
    "self hosted crm"
  ]
}
```

## Notes

- Queries ChatGPT's public signed-out search interface with the question you give, and returns one answer. It is a single sample, not a ranking: ask a few phrasings before you conclude your brand is absent.
- Nothing is stored. If the provider returns no answer the result is `{ "answer": null }`.

## Errors

Upstream trouble is reported **inside a normal result** as `error`, `reason` and `action` (and `tool` / `retry_after_seconds` when they apply). For `search_signals` this appears per source. See [Errors](https://mcp-docs.opennomos.com/docs/reference/errors.md).

This tool is in the **SEO & AI visibility** pack. If the pack is not enabled the call fails with `pack_required` (HTTP 403); if the pack's monthly upstream cost limit is used up it fails with `soft_limit` (HTTP 429). Both carry `action: "give_up_and_tell_user"` and the console URL.
