跳到正文
查个机

报错查询

unsupported_country_region_territory:OpenAI 接口按地区拒绝

{"error": {"code": "unsupported_country_region_territory", "message": "Country, region, or territory not supported", "param": null, "type": "request_forbidden"}}

首发 查于 第 1 版阅读约 5 分钟

要点

OpenAI 接口认为这次请求来自它不提供服务的国家或地区,回 403 拒绝。先查发请求的那个程序实际从哪个出口出去,再查那个出口 IP 被地理库归到哪里。

问:unsupported_country_region_territory 是什么意思?

短答:OpenAI 接口拒绝了这次调用,理由是请求来源的国家、地区或领土不在它的服务范围内。

unsupported_country_region_territory[报错]OpenAI API 的错误码,配套的 message 是「Country, region, or territory not supported」,type 是 request_forbidden,HTTP 状态码 403。① 看的是请求到达接口时的来源地区;② 和代码写法、密钥余额无关。参见:IP 纯净度查询、ip纯净度检测网站。

OpenAI 的错误码说明对这条只写了两句:原因是你在不受支持的国家、地区或领土访问 API;解决办法是去看支持地区页。它没有公开具体用什么数据判定地区。

问:你在哪儿看到它?

短答:几乎都在写代码、跑脚本的场景里,网页聊天界面一般不显示这串英文。

服务 界面或接口 原文写法
OpenAI API(直接发 HTTP 请求) 响应体 JSON "code": "unsupported_country_region_territory","param": null
OpenAI 官方 Python SDK 抛出的异常 Error code: 403 - {'error': {'code': 'unsupported_country_region_territory', ...}},param 显示为 None
接入 OpenAI 的第三方插件、桌面工具 弹窗或日志 多半只截出 unsupported_country_region_territory 这一段
走 OpenAI 接口的命令行工具 终端输出 打印格式看工具,错误码不变;终端怎么走代理见 codex 代理

问:要查的三项是什么?

短答:沿着「谁发的请求 → 从哪个出口出去 → 出口被认成哪里」往下查,浏览器那边的读数只作参考。

  1. 发请求的程序有没有走你以为的那条路。 浏览器走系统代理,不等于 Python 脚本、Node 服务、编辑器插件也走。命令行程序大多只认 HTTPS_PROXY 这类环境变量,设法见 git set proxy 那页的环境变量一节。程序跑在云服务器上的,出口就是服务器自己的公网 IP。
  2. 出口 IP 被归到了哪个地区。 在发请求的那台机器、那个终端里查出口,再拿两三个检测站对照。检测站用的地理库不同,同一个 IP 可能被放进不同国家,原因见 ip纯净度检测网站。
  3. 出口 IP 段的类型和来历。 云服务、机房的 IP 段常被转手,地理库里的国家可能还停在上一任主人那里。类型字段怎么读,看 住宅ip 那页。

这条报错和浏览器的 WebRTC 泄露无关:接口收到的是 HTTPS 请求,看不到浏览器里的 WebRTC。DNS 只决定域名解析到哪个接入点,OpenAI 也没说过按 DNS 判地区。

问:哪些情况不是代理设置的问题?

短答:人本来就在名单外、服务器 IP 被地理库认错、第三方中转被拒,这三种改本机代理都没用。

  • 所在地不在支持名单里。 名单看 OpenAI 的 API 支持国家和地区页。那页写明:在名单以外使用或提供访问,账号可能被封禁或停用。
  • 服务器在支持地区,却被认成别处。 OpenAI 开发者社区里有人在首尔区的云服务上碰到过:那段 IP 被地理库认成了不受支持的地区。这要找云服务商换 IP 或换区,同时把 IP 交给 OpenAI 支持核对。
  • 第三方中转网关自己被拒。 你调的是别人的转发服务,它把上游的报错原样转给你,改你这边的网络不起作用。

问:怎么改?

短答:在遵守 OpenAI 条款的前提下,让发请求的程序从你实际所在、且在名单内的地区出去。

  1. 人在支持地区,程序却从别处出去: 关掉不需要的全局代理或 TUN 模式,让脚本走本地网络;公司网络统一从外国出口的,找网管确认。
  2. 出口查对了还是 403: 换一台机器、换一条网络对比,确认不是单个 IP 段的问题,再把出口 IP 和时间发给 OpenAI 支持。
  3. 云服务器被认错地区: 截下几家地理库的读数,找云服务商处理;社区里也有人把服务迁到同一服务商的其他区。这是开发者的经验,不是官方说明。
  4. 人在名单以外: 这不是网络故障。本站不提供绕开地区限制的做法。

问:相近的报错有哪些?

查完换哪家

看全部机场推荐

常见问题

unsupported_country_region_territory 会不会是 API 密钥失效引起的?

不会。OpenAI 的错误码说明里,密钥不对、IP 不在允许名单这类问题回的是 401;403 这一条只对应请求来源的国家或地区不受支持。

浏览器能打开 ChatGPT,同一台电脑上的脚本却报 unsupported_country_region_territory,为什么?

两者多半不是从同一个出口出去的。浏览器跟着系统代理走,脚本、IDE 插件常常只认环境变量,没设就直连。在跑脚本的那个终端里查一次出口,就能对上。

报错 JSON 里会写 OpenAI 把我判成了哪个地区吗?

不会。返回体只有 code、message、param、type 四个字段,不带 IP,也不带判定出来的地区,只能自己在发请求的机器上查出口。

换个模型或者升级 SDK 能消掉这个 403 吗?

不能。判定发生在请求到达接口时,和模型名、SDK 版本、请求参数都无关;出口不变,换什么模型都是同一个结果。

本页第 (1)
  • :首发

网站地图 · 机场推荐