# Texas Bar & Restaurant Alcohol Sales (Mixed Beverage Receipts) (`wicker_triathlon/texas-mixed-beverage-sales`) Actor

Get the monthly liquor, wine, beer and cover-charge sales of every Texas bar, restaurant, hotel and venue with a mixed-beverage permit, straight from official Texas Comptroller data.

- **URL**: https://apify.com/wicker\_triathlon/texas-mixed-beverage-sales.md
- **Developed by:** [Peter Shenouda](https://apify.com/wicker_triathlon) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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 Alcohol Sales (Mixed Beverage Receipts)

**Get the monthly liquor, wine, beer and cover-charge sales of every Texas bar, restaurant, hotel and venue with a mixed-beverage permit, straight from official Texas Comptroller data, filtered and ready for a spreadsheet.**

### Who is this for?

- **Beer, wine and spirits distributors and brand reps** who want to find the biggest-selling accounts in their territory
- **Bar and restaurant suppliers**, such as point-of-sale, glassware, ice, security and staffing companies, looking for venues that do serious volume
- **Commercial real-estate brokers, investors and bar buyers** checking how a venue or neighborhood is really performing
- **Market researchers and journalists** tracking nightlife and hospitality trends across Texas

### What can I use it for?

1. **Build a prospect list for a sales territory.** Pull every venue in Harris County that sold more than $50,000 last month, sorted from highest to lowest, and your reps know who to call first.
2. **Spot new and fast-growing venues.** Pull the last 6 months for your city and compare month to month to see which places are ramping up (or slowing down) before your competitors notice.
3. **Size up a location before you invest or lease.** Look up a specific bar's history, or every venue in a ZIP code, to see real reported sales instead of guesses.

### Inputs (all optional)

| Input | What it does | Example |
|---|---|---|
| **Cities** | Only venues in these cities | `Houston`, `Austin` |
| **Counties** | Only venues in these counties | `Harris`, `Travis` |
| **ZIP codes** | Only venues in these ZIP codes | `77006` |
| **Venue name contains** | Only venues whose name includes this text | `STEAKHOUSE` |
| **From month / To month** | Which report months to include (YYYY-MM). **Leave both empty to get the newest fully reported month automatically.** | `2026-01` to `2026-08` |
| **Minimum monthly sales ($)** | Skip venues that sold less than this | `50000` |
| **Sort results by** | Highest sales first, newest month first, or name A–Z | Highest sales first |
| **Maximum results** | Stop after this many rows. You only pay for rows you get. | `100` |
| **Include permit-holder business name** | Adds the company behind the venue (e.g. *PAPPAS RESTAURANTS, INC.*) | On |
| **Socrata app token** | Optional free token for very large runs. Most people leave it empty. | — |

If you leave everything empty, you get the top 100 venues in all of Texas for the newest complete month.

### Output

Each row is one venue for one month. Money values are in US dollars as reported to the state. Here are 5 real rows (Houston, August 2026):

| reportMonth | locationName | address | zip | totalReceipts | liquorReceipts | wineReceipts | beerReceipts | permitHolderBusiness |
|---|---|---|---|---|---|---|---|---|
| 2026-08 | ARAMARK SPORTS & ENTERTAINMENT SERVICES OF TEXAS | 501 CRAWFORD ST - MINUTE MAID PARK | 77002 | 3,855,025 | 1,783,902 | 243,466 | 1,827,657 | ARAMARK SPORTS AND ENTERTAINMENT SERVICES OF TEXAS |
| 2026-08 | LEVY RESTAURANTS AT TOYOTA CENTER | 1510 POLK ST | 77002 | 1,943,442 | 1,157,433 | 28,220 | 757,789 | LEVY PREMIUM FOODSERVICE, L.L.C. |
| 2026-08 | THE POST OAK/MASTRO'S/WILLIE G'S | 1600 WEST LOOP S | 77027 | 1,196,659 | 333,253 | 534,234 | 329,172 | 1600 WEST LOOP SOUTH, LLC |
| 2026-08 | MARRIOTT MARQUIS HOUSTON | 1777 WALKER ST | 77010 | 1,076,901 | 670,444 | 108,770 | 278,487 | HOUSTON CONVENTION CENTER HOTEL, LLC |
| 2026-08 | PAPPAS BROS STEAKHOUSE | 5839 WESTHEIMER RD | 77057 | 558,506 | 133,825 | 419,487 | 5,194 | PAPPAS RESTAURANTS, INC. |

Every row also includes: `city`, `state`, `county`, `insideCityLimits`, `tabcPermitNumber`, `coverChargeReceipts`, `reportingStartDate`, `reportingEndDate` and `source`.

Example JSON for one row:

```json
{
  "reportMonth": "2026-08",
  "locationName": "PAPPAS BROS STEAKHOUSE",
  "address": "5839 WESTHEIMER RD",
  "city": "HOUSTON",
  "state": "TX",
  "zip": "77057",
  "county": "Harris",
  "insideCityLimits": true,
  "tabcPermitNumber": "MB153105",
  "totalReceipts": 558506,
  "liquorReceipts": 133825,
  "wineReceipts": 419487,
  "beerReceipts": 5194,
  "coverChargeReceipts": 0,
  "permitHolderBusiness": "PAPPAS RESTAURANTS, INC.",
  "reportingStartDate": "1993-12-01",
  "reportingEndDate": null,
  "source": "Texas Comptroller of Public Accounts – Mixed Beverage Gross Receipts (data.texas.gov, dataset naix-2893)"
}
```

You can download results as Excel, CSV, JSON or HTML, or connect them to Google Sheets, Zapier, Make and more.

### How much does it cost?

You pay **$4 for every 1,000 results** ($0.004 per row) and nothing else from this Actor. Apify's usual platform fees are already included in that price.

- The top 100 venues in a city costs about **$0.40**.
- Every venue in Houston for one month (about 2,500 rows) costs about **$10**.
- All of Texas for one month (about 21,000 rows) costs about **$84**.

Use **Maximum results** or Apify's "max cost per run" setting to cap what you spend. The Actor stops as soon as either limit is reached.

### FAQ

**Where does the data come from?**
From the Texas Comptroller of Public Accounts' *Mixed Beverage Gross Receipts* dataset, published on the official Texas Open Data Portal (data.texas.gov). It's public information that every venue holding a Texas mixed-beverage permit must report each month. No login, scraping tricks or private sources are used.

**How fresh is it?**
The state updates the dataset regularly, and venues file about a month after the month ends. The newest month is often only partly filed, so by default the Actor picks the newest month that is (nearly) fully reported. To see the partial newest month anyway, set the month fields yourself.

**Does it include personal information?**
No. The Actor outputs the venue's business name and location only. It never outputs the permit holder's mailing address or tax ID. The permit holder's name is only shown when it's clearly a business (LLC, Inc., LP and so on), so names of private individuals are left out.

**Why does a venue show $0?**
It filed a report but had no alcohol sales that month, for example because it closed, was renovating or was between owners. Use **Minimum monthly sales** to hide these rows.

**Are these sales or profit?**
Gross receipts: the total amount the venue charged for alcoholic drinks (and cover charges) before costs. They are not profit.

**Is this the same as a TABC license list?**
No. License lists tell you a venue is *allowed* to sell alcohol. This tells you how much it actually *sold*.

**Can I run it every month automatically?**
Yes. Create a Schedule in Apify Console (for example, on the 20th of each month) and connect it to Google Sheets or a webhook.

**Something's wrong or missing?**
Open an issue on the Actor's **Issues** tab and I'll take a look.

*This Actor is not affiliated with or endorsed by the State of Texas or the Texas Comptroller. Data is provided as published by the state, which does not guarantee its accuracy.*

# Actor input Schema

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

Only include venues in these Texas cities (e.g. Houston, Austin). Leave empty for all cities.

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

Only include venues in these Texas counties (e.g. Harris, Travis). Leave empty for all counties.

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

Only include venues in these 5-digit ZIP codes.

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

Only include venues whose name contains this text (e.g. STEAKHOUSE, HILTON). Not case-sensitive.

## `monthFrom` (type: `string`):

First report month to include, e.g. 2026-01. Leave both month fields empty to get the latest fully reported month automatically.

## `monthTo` (type: `string`):

Last report month to include, e.g. 2026-08.

## `minTotalReceipts` (type: `integer`):

Only include venues that reported at least this much in total alcohol sales for the month. 0 = no minimum.

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

Order of results.

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

Stop after this many results. You are only charged for results you receive.

## `includePermitHolder` (type: `boolean`):

Adds the company that holds the permit (e.g. PAPPAS RESTAURANTS, INC.). Only shown when it is clearly a business; names of private individuals are never included.

## `appToken` (type: `string`):

Optional free token from data.texas.gov that avoids rate limits on very large runs. Most users can leave this empty.

## Actor input object example

```json
{
  "cities": [
    "Houston"
  ],
  "minTotalReceipts": 0,
  "sortBy": "totalReceiptsDesc",
  "maxResults": 100,
  "includePermitHolder": true
}
```

# Actor output Schema

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

One row per venue per month with alcohol sales totals.

# 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 = {
    "cities": [
        "Houston"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("wicker_triathlon/texas-mixed-beverage-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 = {
    "cities": ["Houston"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("wicker_triathlon/texas-mixed-beverage-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 '{
  "cities": [
    "Houston"
  ],
  "maxResults": 100
}' |
apify call wicker_triathlon/texas-mixed-beverage-sales --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,wicker_triathlon/texas-mixed-beverage-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/nBkaoeaL4ebbBz76L/builds/9eMHSe7ragSQH93na/openapi.json
