Bot signals — AI crawler & agent

OpenAI Codex cloud IP addresses

Codex cloud outbound service connections, not arbitrary Azure address space.

risk.is_ai Ranges Reviewed

Check an IP

Is this IP really OpenAI Codex cloud?

Checks the address against what OpenAI Codex cloud publishes, the same evidence behind risk.is_ai.

01 — Verification

How IPAPI.GR verifies OpenAI Codex cloud.

Only from what OpenAI Codex cloud publishes about itself. No third-party blocklists, no behavioural guesses. Live address counts change with every publication, so check the official file for the current list.

OpenAI Codex cloud

risk.is_ai
Method
Ranges Published IP ranges
Format
JSON range file
Refresh
Every hour. If a refresh fails, entries expire after 24 hours instead of being trusted forever.

02 — In the response

What a match looks like.

A lookup of a OpenAI Codex cloud address sets risk.is_ai. The flags come with geolocation and network data in the same response, for Pro API keys.

The response says which kind of bot an address belongs to, not which operator. Pair it with the user agent: a request that claims to be OpenAI Codex cloud but doesn't match is unverified.

GET /api/lookup/{ip}?key=PRO_KEY
{
  // … location and network fields …
  "risk": {
    "is_ai": true,
    "is_crawler": false,
    "is_scanner": false
  }
}

03 — Configuration

Allow, block or verify it yourself.

nginx + jq
# 1. Build a geo include from the official file (cron, e.g. hourly).
#    Keep the old file if the download fails or comes back empty.
curl -fsS https://openai.com/chatgpt-agents.json \
  | jq -r '.prefixes[] | (.ipv4Prefix // .ipv6Prefix // empty) | "\(.) 1;"' \
  > /etc/nginx/openai-codex-cloud-ranges.conf.new && [ -s /etc/nginx/openai-codex-cloud-ranges.conf.new ] && mv /etc/nginx/openai-codex-cloud-ranges.conf.new /etc/nginx/openai-codex-cloud-ranges.conf \
  && nginx -t -q && nginx -s reload

# 2. In the http block: 1 when the client IP is in the published ranges.
geo $openai_codex_cloud_ip {
    default 0;
    include /etc/nginx/openai-codex-cloud-ranges.conf;
}
Built from openai.com/chatgpt-agents.json, a JSON file with a prefixes array.

04 — Questions

About OpenAI Codex cloud.

Where does OpenAI Codex cloud publish its IP addresses?

OpenAI Codex cloud publishes its addresses at https://openai.com/chatgpt-agents.json. IPAPI.GR reads that publication directly, not a third-party copy.

How often is the OpenAI Codex cloud list refreshed?

IPAPI.GR re-fetches it every hour. If a refresh fails, the previous entries expire after at most 24 hours instead of being trusted forever.

Which risk flag does OpenAI Codex cloud set?

A matching address sets risk.is_ai in the lookup response. The risk flags are returned for Pro API keys.

Verify OpenAI Codex cloud on every request.

Pro: 40,000,000 requests a day with is_ai, is_crawler and is_scanner in every lookup.