LLM API Tester
Call Models, Chat Completions, and Responses APIs directly from this browser. Keys, prompts, and responses do not pass through ComUtil.
Endpoint profile
Connection
Endpoint paths and custom headers
Custom headers
Request
Messages
Additional body JSON
Add provider-specific fields. Managed form fields cannot be overridden.
Request preview
{}
Response inspector
The target provider receives the request directly. Browser extensions and scripts on this origin can still read localStorage.
Custom and localhost endpoints must allow this page origin, Authorization and Content-Type headers, and OPTIONS requests.
Unsupported Responses requests are reported as-is and are never retried through Chat Completions.
An LLM API tester sends a real request to a model endpoint and shows exactly what came back: the HTTP status, the tokens as they stream in, the raw event log, and the usage numbers the provider reported. This one runs in the browser, so the request travels from your machine straight to the endpoint you configured instead of passing through an intermediate server that would have to hold your key.
Save a profile with a base URL, model, and credential, then send a request in Chat Completions or Responses mode. The browser calls the endpoint directly, renders server-sent events as they arrive, and measures time to first token alongside the total round trip. Profiles and keys stay in this browser's local storage, and the generated curl command replaces the API key and custom header values with placeholders so it is safe to paste into a ticket.
- Confirming that a new API key, base URL, or gateway route answers before you wire it into code
- Comparing time to first token and tokens per second across models or providers
- Checking whether a proxy in front of a model really streams instead of buffering the whole answer
- Reproducing a 4xx response with the exact headers your client sends
- Handing a teammate a redacted curl command that reproduces the request
- HTTP status and the response headers the endpoint returned
- Time to first token, total time, and tokens per second
- Usage counts as reported by the provider
- The raw streamed event log, not only the assembled answer
- A curl command with the API key and custom header values redacted
https://api.openai.com/v1 + gpt-4o-mini
200 OK, first token in 480 ms, 62 tokens per second
X-Private-Test: HEADER-SECRET
Header sent with the request, redacted in the curl output
stream: true
Raw log shows each delta event as it arrives
Does my API key reach the ComUtil server?
No. The request goes from your browser to the endpoint you configured, and the key is kept in this browser's local storage. Clearing site data removes it.
Which APIs does it work with?
Any OpenAI-compatible endpoint that exposes Chat Completions or Responses. That includes self-hosted gateways and proxies as long as they follow the same request and response shape.
Why does a request fail with a network error even though the key is correct?
A browser request needs the provider to allow cross-origin calls. If the endpoint sends no CORS headers, the browser blocks the response before your code sees it. Put a gateway that returns CORS headers in front of the model, or run the same curl command from a terminal.
Is the streamed output real streaming?
Yes. Server-sent events are rendered as they arrive and the raw log keeps every event, so you can tell real streaming apart from a buffered response that only looks incremental.
How do I share a failing request safely?
Copy the generated curl command. The API key and any custom header values are replaced with placeholders, so the command shows the shape of the request without leaking the credential.