Complete Integration Guide
Run the full gpt88.cc integration path from API key creation and Base URL selection to client setup, usage checks, and troubleshooting.
What this guide solves
Most failed integrations are not caused by the model itself. They come from mismatched Base URL shape, wrong environment variables, incorrect API key permissions, or missing usage / rate-limit checks. This page connects those steps into one working path: make one request succeed first, then tune the client.
Finish the first integration in 5 steps
1. Sign in to the gpt88.cc console
2. Create one API key and store the full value immediately
3. Choose the protocol style: OpenAI compatible / Claude compatible / native Gemini image API
4. Fill in Base URL, API key, and default model in your tool
5. Send one minimal request, then verify usage and billing in the consoleThe fastest validation path is still one minimal cURL request. If cURL succeeds, your key, balance, model, and route are usually fine. If a client still fails, debug the client config next.
export GPT88_API_KEY="sk-your-gpt88-api-key"
curl https://api.gpt88.cc/v1/chat/completions \
-H "Authorization: Bearer $GPT88_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-4-5-20251001",
"messages": [
{"role": "user", "content": "Introduce gpt88.cc in one sentence"}
]
}'Base URL rules
Decide based on the client protocol, not only on the model family name.
OpenAI-compatible tools
Base URL: https://api.gpt88.cc
Typical tools: OpenAI SDK, Codex CLI, Cursor, OpenCode, cURL
Claude / Anthropic-compatible tools
Base URL: https://api.gpt88.cc
Typical tools: Claude Code, Anthropic SDK, OpenClaw
Google / Gemini image generation
Base URL: https://img.gpt88.cc
Endpoint: /v1beta/models/{MODEL}:generateContent
Use the standard API URL for normal APIs and the media URL for image/video requests; protocol differences are handled by endpoint paths and request formatsClient-specific setup
The shortest mental model is simple: OpenAI-style tools usually need /v1; Claude-style tools usually do not.
Codex CLI
Codex CLI is an OpenAI-style client. Give it a dedicated key and a separate budget where possible.
model_provider = "OpenAI"
model = "gpt-5.5"
review_model = "gpt-5.5"
model_reasoning_effort = "high"
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://api.gpt88.cc"
wire_api = "responses"
requires_openai_auth = trueexport OPENAI_API_KEY="$GPT88_API_KEY"
export OPENAI_BASE_URL="https://api.gpt88.cc"Claude Code
Claude Code follows the Anthropic-style path with https://api.gpt88.cc. Usehttps://img.gpt88.cc for image and video requests.
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.gpt88.cc",
"ANTHROPIC_AUTH_TOKEN": "your gpt88.cc API key",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0"
}
}export ANTHROPIC_AUTH_TOKEN="$GPT88_API_KEY"
export ANTHROPIC_BASE_URL="https://api.gpt88.cc"
export ANTHROPIC_API_KEY="$GPT88_API_KEY"OpenAI SDK / Cursor / OpenCode
These clients usually only need two fields changed: base_url and api_key. If the client supports a custom OpenAI provider, choose the OpenAI-compatible option directly.
For full runnable examples, continue with Python SDK and Node.js SDK.
Usage and cost checks
After the first working request, go to the console and verify what really happened: which model was used, how many tokens were counted, which API key made the call, and whether the deduction matches your expectation.
When one request looks too expensive, check in this order:
1. Model choice: did you use a more expensive model than intended?
2. Input tokens: long chats, code context, and tool results inflate prompts quickly
3. Output tokens: longer responses cost more
4. API type: image, audio, and video are not always pure token billing
5. API key: did one client or script loop unexpectedly?
6. request_id: always keep it if support needs to investigateCommon error quick reference
401 invalid_api_key
Check Bearer auth format, key completeness, and whether it is a real gpt88.cc key.
403 permission_denied
The current key does not have access to the model or endpoint.
429 rate_limit_exceeded
Lower concurrency and retry according to Retry-After or retry_after_seconds.
429 insufficient_quota
Balance or quota is exhausted.
404 model_not_found
The model name is wrong or unavailable. Refresh with GET /v1/models.
413 payload_too_large
Reduce payload size, shorten message history, or compress the image.
503 service_unavailable / upstream_error
Retry with backoff or switch model / route if necessary.
Slow requests
Separate network latency, model latency, long context, and slow first-token delay.For full HTTP and business error mappings, see Error Codes.
Best practices before production
- Use separate API keys for production, staging, and local development.
- Name keys by purpose, such as
codex-macbookorweb-prod. - Keep keys only in server-side environment variables or secret managers.
- Set daily limits, concurrency controls, and alerting before production rollout.
- Log
request_idserver-side for future debugging. - Refresh model lists from
GET /v1/modelsinstead of hardcoding assumptions forever.
Next steps
- Quickstart if you only need the shortest path.
- Config Export if you want reusable tool configs.
- Auth & Billing for RMB balance and usage semantics.
- Models if you need model selection next.