{
  "openapi": "3.0.1",
  "info": {
    "title": "Competitor Website Analyzer",
    "description": "Turn any company website into a structured competitive, SEO or sales brief: positioning, key messaging, pricing signals, tech stack, CTAs and social presence. Choose an AI-written brief or an extractive brief without AI. $0.05 per brief.",
    "version": "0.0",
    "x-build-id": "pjGif7EbV2JeN7IWq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/entranced_gelato~ai-competitive-brief-generator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-entranced_gelato-ai-competitive-brief-generator",
        "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/entranced_gelato~ai-competitive-brief-generator/runs": {
      "post": {
        "operationId": "runs-sync-entranced_gelato-ai-competitive-brief-generator",
        "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/entranced_gelato~ai-competitive-brief-generator/run-sync": {
      "post": {
        "operationId": "run-sync-entranced_gelato-ai-competitive-brief-generator",
        "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": [
          "url"
        ],
        "properties": {
          "url": {
            "title": "Website URL",
            "type": "string",
            "description": "The public website you want a brief for (e.g. a competitor or a sales prospect)."
          },
          "briefType": {
            "title": "Brief type",
            "enum": [
              "competitive",
              "seo",
              "sales"
            ],
            "type": "string",
            "description": "What kind of brief to produce.",
            "default": "competitive"
          },
          "includeSubpages": {
            "title": "Analyze key subpages",
            "type": "boolean",
            "description": "Also fetch high-value internal pages (pricing, about, product) for a richer brief.",
            "default": true
          },
          "maxSubpages": {
            "title": "Max subpages",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "How many internal subpages to analyze in addition to the main page.",
            "default": 3
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "On (default): before reading the homepage and each subpage, the Actor checks the site's robots.txt (the AIDevsBot group if there is one, otherwise the * group) and skips what it disallows. A disallowed homepage stops the run without charge; disallowed subpages are listed in skippedSubpages. Turn this off only for sites you own or have permission to analyze.",
            "default": true
          },
          "useAi": {
            "title": "Generate AI-written brief",
            "type": "boolean",
            "description": "Off (default): free extractive brief with structured signals only, no AI. On: also writes a narrative brief with AI, charged $0.05 per brief (as low as $0.035 on higher Apify plans) and only when it succeeds, the same price with your own OpenAI key below. Without a key, page text goes to Apify's AI gateway (Apify's OpenRouter Actor, then OpenRouter, then the model provider), so no API key is needed. Apify may bill that model usage to your Apify account separately at OpenRouter's rates; free-plan accounts pay more and may be blocked. Emails and phone numbers are masked first unless you include personal data, and pages that reserve text-and-data-mining rights are never sent. AIDevs is the provider of this AI feature and you are the deployer (EU AI Act): AI output is labelled as AI-generated, so keep the label if you publish it.",
            "default": false
          },
          "aiModel": {
            "title": "AI model (advanced)",
            "type": "string",
            "description": "Optional model ID for the AI brief on Apify's AI gateway, e.g. openai/gpt-4o-mini (the default) or openai/gpt-4.1-mini. Only openai/ and anthropic/ models are allowed, without :free or stealth variants; any other ID falls back to openai/gpt-4o-mini. If you choose a model, you also accept that model provider's terms and acceptable-use policy. Leave empty to use the 'LLM model' choice below. With your own OpenAI key only OpenAI models work."
          },
          "openaiApiKey": {
            "title": "OpenAI API key (optional)",
            "type": "string",
            "description": "Optional. Your own OpenAI key: the AI brief is then written with your key and AI is switched on automatically, as before. Use a dedicated OpenAI project key with a spending limit (create one in your OpenAI dashboard). It's used only inside your run, sent only to OpenAI, and never stored or logged; you're responsible for following OpenAI's terms. OpenAI bills you for the tokens, and an AI brief is still charged $0.05 either way; without AI the brief is free."
          },
          "model": {
            "title": "LLM model",
            "enum": [
              "gpt-4o-mini",
              "gpt-4o",
              "gpt-4.1-mini"
            ],
            "type": "string",
            "description": "Model used for the AI brief (with your own key, or via Apify's AI gateway as openai/<model>).",
            "default": "gpt-4o-mini"
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Off by default: links to individual people's profiles (e.g. LinkedIn /in/ pages) are removed, email addresses and phone numbers are masked in the page text and in everything sent to the AI, and the AI refers to roles, not names. Turn on only if you have a legitimate reason to process personal data. GDPR note: you are the data controller and need a lawful basis for any personal data you collect.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Route requests through Apify Proxy so sites that throttle data-center traffic still load. Sites that block access are skipped, never bypassed. Uses Apify's standard datacenter proxies. Residential and custom proxies aren't supported.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}