Postman to Insomnia
Convert a Postman collection into an Insomnia export.
Related Tools
Convert an Insomnia export into a Postman collection.
Convert a Postman collection into an OpenAPI 3.0 spec.
Convert an OpenAPI 3.0 spec into a Postman collection.
Beautify and pretty-print JSON with configurable indentation.
Convert a cURL command into a Python requests call.
Convert a cURL command into a Go net/http request.
Documentation
What is Postman to Insomnia?
This tool converts an exported Postman Collection (JSON) into an Insomnia export document, so a team using Postman can hand a collection to a teammate on Insomnia without recreating every request by hand.
How it works
The collection's item tree is flattened recursively so requests nested in folders aren't skipped. A single workspace resource is created from the collection's name, and each request becomes an Insomnia request resource with parentId pointing back to that workspace. Postman's {{var}} variable syntax is rewritten to Insomnia's Nunjucks-style {{ _.var }} tags everywhere it appears — in the URL and in header values — via a regex substitution, since the two apps use different templating engines and don't share an environment format. Raw JSON bodies map to Insomnia's { mimeType: "application/json", text: rawBody } shape; urlencoded and form-data bodies map to { mimeType, params: [{ name, value }] }. The final document is wrapped as { _type: "export", __export_format: 4, resources: [...] }, the exact shape Insomnia's own Import Data feature reads.
Features
- Recursively flattens requests nested in Postman folders
- Translates {{var}} to Insomnia's {{ _.var }} tag syntax in URLs and headers
- Maps raw, urlencoded, and form-data bodies to Insomnia's body shapes
- Outputs Insomnia export format 4, ready for direct import
- Copy, download as insomnia_export.json, or load a collection file directly
Example
Input (Postman request): GET {{baseUrl}}/users/:id with header Authorization: Bearer {{token}}.
Output (Insomnia request resource):
{
"_id": "req_1",
"_type": "request",
"parentId": "wrk_1",
"name": "Get user",
"method": "GET",
"url": "{{ _.baseUrl }}/users/:id",
"headers": [
{ "name": "Authorization", "value": "Bearer {{ _.token }}" }
]
}Common errors
"Not a Postman collection — expected a top-level item array" means the pasted JSON is missing the item array every collection export has — double-check you exported the collection, not just an environment. Note that Postman's :id path variable syntax is left as-is in the URL rather than translated, since Insomnia doesn't use a distinct path-variable notation — it will still resolve correctly as long as your Insomnia request treats it as literal path text.
Best practices
This is a text substitution between two templating syntaxes, not a full environment migration — after importing into Insomnia, create an environment and define values for every _.variableName reference the converted requests use (baseUrl, token, etc.), since Postman environment values themselves aren't carried over.
Frequently Asked Questions
How are Postman's {{variables}} handled?▾
Converted to Insomnia's Nunjucks-style tag syntax, {{ _.variableName }} — the two apps use different templating engines for environment variables, so this is a text substitution between the two syntaxes, not a full environment migration. You'll still need to define the actual variable values in an Insomnia environment after importing.
Does this handle folders inside the collection?▾
Yes — every request is flattened out of its folder structure into a flat list of Insomnia request resources under one workspace, regardless of how deeply nested it was in the original collection.
What Insomnia format version does this target?▾
Export format 4 (__export_format: 4), the JSON structure Insomnia's own "Import Data" feature reads directly — no intermediate conversion needed on Insomnia's side.
Does the request body carry over?▾
Yes for raw JSON bodies — they map directly to Insomnia's { mimeType, text } body format. Form-encoded and multipart bodies convert to Insomnia's params array as well.