places — Orange Slice capability
Outcome-priced capability. One price for the answer, whichever providers it took. Everything we expose, with prices: https://orangeslice.ai/llms.txt
Finds local businesses on Google Maps and returns one row per place, with address, phone, website and rating. Costs 5 credits per place returned — a search that returns 12 places costs 60. Up to 500 credits are held while it runs (100 places, the pinned maximum) and the unused remainder is released. A search that matches nothing is free.
Price
$0.01 per result, up to $1.00 per call
Billed per row returned, within the floor and ceiling above.
The price is a property of the outcome, not of the work behind it. Whichever vendor serves this call, and whatever it costs us, the number above is the number quoted before the run and charged after it.
Call it
CLI
orangeslice search places --search-strings-array "coffee shop" --city Austin --state TX # only places with a website, rated 4+: orangeslice search places --search-strings-array "dentist" --city Denver --website withWebsite --min-star-rating 4
HTTP
curl -X POST 'https://orangeslice.ai/api/v1/run' \ -H 'Authorization: Bearer $ORANGESLICE_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"capability":"places","input":{"searchStringsArray":"<string[]>"}}'
SDK
await services.googleMaps.scrape({ searchStringsArray: "…" });
Inputs
| Field | Type | Required | Description |
|---|---|---|---|
city | string | No | City to bias the search toward, e.g. Austin |
countryCode | string | No | Two-letter country code, e.g. US |
language | string | No | Result language as an ISO code. Defaults to en. |
lat | string | No | Latitude to bias toward. Takes precedence over city/state when given with lng. |
lng | string | No | Longitude to bias toward. Must be paired with lat. |
minStarRating | number | No | Drop places rated below this, e.g. 4 |
searchStringsArray | string[] | Yes | Search terms, e.g. ['coffee shop', 'espresso bar']. Empty strings are rejected by the executor. |
skipClosedPlaces | boolean | No | Drop permanently and temporarily closed places |
state | string | No | State or region to bias the search toward, e.g. TX |
website | string | No | Keep only places that have a website, or only those that do not |
zoom | number | No | Map zoom level, 1-21. Narrows the search radius; higher is tighter. |
Inputs may also be piped as NDJSON, one JSON object per line.
Output
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "places": { "type": "array", "items": { "type": "object", "properties": { "id": { "default": "", "type": "string" }, "title": { "default": "", "type": "string" }, "address": { "default": "", "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "postalCode": { "type": "string" }, "country": { "type": "string" }, "phone": { "type": "string" }, "website": { "type": "string" }, "rating": { "type": "number" }, "reviewsCount": { "type": "number" }, "categoryName": { "type": "string" }, "categories": { "type": "array", "items": { "type": "string" } }, "priceLevel": { "type": "string" }, "location": { "type": "object", "properties": { "lat": { "type": "number" }, "lng": { "type": "number" } }, "required": [ "lat", "lng" ], "additionalProperties": false }, "url": { "type": "string" }, "placeId": { "default": "", "type": "string" }, "businessStatus": { "type": "string" }, "openingHours": { "type": "array", "items": { "type": "string" } } }, "required": [ "id", "title", "address", "placeId" ], "additionalProperties": false } }, "count": { "type": "number" } }, "required": [ "places", "count" ], "additionalProperties": false }
The field that carries the answer is places. It is
null — or empty — when nothing was found, which is how a miss is told from a
hit without knowing anything else about this entry.
Before you run
- Price it first.
orangeslice search places --dry-runreturns the exact dollar cost and spends nothing. - Large runs need approval. Above the spend-gate threshold a run exits 7 until it carries a plan token, and only a dry run mints one.
- Scopes: enrich
- Permitted uses: research, outreach, export
Exit codes
0 ok · 2 bad input · 3 auth · 4 not found · 5 provider ·
6 rate limited · 7 spend gate, nothing billed · 8 timeout ·
9 a third-party account needs connecting