The Problem With Getting Sheet Data In and Out of ipdata.co
You have a Google Sheet full of IP addresses — login events flagged by your SIEM, form-submission IPs from your lead flow, session logs from your analytics pipeline. You need each one enriched with country, ASN, threat flags, or carrier data. And you need it done without pasting IPs into a web UI one at a time or writing an API wrapper from scratch.
ipdata.co is good at returning geolocation, company, threat intelligence, and network metadata for any IP address, including bulk batches of up to 100 at a time. But getting a Sheet full of IPs into the API and the results back into the right columns is more friction than the underlying task deserves. The default flow is: export the column, write a script, wrestle with batch sizing and rate limits, figure out where to write the output, and then do it again next time the IP list changes.
Below are the four common ways teams handle this. Only the last one scales.
Method 1: Manual Copy-Paste
Open the ipdata.co web interface, paste an IP, read the response, switch back to Sheets, type the values into the right columns. Repeat for each IP.
For a one-off sanity check — say you spotted one suspicious address and want to know the country quickly — this is fine. But you probably do not have one IP. You have 500.
At row 50, you are no longer doing security analysis. You are performing data entry. At row 200, you have stopped caring about the threat flags and are simply trying to finish.
Method 2: Zapier or Make
Both platforms have ipdata.co connector options, or you can call the REST API directly via an HTTP module. The shape of it: trigger on a new row added to a Sheet, pass the IP from column A to the API, write the response fields back into columns B through E.
Before you go further — do you know what a webhook trigger is? A multi-step Zap? How to map nested JSON fields from an API response to specific sheet columns? How to handle the batch endpoint differently from the single-IP endpoint? If those concepts feel unfamiliar, skip to Method 4. This path requires all of them.
If you are still here: the flow works. You pick your trigger, map each field from the API response to the destination column, handle empty fields gracefully, and save the Zap. The structural limit is that this fires one row at a time.
One row at a time is not a batch. If you have 500 IPs waiting, that is 500 trigger fires, 500 API calls billed individually, and a run history that becomes noise the moment anything fails silently at row 312.
You probably just need the country and threat status. You probably have no idea how to configure the batch endpoint in a Zap — and configuring it correctly requires understanding the API structure well enough to write it, not just fill in form fields. So you hand it off to whoever manages automations on your team, and now you are waiting on a Slack message to know whether your leads are clean.
Cost and tier requirements compound quickly once you add conditional logic — "only flag rows where is_threat is true" — which is a filter step that costs another task on the automation platform.
Method 3: The Previous Generation — Connector Add-Ons
Until recently, the best option for repeatable spreadsheet-to-API workflows was a category of add-ons that let you configure column mappings, save a template, and run it on demand. You tagged the IP column, mapped each response field to a destination column, saved the config, hit Run.
That was a real improvement over copy-paste. The template was reusable, output was consistent, and someone on the team could run it without re-reading the API docs.
But you were still responsible for defining the batch size, mapping every response field by name, deciding which columns got which values, and figuring out what to do when the API returned a null for a field. The add-on moved the data; the thinking was still entirely on you. And the moment you added a new column or renamed a tab, the saved config broke.
This is the previous generation. It worked, and it asked a lot of the operator.
The Easy Way: Using SheetXAI in Google Sheets
There is a different approach. SheetXAI is an AI agent that lives inside your Google Sheet. It reads the sheet, understands what you are looking at, and through its built-in ipdata.co integration it can enrich every IP address in your data — in bulk, in the right columns, in the right format — without configuration templates or automation glue. You just ask.
Example 1: Bulk threat triage on a suspicious-login export
For each IP address in column A, fetch the country, city, ASN organization, and threat status from ipdata.co and write the results to columns B through E. Flag any row where threat status is true as HIGH RISK in column F.
SheetXAI batches the lookups, writes country names into column B, city into C, ASN organization into D, threat boolean into E, and sets the HIGH RISK label in F for every flagged row.
Example 2: Carrier segmentation for a mobile session log
Use ipdata.co to look up the carrier name, MCC, and MNC for every IP in column A and write them to columns B, C, and D. Then add a summary table below the data showing session counts per carrier.
The pattern: the enrichment and the aggregation happen in one prompt. SheetXAI handles the batch sizing and the summary calculation inline.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet with IP addresses, then ask it to enrich the column with ipdata.co geolocation, threat flags, or carrier data. The ipdata.co integration is included in every SheetXAI plan.
More ipdata.co + Google Sheets guides
Bulk Enrich Suspicious Login IPs in a Google Sheet With Threat Flags
Triage 500+ suspicious login IPs in seconds by pulling country, ASN, and threat status from ipdata.co into your sheet.
Geo-Segment Session IPs by Region and Time Zone in a Google Sheet
Map thousands of anonymous session IPs to countries and time zones using ipdata.co bulk lookup and analyze feature usage by region.
Screen a Leads Sheet for Bot Traffic Using ipdata.co in Google Sheets
Identify which form-submission IPs came from datacenter ranges versus residential ISPs before passing leads to sales.
Identify Enterprise Visitor Networks From a Google Sheet Using ipdata.co
Resolve 800+ website visitor IPs to company names and domains so you can trigger account-based outreach.
Map ASN Numbers to Routing Metadata in a Google Sheet Using ipdata.co
Pull prefix counts, peer counts, and registry details for every ASN in your spreadsheet with a single ipdata.co lookup.
Run a GDPR-Compliant IP Enrichment Pass on a Google Sheet Using ipdata.co
Enrich EU user session IPs with geolocation and threat data using ipdata.co EU-residency endpoints without leaving European infrastructure.
Identify Mobile Carrier Sessions in a Google Sheet Using ipdata.co
Find out which carriers your app users are on by enriching session IPs with MCC, MNC, and carrier name from ipdata.co.
Add Local Currency Columns to a Google Sheet From IP Addresses Using ipdata.co
Append currency codes and names to customer rows based on IP geolocation to support regional pricing analysis.
Classify IPs by Continent and EU Membership in a Google Sheet Using ipdata.co
Assign continent codes and EU-membership flags to 10,000+ user IPs for data-residency decisions under GDPR.
Append IANA Timezones From IP Addresses in a Google Sheet Using ipdata.co
Assign the correct time zone to each client IP so your automated emails hit at 9 AM local time.
