Postman to Insomnia

Convert a Postman collection into an Insomnia export.

Postman Collection Input
Insomnia Export Output
Converted output appears here

Related Tools

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.