Importing & exporting

Tiger can import collections from Postman, Insomnia, Bruno, OpenAPI 3 / Swagger 2, WSDL / SOAP, and pasted curl commands. It can also export a collection back to Postman v2.1 or OpenAPI 3.0, so you can share with teammates who use other tools.

Supported formats

Format Import Export Notes
Postman v2.0 / v2.1 .json, environments and globals Yes Yes (v2.1) Auth, scripts and {{variables}} carry over; see the matrix below
Insomnia v4 .json / .yaml and v5 .yaml Yes No Environments, folder auth and scripts carry over
Bruno folder of .bru files Yes No Open the folder; each .bru file becomes a request
OpenAPI 3 / Swagger 2 .json / .yaml Yes Yes (OpenAPI 3.0) Operations grouped by first tag or path segment
WSDL / SOAP .wsdl / .xml Yes No New in 0.4.0 - each binding operation becomes a POST
curl command (paste) Yes Yes Export is single-request code generation, not a file

How to import

All importers share the same entry point. Open the Import dialog from the sidebar (the arrow-into-box icon next to "Collections") or from the welcome screen. Then choose one of the sources below.

Faster still: drop an export file, several files, or a folder anywhere on the Tiger window. Tiger works out which tool each file came from. Drop a Postman collection together with its environment exports and you get one collection with those environments. Drop a Bruno collection folder and it is read as a whole.

The import report

After every import Tiger shows a short report: how many requests, folders and environments came in, and a list of anything that only partly mapped. Each entry names the request (and its folder) and says in plain words what to check, for example a file upload whose file lives on another machine, or a script that calls pm.sendRequest. Nothing is thrown away: unsupported pieces are kept as they were and flagged.

Switching from Postman, Insomnia or Bruno

On first launch the home screen has an import card per tool, each with a hint on where to find the export. Here is what carries over.

What you have Postman Insomnia Bruno
Requests, folders, method, URL, query, headers Yes Yes Yes
Disabled headers and params Yes Yes Yes
JSON, text, XML, form and GraphQL bodies Yes Yes Yes
Multipart form-data with files Yes (check the file paths exist) Yes Yes
Binary file body Flagged Flagged Not in Bruno
Path variables such as /users/:id Yes, the value is written into the URL Yes Yes
Collection auth Yes Not in Insomnia Yes (collection.bru)
Folder auth, inherited by nested folders Yes Yes Yes (folder.bru)
Bearer, Basic, API key, OAuth 2 client credentials Yes Yes Yes
Digest, AWS, NTLM, OAuth 1, other OAuth 2 grants Flagged, set to no auth. A saved OAuth 2 token becomes Bearer Flagged Flagged
Environments Yes, with secret and disabled values Yes, sub environments merged over the base Yes
Nested environment JSON Not in Postman Yes, as dotted names like {{api.url}} Not in Bruno
Collection variables Yes, added to every imported environment Not in Insomnia Yes, added to every imported environment
Globals Yes, as an environment named Globals Not in Insomnia Not in Bruno
Folder variables Not in Postman Flagged Flagged
Collection and folder headers Not in Postman Not in Insomnia Yes, copied into each request
Pre-request and test scripts Yes through the pm.* layer Yes (insomnia.*) Yes (bru, res, req)
Collection and folder scripts Yes, copied into each request Yes, copied into each request Yes, copied into each request
Declarative assertions Not in Postman Not in Insomnia Yes, converted to tests where the operator maps
pm.sendRequest, cookies, require(), CryptoJS, async code Flagged, kept Flagged, kept Flagged, kept
Dynamic variables Yes: $guid, $timestamp, $isoTimestamp, $randomInt, $randomUUID. Faker ones are flagged Yes: {% uuid %}, {% now %}. Other tags are flagged Same as Postman
gRPC and WebSocket requests Not in exports Flagged, skipped and counted Not supported

Postman (v2.0 / v2.1)

In Postman, open the ... menu next to the collection, choose Export and keep Collection v2.1. Export environments the same way from Environments, and globals from the globals page. Pick all the files together in Tiger (or drop them on the window). Tiger reads both the v2.0 and v2.1 schema variants.

Scripts written for Postman

