IPGeolocation.io + Pipedream Integration


Overview

Automate IP intelligence workflows using IPGeolocation.io's full suite of APIs directly inside Pipedream. No custom HTTP requests, no glue code — just configure an action and go.

IPGeolocation.io is an enterprise-grade IP intelligence platform trusted by thousands of companies worldwide. It provides real-time data on geolocation, security threats, ASN details, timezone, astronomy, abuse contacts, and user-agent parsing — all through a single, fast API with a 99.99% uptime SLA.

The Pipedream integration exposes 12 ready-to-use actions that map directly to IPGeolocation.io's API v3 endpoints. You can drop these actions into any Pipedream workflow to enrich data, detect fraud, personalize experiences, automate security responses, and more.

API Version: v3


Getting Started


1. Get your API key

  1. Sign up at IPGeolocation.io. A free plan is available with 1,000 lookups per day.
  2. After logging in, copy your API Key from the dashboard.

2. Connect IPGeolocation.io to Pipedream

1. Open Pipedream and create a new workflow (or open an existing one).

2. Add a new step and search for IPGeolocation.

Image

3. Click Connect Account and paste your API key when prompted.

Image

4. Your account is now linked and ready to use across all 12 actions.


3. Add an action

Select any of the actions listed below, configure the required fields, and deploy your workflow. Each action returns a structured JSON response that can be referenced by downstream steps using Pipedream's steps object.

Image

Actions Availability across our Plans

We offer a free Developer plan and paid plans.

The availability of actions depends on the plan you are subscribed to. The following table provides a detailed overview of which actions are included in each plan, helping you quickly identify the plan that suits your needs.

ActionFreePaid
Get IP GeolocationTickTick
Get Bulk IP GeolocationCrossTick
Get IP SecurityCrossTick
Get Bulk IP SecurityCrossTick
Get ASN DetailsCrossTick
Get Abuse ContactCrossTick
Get Astronomy InformationTickTick
Get Astronomy Timeseries InformationTickTick
Get Timezone InformationTickTick
Time ConversionTickTick
Parse User AgentCrossTick
Parse Bulk User AgentsCrossTick

For full pricing details and to choose your plan, see the pricing page.


Available Actions


1. Get IP Geolocation

  • Endpoint: GET /v3/ipgeo

Looks up geolocation data for a single IPv4 or IPv6 address (or domain). Returns country, city, state, coordinates, timezone, currency, ASN, and more depending on your plan.

Inputs

FieldRequiredDescription
IP Address or DomainNoLeave blank to look up the caller's IP
FieldsNoComma-separated list of fields to include in the response
Exclude FieldsNoFields to omit from the response
LanguageNoResponse language
Include ModulesNoAdditional modules to include (e.g., security, hostname, abuse, user_agent, geo_accuracy, dma_code)
Image

Example use case: Enrich a new sign-up event with the user's country and timezone before writing to your CRM.

// Reference the result in a downstream step
const country = steps.get_geolocation.$return_value.location.country_name;
const timezone = steps.get_geolocation.$return_value.time_zone.name;

2. Get Bulk IP Geolocation

  • Endpoint: POST /v3/ipgeo-bulk
  • Availability: Paid Plans

Enriches up to 50,000 IP addresses or domains in a single request. Ideal for batch processing log files, user tables, or event streams.

Inputs

FieldRequiredDescription
IP Addresses or DomainsYesArray of IPs/domains (max 50,000)
FieldsNoFields to include in the response
Exclude FieldsNoFields to omit from the response
LanguageNoResponse language (default: en)
Include ModulesNoAdditional modules to include (e.g., security, hostname, abuse, user_agent, geo_accuracy, dma_code) (Paid plans only)
Image

Example use case: Nightly enrichment of a database table of raw IP addresses from your access logs.


3. Get IP Security

  • Endpoint: GET /v3/security
  • Availability: Paid Plans

Returns threat intelligence for a single IP: VPN/proxy/Tor detection, bot flags, threat score, spam indicators, and cloud provider identification.

Inputs

