# Perform Search — SERPhouse

> Performs a search using the Serphouse API. See the documentation

- Key: `serphouse-perform-search`
- Type: Action (Read-only)
- Version: 0.0.1
- App: SERPhouse (`serphouse`) — https://pipedream.com/apps/serphouse.md
- This page (HTML): https://pipedream.com/apps/serphouse/actions/perform-search
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/serphouse/actions/perform-search/perform-search.mjs

## Description

Performs a search using the Serphouse API. [See the documentation](https://docs.serphouse.com/serp-api/live-using-http-get-method)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `query` | `string` | Yes | Search phrase that you want to search |
| `domain` | `string` | Yes | The domain to search Options are loaded from the connected account. |
| `language` | `string` | Yes | The language to use for the search Options are loaded from the connected account. |
| `device` | `string` | Yes | The device to use for the search |
| `serpType` | `string` | Yes | The type of SERP to use for the search |
| `locationId` | `string` | No | Search for a location or enter a location ID. Required for Google and Bing searches. Options are loaded from the connected account. |
| `verbatim` | `boolean` | No | If true, the search will be performed verbatim |
| `gfilter` | `boolean` | No | Parameter defines if the filters for 'Similar Results' and 'Omitted Results' are on or off. It can be set to true (default) to enable these filters, or false to disable these filters. |
| `page` | `integer` | No | Give specific page to get the result of that page number. By default it will get you first page |
| `numResults` | `integer` | No | Define number of result you want to get per page. By default you will get top 100 results. |
| `dateRange` | `string` | No | Parameter defines the date range for the search |

## 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": "serphouse",
      },
    },
  },
)

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: "serphouse-perform-search",
  arguments: {
    query: "Query",
    domain: "Domain",
  },
})
```

**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: "serphouse-perform-search",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    serphouse: { authProvisionId: "apn_xxxxxxx" },
    query: "Query",
    domain: "Domain",
  },
})

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": "serphouse-perform-search",
    "configured_props": {
      "serphouse": { "authProvisionId": "apn_xxxxxxx" },
      "query": "Query",
      "domain": "Domain"
    }
  }'
```

---

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