API Reference

Create API keys in a batch

Create an API key. Fields and permissions follow this gateway implementation.

POST https://api.tu-zi.com/api/token/batch/create
Preview guide

Paste into an AI assistant to help with integration. Documentation and examples only; no real credentials.

Preview guide

Create API keys in a batch

Updated · Reviewed

Endpoint and authentication

POST https://api.tu-zi.com/api/token/batch/create

Transport: json

Use an account system token and New-Api-User (account ID), or a valid site login session. Manage system tokens in account settings. Inference API keys are not substitutes.

Authorization: Bearer YOUR_SYSTEM_TOKEN
New-Api-User: YOUR_USER_ID
Content-Type: application/json

Minimal request example

{
  "name": "example-batch",
  "expired_time": -1,
  "remain_quota": 1000,
  "unlimited_quota": false,
  "group": "",
  "count": 2
}

Before running

Replace https://api.tu-zi.com with this site origin (do not append /v1 twice), and YOUR_MODEL with the exact marketplace model ID. Install requests for Python; use Node.js 20+ and save JavaScript as .mjs. WebSocket samples list their own dependencies.

Set SYSTEM_TOKEN and USER_ID in the environment; keep system tokens out of frontend code. Replace YOUR_SYSTEM_TOKEN and YOUR_USER_ID in cURL.

Start with a minimal request, then read the result using the response fields below. For async APIs, a returned task ID requires polling; acceptance does not mean generation has finished.

Constraints

Names receive numeric suffixes such as -01, with a maximum total of 50 bytes. The response contains full secrets; store them only in trusted environments. OAuth application tokens are not accepted here.

Body parameters

FieldTypeRequiredDescription / constraints
namestringNoName, up to 50 bytes. Example: demo
expired_timeintegerNoUnix seconds; -1 means no expiry. Set explicitly. Example: -1
remain_quotaintegerNoInitial quota, nonnegative. Example: 1000
unlimited_quotabooleanNoUnlimited quota. Example: false
remain_countintegerNoRequest-count limit; 0 means unlimited. Example: 0
groupstringNoAuthorized groups, comma separated. Example:
model_limits_enabledbooleanNoEnable model restrictions. Example: false
model_limitsstringNoComma-separated model IDs. Example:
allow_ipsstringNoAllowed IP/CIDR, one per line. Example:
exclude_ipsstringNoBlocked IP/CIDR, one per line. Example:
cross_group_retrybooleanNoCross-group retry setting. Example: false
routing_preferencestringNoprice or quality. Example: price
routing_quality_thresholdintegerNo30, 40, 50, 60, 70, 80, 85, 90, 95. Example: 70
mj_modestringNoMidjourney mode; omitted uses site default. Example: 默认
rate_limits_enabledbooleanNoEnable token rate limits. Example: false
rate_limits_timeintegerNoRate-limit window in seconds; effective when enabled and both time and count are positive. Example: 0
rate_limits_countintegerNoRate-limit request count. Example: 0
rate_limits_contentstringNoMessage returned when the token rate limit is reached; empty uses the default message. Example:
countintegerYesCount from 1 to 100, subject to the account token limit. Range in this definition: 1 ~ 100

Response fields

FieldTypeDescription / constraints
successbooleanBusiness success.
data.tokens[].idintegerCreated key ID.
data.tokens[].namestringNumbered name.
data.tokens[].keystringRaw secret; apply the gateway sk- prefix when calling.

Illustrative response; some endpoints show essential fields only. Optional fields may be absent.

{
  "success": true,
  "data": {
    "tokens": [
      {
        "id": 123,
        "name": "example-batch-01",
        "key": "REDACTED"
      }
    ]
  }
}

Errors and retries

Check HTTP status and success. Business validation errors may return HTTP 200 with {"success":false,"message":"..."}; some include error.code. Authentication may return 401/403 and rate limiting 429. HTTP 200 alone does not guarantee success.

Use bounded exponential backoff for reads. Do not blindly retry task creation, generation, or key mutations, to avoid duplicate billing or execution.