n8n-nodes-innate-google-places
v0.1.0
Published
n8n community node for Google Places API (Text Search)
Maintainers
Readme
n8n-nodes-innate-google-places
An n8n community node that integrates with the Google Places API (New) — Text Search endpoint.
Features
- 🔍 Text Search — Search for places using free-text queries via
POST /places:searchText - 📄 Pagination — Full support for
nextPageTokenwith Return All and Max Results controls - 🗺️ Location Bias & Restriction — Circle bias, rectangle bias, or rectangle restriction
- 🏷️ Granular Field Masks — Select only the fields you need (
X-Goog-FieldMask) - 🔑 API Key auth — Quick setup via a dedicated credential
- ⚠️ Proper error handling —
NodeOperationErrorfor validation,NodeApiErrorfor Google API failures - 🔗 Paired-item metadata — Every output item carries
pairedItemfor merge-safe workflows
Installation
Via the n8n Community Nodes UI (recommended)
- In n8n, go to Settings → Community Nodes
- Click Install
- Enter
n8n-nodes-innate-google-places - Click Install
Manual (self-hosted n8n)
cd /path/to/your/n8n
npm install n8n-nodes-innate-google-places
# then restart n8nPrerequisites
- A Google Cloud project with the Places API (New) enabled.
- An API key with access to the Places API (New).
Tip: The Places API (New) is a separate product from the legacy Places API. Make sure you enable Places API (New) in the Google Cloud Console.
Credentials
| Field | Type | Description | |---------|----------|------------------------------| | API Key | Password | Your Google Places API key |
Node: Google Places
Resource: Place · Operation: Text Search
Searches for places matching a free-text query.
Required Parameters
| Parameter | Type | Description |
|------------|--------------|----------------------------------------------------------|
| Query | String | The text to search for (maps to textQuery) |
| Fields | Multi-select | Fields to return — builds the X-Goog-FieldMask header |
Pagination
| Parameter | Type | Description |
|-------------|---------|-------------------------------------------------------------|
| Return All | Boolean | Fetch all pages automatically using nextPageToken |
| Max Results | Number | Maximum total results (shown only when Return All is false) |
Optional Filters
| Parameter | Description |
|-----------------|------------------------------------------------|
| Language Code | BCP-47 language code for result language |
| Region Code | CLDR two-character region code |
| Rank Preference | RELEVANCE (default) or DISTANCE |
| Included Type | Restrict to a single Google Place type |
| Open Now | Only return currently-open places |
| Min Rating | Minimum average rating (0–5) |
| Price Levels | One or more price level filters |
Location Mode
| Mode | Description | |-----------------------|------------------------------------------------------------------------| | None | No geographic constraint | | Bias — Circle | Prefer results near a center point + radius (meters) | | Bias — Rectangle | Prefer results within a lat/lng bounding box | | Restrict — Rectangle | Return only results within a lat/lng bounding box |
Output
Each matched place is returned as a separate n8n item containing:
{
"id": "ChIJ...",
"displayName": { "text": "Joe's Pizza", "languageCode": "en" },
"formattedAddress": "7 Carmine St, New York, NY 10014",
"location": { "latitude": 40.7304, "longitude": -74.0025 },
"types": ["pizza_restaurant", "restaurant"],
"_meta": {
"inputQuery": "pizza in New York"
}
}Every item includes pairedItem metadata so it can be safely merged with upstream data.
Development
# Install dependencies
npm install
# Build (compile TypeScript + copy icons)
npm run build
# Watch mode
npm run dev
# Lint
npm run lint
# Format
npm run formatVersioning
This package follows Semantic Versioning.
| Version | Notes | |---------|-----------------------------------------------| | 0.1.0 | Initial release — Text Search, API key auth |
Roadmap
- [ ] Place Details (Fields)
- [ ] Nearby Search (New)
- [ ] Photos API
- [ ] Autocomplete
License
MIT © Innate
