# Search Businesses — Yelp Fusion

> Search businesses matching given criteria See docs here

- Key: `yelp-search-businesses`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Yelp Fusion (`yelp`) — https://pipedream.com/apps/yelp.md
- This page (HTML): https://pipedream.com/apps/yelp/actions/search-businesses
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/yelp/actions/search-businesses/search-businesses.ts

## Description

Search businesses matching given criteria [See docs here](https://docs.developer.yelp.com/reference/v3_business_search)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `location` | `string` | No | The geographic area to be used when searching for businesses. Examples: "New York City", "NYC", "350 5th Ave, New York, NY 10118". Required if latitude and longitude are not provided. |
| `latitude` | `string` | No | Latitude of the location to search from. Required if location is not provided. If longitude is provided, latitude is required too. |
| `longitude` | `string` | No | Longitude of the location to search from. Required if location is not provided. If latitude is provided, longitude is required too. |
| `term` | `string` | No | Search term, e.g. "food" or "restaurants". The term may also be the business's name, such as "Starbucks". If term is not included, the action will default to searching across businesses from a small number of popular categories. |
| `maxResults` | `integer` | No | The maximum amount of businesses to be listed. Yelp enforces a limit of 1000. Default is 200. |
| `categories` | `string[]` | No | Categories to filter the search results with. See the list of supported categories. The category alias should be used (e.g. "discgolf", not "Disc Golf"). |
| `price` | `integer[]` | No | Pricing levels to filter the search result with. |
| `attributes` | `string[]` | No | Additional filters to return specific search results. If multiple attributes are used, only businesses that satisfy all the attributes will be returned. |
| `additionalOptions` | `object` | No | Additional parameters to pass in the request, such as open_now. See the docs for all the parameters. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "yelp",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "yelp-search-businesses",
  arguments: {
    location: "Location",
    latitude: "Latitude",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "yelp-search-businesses",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    yelp: { authProvisionId: "apn_xxxxxxx" },
    location: "Location",
    latitude: "Latitude",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "yelp-search-businesses",
    "configured_props": {
      "yelp": { "authProvisionId": "apn_xxxxxxx" },
      "location": "Location",
      "latitude": "Latitude"
    }
  }'
```

---

- App: https://pipedream.com/apps/yelp.md · All apps: https://pipedream.com/apps
