Official GitHub Action for ipdata.info — a free,
fast IP geolocation, ASN, and threat-intelligence API. Use it in CI to enrich
logs, gate deploys by country, or block requests from known proxies/VPNs/Tor
exit nodes. Zero runtime dependencies beyond curl and jq, which ship on
every GitHub-hosted runner.
The public endpoint is free — 50 requests/min, no signup, no key. For
higher rate limits, create a free API key at
ipdata.info/register and manage it in your
dashboard. Store it as a repository secret
(e.g. IPDATA_API_KEY) — never hardcode it in the workflow file.
- name: Look up IP
id: ipdata
uses: IPDataInfo/ipdata-action@v1
with:
ip: '8.8.8.8'
# api_key: ${{ secrets.IPDATA_API_KEY }} # optional, for higher limits
- name: Print result
run: |
echo "Country: ${{ steps.ipdata.outputs.country }} (${{ steps.ipdata.outputs.country_code }})"
echo "ASN: ${{ steps.ipdata.outputs.asn }} - ${{ steps.ipdata.outputs.asn_org }}"
echo "Is proxy: ${{ steps.ipdata.outputs.is_proxy }}"| Input | Required | Default | Description |
|---|---|---|---|
ip |
yes | — | IPv4 or IPv6 address to look up. |
api_key |
no | '' |
ipdata.info API key. Pass via ${{ secrets.* }}, never inline. Omit for free-tier anonymous lookups. |
host |
no | https://ipdata.info |
API host. Use https://pro.ipdata.info with a paid key for higher limits. |
| Output | Description |
|---|---|
country |
Full country name (e.g. United States). |
country_code |
ISO 3166-1 alpha-2 code (e.g. US). |
asn |
Autonomous System Number (e.g. 15169). |
asn_org |
ASN organization name (e.g. Google LLC). |
is_proxy |
true/false — known proxy IP. |
threat_listed |
true/false — any of security.tor/proxy/vpn/hosting set. |
json |
Full raw JSON response from the API. |
Full response schema: ipdata.info API docs · SDK contract.
See examples/gate-by-country.yml for a
full workflow that fails a job when the triggering IP is flagged as a proxy.
- uses: IPDataInfo/ipdata-action@v1
id: ipdata
with:
ip: ${{ github.event.client_payload.ip }}
- name: Block proxies
if: steps.ipdata.outputs.is_proxy == 'true'
run: |
echo "::error::Request blocked: source IP is a known proxy"
exit 1- Free (
ipdata.info): 50 req/min, no key. - Paid (
pro.ipdata.info): higher limits, with an API key.
12 official SDKs — see the full list at ipdata.info/docs/sdks: Python, Node.js, Go, PHP, Java, Rust, .NET, Kotlin, Swift, Dart, Bash, Objective-C.
MIT © ipdata.info