FieldRequiredDescription
IP AddressNoLeave blank to check the caller's IP
FieldsNoOnly include these fields in the response
Exclude FieldsNoFields to omit from the response
Image

Example use case: Block or flag a login attempt if the IP has a high threat score or is detected as a known proxy.

const security = steps.get_ip_security.$return_value.security;
if (security.threat_score > 70 || security.is_proxy) {
  // trigger alert or deny action
}

4. Get Bulk IP Security

  • Endpoint: POST /v3/security-bulk
  • Availability: Paid Plans

Runs threat intelligence checks on up to 50,000 IP addresses at once. Returns per-IP security signals including VPN/proxy/Tor flags, threat scores, and bot detection.

Inputs

FieldRequiredDescription
IP AddressesYesArray of IPs (max 50,000)
FieldsNoFields to include in the response
Exclude FieldsNoFields to omit from the response
Image

Example use case: Screen a list of IPs from a suspicious traffic spike for proxy/VPN usage before taking automated action.


5. Get ASN Details

  • Endpoint: GET /v3/asn
  • Availability: Paid Plans

Returns Autonomous System Number (ASN) data including AS number, organization name, IP ranges, peering info, and WHOIS details. Accepts an IP address or ASN number.

Inputs

FieldRequiredDescription
IP AddressNoIP to look up ASN for
ASNNoASN number (e.g., AS15169)
FieldsNoFields to include only in the response
Exclude FieldsNoFields to omit from the response
Include ModulesNoAdditional modules to include (e.g., routes, peers, whois_response, downstreams, upstreams)
Image

Example use case: Identify whether traffic is coming from a known cloud provider or hosting ASN to flag automated requests.


6. Get Abuse Contact

  • Endpoint: GET /v3/abuse
  • Availability: Paid Plans

Retrieves the abuse contact information registered for an IP address, including the responsible organization, email addresses, and phone numbers.

Inputs

FieldRequiredDescription
IP AddressNoIP to look up; defaults to caller's IP
FieldsNoFields to include only in the response
Exclude FieldsNoFields to omit from the response
Image

Example use case: Automatically compose and send an abuse report email when your WAF detects a repeated attacker IP.

const abuse = steps.get_abuse_contact.$return_value.abuse;
// abuse.emails[0] → abuse contact email
// abuse.name      → responsible organization

7. Get Timezone

  • Endpoint: GET /v3/timezone

Looks up timezone data for a location specified by IP address, coordinates, timezone name, city name, IATA airport code, ICAO code, or UN/LOCODE. Returns current time, UTC offset, DST status, and more.

Inputs

FieldRequiredDescription
IP AddressNoIP to resolve timezone for
Timezone NameNoe.g., America/New_York
LatitudeNoMust be paired with Longitude
LongitudeNoMust be paired with Latitude
LocationNoCity/country string (e.g., London, UK)
IATA CodeNoAirport IATA code (e.g., JFK)
ICAO CodeNoAirport ICAO code (e.g., KJFK)
UN/LOCODENoUN/LOCODE (e.g., USNYC)
Image

Example use case: Detect a user's local timezone from their IP on sign-up and pre-fill it in their account preferences.


8. Convert Timezone

  • Endpoint: GET /v3/timezone/convert

Converts a date/time from one timezone (or location) to another. Accepts timezone names, coordinates, city names, IATA codes, ICAO codes, or UN/LOCODEs as selectors for both the source and destination.

Inputs

