{
  "openapi": "3.0.1",
  "info": {
    "title": "GBP Competitor Monitor",
    "description": "Stay ahead of the competition by monitoring their Google Business Profile (GBP), formerly Google My Business (GMB), activity. Know when competitors get new reviews, post updates, or change their listings.",
    "version": "2.0",
    "x-build-id": "IBWE0WCOmQ1OZduo9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alizarin_refrigerator-owner~competitor-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alizarin_refrigerator-owner-competitor-monitor",
        "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/alizarin_refrigerator-owner~competitor-monitor/runs": {
      "post": {
        "operationId": "runs-sync-alizarin_refrigerator-owner-competitor-monitor",
        "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/alizarin_refrigerator-owner~competitor-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-alizarin_refrigerator-owner-competitor-monitor",
        "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",
        "properties": {
          "yourBusiness": {
            "title": "Your Business",
            "type": "object",
            "description": "Your business details for comparison. Leave empty for demo mode.",
            "default": {}
          },
          "competitors": {
            "title": "Competitors to Monitor",
            "type": "array",
            "description": "Array of competitor businesses to track. Leave empty for demo mode.",
            "default": []
          },
          "previousRunId": {
            "title": "Previous Run Dataset ID",
            "type": "string",
            "description": "Dataset ID from previous run to compare changes"
          },
          "trackReviews": {
            "title": "Track Reviews",
            "type": "boolean",
            "description": "Monitor new reviews and rating changes",
            "default": true
          },
          "trackPosts": {
            "title": "Track Posts",
            "type": "boolean",
            "description": "Monitor new GBP posts",
            "default": true
          },
          "trackPhotos": {
            "title": "Track Photos",
            "type": "boolean",
            "description": "Monitor new photos added",
            "default": true
          },
          "trackProfileChanges": {
            "title": "Track Profile Changes",
            "type": "boolean",
            "description": "Monitor business info updates",
            "default": true
          },
          "trackRankings": {
            "title": "Track Keyword Rankings",
            "type": "boolean",
            "description": "Monitor local SERP positions for target keywords",
            "default": false
          },
          "targetKeywords": {
            "title": "Target Keywords",
            "type": "array",
            "description": "Keywords to track rankings for (requires Track Keyword Rankings)",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "targetLocation": {
            "title": "Target Location",
            "type": "string",
            "description": "Location for keyword tracking (e.g., 'Dallas, TX')"
          },
          "detectGoogleAds": {
            "title": "Detect Google Ads",
            "type": "boolean",
            "description": "Check if competitors are running Google Ads for their brand",
            "default": false
          },
          "trackSocialMedia": {
            "title": "Track Social Media",
            "type": "boolean",
            "description": "Find and monitor competitor social media profiles",
            "default": false
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "URL to POST alerts to when changes are detected"
          },
          "alertThreshold": {
            "title": "Alert Threshold",
            "enum": [
              "all",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "Minimum importance level to trigger webhook alerts",
            "default": "medium"
          },
          "anthropicApiKey": {
            "title": "Anthropic API Key (BYOK)",
            "type": "string",
            "description": "Your Anthropic API key to enable AI-powered strategic analysis. Get yours at console.anthropic.com. Leave empty to skip AI analysis."
          },
          "enableAiAnalysis": {
            "title": "Enable AI Analysis",
            "type": "boolean",
            "description": "When enabled with an API key, Claude analyzes competitor data and provides: strategic recommendations, competitive positioning insights, and actionable next steps.",
            "default": true
          },
          "demoMode": {
            "title": "Demo Mode",
            "type": "boolean",
            "description": "Run with sample data to test without real scraping. Returns realistic sample output instantly.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}