Insomnia to Postman

Convert an Insomnia export into a Postman collection.

Insomnia Export Input
Postman Collection Output
Converted output appears here

Related Tools

Documentation

What is Insomnia to Postman?

This tool converts an Insomnia export document into a Postman Collection v2.1 JSON file, the reverse of Postman to Insomnia — useful when a teammate's Insomnia workspace needs to be shared with a Postman-only team.

How it works

The input is parsed and its top-level resources array is scanned for entries with _type: "workspace" (used as the collection name) and _type: "request" (converted one-to-one into Postman items — folders and environments in the export aren't modeled, so every request lands flat in the output). Insomnia's Nunjucks-style {{ _.var }} tags are translated back to Postman's {{var}} syntax via regex, in both the URL and header values. A request body with a text field becomes a Postman raw body, with a Content-Type header added from the body's mimeType if one isn't already present; a body with a params array becomes Postman's urlencoded or formdata mode depending on whether the mimeType is multipart/form-data.

Features

  • Reads Insomnia export format 4 (the current "Export Data" structure)
  • Translates {{ _.var }} tags back to Postman's {{var}} syntax
  • Carries the workspace name over as the Postman collection name
  • Maps text and params-style bodies to Postman raw/urlencoded/formdata modes
  • Copy, download as postman_collection.json, or load an export file directly

Example

Input (Insomnia request resource): url: "{{ _.baseUrl }}/users/:id", header Authorization: "Bearer {{ _.token }}".

Output (Postman item):

{
  "name": "Get user",
  "request": {
    "method": "GET",
    "header": [
      { "key": "Authorization", "value": "Bearer {{token}}" }
    ],
    "url": { "raw": "{{baseUrl}}/users/:id" }
  },
  "response": []
}

Common errors

"Not an Insomnia export — expected a top-level resources array" means the JSON doesn't have the resources array every Insomnia export includes. "No requests found in this Insomnia export" means resources parsed fine but none had _type: "request" — for example, an export containing only an environment. The generated Postman url only sets raw (no separate host/path/query breakdown), which Postman itself will happily re-parse on import.

Best practices

Because folders and environments in the Insomnia export aren't reconstructed, organize the converted collection into folders again inside Postman if you need that structure, and manually recreate an environment there with real values for every {{variable}} the converted requests reference.

Frequently Asked Questions

How are Insomnia's {{ _.variable }} tags handled?

Converted back to Postman's {{variable}} syntax. As with the reverse direction, this is a text substitution between the two templating syntaxes — you'll still need to set the actual values in a Postman environment after importing.

What Insomnia export version does this expect?

Export format 4 (the current Insomnia export structure, with a top-level "resources" array containing workspace and request entries) — the same format Insomnia's own "Export Data" feature produces.

Does this only convert requests, or folders/environments too?

Only request resources become Postman items. Insomnia's workspace name is carried over as the collection name, but Insomnia environments and any request-grouping folders aren't currently modeled — every converted request lands flat in the output collection.

What happens to the request body?

A raw JSON body (Insomnia's { mimeType, text } format) becomes a Postman raw body with a matching Content-Type header. Form params convert to Postman's urlencoded or formdata body mode based on the original mimeType.