> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# RapidAPI: Google Web Search

> Fetch Google organic web results (title, url, snippet) for a query, about 20 results per page. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

Fetch Google organic web results (title, url, snippet) for a query, about 20 results per page.

<Info>
  Tool ID: `rapidapi_google_web_search`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'rapidapi_google_web_search',
  {
    "query": "software companies hiring engineers"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute rapidapi_google_web_search --input '{
  "query": "software companies hiring engineers"
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "listing": {
    "slug": "example",
    "host": "api.example.com",
    "label": "example"
  },
  "method": "example",
  "path": "example",
  "status_code": 123,
  "ok": true,
  "billed_requests": 1,
  "data": {
    "query": "software companies hiring engineers",
    "search_type": "web",
    "language": "en",
    "country": "US",
    "pages": 10,
    "result_count": 123,
    "results": [
      {
        "title": "VP of Engineering",
        "url": "https://example.com",
        "display_url": "https://example.com",
        "snippet": "example",
        "thumbnail": "example"
      }
    ],
    "has_next_page": true
  }
}
```

Use `deepline tools get rapidapi_google_web_search --json` for the latest machine-readable contract.

## Input reference

| Name               | Type      | Required | Default | Details                                                                                                                                                                      |
| ------------------ | --------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.query`    | `string`  | Yes      | —       | Search query. Examples: best laptop 2026, iphone 16 review, cheap flights dhaka. Minimum length: 1.                                                                          |
| `payload.pages`    | `integer` | No       | `1`     | Number of result pages to fetch (default 1, maximum 10). Each page returns about 20 results and costs one request, so pages=3 costs three requests. Minimum: 1. Maximum: 10. |
| `payload.language` | `string`  | No       | `"en"`  | Language Google should prefer for results (default en). Examples: en, bn, es, hi, fr, de, ja. Minimum length: 1.                                                             |
| `payload.country`  | `string`  | No       | `"us"`  | Country or region whose results are boosted in ranking (default us). Examples: us, uk, bd, in, de, ca. Minimum length: 1.                                                    |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "Search query. Examples: best laptop 2026, iphone 16 review, cheap flights dhaka.",
        "minLength": 1
      },
      "pages": {
        "type": "integer",
        "description": "Number of result pages to fetch (default 1, maximum 10). Each page returns about 20 results and costs one request, so pages=3 costs three requests.",
        "default": 1,
        "minimum": 1,
        "maximum": 10
      },
      "language": {
        "type": "string",
        "description": "Language Google should prefer for results (default en). Examples: en, bn, es, hi, fr, de, ja.",
        "default": "en",
        "minLength": 1
      },
      "country": {
        "type": "string",
        "description": "Country or region whose results are boosted in ranking (default us). Examples: us, uk, bd, in, de, ca.",
        "default": "us",
        "minLength": 1
      }
    },
    "required": [
      "query"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

| Name                                | Type             | Required | Default | Details                                                                                               |
| ----------------------------------- | ---------------- | -------- | ------- | ----------------------------------------------------------------------------------------------------- |
| `result.listing`                    | `object`         | Yes      | —       | —                                                                                                     |
| `result.listing.slug`               | `string`         | Yes      | —       | —                                                                                                     |
| `result.listing.host`               | `string`         | Yes      | —       | —                                                                                                     |
| `result.listing.label`              | `string`         | Yes      | —       | —                                                                                                     |
| `result.method`                     | `string`         | Yes      | —       | —                                                                                                     |
| `result.path`                       | `string`         | Yes      | —       | —                                                                                                     |
| `result.status_code`                | `integer`        | Yes      | —       | —                                                                                                     |
| `result.ok`                         | `boolean`        | Yes      | —       | True for a 2xx upstream response. 404 and 410 are returned with ok=false instead of failing the call. |
| `result.billed_requests`            | `integer`        | Yes      | —       | Requests the listing reported in its X-RapidAPI-Billing header, or null when the header was absent.   |
| `result.data`                       | `object`         | Yes      | —       | —                                                                                                     |
| `result.data.query`                 | `string`         | Yes      | —       | Echo of q.                                                                                            |
| `result.data.search_type`           | `"web"`          | Yes      | —       | —                                                                                                     |
| `result.data.language`              | `string`         | Yes      | —       | Search language used.                                                                                 |
| `result.data.country`               | `string`         | Yes      | —       | Country or region used.                                                                               |
| `result.data.pages`                 | `integer`        | Yes      | —       | Pages fetched. One page is one billed request. Minimum: 1. Maximum: 10.                               |
| `result.data.result_count`          | `integer`        | Yes      | —       | Number of items returned.                                                                             |
| `result.data.results`               | `array`          | Yes      | —       | —                                                                                                     |
| `result.data.results[].title`       | `string \| null` | Yes      | —       | —                                                                                                     |
| `result.data.results[].url`         | `string \| null` | Yes      | —       | —                                                                                                     |
| `result.data.results[].display_url` | `string \| null` | Yes      | —       | —                                                                                                     |
| `result.data.results[].snippet`     | `string \| null` | Yes      | —       | —                                                                                                     |
| `result.data.results[].thumbnail`   | `string \| null` | Yes      | —       | —                                                                                                     |
| `result.data.has_next_page`         | `boolean`        | Yes      | —       | More results may exist.                                                                               |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "listing": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "host",
          "label"
        ],
        "additionalProperties": false
      },
      "method": {
        "type": "string"
      },
      "path": {
        "type": "string"
      },
      "status_code": {
        "type": "integer"
      },
      "ok": {
        "type": "boolean",
        "description": "True for a 2xx upstream response. 404 and 410 are returned with ok=false instead of failing the call."
      },
      "billed_requests": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Requests the listing reported in its X-RapidAPI-Billing header, or null when the header was absent."
      },
      "data": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Echo of q."
          },
          "search_type": {
            "type": "string",
            "const": "web"
          },
          "language": {
            "type": "string",
            "description": "Search language used."
          },
          "country": {
            "type": "string",
            "description": "Country or region used."
          },
          "pages": {
            "type": "integer",
            "description": "Pages fetched. One page is one billed request.",
            "minimum": 1,
            "maximum": 10
          },
          "result_count": {
            "type": "integer",
            "description": "Number of items returned."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "display_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "snippet": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "thumbnail": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "title",
                "url",
                "display_url",
                "snippet",
                "thumbnail"
              ],
              "additionalProperties": true
            }
          },
          "has_next_page": {
            "type": "boolean",
            "description": "More results may exist."
          }
        },
        "required": [
          "query",
          "search_type",
          "language",
          "country",
          "pages",
          "result_count",
          "results",
          "has_next_page"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "listing",
      "method",
      "path",
      "status_code",
      "ok",
      "billed_requests",
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `provider_usage` (provider usage).
* Estimated Deepline credits: `0.01` per pricing unit.

## Related documentation

* [RapidAPI provider guide](/docs/providers/rapidapi/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
