# Texas Bar & Restaurant Sales Rankings (Mixed Beverage Data) (`lonestar-leads/texas-bar-restaurant-sales`) Actor

Rank every Texas bar, restaurant, hotel & venue by alcohol sales from official Comptroller mixed beverage receipts. Trailing-12-month totals, YoY growth, latest month, new venues & possibly closed venues. Filter by county, city, ZIP. Or export raw monthly records.

- **URL**: https://apify.com/lonestar-leads/texas-bar-restaurant-sales.md
- **Developed by:** [Matthew Lee](https://apify.com/lonestar-leads) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Texas Bar & Restaurant Sales Rankings (Mixed Beverage Data)

**See how much alcohol every bar, restaurant, hotel and venue in Texas sells, and rank them.** This Actor turns the Texas Comptroller's official **Mixed Beverage Gross Receipts** data (monthly liquor, wine, beer and cover-charge sales for every mixed-beverage permit holder) into ready-to-use venue rankings, with:

- **Trailing-12-month sales** (total and by liquor, wine, beer and cover charge)
- **Year-over-year growth** versus the prior 12 months
- **Latest complete month**, detected automatically (the newest month is usually still partial)
- **Rank in city and county**
- **New venue** flag (first-ever report in the last 12 months) and **possibly closed** flag (stopped reporting)

Or switch to **monthly mode** to export the raw month-by-month records for any date range back to 2007.

There's no login, no scraping and no proxies. It uses the official data.texas.gov open-data API, with aggregation done server-side, so runs are fast and cheap. A county takes seconds; all ~26,000 active Texas venues take about 4–5 minutes.

### Who uses this

- **Beverage distributors, brand reps and suppliers:** find the highest-volume accounts in a territory and spot fast-growing venues
- **Restaurant POS, payments, staffing, security and insurance sales teams:** prioritize prospects by real revenue signals
- **Commercial real estate and restaurant brokers:** benchmark a location against the neighborhood
- **Investors and analysts:** track nightlife and hospitality trends by city, county or ZIP
- **Local journalists and researchers:** "top-selling bars in \[city]" stories, openings and closures

### Pricing

**Pay per result: $3.00 per 1,000 rows**, plus Apify's standard tiny per-run start fee.

- A county ranking of a few hundred venues costs under $1.
- The full statewide venue table (~26,000 rows) costs about $78.
- Set a max cost per run and the Actor stops at your limit.

### Input

| Field | Description | Default |
|---|---|---|
| `mode` | `venues` (rankings and summaries) or `monthly` (raw monthly records) | `venues` |
| `counties` | Texas county names, e.g. `["Harris", "Travis"]` | all |
| `cities` | City names, e.g. `["Austin"]` | all |
| `zipCodes` | 5-digit ZIPs | all |
| `nameContains` | Venue or owner name substring, e.g. `"Twin Peaks"` | — |
| `minTrailing12Total` | Minimum 12-month sales in $ (venues mode) | 0 |
| `onlyNewVenues` | Only venues that first reported in the last 12 months | false |
| `onlyPossiblyClosed` | Only venues that stopped reporting before the latest month | false |
| `sortBy` | `trailing12Total`, `latestMonthTotal`, `yoyChangePct`, `name` | `trailing12Total` |
| `asOfMonth` | `YYYY-MM`. Defaults to the latest complete month | auto |
| `monthsBack` / `startMonth` / `endMonth` | Date range for monthly mode | last 3 months |
| `maxResults` | Row cap | 1000 |

Example: top 50 Lubbock venues by 12-month sales

```json
{ "mode": "venues", "counties": ["Lubbock"], "maxResults": 50 }
```

Example: new bars and restaurants in Travis County doing at least $250k a year

```json
{ "counties": ["Travis"], "onlyNewVenues": true, "minTrailing12Total": 250000 }
```

### Output (venues mode)

```json
{
  "venueId": "32082974620-1",
  "venueName": "LITTLE WOODROW'S",
  "ownerName": "LW LUBBOCK LLC",
  "address": "6313 66TH ST",
  "city": "LUBBOCK",
  "zip": "79424",
  "county": "Lubbock",
  "tabcPermitNumber": "MB200065171",
  "asOfMonth": "2026-08",
  "latestMonthTotal": 252353,
  "trailing12Total": 3172096,
  "trailing12Liquor": 1795347,
  "trailing12Wine": 10366,
  "trailing12Beer": 1366383,
  "trailing12CoverCharge": 0,
  "monthsReportedLast12": 12,
  "avgMonthlyTotal": 264341,
  "prior12Total": 3258140,
  "yoyChangePct": -2.6,
  "firstReportedMonth": "2022-07",
  "lastReportedMonth": "2026-08",
  "isNewVenue": false,
  "possiblyClosed": false,
  "rankInCity": 2,
  "rankInCounty": 2
}
```

Monthly mode returns one row per venue per month with `liquorReceipts`, `wineReceipts`, `beerReceipts`, `coverChargeReceipts`, `totalReceipts` and the owner's mailing address. Export to CSV, Excel or JSON, or use the API.

### How the numbers work

- **Receipts are gross receipts as reported to the Comptroller** under Tax Code Ch. 183, in US dollars, and cover alcoholic beverage sales (plus cover charges). Food sales are **not** included.
- A **venue** is one Comptroller taxpayer number plus location number. A change of ownership creates a new taxpayer, so **"new venue" can mean a new opening or a new owner** at an existing location.
- **"Possibly closed"** means the venue reported in the last 12 months but not for the latest complete month. It may have closed, changed owners, or simply filed late.
- **YoY change** is shown only when the venue has a full 12 months in both periods.
- **Ranks** are computed within the area you queried (county and city), by trailing-12-month sales.
- The latest month is chosen automatically as the newest month where at least 90% of venues have reported.

### Notes

- Data source: Texas Comptroller of Public Accounts, *Mixed Beverage Gross Receipts* (data.texas.gov, dataset naix-2893), public under the Texas Public Information Act. This Actor is not affiliated with the State of Texas.
- Requests are polite: 1 second between pages, per data.texas.gov's robots.txt crawl delay, with automatic retries.
- Works with the Apify API, schedules, webhooks, Zapier, Make, n8n and the Apify MCP server for AI agents.

### FAQ

**How current is it?** Venues report monthly, about 20 days after month end. Each run queries live data and uses the latest complete month.

**Can I get the whole state?** Yes. Leave all filters empty and set `maxResults` to 30000.

**Does it include food or total restaurant revenue?** No. Only alcohol (and cover charge) receipts are reported in this dataset.

# Actor input Schema

## `mode` (type: `string`):

venues = one row per venue with trailing-12-month totals, YoY change, latest month, ranks, new/closed flags. monthly = raw monthly sales records (one row per venue per month).

## `counties` (type: `array`):

Texas county names, e.g. Harris, Travis, Lubbock. Empty = all 254 counties.

## `cities` (type: `array`):

City names (case-insensitive exact match), e.g. Austin, Lubbock. Empty = all.

## `zipCodes` (type: `array`):

5-digit ZIP codes. Empty = all.

## `nameContains` (type: `string`):

Case-insensitive substring, e.g. "Twin Peaks" or "Hilton".

## `minTrailing12Total` (type: `integer`):

Only venues whose total alcohol receipts over the last 12 months are at least this amount.

## `onlyNewVenues` (type: `boolean`):

Only venues whose first-ever report falls in the last 12 months (new openings or new ownership).

## `onlyPossiblyClosed` (type: `boolean`):

Only venues that reported within the last 12 months but not for the latest month.

## `sortBy` (type: `string`):

How to order venue results.

## `asOfMonth` (type: `string`):

YYYY-MM. Defaults to the latest complete month in the data (the newest month is usually still partial).

## `monthsBack` (type: `integer`):

Number of months to export, ending at the as-of month.

## `startMonth` (type: `string`):

YYYY-MM. Overrides Months back.

## `endMonth` (type: `string`):

YYYY-MM. Defaults to the as-of month.

## `maxResults` (type: `integer`):

Maximum rows to output.

## `socrataAppToken` (type: `string`):

Optional free data.texas.gov app token for higher rate limits.

## Actor input object example

```json
{
  "mode": "venues",
  "counties": [
    "Lubbock"
  ],
  "minTrailing12Total": 0,
  "onlyNewVenues": false,
  "onlyPossiblyClosed": false,
  "sortBy": "trailing12Total",
  "monthsBack": 3,
  "maxResults": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

Venue sales summaries (venues mode) or monthly sales records (monthly mode) from this run.

## `runSummary` (type: `string`):

As-of month, mode and record count for this run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "counties": [
        "Lubbock"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lonestar-leads/texas-bar-restaurant-sales").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "counties": ["Lubbock"] }

# Run the Actor and wait for it to finish
run = client.actor("lonestar-leads/texas-bar-restaurant-sales").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "counties": [
    "Lubbock"
  ]
}' |
apify call lonestar-leads/texas-bar-restaurant-sales --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lonestar-leads/texas-bar-restaurant-sales"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6FewfMFBJ0gydTVWS/builds/RG9vZdfpvCRF9tEpG/openapi.json