Tiger runs Postman scripts through a compatibility layer. It covers pm.test, pm.expect with the common Chai assertions (equal, eql, a/an, include, property, lengthOf, above/below, match, oneOf, empty, not and friends), pm.response (code, status, json(), text(), headers, responseTime, to.have.status, to.have.header, to.be.ok), pm.environment, pm.variables, pm.collectionVariables, pm.globals, pm.request (read it, and add or remove headers from a pre-request script), pm.info, and the legacy tests[...], responseBody, responseCode and postman.setEnvironmentVariable. Insomnia's insomnia.* API is the same layer.

Not supported: pm.sendRequest, pm.cookies, pm.vault, require() of libraries such as lodash or CryptoJS, asynchronous code, and flow control (setNextRequest is skipped, the runner goes in order). The import report lists every request that uses one, and the script is kept so you can adapt it.

Insomnia (v4 and v5)

In Insomnia, open the ... menu of the collection (or Preferences, then Data) and choose Export. The JSON and YAML exports both work, including the newer v5 YAML collection files. Choose Insomnia in Tiger and pick the file.

Bruno

Nothing to export: choose Bruno and pick the collection folder, the one that holds bruno.json (or drop it on the window). Tiger walks it recursively.

OpenAPI 3 / Swagger 2

Tiger accepts OpenAPI 3.x and Swagger 2.0 documents in both JSON and YAML. Choose OpenAPI / Swagger, pick the spec file, and click Import.

What Tiger does with the spec:

✓

After importing an OpenAPI spec, create an environment with a baseUrl variable pointing at your server. All imported requests will pick it up via {{baseUrl}} interpolation.

curl (paste)

Copy a curl command from a terminal, browser DevTools, or API docs, then choose Paste a curl command in the import dialog and paste it in. Tiger parses common flags including:

If the body starts with { or [, or the Content-Type header contains json, Tiger sets the body type to JSON automatically. Otherwise the body is imported as plain text.

Multipart (-F) flags are recognized and skipped cleanly; their values will not pollute other fields. Line continuations (\ at end of line) are handled, so multi-line DevTools curl exports paste without modification.

i

Curl import creates a single request, not a collection. After importing you can drag it into any open collection folder from the sidebar.

WSDL / SOAP import New in 0.4.0

WSDL import converts a SOAP service description into a set of Tiger requests - one per binding operation - ready to fill in and send. Both SOAP 1.1 and SOAP 1.2 are supported.

How to import a WSDL file

  1. Open the Import dialog from the sidebar.
  2. Choose WSDL / SOAP.
  3. Pick your .wsdl or .xml file.
  4. Click Import. Tiger creates a collection named after the <service> element (or the definitions root name as a fallback). Each binding operation appears as a separate request inside it.

What each imported request looks like

For every <operation> inside a <binding>, Tiger generates a POST request with:

Example skeleton for a SOAP 1.1 GetWeather operation:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:tns="http://www.webserviceX.NET">
  <soap:Body>
    <tns:GetWeather>
      <!-- fill in fields -->
    </tns:GetWeather>
  </soap:Body>
</soap:Envelope>

The matching headers generated for this request:

Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.webserviceX.NET/GetWeather"

Tiger detects whether a binding uses SOAP 1.2 by checking the namespace URI on the <soap:binding> child element. Namespaces are resolved per-binding, so a single WSDL that mixes SOAP 1.1 and 1.2 bindings will produce requests with the correct Content-Type for each.

i

Deep XSD-to-sample expansion is not performed. The envelope body is a skeleton showing the top-level request element; you fill in the child fields. Complex types, arrays, and optional elements are not pre-populated.

Exporting

Postman v2.1

Right-click any collection in the sidebar and choose Export → Postman v2.1. Tiger writes a .json file that:

The exported file is valid for direct import back into Tiger, Postman, or any tool that accepts the Postman v2.1 schema.

OpenAPI 3.0

Right-click a collection and choose Export → OpenAPI 3.0. Tiger produces an openapi.json file where:

✓

OpenAPI export is a useful way to generate a machine-readable contract from a collection you built by hand. Import it into tools like Stoplight, Redocly, or your CI pipeline's schema linter.

curl and fetch (single request)

From any open request, click the Code snippet tab to generate a curl command or a JavaScript fetch snippet for that single request. Variable references are interpolated using the active environment before the snippet is rendered.

After importing

An imported collection opens in the sidebar straight away, ready to send. Once imported:

Related pages

The .tiger format
How Tiger stores requests as plain text you can read, diff, and commit.
Environments
Named variable sets with secret masking and {{variable}} interpolation.
Variables
Static, secret, dynamic, and captured variables across requests.
Scripts & chaining
Capture response values into variables and write post-request assertions.