Skip to main content

Convert Postman collection to Bruno collection

const { postmanToBruno } = require('@usebruno/converters');

const brunoCollection = postmanToBruno(postmanCollection);
const { postmanToBruno } = require('@usebruno/converters');
const { readFile, writeFile } = require('fs/promises');
const path = require('path');

async function convertPostmanToBruno(inputFile, outputFile) {
  try {
    const inputData = await readFile(inputFile, 'utf8');
    const brunoCollection = postmanToBruno(JSON.parse(inputData));
    await writeFile(outputFile, JSON.stringify(brunoCollection, null, 2));
    console.log('Conversion successful!');
  } catch (error) {
    console.error('Error during conversion:', error);
  }
}

convertPostmanToBruno(
  path.join(__dirname, 'demo_collection.postman_collection.json'),
  path.join(__dirname, 'demo_collection.bruno_collection.json')
);

Type coercion

The converter automatically handles non-string values that may appear in Postman collections. Numeric and boolean values in headers, query parameters, path parameters, form body fields, and authentication fields are coerced to strings during conversion. Null or undefined values default to empty strings (or appropriate fallback values for auth fields). Postman collections may also store headers in non-standard formats such as concatenated strings ("Content-Type: application/json\r\nAccept: */*") or mixed arrays of strings and objects. The converter normalizes all header formats into consistent key-value pairs.