Browse an OpenAPI or Swagger spec — operations, schemas and ready-made curl.
Tip: use samples, upload, copy, download, and send-to actions inside the workspace where available.
OpenAPI Explorer Converter is a free, browser-based tool that helps you convert between formats. Browse an OpenAPI or Swagger spec — operations, schemas and ready-made curl. It's built for speed and privacy: Everything runs locally in your browser — your data is never uploaded to a server. No sign-up, no installs, and no daily limits.
Start with the source file or pasted payload, then confirm delimiters, headers, and field handling before conversion.
Review the preview, copy or download the result, and keep everything local in your browser.
API Request Builder: Build an HTTP request visually, then export it as curl, fetch, axios, Python or Go.
Open toolGraphQL Query Formatter: Format, minify and cost-analyse GraphQL queries and fragments.
Open toolParsed entirely in your browser. Remote $refs are reported rather than fetched — no network request is ever made, so a spec containing internal URLs stays private.
A small ordering API, used here to show how the explorer reads a spec.
Production
/ordersList orders
Returns a page of orders, newest first.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| status | query | "created" | "paid" | "shipped" | "delivered" | "refunded" | no | Filter by lifecycle status. |
| limit | query | integer | no | Page size, 1-100. |
| X-Request-ID | header | string (uuid) | no | Idempotency and tracing identifier. |
{
"data": [
{
"id": "ord_9f2a",
"total": 12999,
"currency": "gbp",
"status": "created",
"customer": {
"id": "string",
"name": "string",
"email": "user@example.com"
},
"created_at": "2026-03-14T09:32:00Z"
}
],
"has_more": true
}{
"code": "string",
"message": "string"
}curl -X GET 'https://api.example.com/v2/orders' \ -H 'X-Request-ID: 3f8a1c2e-9b4d-4a11-8c2f-0e7d5a1b9c00' \ -H 'Authorization: Bearer <token>'
CreateOrderCustomerErrorOrderA spec describes intent, not behaviour. Nothing enforces that the server matches it. Treat undocumented fields as real and documented ones as optional until you have seen an actual response.
Examples here are synthesised where the spec omits them. When an example or default exists it is used verbatim; otherwise a value is generated from the type and format, which is illustrative only.
Recursive schemas are cut off deliberately. A type that references itself — a comment with replies, a category with children — would expand forever, so it is marked (recursive) rather than unrolled.
Missing error responses are the most common gap. A spec that documents only 200 tells you nothing about the shape of a failure, which is exactly the case your client has to handle correctly.