Skip to content

Add CSV2GEO Geocoding integration#20484

Open
acenji wants to merge 1 commit intoPipedreamHQ:masterfrom
acenji:add-csv2geo-integration
Open

Add CSV2GEO Geocoding integration#20484
acenji wants to merge 1 commit intoPipedreamHQ:masterfrom
acenji:add-csv2geo-integration

Conversation

@acenji
Copy link
Copy Markdown

@acenji acenji commented Apr 1, 2026

Summary

Adds CSV2GEO Geocoding as a new integration with 4 action components.

CSV2GEO is a geocoding API with 461M+ addresses across 200+ countries, 72M+ POIs, and rooftop-level accuracy.

Components

Component Type Description
Forward Geocode Action Convert address to lat/lng coordinates
Reverse Geocode Action Convert coordinates to street address
Search Places Action Search 72M+ POIs (businesses, landmarks)
Autocomplete Address Action Type-ahead address suggestions

Authentication

  • API Key auth (api_key query parameter)
  • Free tier: 1,000 requests/day, no credit card required
  • Get key at csv2geo.com/api-keys

Links

Summary by CodeRabbit

  • New Features
    • Added CSV2Geo integration with four new actions: Autocomplete Address for real-time address suggestions, Forward Geocode to convert addresses to coordinates, Reverse Geocode to convert coordinates to addresses, and Search Places to find locations by query and optional category filters.

CSV2GEO is a geocoding API with 461M+ addresses across 200+ countries.

New components:
- Forward Geocode: Convert address to lat/lng coordinates
- Reverse Geocode: Convert coordinates to street address
- Search Places: Search 72M+ POIs (businesses, landmarks, etc.)
- Autocomplete Address: Type-ahead address suggestions

Authentication: API key (free tier: 1,000 requests/day)
Website: https://csv2geo.com
API Docs: https://csv2geo.com/api/docs
@adolfo-pd adolfo-pd added the User submitted Submitted by a user label Apr 1, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Apr 1, 2026 7:13pm

Request Review

@pipedream-component-development
Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development
Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 1, 2026

Walkthrough

A new CSV2Geo integration component is added to Pipedream, consisting of a base app module providing API client methods for geocoding, reverse geocoding, place search, and address autocomplete, along with four action modules that expose these capabilities via individual actions.

Changes

Cohort / File(s) Summary
CSV2Geo App Module
components/csv2geo/csv2geo.app.mjs
Provides base integration with csv2geo API, defining prop definitions for address, country, latitude, and longitude; exports getBaseUrl() helper and _makeRequest() for shared request logic with automatic API key injection; exposes four public methods (geocode, reverseGeocode, searchPlaces, autocomplete) that delegate to distinct API endpoints.
Geocoding Actions
components/csv2geo/actions/autocomplete/autocomplete.mjs, components/csv2geo/actions/forward-geocode/forward-geocode.mjs, components/csv2geo/actions/reverse-geocode/reverse-geocode.mjs, components/csv2geo/actions/search-places/search-places.mjs
Four action modules that wrap CSV2Geo API methods; each declares input props (address, country, coordinates, or search terms), invokes the corresponding app method via this.csv2geo, computes result counts, exports a $summary string with results or "not found" message, and returns the API response.
Package Manifest
components/csv2geo/package.json
Defines the @pipedream/csv2geo package with entrypoint csv2geo.app.mjs and declares dependency on @pipedream/platform ^3.0.0.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Action as Action Module<br/>(e.g., Forward Geocode)
    participant App as CSV2Geo App<br/>(csv2geo.app.mjs)
    participant API as CSV2Geo API<br/>(csv2geo.com/api/v1)
    
    User->>Action: Invoke with params<br/>(address, country, etc.)
    Action->>App: Call this.csv2geo.geocode({ $, params })
    App->>App: _makeRequest({ path, params })
    App->>API: HTTP GET with api_key & params
    API-->>App: Return results
    App-->>Action: Response object
    Action->>Action: Extract result[0]<br/>Compute $summary
    Action->>Action: Export $summary string
    Action-->>User: Return response & summary
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description provides a comprehensive overview including a summary, detailed component table, authentication details, and relevant links. However, it does not follow the required template structure with a 'WHY' section. Add a 'WHY' section to the description to explain the motivation and reasoning behind adding this integration to align with the repository's template requirements.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add CSV2GEO Geocoding integration' accurately and concisely summarizes the main purpose of the PR, which is to add a new geocoding integration with four action components.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@components/csv2geo/actions/reverse-geocode/reverse-geocode.mjs`:
- Around line 35-37: The summary exports currently include exact PII (calls to
$.export("$summary") that interpolate this.latitude, this.longitude, and
result.formatted_address); change these to avoid leaking precise location by
replacing detailed values with a redacted or generalized description (e.g.,
"coordinates provided" or a coarse region like city/country if available) or use
truncated/masked coordinates, and update both branches (the success and "no
address found" messages) to only include the sanitized text.

In `@components/csv2geo/csv2geo.app.mjs`:
- Around line 55-72: Add method-level guard clauses in reverseGeocode,
searchPlaces, and autocomplete to validate numeric args against the documented
min/max bounds before calling this._makeRequest; for each method check the
relevant parameters (e.g., latitude/longitude ranges for reverseGeocode,
radius/limit for searchPlaces and autocomplete) and if any value is outside the
allowed range throw a clear RangeError (include the function name, parameter
name, actual value and allowed range) instead of forwarding the invalid args to
_makeRequest. Ensure the checks run early in each method, use consistent error
messaging, and keep the validation logic colocated in each function (or call a
small shared helper) so invalid requests are rejected client-side.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8c9b4713-2e55-4c40-9052-2cc18379b55b

📥 Commits

Reviewing files that changed from the base of the PR and between 1c37cb2 and 046cbda.

📒 Files selected for processing (6)
  • components/csv2geo/actions/autocomplete/autocomplete.mjs
  • components/csv2geo/actions/forward-geocode/forward-geocode.mjs
  • components/csv2geo/actions/reverse-geocode/reverse-geocode.mjs
  • components/csv2geo/actions/search-places/search-places.mjs
  • components/csv2geo/csv2geo.app.mjs
  • components/csv2geo/package.json

Comment thread components/csv2geo/actions/reverse-geocode/reverse-geocode.mjs
Comment thread components/csv2geo/csv2geo.app.mjs
@sergio-eliot-rodriguez
Copy link
Copy Markdown
Collaborator

Hi @acenji, Sergio here from the Pipedream integrations team.

I'm working on adding csv2geo to our App Store, but I've run into a snag with the API Key setup. The PR mentions a "Free tier" (1,000 requests/day), but when I attempt to generate a key at csv2geo.com/api-keys, the system indicates that a PRO plan is required.

Could you help us bypass this or provide a test API Key so we can finalize the integration and the OpenAPI spec implementation?

If you have a key to share, please send it securely via a 1Password/Bitwarden link to integrations[at]pipedream[dot]com.

Thanks!

image

@s0s0physm
Copy link
Copy Markdown
Collaborator

s0s0physm commented Apr 14, 2026

@acenji - Following up on @sergio-eliot-rodriguez's previous comment. We're unable to test or release this PR unless you can provide a test API Key or test account as we can't test using a free account.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

Status: Ready for PR Review

Development

Successfully merging this pull request may close these issues.

6 participants