# Resolve place

Resolve a place name or place ID and return structured place information together with Zepto serviceability and store context.

- Platform: [Zepto](https://docs.upscrape.com/docs/platforms/zepto)
- Capability ID: `zepto.place.resolve`
- Cost: 1 credit per request
- Maximum runtime: 180 seconds
- Execute endpoint: `POST https://data.upscrape.com/execute`

## Request

Use the exact public capability ID in the shared execute envelope.

```bash
curl --request POST \
  --url https://data.upscrape.com/execute \
  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Prefer: wait=30" \
  --data '{
  "input": {
    "query": "Indiranagar Bengaluru"
  },
  "capability": "zepto.place.resolve"
}'
```

## Input

Provide query to search for a place or provide place_id to resolve directly. Use a nonblank real-world place or address rather than inventing an identifier.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `place_id` | `string` | No | Google Maps place ID to resolve directly. |
| `query` | `string` | No | Place name or address to search for. |

### Example input

```json
{
  "query": "Indiranagar Bengaluru"
}
```

## Response

Successful output is returned in `results[0].data`.

The response separates place details from Zepto delivery location context. Keep formatted address/coordinates and location.serviceable/store fields distinct.

A query with no authoritative suggestion can return not_found. Do not reinterpret malformed place-detail responses as proof that a place does not exist.

### Illustrative sample output

This example shows one response. Values and optional fields vary with the data available.

```json
{
  "captured_at": "2026-09-24T09:55:32.401064554Z",
  "location": {
    "eta_minutes": 12,
    "eta_serviceable": true,
    "latitude": 12.9783692,
    "longitude": 77.6408356,
    "secondary_store_ids": [
      "071461ac-2354-4e5e-b5f5-04ef935f591c"
    ],
    "serviceable": true,
    "store_id": "5b1796e1-36c2-4ae9-83a0-c03c25cac05a",
    "store_ids": [
      "5b1796e1-36c2-4ae9-83a0-c03c25cac05a",
      "071461ac-2354-4e5e-b5f5-04ef935f591c"
    ]
  },
  "place": {
    "captured_at": "2026-09-24T09:55:32.249344319Z",
    "city": "Bengaluru",
    "country": "India",
    "country_code": "IN",
    "district": "Bengaluru Urban",
    "formatted_address": "Indiranagar, Bengaluru, Karnataka, India",
    "latitude": 12.9783692,
    "locality": "Indiranagar",
    "location_type": "APPROXIMATE",
    "longitude": 77.6408356,
    "place_id": "ChIJkQN3GKQWrjsRNhBQJrhGD7U",
    "state": "Karnataka",
    "state_code": "KA",
    "types": "political sublocality sublocality_level_1"
  },
  "query": "Indiranagar Bengaluru"
}
```
### Illustrative output fields

Derived from the sample above for orientation only. These fields are not a fixed response schema.

| Path | Observed type | Example |
| --- | --- | --- |
| `captured_at` | `string` | 2026-09-24T09:55:32.401064554Z |
| `location` | `object` | 8 fields |
| `location.eta_minutes` | `integer` | 12 |
| `location.eta_serviceable` | `boolean` | true |
| `location.latitude` | `number` | 12.9783692 |
| `location.longitude` | `number` | 77.6408356 |
| `location.secondary_store_ids` | `array` | 1 items |
| `location.serviceable` | `boolean` | true |
| `location.store_id` | `string` | 5b1796e1-36c2-4ae9-83a0-c03c25cac05a |
| `location.store_ids` | `array` | 2 items |
| `place` | `object` | 14 fields |
| `place.captured_at` | `string` | 2026-09-24T09:55:32.249344319Z |
| `place.city` | `string` | Bengaluru |
| `place.country` | `string` | India |
| `place.country_code` | `string` | IN |
| `place.district` | `string` | Bengaluru Urban |
| `place.formatted_address` | `string` | Indiranagar, Bengaluru, Karnataka, India |
| `place.latitude` | `number` | 12.9783692 |
| `place.locality` | `string` | Indiranagar |
| `place.location_type` | `string` | APPROXIMATE |
| `place.longitude` | `number` | 77.6408356 |
| `place.place_id` | `string` | ChIJkQN3GKQWrjsRNhBQJrhGD7U |
| `place.state` | `string` | Karnataka |
| `place.state_code` | `string` | KA |
| `place.types` | `string` | political sublocality sublocality_level_1 |
| `query` | `string` | Indiranagar Bengaluru |

## Execution behavior

A `200` response completed inline. A `202` response was queued; poll `GET /jobs/{id}` until the job reaches `completed` or `failed`. Use an `Idempotency-Key` when retrying must not create a duplicate logical job.

## Related documentation

- [Authentication](https://docs.upscrape.com/docs/api/authentication)
- [Jobs and results](https://docs.upscrape.com/docs/api/jobs)
- [Errors and retries](https://docs.upscrape.com/docs/api/errors)
- [Idempotency](https://docs.upscrape.com/docs/api/idempotency)
