{
  "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": "8KaF0doSAp7vjWiVb"
  },
  "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, for side-by-side comparison. Give a Google placeId (starts with ChIJ) or a searchQuery such as \"Business name, street, city\". Optional.",
            "default": {}
          },
          "competitors": {
            "title": "Competitors to Monitor",
            "type": "array",
            "description": "Competitors to track. Each needs a name plus a Google placeId (starts with ChIJ) or a searchQuery such as \"Business name, street, city\". A search that matches several places uses the first result.",
            "default": []
          },
          "previousRunId": {
            "title": "Previous Run Dataset",
            "type": "string",
            "description": "Default dataset (ID or name) of a previous run of this actor. Rating, review count and profile changes are detected against it."
          },
          "trackReviews": {
            "title": "Track Reviews",
            "type": "boolean",
            "description": "Report new reviews (review count increase since the previous run)",
            "default": true
          },
          "trackPosts": {
            "title": "Track Posts",
            "type": "boolean",
            "description": "Not available: GBP posts are not collected in this version. This setting has no effect.",
            "default": true
          },
          "trackPhotos": {
            "title": "Track Photos",
            "type": "boolean",
            "description": "Not available: Google Maps no longer shows a reliable photo count, so photos are not tracked. This setting has no effect.",
            "default": true
          },
          "trackProfileChanges": {
            "title": "Track Profile Changes",
            "type": "boolean",
            "description": "Report rating, category, website, phone and address changes since the previous run",
            "default": true
          },
          "trackRankings": {
            "title": "Track Keyword Rankings",
            "type": "boolean",
            "description": "Not available in this version. Enabling it adds a notice to the output and collects nothing.",
            "default": false
          },
          "targetKeywords": {
            "title": "Target Keywords",
            "type": "array",
            "description": "Not used in this version (keyword rankings are not collected)",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "targetLocation": {
            "title": "Target Location",
            "type": "string",
            "description": "Not used in this version (keyword rankings are not collected)"
          },
          "detectGoogleAds": {
            "title": "Detect Google Ads",
            "type": "boolean",
            "description": "Not available in this version. Enabling it adds a notice to the output and collects nothing.",
            "default": false
          },
          "trackSocialMedia": {
            "title": "Track Social Media",
            "type": "boolean",
            "description": "Not available in this version. Enabling it adds a notice to the output and collects nothing.",
            "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": "Return one labeled sample record (free, nothing charged) instead of scraping. Off by default.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}