{
  "openapi": "3.0.1",
  "info": {
    "title": "AI Rank Tracker - ChatGPT, Perplexity & Gemini",
    "description": "Track where a brand, product, company, or domain ranks inside AI answer shortlists across Perplexity, ChatGPT, Gemini, and optional Claude. Use for SEO/GEO reporting, not Google SERP tracking. Returns targetRank, rankBucket, rankedEntities, competitorRanks, citations. $0.10/row.",
    "version": "1.1",
    "x-build-id": "w0gqzhYVF8qAzd6GE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~ai-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-ai-rank-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/khadinakbar~ai-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-ai-rank-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/khadinakbar~ai-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-ai-rank-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": [
          "targetName"
        ],
        "properties": {
          "targetName": {
            "title": "Target name",
            "type": "string",
            "description": "Use this when you want to track one brand, product, company, tool, or domain in AI answer rankings. Enter the public name exactly as buyers write it, for example \"Apify\". Required for real scans and prefilled for testing. Not a competitor list; put rivals in competitors."
          },
          "targetDomain": {
            "title": "Target domain",
            "type": "string",
            "description": "Use this when citation tracking should detect the target website. Enter a bare domain such as \"apify.com\" or a URL like \"https://apify.com\". Defaults to blank, which skips owned-domain citation checks but still tracks rank. Not a list of pages.",
            "default": ""
          },
          "industry": {
            "title": "Industry or category",
            "type": "string",
            "description": "Use this when built-in ranking prompts should include the market category. Enter a short phrase such as \"web scraping tools\" or \"CRM software\". Defaults to \"software tools\" when blank. Not a keyword list; use queries for exact prompts.",
            "default": "software tools"
          },
          "competitors": {
            "title": "Competitors",
            "type": "array",
            "description": "Use this when you want competitor rank positions and share-of-voice. Enter brand names or domains, for example [\"Bright Data\", \"Octoparse\"]. Defaults to an empty list and accepts up to 10 values. Not the tracked target; use targetName for that.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "queries": {
            "title": "Custom ranking prompts",
            "type": "array",
            "description": "Use this when you have exact AI-ranking questions to test. Enter one prompt per line, for example \"Rank the best web scraping tools for agencies\". Defaults to empty, so the actor generates prompts from queryTemplates. Not Google keywords; these are full prompts sent to AI platforms.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "queryTemplates": {
            "title": "Query templates",
            "type": "array",
            "description": "Use this when you want standard buyer-intent ranking prompt categories. Defaults to recommendations, alternatives, and category_leaders. Choose from the listed values; maxQueries caps the final unique prompt count. Not used to rewrite custom prompts.",
            "items": {
              "type": "string",
              "enum": [
                "recommendations",
                "alternatives",
                "category_leaders",
                "reviews",
                "comparisons"
              ],
              "enumTitles": [
                "Recommendations",
                "Alternatives",
                "Category leaders",
                "Reviews",
                "Comparisons"
              ]
            },
            "default": [
              "recommendations",
              "alternatives",
              "category_leaders"
            ]
          },
          "platforms": {
            "title": "AI platforms",
            "type": "array",
            "description": "Use this to choose which AI answer engines to check. Defaults to [\"perplexity\", \"chatgpt\", \"gemini\"] for bounded cost. Add \"claude\" only when you explicitly need a deeper audit; Claude is token-capped. Not a model-id field.",
            "items": {
              "type": "string",
              "enum": [
                "perplexity",
                "chatgpt",
                "gemini",
                "claude"
              ],
              "enumTitles": [
                "Perplexity",
                "ChatGPT",
                "Gemini",
                "Claude"
              ]
            },
            "default": [
              "perplexity",
              "chatgpt",
              "gemini"
            ]
          },
          "maxQueries": {
            "title": "Max prompts to run",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Use this to cap unique prompts before multiplying by selected platforms. Defaults to 3, so the normal 3-platform run costs about $0.90 in event charges. Minimum 1 and maximum 10. Not the ranked-entity cap; each prompt x platform can create one row.",
            "default": 3
          },
          "maxRankedEntities": {
            "title": "Max ranked entities per row",
            "minimum": 3,
            "maximum": 20,
            "type": "integer",
            "description": "Use this to limit how many ranked entities are stored from each AI answer. Defaults to 10, which keeps MCP previews compact while preserving top-list context. Minimum 3 and maximum 20. Not the number of prompts or platforms.",
            "default": 10
          },
          "responseFormat": {
            "title": "Response format",
            "enum": [
              "concise",
              "detailed"
            ],
            "type": "string",
            "description": "Use this to control how much AI-answer text is stored in each row. Defaults to \"concise\" for MCP and agent workflows. Choose \"detailed\" when a human will inspect answer context. Not a platform selector.",
            "default": "concise"
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Use this when another system should receive the run summary after completion. Enter an HTTPS endpoint such as \"https://hooks.zapier.com/hooks/catch/...\". Defaults to blank, so no webhook is sent. Not used for authentication or API keys.",
            "default": ""
          },
          "demoMode": {
            "title": "Demo mode",
            "type": "boolean",
            "description": "Use this when you want a no-charge connectivity check. When true, the actor writes OUTPUT and RUN_SUMMARY without calling AI providers. Defaults to false for real scans. Not a cached rank report.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}