Inspect API responses and build requests.

Inspect JSON or SSE, prepare a redacted report, or build a request. These local tools need no API key.

Inspect a response.

Runs in this browser

Chat Completions or HTTP/ captures; choice 0. Responses API objects are not supported.

Optional field and HTTP checksHTTP 200

Names are case-sensitive. This checks presence, not a complete schema, data types or factual correctness.

228 / 128,000 characters

Handwritten example loaded. No request was sent. Replace it with your own response to inspect that instead.

No endpoint was contacted. This checks only the pasted response.

No assistant text to check

The response contains an empty assistant content string, so there are no characters to parse. A stop finish reason ends the turn; it does not confirm that the task received an answer.

Finish reason
stop
Assistant JSON
Not checked
Field checklist
Not supplied

What to do next

Compare the raw response with what your client displays. Check refusal and tool_calls first, then verify the exact provider, model and serving route. Do not treat this as valid JSON or an automatic success.

Have usage JSON? Estimate token cost (new tab)Check Qwen3.8 empty-answer reports

Source facts are not checked. Provider-specific finish reasons may differ.

View and copy assistant text

Decoded from choices[0].message.content. Copying preserves the text, including whitespace and number spelling; it does not repair or complete a response. The issues above still apply.

Assistant text

Input formats and limits

Checks choices[0] in a non-streaming response. Paste the response body, not an API key. Responses API objects are not supported. A complete capture beginning with HTTP/ is detected automatically: the status and headers are counted, then the JSON or SSE body is routed to the matching inspector. The original paste stays unchanged.

Examples and fixtures
Run a handwritten example
Run a character-diagnostic fixture

Handwritten samples; no request is sent.

Run the 25-fixture self-test

Inspect tool-call SSE

Rebuild Chat Completions function calls by index. Nothing is executed or sent to an API.

Runs in this browser

Paste the response body only, through its ending markers. Do not include API keys or request headers. Input limit: 128,000 characters. Your paste stays in this tab.

0 / 128,000

Your inspection result

Paste the SSE response body and choose Inspect tool calls.

Need to capture the original body first? Follow the capture guide.

LOCAL TOOL · JSON + SSE

Compare two responses.

Compare choice 0 text, finish reason, tool-call counts and usage from captured Chat Completions responses. Matching fields do not prove a complete or correct response.

Runs in this browser
Start with a sample
0 / 128,000
0 / 128,000

Both inputs stay in this tab. The comparison makes no network request, model call, or upload.

Build your request

One connection for your software. The label free selects automatic routing; you do not choose a model provider.

Final request URL
POSThttps://chinagenai.com/v1/chat/completions
cURL · OpenAI-compatible chat
curl 'https://chinagenai.com/v1/chat/completions' \
  -H 'Authorization: Bearer YOUR_SITE_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "free",
  "messages": [
    {
      "role": "user",
      "content": "Extract the supplier quote into JSON with these fields: supplier, quantity, currency, unit_price, moq, incoterm, port, payment, lead_time_days. Use null for missing facts. Preserve currencies and units. Do not infer shipping costs or promise delivery. Return JSON only.\n\nExample only: Cedar offers 250 units at USD 5.20 each, MOQ 200, EXW Ningbo. Payment: 30% deposit, 70% before dispatch. Lead time is not stated."
    }
  ],
  "max_tokens": 256,
  "stream": false
}'

This builder makes no API call. Site key issuance follows the current availability and free limits. Never include a real key in a shared request file.

Use these settings in n8n

cURL works, but your app returns 404?

Compare the actual request URL from your log with the full endpoint in your working cURL or provider docs.

Stays in this tab; no request is sent or saved. Query values and fragments are hidden in results. Remove credentials before pasting.

Handwritten examples:
Compare requests: cURL works, but the app fails?

Compare a working command with one copied from the failing app or its HTTP capture.

Parsed in this tab only. Commands are never run, sent or saved. Results hide endpoint values, all header values, message content and unknown JSON fields. Clear the inputs when finished.

Try the site’s free pool

Free pool configuration enabled

Free API configuration is enabled. Remaining quota and upstream availability are not checked.

At most 20 attempts per network or verified account per UTC day, sharing 200 attempts across the site. Up to 256 output tokens per request, 1 active request per key and 2 active site requests. Requests accepted for processing count even if the upstream call fails. No paid fallback.

Each API request accepts up to 6 messages, including system messages and previous history, and 6,000 characters of JSON input, including message structure, tool definitions and output schemas. Every follow-up request has the same limits. Keys expire 48 hours after creation; replacing a key does not reset daily allowance. Local tools make no model request and do not use this allowance. Use one short item; long text and batches may exceed the output limit.

Open free key access

Check a request body

Check how a body fits ChinaGenAI’s Chat Completions request rules.

Local in this browser
Extract JSON body from cURL

One inline JSON body. Nothing is run, sent or saved. Headers are omitted from the result; secrets inside the body remain in the body.

Files, stdin, multiple data arguments, body expansion and unsupported shell syntax need the final JSON body instead. cURL data options.

Local paste limit: 24,000 characters for this checker only. API request limit: 6,000 serialized characters across messages, options and tool schemas. Paste JSON only, without cURL, headers or keys. Nothing is sent or saved. 0 / 24,000

Nothing leaves this tab

The checker runs locally. It does not call the API, save your text or repeat it in the result.

Check supplier-quote fields

Fictional source for the example:

Example only: Cedar offers 250 units at USD 5.20 each, MOQ 200, EXW Ningbo. Payment: 30% deposit, 70% before dispatch. Lead time is not stated.

The starting JSON is handwritten example data, not a live model response. This checker validates fields and types, not whether a model’s claims are true.

Text stays in this page’s memory. It is not uploaded or saved by the checker.