# InternetData plugin in ChatGPT: ask what's in our IP databases

The InternetData plugin is now available in ChatGPT and Codex: ask what's in our IP databases, which you hold, a file's checksum and why a download failed.

The InternetData plugin is now available in OpenAI's ChatGPT and Codex, [listed](https://chatgpt.com/plugins/plugin_asdk_app_6acf4061581c8191a113796b35d99bae) in the plugin directory the two share. It went live on October 29 with no country restriction, so it's available wherever ChatGPT offers plugins. Add it, sign in with your InternetData account, and ChatGPT or Codex can tell you what's in any of our IP databases, which ones your organization holds and whether a file you downloaded is intact.

## What you can ask

The InternetData plugin in ChatGPT supports the questions below, each answered by one of its four read-only calls: `list_databases`, `database_metadata`, `database_checksum` and `list_downloads`. The answers are what those calls returned on October 30, 2026, to a key of ours whose organization holds only the [Open databases](https://internetdata.io/blog/free-ip-databases).

### Which databases does my organization hold?

`list_databases` returns every database with where your license for it stands: `licensed`, `expired`, or `unlicensed` if you've never bought it, with the date the license started and the date it expires or renews. For that organization, the Open ones came back `licensed` and the rest `unlicensed`.

### What columns does the Tor IP database have?

`database_metadata` answers with each format's columns, their types and what each holds. For [Tor IP](https://internetdata.io/databases/tor-ip), as its [docs page](https://docs.internetdata.io/database/tor-ip) lists them:

| Column | Type | What it holds |
|---|---|---|
| `start_ip` | IP address | Start IP of the Tor node IP range |
| `end_ip` | IP address | End IP of the Tor node IP range |
| `confidence` | string | Confidence of the correctness of this observation |
| `last_seen` | date | Last time this observation was made |

The MMDB holds `confidence` and `last_seen`, looked up by address. The same call returns five sample rows, two of them:

| `start_ip` | `end_ip` | `confidence` | `last_seen` |
|---|---|---|---|
| `74.208.155.31` | `74.208.155.31` | `high` | `2026-10-29` |
| `2a02:750:23:23::23` | `2a02:750:23:23::23` | `high` | `2026-10-29` |

The samples show what a row looks like and nothing more. The plugin's skills tell the assistant never to count from them.

### How big is it, and when was it built?

That call has it too. Tor IP's build of October 29 holds 13,207 rows, at 110,488 bytes as gzipped CSV and 916,407 as MMDB, and it's rebuilt daily. The sizes are there so you know what a transfer costs before you start one: IP RDNS's gzipped CSV of October 24 was 9.2 GB.

### Is my copy intact?

`database_checksum` gives a file's published MD5, SHA-1, SHA-256 and SHA-512. For Tor IP's gzipped CSV of October 29, the SHA-256 it returned matches the copy we downloaded:

```console
$ sha256sum tor_ip_v1.csv.gz
649eee9918bc96b9f4ff23736f4d487a56f98d37f6caf16343aa1546dcc91f15  tor_ip_v1.csv.gz
```

A mismatch means the file is truncated, corrupted or from another build. A checksum is licensed like the download itself: asked for VPN IP's checksum, that organization got `NOT_LICENSED`.

### What's in a database we don't hold?

`database_metadata` describes any database, licensed or not. [VPN IP](https://internetdata.io/databases/vpn-ip)'s build of October 30 holds 12,951,556 rows of `start_ip`, `end_ip`, `provider`, `confidence` and `last_seen`, at 93.6 MB as gzipped CSV and 81.7 MB as MMDB, and its five sample rows each pair a range with the VPN service it belongs to.

### Did any of our recent downloads fail?

`list_downloads` returns your organization's recent download attempts, newest first and up to 200 of them, refusals included. Each carries the database and format, its `outcome` (`ok`, `unauthorized`, `denied`, `expired`, `unknown` or `unavailable`), the HTTP status, the key that made it, and the address and user agent it came from. When a nightly job stops fetching, a refusal there says why.

## Adding it

In ChatGPT, open [the listing](https://chatgpt.com/plugins/plugin_asdk_app_6acf4061581c8191a113796b35d99bae), or search Plugins for InternetData, and select **Install plugin**. ChatGPT has you sign in to InternetData, pick which of your organization's API keys the connection uses, and approve. Then type `@` in a chat and pick InternetData. Your workspace's policies decide which plugins you can add, so if InternetData isn't offered, ask your workspace admin. The steps are on the [ChatGPT page](https://docs.internetdata.io/integrations/chatgpt) of our docs.

Codex installs it from the same directory, or from the command line:

```console
codex plugin marketplace add internetdata/openai-plugin
codex plugin add internetdata@internetdata
codex mcp login internetdata
```

The last line opens your browser for the same sign-in. The Codex CLI, its IDE extension and Codex in the ChatGPT desktop app share one configuration, so one install covers all three ([Codex](https://docs.internetdata.io/integrations/codex)).

The plugin carries two skills, in ChatGPT and Codex alike. `database-files` answers what you hold, how big it is, whether your copy is intact and why a download failed. `analyze-database` explains a database's columns and sample rows, and in Codex it downloads a database you hold with our CLI, once it's installed and signed in, and counts from the full copy.

Neither ChatGPT nor Codex ever sees the key: our server uses it on your behalf. It needs the `db.download` scope, which your organization's `Default` key has, and approving needs permission to share your organization's keys. To disconnect, go to **Settings > Sessions & devices > Connected applications** in the console, and access ends within about a minute.

## What it doesn't do

Its four calls only read: none changes your account or its keys, and none returns a database file into a chat, since the files run to gigabytes. A download goes through the console, our [CLI](https://docs.internetdata.io/integrations/cli), which verifies the checksum for you, or a client library. The databases describe networks, not the people using them, and nothing in the plugin looks a person up.

## Other assistants

The plugin's answers come from our hosted MCP server, `https://mcp.internetdata.io/mcp`. Claude adds it as a custom connector in claude.ai, the desktop app and Cowork, and Claude Code installs our Claude plugin, with the same two skills ([Claude](https://docs.internetdata.io/integrations/claude)). Any other MCP client takes the same URL and signs in the same way, or sends an API key, and the OpenAI Responses API takes it as a remote MCP server with your key ([MCP Server](https://docs.internetdata.io/integrations/mcp)).

## Getting access

[Sign up](https://app.internetdata.io/auth/signup), and the Open databases, Tor IP, [ASN](https://internetdata.io/databases/asn) and [IP ASN](https://internetdata.io/databases/ip-asn) among them, are licensed to your organization from the start, free under CC BY-SA 4.0. Every database is on [internetdata.io/databases](https://internetdata.io/databases), and for one you don't hold, [request an evaluation](https://internetdata.io/contact?purpose=evaluation&subject=Evaluation+license).

