DOCUMENTATION · 使用文档

从注册到第一次调用,
只有三步

PNULL 提供 OpenAI 兼容协议与 Claude / Gemini 原生协议。绝大多数工具只需要改 base_url 和 API Key 两个值。

01快速开始

第一步:pnull.com 注册,进入控制台「API 令牌」页创建一个令牌,复制以 sk- 开头的密钥。列表默认遮掩密钥,已登录用户仍可按界面权限查看或复制完整值,请妥善保管。

第二步:确认可用额度。控制台「钱包」页会展示当前可用的充值、兑换码或订阅方式;新用户赠送、余额、订阅周期和充值门槛均以站点当前配置为准。

第三步:发起第一次调用验证连通:

CURL
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/responsesCodex CLI 等新式客户端
Claude 原生/v1/messagesClaude Code、Anthropic SDK
Gemini 原生/v1beta/models/…Gemini CLI、Google SDK
图像生成/v1/images/generations文生图 / 图像编辑
向量嵌入/v1/embeddingsRAG / 检索场景
提示:同一把 sk- 密钥在所有协议下通用,无需分别创建。

03Claude Code

设置两个环境变量即可,写入 shell 配置文件后长期生效:

BASH · MACOS / LINUX
export ANTHROPIC_BASE_URL="https://pnull.com"
export ANTHROPIC_AUTH_TOKEN="sk-你的密钥"
claude
POWERSHELL · WINDOWS
$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 作为模型提供方:

TOML · ~/.CODEX/CONFIG.TOML
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"
BASH
export PNULL_API_KEY="sk-你的密钥"
codex

05Gemini CLI

BASH
export GOOGLE_GEMINI_BASE_URL="https://pnull.com"
export GEMINI_API_KEY="sk-你的密钥"
gemini

06Cursor

打开 Settings → Models,在 OpenAI API 配置区:

配置项
OpenAI API Keysk-你的密钥
Override OpenAI Base URLhttps://pnull.com/v1

然后在模型列表勾选或手动添加你要用的模型名(与「模型与价格」页一致),点击 Verify 通过即可。

07Cline / Continue

Cline(VS Code 插件)

API Provider 选择 OpenAI Compatible,Base URL 填 https://pnull.com/v1,API Key 填你的密钥,Model ID 填目标模型名。

Continue

YAML · CONFIG.YAML
models:
  - name: PNULL · Claude
    provider: openai
    model: claude-sonnet-5
    apiBase: https://pnull.com/v1
    apiKey: sk-你的密钥

08OpenAI SDK

Python

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

JAVASCRIPT
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