---
title: "Perform a web search"
method: POST
path: "/api/data/{project_id}/search"
tags: ["Data"]
---

# Perform a web search

`POST /api/data/{project_id}/search`

## Request

- Base URL: `https://core.blink.new`
- URL: `https://core.blink.new/api/data/{project_id}/search`
- Auth: HTTP bearer

**🔍 Web Search**

Execute a web search and receive structured, provider-agnostic results.
Powered by the Value SERP API with provider-specific metadata stripped out.

**📋 Result Types**
- `organic_results` — Main search results (always included)
- `total_results` — Total number of results found
- `related_searches` — Related search query suggestions
- `people_also_ask` — PAA questions with snippets and source links
- `local_results` — Local business results (when location is set or detected)
- `ads` — Paid advertisement entries (when present)
- `shopping_results` — Shopping results (when available)
- `news_results` — News articles (when `tbm=nws` or news is detected)
- `image_results` — Image results (when `tbm=isch`)

**🌍 Search Types via `tbm`**
- *(omit)* — Standard web search (default)
- `nws` — News search
- `isch` — Image search
- `vid` — Video search
- `shop` — Shopping search

## Path parameters

- `project_id` string, required

## Request body

- SearchRequest
  - `q` string, required: Search query (required)
  - `location` string: Geographic location in Value SERP format
  - `hl` string: Language code (2 characters)
  - `tbm` 'nws' | 'isch' | 'vid' | 'shop': Search type: nws=news, isch=images, vid=videos, shop=shopping
  - `num` integer: Number of results (let API handle default if not specified)

## Response `200`

Search completed successfully

- SearchResponse
  - `organic_results` object[]: Main search results (always included)
    - `position` integer: Result position in search results
    - `title` string: Result title
    - `link` string, uri: Result URL
    - `snippet` string: Result description/snippet
  - `total_results` string: Total number of results found
  - `related_searches` string[]: Related search suggestions
  - `people_also_ask` object[]: People Also Ask section (when available)
    - `question` string: Question text
    - `snippet` string: Answer snippet
    - `link` string, uri: Source URL
  - `local_results` object[]: Local business results (when location specified or detected)
    - `title` string: Business name
    - `address` string: Business address
    - `rating` number: Star rating
    - `reviews` integer: Number of reviews
    - `phone` string: Phone number
  - `ads` object[]: Paid advertisements (when present)
    - `title` string: Ad title
    - `link` string, uri: Ad URL
    - `snippet` string: Ad description
  - `shopping_results` object[]: Shopping results (when available)
    - `title` string: Product title
    - `price` string: Product price
    - `source` string: Store/source name
    - `link` string, uri: Product URL
  - `news_results` object[]: News results (when tbm=nws or news detected)
    - `title` string: News article title
    - `link` string, uri: Article URL
    - `snippet` string: Article snippet
    - `date` string: Publication date
    - `source` string: News source
  - `image_results` object[]: Image results (when tbm=isch)
    - `title` string: Image title/alt text
    - `link` string, uri: Source page URL
    - `original` string, uri: Original image URL
    - `thumbnail` string, uri: Thumbnail image URL

## Other responses

- `400`: Validation error
- `401`: Authentication required or invalid API key
- `405`: Method not allowed — only POST is supported
- `500`: Internal server error

---

[API](https://skmtc.dev/blink/apis/blink-apis.md) - [All operations](https://skmtc.dev/blink/apis/blink-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/blink/apis/blink-apis/revisions/4c59c706078e?raw)
