{
  "openapi": "3.0.1",
  "info": {
    "title": "US Liquor Licensing Watch — State ABC Boards",
    "description": "Monitor US state alcohol-licensing authority pages for changes. Curated pack of 39 server-rendered state boards, noise-filtered diffs, optional AI significance summaries. No PII.",
    "version": "0.1",
    "x-build-id": "xf1HSuvsfveQOjv8h"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jakedata~liquor-licensing-watch/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jakedata-liquor-licensing-watch",
        "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/jakedata~liquor-licensing-watch/runs": {
      "post": {
        "operationId": "runs-sync-jakedata-liquor-licensing-watch",
        "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/jakedata~liquor-licensing-watch/run-sync": {
      "post": {
        "operationId": "run-sync-jakedata-liquor-licensing-watch",
        "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": {
          "states": {
            "title": "States to watch (optional)",
            "type": "array",
            "description": "Two-letter state codes, e.g. [\"CA\",\"NY\",\"TX\"]. Leave empty to watch all 51 (incl. DC).",
            "items": {
              "type": "string"
            }
          },
          "businessType": {
            "title": "Business type",
            "enum": [
              "",
              "restaurant",
              "bar",
              "event-venue",
              "convenience-store",
              "grocery-store",
              "hotel",
              "brewery",
              "winery",
              "distillery",
              "caterer",
              "food-truck"
            ],
            "type": "string",
            "description": "The kind of premises you are licensing. Filters both the licence types and the worked cost scenarios down to the ones that apply to you. Leave blank for everything. Counts across the 51 states: restaurant 164 licence types, bar 122, event venue 109, convenience store 90, grocery store 84, hotel 80, brewery 79, winery 64, distillery 57, caterer 46, food truck 9.",
            "default": ""
          },
          "maxFeeUsd": {
            "title": "Maximum licence fee (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only states where at least one matching licence costs this or less. Compared against the annual fee where a state charges one, otherwise the application fee."
          },
          "servingStyle": {
            "title": "On- or off-premise",
            "enum": [
              "",
              "on",
              "off"
            ],
            "type": "string",
            "description": "On-premise = drinking at your venue (bar, restaurant). Off-premise = selling sealed product to take away (bottle store).",
            "default": ""
          },
          "minFeeUsd": {
            "title": "Minimum licence fee (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Rarely needed — use it to skip states whose cheapest licence looks too good to be the one you want."
          },
          "minCitiesRequiringLocalPermit": {
            "title": "Minimum cities requiring a local permit",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Keep only states where at least this many of the tracked cities add a municipal permit on top of the state licence. EVERY state has at least 5, so a yes/no filter would be meaningless — the spread is what matters and it runs from 5 to 46. Try 35 to see the states where local permitting is near-universal."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "state",
              "feeAsc",
              "feeDesc"
            ],
            "type": "string",
            "description": "Order the results. Cheapest-first uses the same fee the maximum-fee filter compares against.",
            "default": "state"
          },
          "includeFacts": {
            "title": "Include licence facts",
            "type": "boolean",
            "description": "Attach the full fee/licence-type/requirement data for each state to every record — so a run answers \"what does a licence cost here?\" even when nothing changed. Turn off for a lean change-only feed.",
            "default": true
          },
          "includeLicenseTypes": {
            "title": "Include licence types",
            "type": "boolean",
            "description": "The full list of licence classes for each state, with fees and what each one permits.",
            "default": true
          },
          "includeScenarios": {
            "title": "Include worked cost scenarios",
            "type": "boolean",
            "description": "Realistic end-to-end examples (\"restaurant with full liquor service: $1,750 first year\").",
            "default": true
          },
          "includeRequirements": {
            "title": "Include requirements and restrictions",
            "type": "boolean",
            "description": "General application requirements and the notable restrictions that catch people out.",
            "default": true
          },
          "includeCityDetail": {
            "title": "Include city permit detail",
            "type": "boolean",
            "description": "Include the largest cities per state with their local permit name, indicative cost, timeline and clerk URL. 1,638 of 1,970 US cities require a separate local permit on top of the state licence.",
            "default": true
          },
          "citiesPerState": {
            "title": "Cities per state",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "How many of the largest cities to include in the local-permit breakdown. Was fixed at 5.",
            "default": 5
          },
          "aiSummary": {
            "title": "AI significance summary",
            "type": "boolean",
            "description": "Summarize each detected change and rate significance (low/medium/high) using an LLM. Requires your own Anthropic API key below.",
            "default": false
          },
          "anthropicApiKey": {
            "title": "Anthropic API key (only for AI summaries)",
            "type": "string",
            "description": "Your own key, used only when AI summaries are on. Never stored."
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip any authority page disallowed for generic crawlers.",
            "default": true
          },
          "webhookUrl": {
            "title": "Webhook URL (optional)",
            "type": "string",
            "description": "POST each change record to this URL as JSON."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}