FieldAPI ParameterRequiredDescription
Time to ConverttimeNoDatetime to convert, in yyyy-MM-dd HH:mm or yyyy-MM-dd HH:mm:ss format. Omit to convert the current time
Mode 1 — Timezone Names
From Timezonetz_fromConditionalSource IANA timezone name (e.g., America/Argentina/Catamarca)
To Timezonetz_toConditionalDestination IANA timezone name (e.g., Asia/Kabul)
Mode 2 — Coordinates
From Latitudelat_fromConditionalSource latitude (-90 to 90)
From Longitudelong_fromConditionalSource longitude (-180 to 180)
To Latitudelat_toConditionalDestination latitude (-90 to 90)
To Longitudelong_toConditionalDestination longitude (-180 to 180)
Mode 3 — Location Addresses
From Locationlocation_fromConditionalSource city/address string (e.g., New York, USA)
To Locationlocation_toConditionalDestination city/address string (e.g., Lahore, Pakistan)
Mode 4 — IATA Codes
From IATAiata_fromConditionalSource 3-letter airport IATA code (e.g., DXB)
To IATAiata_toConditionalDestination 3-letter airport IATA code (e.g., LHR)
Mode 5 — ICAO Codes
From ICAOicao_fromConditionalSource 4-letter airport ICAO code (e.g., YSSY)
To ICAOicao_toConditionalDestination 4-letter airport ICAO code (e.g., ZBAA)
Mode 6 — UN/LOCODEs
From LOCODElocode_fromConditionalSource 5-character UN/LOCODE (e.g., PKISB)
To LOCODElocode_toConditionalDestination 5-character UN/LOCODE (e.g., USNYC)
Image

Example use case: Schedule a meeting notification by converting HQ local time to each participant's timezone before sending calendar invites.


9. Parse User Agent

  • Endpoint: POST /v3/user-agent
  • Availability: Paid Plans

Parses a single user agent string and returns structured data: browser name, version, device type, brand, CPU, operating system, and rendering engine.

Inputs

FieldRequiredDescription
User Agent StringYesThe raw UA string to parse
Image

Example use case: Segment analytics by device type (mobile vs. desktop) or browser to identify UX issues for specific environments.

const ua = steps.parse_user_agent.$return_value;
// ua.name              → "Chrome"
// ua.device.type       → "Desktop"
// ua.operating_system.name → "Mac OS"

10. Parse Bulk User Agents

  • Endpoint: POST /v3/user-agent-bulk
  • Availability: Paid Plans

Parses up to 50,000 user agent strings in a single request. Returns the same structured breakdown as the single-UA action for each entry.

Inputs

FieldRequiredDescription
User Agent StringsYesArray of UA strings (max 50,000)
Image

Example use case: Batch-analyze a day's worth of raw request logs to classify traffic by browser and device before loading into your analytics warehouse.


11. Get Astronomy Data

  • Endpoint: GET /v3/astronomy

Returns sunrise, sunset, moonrise, moonset, solar noon, and moon phase for a given location and date. Location can be specified by IP address, coordinates, or city name.

Inputs

FieldRequiredDescription
DateNoDefaults to today (YYYY-MM-DD)
IP AddressNoResolve location from IP
LatitudeNoMust be paired with Longitude
LongitudeNoMust be paired with Latitude
LocationNoCity/country string
TimezoneNoTimezone for result times
LanguageNoResponse language (defaults to en)
Image

Example use case: Power an outdoor scheduling app by fetching sunrise/sunset times for a user's detected location before confirming booking slots.


12. Get Astronomy Time Series

  • Endpoint: GET /v3/astronomy/timeSeries

Returns astronomy data (sunrise, sunset, moonrise, moonset, moon phase) for every day within a specified date range, up to 90 days.

Inputs

FieldRequiredDescription
Start DateYesRange start (YYYY-MM-DD)
End DateYesRange end (YYYY-MM-DD, max 90 days from start)
IP AddressNoResolve location from IP
LatitudeNoMust be paired with Longitude
LongitudeNoMust be paired with Latitude
LocationNoCity/country string
TimezoneNoTimezone for result times
LanguageNoResponse language
Image

Example use case: Pre-generate a three-month calendar of golden-hour photography windows for a given location and export to a spreadsheet via Google Sheets.


Referencing Results in Pipedream

Every action's JSON response is accessible in downstream steps via steps.<action_name>.$return_value. Some common paths:

