{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Visibility Monitor: ChatGPT, Claude & Gemini Mentions",
    "description": "AI search visibility tracker for GEO and AEO: asks ChatGPT, Claude and Gemini your customers' questions through the official APIs with web search and records brand mentions, rank, tone, competitors and cited sources, with the change since the last run. $0.08 to $0.10 per answer.",
    "version": "0.1",
    "x-build-id": "AWbCDua92sXPS7Pvi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/localwire~ai-brand-visibility/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-localwire-ai-brand-visibility",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/localwire~ai-brand-visibility/runs": {
      "post": {
        "operationId": "runs-sync-localwire-ai-brand-visibility",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/localwire~ai-brand-visibility/run-sync": {
      "post": {
        "operationId": "run-sync-localwire-ai-brand-visibility",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "brand",
          "prompts"
        ],
        "properties": {
          "brand": {
            "title": "Brand",
            "type": "string",
            "description": "The brand, product or company name to look for in the answers, e.g. Humaans. Required."
          },
          "brandAliases": {
            "title": "Other names for the brand",
            "type": "array",
            "description": "Spellings and variants that also count as a mention (e.g. \"Humaans HR\", \"humaans.io\"). Matching is case-insensitive on whole words.",
            "items": {
              "type": "string"
            }
          },
          "brandDomains": {
            "title": "Brand domains",
            "type": "array",
            "description": "Your own domains, e.g. humaans.io. A cited page on one of them (or a subdomain) sets brandCited.",
            "items": {
              "type": "string"
            }
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Other brands to track in the same answers, one per line, optionally with a domain: \"Bright Data | brightdata.com\". Each gets its own mention count, rank and cited flag.",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Prompts",
            "type": "array",
            "description": "The questions your customers would ask an AI assistant, one per line, written the way a person would ask them (\"best CRM for a small UK agency\"). Up to 200 per run, at most 600 characters each. Every prompt is asked of every selected engine, and each answer is one paid check, so 5 prompts on 3 engines is 15 checks.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter country code (GB, US, DE…) to localise web search results where the engine supports it (ChatGPT and Claude). Leave empty for no localisation."
          },
          "engines": {
            "title": "Engines",
            "type": "array",
            "description": "Which AI answer engines to ask: openai (ChatGPT's models through the OpenAI API), anthropic (Claude) and gemini (Gemini). Every prompt is asked of every engine listed, and each answer is one paid check: $0.09 for ChatGPT, $0.10 for Claude, $0.08 for Gemini with the default models. If the field is left out, all three are asked; list one engine for the cheapest run.",
            "items": {
              "type": "string",
              "enum": [
                "openai",
                "anthropic",
                "gemini"
              ],
              "enumTitles": [
                "ChatGPT (OpenAI API)",
                "Claude (Anthropic API)",
                "Gemini (Gemini API)"
              ]
            },
            "default": [
              "openai",
              "anthropic",
              "gemini"
            ]
          },
          "openaiModel": {
            "title": "OpenAI model",
            "enum": [
              "gpt-6.1-terra",
              "gpt-6.1-sol",
              "gpt-6-luna"
            ],
            "type": "string",
            "description": "The model asked through the OpenAI Responses API with web search. Sol is charged as a premium check (see Pricing).",
            "default": "gpt-6.1-terra"
          },
          "anthropicModel": {
            "title": "Anthropic model",
            "enum": [
              "claude-sonnet-5-5",
              "claude-opus-5-5",
              "claude-haiku-5-5"
            ],
            "type": "string",
            "description": "The Claude model asked through the Anthropic Messages API with web search. Opus is charged as a premium check (see Pricing).",
            "default": "claude-sonnet-5-5"
          },
          "geminiModel": {
            "title": "Gemini model",
            "enum": [
              "gemini-3.8-flash",
              "gemini-3.6-flash",
              "gemini-3.5-flash-lite",
              "gemini-3.1-pro-preview"
            ],
            "type": "string",
            "description": "The Gemini model asked with Grounding with Google Search. Pro is charged as a premium check (see Pricing).",
            "default": "gemini-3.8-flash"
          },
          "maxSearches": {
            "title": "Max web searches per answer",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many web searches Claude may run for one answer (ChatGPT and Gemini decide for themselves).",
            "default": 5
          },
          "maxChecks": {
            "title": "Max checks per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop after this many checks (one check = one prompt asked of one engine). Prompts × engines above this number are not run and not charged. 60 if left out, at most 500. You can also cap spending with the run's maximum cost.",
            "default": 60
          },
          "includeAnswer": {
            "title": "Include the full answer",
            "type": "boolean",
            "description": "Return each engine's full answer text in the record (email addresses and phone numbers removed). Turn off for smaller records.",
            "default": true
          },
          "compareWithPrevious": {
            "title": "Compare with the previous run",
            "type": "boolean",
            "description": "Remember each check's last result and report whether the brand gained or lost its mention since then (the previous and change fields). Schedule the Actor to track changes over time.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}