# US Food/Restaurants Leads (`kawsar/us-food-restaurants-leads`) Actor

USA food and restaurants extractor covering businesses across BBQ, American cuisine, bakeries, Chinese, and Italian restaurants — filter by category, subcategory, or business name with full case-insensitive matching.

- **URL**: https://apify.com/kawsar/us-food-restaurants-leads.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$2.99 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<p align="center">
  <img src="https://imgur.com/yOGGdCn.png" alt="USA Food & Restaurant Extractor" style="max-width:100%; border-radius:14px; width:680px;" />
</p>

## 🍽️ USA Food & Restaurants Extractor: Get Clean Restaurant Data by Category, Subcategory, or Name

**Stop hunting for restaurant contact data across fragmented sources.** Extract structured food and restaurant business records across the United States in seconds. Filter by category, subcategory, or business name and get back name, address, phone, website, email, and category labels — clean, consistent, and ready to use.

---

### Why restaurant data is hard to work with

You need a list of BBQ restaurants in a specific region. Or Italian restaurants that are also family-friendly. Or every bakery that shows up under a certain subcategory. You start searching, copy-pasting, and cleaning. Phones formatted differently. Emails missing. Category labels inconsistent. Names duplicated across sources.

This actor was built to fix that.

---

### What you get

Clean, structured restaurant and food business records across five major US food categories: BBQ restaurants, American cuisine restaurants, bakeries, Chinese restaurants, and Italian restaurants. Every record has the same seven fields — no nulls, no formatting surprises.

Filter by any combination of:

- Main food category (BBQ, American, Italian, Chinese, Bakeries)
- Subcategory label (Family restaurant, Fast food, Bar & grill, Pizza, and more)
- Business name keyword search
- Result limit (1 to 1,000 per run)

No filters? You get results from all five categories up to your chosen limit. Default is 100 records. Set it to 10000 to pull a large batch in one shot.

Filtering is fully **case-insensitive**. Type `bbq`, `BBQ`, `BBQ Restaurants`, or `bbq_restaurants` — they all return identical results. Spaces and underscores are treated the same.

---

### What each record contains