What You WantPath
Country namesteps.get_geolocation.$return_value.location.country_name
Citysteps.get_geolocation.$return_value.location.city
Timezone namesteps.get_geolocation.$return_value.time_zone.name
Is EU visitorsteps.get_geolocation.$return_value.location.is_eu
Currency codesteps.get_geolocation.$return_value.currency.code
Calling codesteps.get_geolocation.$return_value.country_metadata.calling_code
Threat scoresteps.get_ip_security.$return_value.security.threat_score
Is VPNsteps.get_ip_security.$return_value.security.is_vpn
Is Torsteps.get_ip_security.$return_value.security.is_tor
ASN numbersteps.get_asn.$return_value.asn.as_number
ASN orgsteps.get_asn.$return_value.asn.organization
Abuse emailsteps.get_abuse_contact.$return_value.abuse.emails[0]
Sunrisesteps.get_astronomy.$return_value.astronomy.sunrise
Moon phasesteps.get_astronomy.$return_value.astronomy.moon_phase
Converted timesteps.convert_timezone.$return_value.converted_time
Hour differencesteps.convert_timezone.$return_value.diff_hour
Browser namesteps.parse_user_agent.$return_value.name
Device typesteps.parse_user_agent.$return_value.device.type
OS namesteps.parse_user_agent.$return_value.operating_system.name

Example Workflows


1. Fraud detection on new sign-ups

Trigger: New row in database (e.g., Supabase, Airtable) Steps:

  1. Get IP Geolocation — enrich with country and city
  2. Get IP Security — check threat score, proxy/VPN flags
  3. Conditional branch — if threat_score > 60, send a Slack alert and flag the record; otherwise continue onboarding

2. Nightly log enrichment

Trigger: Schedule (daily at midnight) Steps:

  1. Fetch raw IP list from your data warehouse (e.g., BigQuery, Snowflake)
  2. Get Bulk IP Geolocation — enrich all IPs with location and ASN
  3. Write enriched records back to the warehouse

3. Localized email scheduling

Trigger: New subscriber added to mailing list Steps:

  1. Get Timezone (by IP) — detect subscriber's local timezone
  2. Convert Timezone — convert your send time from UTC to local time
  3. Schedule the email send via your ESP (e.g., Mailchimp, SendGrid)

API Limits & Best Practices

  • Free Developer plan includes 1,000 credits per day.
  • Astronomy time series date ranges are capped at 90 days per request.
  • Bulk actions are capped at 50,000 entries per request. Pipedream will throw a validation error before the request is sent if this limit is exceeded.
  • Only paid plan subscriptions can receive responses in languages other than English. On the free plan, responses are in English only. If a language other than English is specified in the Language parameter while using an API key on the free plan, the request will result in a 401 (Unauthorized) response.
  • When using coordinate-based lookups (Get Timezone, Get Astronomy), always provide both Latitude and Longitude together.
  • For Convert Timezone, use the same selector type for source and destination (e.g., both as timezone names or both as coordinates) to avoid validation errors.
  • For best performance and lower latency, use the Fields parameter to request only the data fields your workflow actually needs.

Troubleshooting

401 Unauthorized — Your API key is invalid or missing. Re-connect your IPGeolocation.io account in Pipedream's credentials settings and verify the key is active in your dashboard.

429 Too Many Requests — You have exceeded the API credits limit for the subscription/free plan. Upgrade your plan or wait until the next billing cycle. For more information, see Pricing.

400 Bad Request — One or more inputs are invalid. Common causes include: providing only one of Latitude/Longitude, invalid IP address, specifying mismatched selector types in Convert Timezone, or passing an invalid date format (use YYYY-MM-DD where specified).

Bulk limit exceeded — The Pipedream action validates array size before sending the request. Ensure your input array does not exceed 50,000 entries.

Empty or unexpected response fields — Some fields/modules (e.g., security, hostname, abuse, user_agent, geo_accuracy, dma_code for Get IP Geolocation action and routes, peers, whois_response, downstreams, upstreams for Get ASN Details action) are only available on paid plans. Check your plan tier and enable the relevant modules using the Include Modules field.

For additional help, contact support or visit the IPGeolocation.io documentation.


Resources

Subscribe to Our Newsletter

Get the latest in geolocation tech, straight to your inbox.