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

# Search Places

> Search for places, businesses, and points of interest with structured metadata.

## Description

This endpoint performs a Google Places search using the provided query and optional parameters. It returns information about places matching the search criteria.

## Endpoint

```
POST https://app.dumplingai.com/api/v1/search-places
```

## Headers

* **Content-Type:** `application/json`
* **Authorization:** Bearer `<API_KEY>` (required)

## Request Body

```json theme={null}
{
  "query": "string", // Required. The search query for Google Places.
  "country": "string", // Optional. Country code for location bias (e.g., "US" for United States).
  "location": "string", // Optional. Specific location to focus the search (e.g., "New York, NY").
  "language": "string", // Optional. Language code for the search results (e.g., "en" for English).
  "page": "number" // Optional. Page number for paginated results.
}
```

## Responses

### Success (200)

Returns the search results from Google Places.

```json theme={null}
{
  "searchParameters": {
    "q": "string",
    "gl": "string", // Optional. Country code if provided.
    "type": "string",
    "location": "string", // Optional. Location if provided.
    "engine": "string"
  },
  "places": [
    {
      "position": "number",
      "title": "string",
      "address": "string",
      "latitude": "number",
      "longitude": "number",
      "website": "string", // Optional
      "cid": "string",
      "rating": "number", // Optional
      "ratingCount": "number", // Optional
      "category": "string", // Optional
      "phoneNumber": "string" // Optional
    }
  ]
}
```

* **Content-Type:** `application/json`
* **X-RateLimit-Limit:** The rate limit for the user.
* **X-RateLimit-Remaining:** The remaining number of requests for the user.

### Bad Request (400)

Returned if the request is invalid.

```json theme={null}
{
  "error": "query parameter is required"
}
```

### Unauthorized (401)

Returned if the API key is invalid or missing.

```json theme={null}
{
  "error": "Invalid or missing Authorization header"
}
```

### Internal Server Error (500)

Returned if there's an error during the search process.

```json theme={null}
{
  "error": "Failed to perform places search: [error message]"
}
```

## Example Request

```bash theme={null}
curl -X POST https://app.dumplingai.com/api/v1/search-places \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
  "query": "pizza restaurants",
  "country": "US",
  "location": "Chicago, IL",
  "language": "en"
}'
```

## Notes

* This endpoint uses 30 credits per page of results.
* The `country` parameter should be a two-letter country code (e.g., "US" for United States).
* The `location` parameter can be used to focus the search on a specific area. You can find a list of supported locations at GET: `/api/v1/google-locations`
* The `language` parameter can be used to specify the desired language for the search results.
* Usage is recorded with detailed parameters for each request.
* Events may be logged for analytics purposes if enabled.
* Pagination details (`page` parameter) are recorded but do not affect the API call to the search service.

## Rate Limiting

Rate limit headers (`X-RateLimit-Limit` and `X-RateLimit-Remaining`) are included in the response to indicate the user's current rate limit status.


## OpenAPI

````yaml POST /api/v1/search-places
openapi: 3.0.3
info:
  title: DumplingAI API
  version: 1.0.0
  description: >
    REST API for DumplingAI's content intelligence and automation platform.

    All endpoints are grouped under `/api/v1`; most are secured via Bearer API
    keys unless an operation explicitly sets `security: []`.
servers:
  - url: https://app.dumplingai.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: YouTube
    description: Access metadata, search results, and transcripts from YouTube.
  - name: TikTok
    description: Retrieve TikTok profile, video, follower, and transcript data.
  - name: LinkedIn
    description: Programmatically fetch LinkedIn company and profile data.
  - name: Search
    description: Search-orientated endpoints spanning web, news, maps, and autocomplete.
  - name: Google
    description: Integrations with Google business listings and location data.
  - name: Scraping
    description: Webpage capture, crawling, and structured content extraction utilities.
  - name: Documents
    description: Document processing, conversion, and metadata utilities.
  - name: AI
    description: DumplingAI agent and knowledge base endpoints.
  - name: Developer Tools
    description: Utilities for executing sandboxed code via API.
paths:
  /api/v1/search-places:
    post:
      tags:
        - Search
      summary: Search places
      description: >-
        Search for places, businesses, and points of interest with structured
        metadata.
      operationId: searchPlaces
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlacesSearchRequest'
            examples:
              default:
                value:
                  query: coffee shop
                  location: Austin, TX
      responses:
        '200':
          description: Place results returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlacesSearchResponse'
        '400':
          description: Invalid request payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key.
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    PlacesSearchRequest:
      type: object
      required:
        - query
      properties:
        query:
          type: string
        country:
          type: string
        location:
          type: string
        language:
          type: string
        page:
          type: integer
          minimum: 1
        requestSource:
          $ref: '#/components/schemas/RequestSource'
      additionalProperties: false
    PlacesSearchResponse:
      type: object
      properties:
        searchParameters:
          type: object
          properties:
            q:
              type: string
            gl:
              type: string
              nullable: true
            type:
              type: string
            location:
              type: string
              nullable: true
            engine:
              type: string
          required:
            - q
            - type
            - engine
          additionalProperties: true
        places:
          type: array
          items:
            $ref: '#/components/schemas/PlacesResult'
      required:
        - searchParameters
        - places
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable description of what went wrong.
      required:
        - error
    RequestSource:
      type: string
      description: Optional identifier describing where the API request originated.
      enum:
        - API
        - WEB
        - MAKE_DOT_COM
        - ZAPIER
        - N8N
        - PLAYGROUND
        - DEFAULT_AUTOMATION
        - AGENT_PREVIEW
        - AGENT_LIVE
        - AUTOPILOT
        - STUDIO
    PlacesResult:
      type: object
      properties:
        position:
          type: integer
        title:
          type: string
        address:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        website:
          type: string
          format: uri
          nullable: true
        cid:
          type: string
        rating:
          type: number
          nullable: true
        ratingCount:
          type: integer
          nullable: true
        category:
          type: string
          nullable: true
        phoneNumber:
          type: string
          nullable: true
      required:
        - position
        - title
        - address
        - latitude
        - longitude
        - cid
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````