DOCUMENTATION · 使用文档
从注册到第一次调用,
只有三步。
PNULL 提供 OpenAI 兼容协议与 Claude / Gemini 原生协议。绝大多数工具只需要改 base_url 和 API Key 两个值。
01快速开始
第一步:在 pnull.com 注册,进入控制台「API 令牌」页创建一个令牌,复制以 sk- 开头的密钥。列表默认遮掩密钥,已登录用户仍可按界面权限查看或复制完整值,请妥善保管。
第二步:确认可用额度。控制台「钱包」页会展示当前可用的充值、兑换码或订阅方式;新用户赠送、余额、订阅周期和充值门槛均以站点当前配置为准。
第三步:发起第一次调用验证连通:
curl https://pnull.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的密钥" \ -d '{ "model": "claude-sonnet-5", "messages": [{"role": "user", "content": "你好,PNULL"}] }'
返回正常 JSON 即接入成功。可用模型与当前计费配置见「模型与价格」。
02接入端点
统一入口 https://pnull.com,按你的工具支持的协议任选其一:
| 协议 | 端点 | 适用 |
|---|---|---|
| OpenAI 兼容 | /v1/chat/completions | 绝大多数工具与 SDK,推荐首选 |
| OpenAI Responses | /v1/responses | Codex CLI 等新式客户端 |
| Claude 原生 | /v1/messages | Claude Code、Anthropic SDK |
| Gemini 原生 | /v1beta/models/… | Gemini CLI、Google SDK |
| 图像生成 | /v1/images/generations | 文生图 / 图像编辑 |
| 向量嵌入 | /v1/embeddings | RAG / 检索场景 |
sk- 密钥在所有协议下通用,无需分别创建。03Claude Code
设置两个环境变量即可,写入 shell 配置文件后长期生效:
export ANTHROPIC_BASE_URL="https://pnull.com" export ANTHROPIC_AUTH_TOKEN="sk-你的密钥" claude
$env:ANTHROPIC_BASE_URL = "https://pnull.com" $env:ANTHROPIC_AUTH_TOKEN = "sk-你的密钥" claude
ANTHROPIC_AUTH_TOKEN 而不是 ANTHROPIC_API_KEY;如果两者都设置过,请清掉后者以免冲突。04Codex CLI
编辑 ~/.codex/config.toml,添加 PNULL 作为模型提供方:
model_provider = "pnull" model = "gpt-5.2" [model_providers.pnull] name = "PNULL" base_url = "https://pnull.com/v1" env_key = "PNULL_API_KEY" wire_api = "responses"
export PNULL_API_KEY="sk-你的密钥" codex
05Gemini CLI
export GOOGLE_GEMINI_BASE_URL="https://pnull.com" export GEMINI_API_KEY="sk-你的密钥" gemini
06Cursor
打开 Settings → Models,在 OpenAI API 配置区:
| 配置项 | 值 |
|---|---|
| OpenAI API Key | sk-你的密钥 |
| Override OpenAI Base URL | https://pnull.com/v1 |
然后在模型列表勾选或手动添加你要用的模型名(与「模型与价格」页一致),点击 Verify 通过即可。
07Cline / Continue
Cline(VS Code 插件)
API Provider 选择 OpenAI Compatible,Base URL 填 https://pnull.com/v1,API Key 填你的密钥,Model ID 填目标模型名。
Continue
models: - name: PNULL · Claude provider: openai model: claude-sonnet-5 apiBase: https://pnull.com/v1 apiKey: sk-你的密钥
08OpenAI SDK
Python
from openai import OpenAI client = OpenAI( base_url="https://pnull.com/v1", api_key="sk-你的密钥", ) resp = client.chat.completions.create( model="claude-sonnet-5", messages=[{"role": "user", "content": "你好"}], ) print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://pnull.com/v1", apiKey: "sk-你的密钥", }); const resp = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "你好" }], }); console.log(resp.choices[0].message.content);
09计费说明
PNULL 支持按 Token、按次、固定价格或动态规则计费。费用可能综合模型价格、输入/输出 Token、缓存、媒体参数、用户分组、钱包或订阅规则,以「模型与价格」页当前配置和实际消费日志为准。
| 规则 | 说明 |
|---|---|
| 当前价格 | 每个模型的计费方式、价格与倍率以「模型与价格」页当前展示为准 |
| 调用日志 | 站点启用消费日志时,可查看 Token、费用、耗时、请求标识等结算信息 |
| 实际结算 | 优先依据上游返回的用量;无法取得完整用量时,系统可能按协议与配置进行估算或预扣后结算 |
10常见问题
返回 401 Unauthorized 怎么办?
检查三点:密钥是否完整复制(以 sk- 开头无空格)、令牌是否被禁用或过期、请求头是否为 Authorization: Bearer sk-xxx。
提示"无可用渠道"或模型不存在?
模型名需与「模型与价格」页完全一致(区分大小写)。若令牌设置了模型限制,请确认目标模型在允许列表内。
为什么响应模型名或结构可能与请求不同?
渠道可以配置模型映射、参数覆盖和协议转换;发生可重试错误时还可能切换渠道。响应中的 model 字段与结构由适配器和上游共同决定,可结合消费日志中的模型、渠道请求标识及当前配置排查。
支持哪些支付方式?额度有什么限制?
在线支付、兑换码、订阅及邀请功能均由管理员配置,请以控制台「钱包」页实际展示为准。令牌额度、订阅周期、用户分组和有效期都可能影响可用额度。
并发和速率有限制吗?
限制可能来自令牌、用户分组、模型、渠道、系统速率限制或上游服务。具体额度以当前账户和站点配置为准;如需调整请联系 support@pnull.com。