{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Brand Visibility Tracker: ChatGPT Mentions, Rank & Citations",
    "description": "See whether ChatGPT recommends your brand. Ask your buyers' prompts with live web search and get mention rate, rank, share of voice vs competitors, sentiment and cited URLs. Official OpenAI API, no key needed, from $0.04 per check.",
    "version": "0.1",
    "x-build-id": "CwQbtudRWxBIhxy1X"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/swillz~ai-brand-visibility-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-swillz-ai-brand-visibility-tracker",
        "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/swillz~ai-brand-visibility-tracker/runs": {
      "post": {
        "operationId": "runs-sync-swillz-ai-brand-visibility-tracker",
        "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/swillz~ai-brand-visibility-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-swillz-ai-brand-visibility-tracker",
        "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": "Your brand",
            "type": "string",
            "description": "Required. String: the brand or product to track, as people write it, e.g. \"Notion\". Track companies and products, not private individuals."
          },
          "brandDomain": {
            "title": "Your website domain",
            "type": "string",
            "description": "Optional string: your website domain, used to detect when ChatGPT cites your site, e.g. \"notion.com\".",
            "default": ""
          },
          "brandAliases": {
            "title": "Other names for your brand",
            "type": "array",
            "description": "Optional array of strings: other spellings or product names that also count as a mention, e.g. [\"Notion AI\"].",
            "items": {
              "type": "string"
            }
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Optional array of strings, up to 20. Add the domain after a bar to also track citations, e.g. [\"Coda | coda.io\",\"ClickUp | clickup.com\"].",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Prompts",
            "type": "array",
            "description": "Required. Array of strings: questions your buyers ask ChatGPT, e.g. [\"What is the best wiki tool for a startup?\"]. Each prompt x sample is one paid check. Agents: if the user didn't give prompts, write 3–5 realistic buyer questions for the brand's category.",
            "items": {
              "type": "string"
            }
          },
          "samplesPerPrompt": {
            "title": "Samples per prompt",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "AI answers vary. Ask each prompt this many times to get a steadier mention rate (each sample is one check).",
            "default": 1
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "2-letter country code for localized web search results, e.g. \"US\", \"GB\", \"DE\". Leave empty for no location.",
            "default": "US"
          },
          "analyzeSentiment": {
            "title": "Judge sentiment and recommendation",
            "type": "boolean",
            "description": "Adds positive/neutral/negative and \"recommended\" per mentioned brand, plus other brands the answer names. Included in the price.",
            "default": true
          },
          "includeAnswerText": {
            "title": "Include the full answer text",
            "type": "boolean",
            "description": "Keep ChatGPT's answer (links are cleaned of tracking parameters) in each row.",
            "default": true
          },
          "maxChecks": {
            "title": "Max checks",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Safety cap on checks per run (prompts x samples, default 50). Checks over the cap are skipped and reported in a free status row.",
            "default": 50
          },
          "maxConcurrency": {
            "title": "Parallel checks",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many prompts to ask at the same time (default 3).",
            "default": 3
          },
          "openaiApiKey": {
            "title": "Your OpenAI API key (optional)",
            "type": "string",
            "description": "Optional: your own OpenAI key. Checks then cost $0.01 each instead of $0.04–$0.05, and OpenAI bills you for the AI usage (about $0.01–0.02 per check on the default model). Stored encrypted."
          },
          "model": {
            "title": "OpenAI model",
            "type": "string",
            "description": "Defaults to \"gpt-6-luna\". Any web-search-capable model works with your own key; the built-in key allows gpt-6-luna, gpt-5-nano, gpt-4o-mini and gpt-5.6-luna."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}