Skip to main content
FEATURE 01 / 11

An API try-it console built into the docs.

Every operation page carries a panel that sends real fetch requests from the reader’s browser, with a measured duration and a response viewer. It is the layer that normally lives in a separate API client — shipped with the documentation, storing everything in the reader’s own browser.

demo.apiglow.dev/#/pet/getPetById · petstore.yaml
The Find-pet-by-ID operation with its try-it panel: environment credentials ready, petId filled in, a cURL snippet and a 200 response with a timing breakdown. The Find-pet-by-ID operation with its try-it panel: environment credentials ready, petId filled in, a cURL snippet and a 200 response with a timing breakdown.

REAL SCREENSHOT, SHOWN AT 1:1

The forms come from the schema.

ApiGlow reads each operation and builds the request form from it: enums become selects and comboboxes, arrays become repeatable rows, tuples get one field per position, format: binary gets a file input, and an XML body starts pre-filled with a generated sample. Multipart, urlencoded, binary and text bodies are all first-class, and parameter serialization follows the schema too — style, explode, deepObject, cookie parameters included.

The request is editable from both columns: change a field in the central documentation or in the panel, the two always show the same request. No other tool in the category keeps that mirror.

The path-parameters table generated from the schema, with the petId field pre-filled. The path-parameters table generated from the schema, with the petId field pre-filled.
[01]THE FORM THE SCHEMA GENERATED

Ten languages of snippets, always current.

Every request renders as a live code snippet in cURL, fetch, Node, Python, PHP, Ruby, Java, C#, Go and HTTPie. The snippet follows what you type — it is the request you would actually send, not a static example.
The snippet panel showing the generated cURL command, with the language picker above it. The snippet panel showing the generated cURL command, with the language picker above it.
[02]ONE SNIPPET, TEN LANGUAGES BEHIND THE PICKER

Paste a cURL, drop a Postman collection or a HAR.

Imports work in the direction other tools skip. Paste a cURL command, drop a Postman v2.1 collection or a HAR file: ApiGlow matches it to the schema’s operations and opens the try-it pre-filled. Ambiguity is presented, never guessed, and anything that cannot be imported is listed before you commit.

Every request exports — secrets redacted by default.

Any request, from the panel or from history, exports as cURL, a Postman v2.1 collection, Markdown ready for a GitHub issue, or HAR 1.2 — one click to copy. Sensitive values from your environments are redacted by default; a file you hand around never carries a token you didn’t decide to include.

History with replay, and a network that explains itself.

Requests land in an IndexedDB history — filterable, replayable as-is or reloaded into the try-it for edits, with the retention stated in the UI and configurable. A good request is also worth keeping as a step: any of them can start a scenario.

When something goes wrong, the panel diagnoses the failure — offline, mixed content, CORS, unreachable — phrased as “most likely”, because the browser hides the details. When it goes right, it reads the response headers for you: rate limits, Retry-After, Deprecation and Sunset, Link pagination, correlation ids, plus protocol, compression and cache facts.

File uploads never leave the tab’s memory — only the file’s name, size and type are ever persisted.

Retention, stated and configurable (defaults shown)
{ "history": { "maxEntries": 500, "maxAgeDays": 30 } }

CORS.

The browser enforces CORS — your API must allow the documentation’s origin, or requests never leave the page. ApiGlow says so plainly in the UI when it happens, and supports a proxy you host (tryIt.proxyUrl); it ships none. See Try-it & CORS.