{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Visibility Tracker: ChatGPT, Perplexity, Gemini",
    "description": "Track if ChatGPT, Perplexity and Gemini mention and recommend your brand: answer text, cited URLs, rank, sentiment and competitors, via official APIs.",
    "version": "0.1",
    "x-build-id": "06iuFtIedlBXtlujx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reliable_tools~ai-visibility-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reliable_tools-ai-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/reliable_tools~ai-visibility-tracker/runs": {
      "post": {
        "operationId": "runs-sync-reliable_tools-ai-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/reliable_tools~ai-visibility-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-reliable_tools-ai-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"
        ],
        "properties": {
          "brand": {
            "title": "Your brand or product",
            "type": "string",
            "description": "The brand (or product) to track, e.g. Allbirds."
          },
          "brandAliases": {
            "title": "Other names for your brand",
            "type": "array",
            "description": "Product line names or spellings that should also count as your brand, e.g. Tree Runner.",
            "items": {
              "type": "string"
            }
          },
          "brandDomain": {
            "title": "Your website domain",
            "type": "string",
            "description": "Optional. If set, each result tells you whether the AI answer cited a page from this domain."
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Competitor brands to watch for in the answers. Also used by the \"vs\" template (first 5).",
            "items": {
              "type": "string"
            }
          },
          "prompts": {
            "title": "Your own prompts",
            "type": "array",
            "description": "Questions a shopper might ask an AI assistant. Each prompt is sent to every engine you added a key for.",
            "items": {
              "type": "string"
            }
          },
          "templates": {
            "title": "Prompt templates",
            "type": "array",
            "description": "Ready-made shopping prompts filled with your brand, category, price and competitors.",
            "items": {
              "type": "string",
              "enum": [
                "best_category",
                "best_under_price",
                "top_brands",
                "brand_vs_competitor",
                "alternatives",
                "is_brand_worth_it",
                "best_for_use"
              ],
              "enumTitles": [
                "Best {category}",
                "Best {category} under {price}",
                "Which {category} brands do you recommend",
                "{brand} vs {competitor}",
                "Alternatives to {brand}",
                "Is {brand} worth buying",
                "Best {category} for {use case}"
              ]
            }
          },
          "category": {
            "title": "Product category",
            "type": "string",
            "description": "Used by the templates, e.g. running shoes, standing desks, protein powder."
          },
          "price": {
            "title": "Price limit",
            "type": "string",
            "description": "Used by the \"under {price}\" template, e.g. $150 or 100 EUR."
          },
          "useCase": {
            "title": "Use case",
            "type": "string",
            "description": "Used by the \"best for\" template, e.g. flat feet, walking all day."
          },
          "country": {
            "title": "Country (2-letter code)",
            "type": "string",
            "description": "Where the shopper is, e.g. US, GB, DE. Sent to the engines as the user location.",
            "default": "US"
          },
          "language": {
            "title": "Answer language",
            "type": "string",
            "description": "Leave empty or English for English answers. Any other value asks the engines to answer in that language."
          },
          "openaiApiKey": {
            "title": "OpenAI API key (ChatGPT with web search)",
            "type": "string",
            "description": "Your own OpenAI key. Stored encrypted, only used in this run, billed by OpenAI to your account."
          },
          "perplexityApiKey": {
            "title": "Perplexity API key (Sonar)",
            "type": "string",
            "description": "Your own Perplexity key. Stored encrypted, only used in this run."
          },
          "geminiApiKey": {
            "title": "Google Gemini API key (model knowledge, no web search)",
            "type": "string",
            "description": "Your own key from Google AI Studio. Gemini answers from its model knowledge without Google Search, so it returns no cited links. Users in the EU, EEA, Switzerland or UK must use a paid-tier key. Stored encrypted, only used in this run."
          },
          "openaiModel": {
            "title": "OpenAI model",
            "type": "string",
            "description": "Any OpenAI model that supports the web search tool.",
            "default": "gpt-5.4-mini"
          },
          "perplexityModel": {
            "title": "Perplexity model",
            "type": "string",
            "description": "e.g. sonar or sonar-pro.",
            "default": "sonar"
          },
          "geminiModel": {
            "title": "Gemini model",
            "type": "string",
            "description": "Any Gemini model that supports generateContent. Runs without Google Search grounding.",
            "default": "gemini-flash-latest"
          },
          "maxPrompts": {
            "title": "Max prompts",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety cap on the number of prompts per run (each prompt runs once per engine).",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}