```json
{
    "name": "MISSION BBQ",
    "address": "508 E 23rd St, Panama City, FL 32405, United States",
    "phone": "18503042140",
    "website": "http://mission-bbq.com/",
    "email": "ajohnstone@mission-bbq.com",
    "subcategories": ["Barbecue restaurant", "Restaurant"],
    "sourceCategory": "BBQ_Restaurants"
}
````

***

### Input

| Parameter | Type | Default | Description |
|---|---|---|---|
| `categories` | array | — | Food categories to extract. Case-insensitive, partial match. See accepted values below. |
| `subcategories` | array | — | Subcategory label filter. Case-insensitive partial match. See examples below. |
| `searchKeyword` | string | — | Search by business name. Case-insensitive, matches any part of the name. |
| `maxItems` | integer | `100` | Max records to return. Min 100, max 10,000. |

***

#### Accepted values for `categories`

| Value | What it covers |
|---|---|
| `BBQ_Restaurants` | Barbecue restaurants, rib shacks, smokehouse diners, BBQ joints |
| `American_Cuisine_Restaurants` | American restaurants, diners, grill houses, burger spots |
| `Bakeries` | Bakeries, bread shops, pastry shops, cake shops |
| `Chinese_Restaurants` | Chinese restaurants, dim sum, and related cuisine types |
| `Italian_Restaurants` | Italian restaurants, pizza places, pasta restaurants, trattorias |

**Partial matching works.** You do not need to type the full value:

| You type | Matches |
|---|---|
| `bbq` | `BBQ_Restaurants` |
| `american` | `American_Cuisine_Restaurants` |
| `italian` | `Italian_Restaurants` |
| `chinese` | `Chinese_Restaurants` |
| `bakeri` | `Bakeries` |
| `BBQ Restaurants` | `BBQ_Restaurants` |
| `bbq_restaurants` | `BBQ_Restaurants` |

***

#### Example values for `subcategories` (partial match)

Each business carries detailed type labels. The subcategory filter searches those labels for any partial text match. Common values include:

`Barbecue restaurant` `American restaurant` `Family restaurant` `Fast food restaurant` `Bar & grill` `Pizza restaurant` `Italian restaurant` `Chinese restaurant` `Bakery` `Caterer` `Chicken wings restaurant` `Lunch restaurant` `Delivery restaurant` `Traditional restaurant` `Grill` `Restaurant`

Enter any partial string. `fast food` matches `Fast food restaurant`. `bar` matches `Bar & grill`. Case does not matter.

***

#### Example inputs

**Get BBQ and Italian restaurants, up to 200 results:**

```json
{
    "categories": ["BBQ_Restaurants", "Italian_Restaurants"],
    "maxItems": 200
}
```

**Find all family restaurants across every category:**

```json
{
    "subcategories": ["Family restaurant"],
    "maxItems": 500
}
```

**Search for a specific business by name:**

```json
{
    "searchKeyword": "olive garden",
    "maxItems": 100
}
```

**Combine category and subcategory filters:**

```json
{
    "categories": ["American_Cuisine_Restaurants"],
    "subcategories": ["Bar & grill"],
    "maxItems": 300
}
```

**Pull all categories, maximum results:**

```json
{
    "maxItems": 10000
}
```

***

### Output fields

<p align="center">
  <img src="https://imgur.com/8TSvper.png" alt="USA Food & Restaurant Extractor" style="max-width:100%; border-radius:14px; width:680px;" />
</p>

| Field | Type | Description |
|---|---|---|
| `name` | string | Business name of the restaurant or food establishment |
| `address` | string | Full US street address, city, state, and ZIP code |
| `phone` | string | Phone number in digits-only format |
| `website` | string | Business website URL. Empty string if not available. |
| `email` | string | Contact email address. Empty string if not available. |
| `subcategories` | array | Detailed type labels for this business, such as `Barbecue restaurant`, `Family restaurant`, `Fast food restaurant` |
| `sourceCategory` | string | Main food category this business belongs to |

***

### How the filters work

Three independent filters stack together in any combination:

**Category filter** matches your input against the main food category for each business. Case-insensitive, partial match. Multiple values work as OR logic — `BBQ_Restaurants` and `Italian_Restaurants` returns records from either.

**Subcategory filter** scans each business's detailed type labels for a partial text match. Entering `fast food` returns any business whose label list contains something matching "fast food", across any category.

**Keyword filter** searches the business name field. Case-insensitive. Entering `panda` matches any name containing "panda".

When multiple filters are active, **all must match** — they stack as AND logic.

***

### Use cases

- **Lead generation**: export phone numbers, emails, and websites for restaurants in a specific category to build targeted outreach lists
- **Market research**: analyze restaurant type distribution across categories and identify gaps in specific food segments
- **Directory building**: populate a local food directory, restaurant finder, or map app with clean structured data
- **Contact lookup**: find a specific chain or local restaurant by name and pull its full contact details in one run
- **Competitive intelligence**: pull all records in a category to benchmark coverage and subcategory spread
- **Data enrichment**: match restaurant names from your own list to fill in missing address, phone, or website fields
- **App development**: use as a reference source for building restaurant search, autofill, or recommendation features

***

### FAQ

**What food categories are available?**
BBQ\_Restaurants, American\_Cuisine\_Restaurants, Bakeries, Chinese\_Restaurants, and Italian\_Restaurants.

**Does casing or formatting matter for category input?**
No. `BBQ`, `bbq`, `Bbq`, `BBQ Restaurants`, and `bbq_restaurants` all match the same category. Spaces and underscores are treated as equivalent.

**What is the subcategory filter for?**
Each restaurant carries a list of detailed type labels. The subcategory filter does a partial text search across those labels. Entering `family restaurant` returns only businesses that carry that label anywhere in their list.

**Can I combine all three filters at once?**
Yes. All three filters can be active in the same run. Every active filter must match for a record to be included.

**Why are some records missing email or website?**
Not all businesses list every contact field. Fields with no data return as an empty string.

**What US states are covered?**
All 50 US states.

**How many results can I get per run?**
Up to 10,000 per run via the `maxItems` parameter. For even larger exports, run the actor multiple times with different category or keyword filters to cover different segments.

**What does the subcategory array contain?**
Each business can belong to multiple subcategory labels — for example, a BBQ spot might carry `Barbecue restaurant`, `American restaurant`, `Family restaurant`, and `Caterer` all at once. The array includes every label that applies.

***

# Actor input Schema

## `categories` (type: `array`):

Filter by main food category. Case-insensitive — accepts partial names like 'bbq', 'american', 'italian', 'chinese', 'bakeri'. Leave empty to include all categories.

## `subcategories` (type: `array`):

Filter by subcategory label. Case-insensitive partial match. Examples: 'fast food', 'family restaurant', 'bar & grill', 'pizza'. Leave empty to skip subcategory filtering.

## `searchKeyword` (type: `string`):

Search by business name. Case-insensitive, matches any part of the name. Example: 'mission bbq', 'panda', 'olive garden'. Leave empty to skip name filtering.

## `maxItems` (type: `integer`):

Maximum number of records to return per run. Minimum 100, maximum 10000. Default is 100.

## Actor input object example

```json
{
  "categories": [
    "BBQ_Restaurants",
    "Italian_Restaurants"
  ],
  "subcategories": [
    "Barbecue restaurant",
    "Family restaurant"
  ],
  "searchKeyword": "mission bbq",
  "maxItems": 100
}
```

# 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 = {
    "categories": [
        "BBQ_Restaurants"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/us-food-restaurants-leads").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 = { "categories": ["BBQ_Restaurants"] }

# Run the Actor and wait for it to finish
run = client.actor("kawsar/us-food-restaurants-leads").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categories": [
    "BBQ_Restaurants"
  ]
}' |
apify call kawsar/us-food-restaurants-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kawsar/us-food-restaurants-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Food/Restaurants Leads",
        "description": "USA food and restaurants extractor covering businesses across BBQ, American cuisine, bakeries, Chinese, and Italian restaurants — filter by category, subcategory, or business name with full case-insensitive matching.",
        "version": "0.0",
        "x-build-id": "BrGoFooXzfNbWU7uZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kawsar~us-food-restaurants-leads/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kawsar-us-food-restaurants-leads",
                "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/kawsar~us-food-restaurants-leads/runs": {
            "post": {
                "operationId": "runs-sync-kawsar-us-food-restaurants-leads",
                "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/kawsar~us-food-restaurants-leads/run-sync": {
            "post": {
                "operationId": "run-sync-kawsar-us-food-restaurants-leads",
                "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": {
                    "categories": {
                        "title": "Categories",
                        "type": "array",
                        "description": "Filter by main food category. Case-insensitive — accepts partial names like 'bbq', 'american', 'italian', 'chinese', 'bakeri'. Leave empty to include all categories.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "subcategories": {
                        "title": "Subcategories",
                        "type": "array",
                        "description": "Filter by subcategory label. Case-insensitive partial match. Examples: 'fast food', 'family restaurant', 'bar & grill', 'pizza'. Leave empty to skip subcategory filtering.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchKeyword": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Search by business name. Case-insensitive, matches any part of the name. Example: 'mission bbq', 'panda', 'olive garden'. Leave empty to skip name filtering."
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 100,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of records to return per run. Minimum 100, maximum 10000. Default is 100.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
