Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.
Bruno keeps every collection as plain-text files on your machine. Requestly imports a collection exported from Bruno 4 in either of Bruno’s two native shapes: Bruno Collection (ZIP) or Single File (YAML). Both bring across your requests, folders, examples, environments, variables, and scripts. The ZIP brings more, and it is the shape Bruno itself recommends.
Hover the collection in Bruno’s sidebar, click the ... menu, and choose Share.
2
Switch to the Export tab
The Share Collection dialog opens on the Git tab, which offers no file at all. Click Export. This is where most people get stuck, so check the tab before you look for the format cards.
3
Choose Bruno Collection (ZIP)
Under BRUNO FORMAT, pick Bruno Collection (ZIP). Bruno badges it Recommended and selects it for you.Single File (YAML) is supported too, and it is the right pick when you need one file to paste into a gist or attach to an issue. Bruno’s exporter drops two things on the way into that shape: client certificates and the OAuth 2.0 token source setting.
4
Click Proceed and save the file
Bruno writes a .zip (or a .yml for the single-file shape) to the location you choose.
Do not route through Postman. Exporting Bruno to a Postman collection and then importing that into Requestly loses data twice: Bruno’s own dialog warns that gRPC and WebSocket requests are not exported at all in that format, and Postman’s format cannot carry Bruno’s assertions. Import the Bruno export directly instead.
In the API Client, click Import in the sidebar header and choose Bruno.
Choosing Bruno from the Import menu
2
Select your export
Drag the file onto the upload area or click to browse. .zip, .yml, and .yaml are accepted, up to 100 MB. A ZIP is expanded up to 500 files, with a 50 MB ceiling per file and 100 MB in total.
The Bruno upload step, with its file drop zone
3
Review the preview and import
Requestly reads the file and shows what it found. Click Import to create the collection.
The import summary, before anything is created
4
Read What needs attention
The result screen lists anything that did not come across cleanly, grouped by reason, with a Show details toggle for the affected items. Every entry names what to do about it. The next two sections explain what you can expect to see there.
Requests of all four kinds. HTTP, GraphQL, gRPC, and WebSocket requests are imported, along with the folder tree that holds them.
Examples. Each saved example is built from its own request, not from its parent, so the URL, method, and body you saved are the ones you get.
Environments and variables. Collection variables, folder variables, and each environment come across. Folder and collection variables of the same name fold together, last one winning, which matches how Bruno resolves them.
Authorization. Every auth mode Bruno records, including requests set to inherit their parent’s auth.
Scripts. Pre-request and post-response scripts are translated from Bruno’s bru.*, req.*, and res.* API to Requestly’s rq.* API. Post-response variable captures come across as script lines when the captured value is a plain property path such as res.body.id. Anything more involved, a JSONPath selector for example, is reported instead of guessed at.
Standalone .js files in the collection folder become Custom Packages, and require() calls in your scripts are rewritten to point at them.
The collection’s .env file, when you import a ZIP. The keys are created so that {{apiKey}} resolves to something you can fill in. Every value is blanked, because a .env is the file you deliberately kept out of your collection.
Client certificates, when you import a ZIP into the desktop app. They land in App Settings → SSL certificates.
Some things are missing from Bruno’s export before Requestly ever sees the file, and some have no place to land in Requestly. The import result names every one that applies to your file, so you are told about a loss only when it actually happened.
Not in the export. Re-add them in App Settings → SSL certificates.
Imported on the desktop app. The web app has no certificate store, so they are not added there. Passphrases are never carried across, because Bruno stores them in plain text, and a certificate whose file is missing from the archive is reported by name rather than imported half-configured.
OAuth 2.0 token source
Not recorded. If a request used an ID token rather than an access token, set it again in the Authorization tab, or it will send the wrong one.
Secret environment variable values. A variable marked secret in Bruno is created with its name and an empty value. Re-enter it, or store it in the Vault.
The collection’s .env file. A ZIP import creates every key with a blank value, so {{apiKey}} resolves to something you can fill in. A single-file export does not carry the file at all. Import it separately with the Import .env file option in the Environments sidebar.
Collection and folder headers. Bruno lets a collection or folder define headers that every request below it inherits. Requestly sets headers per request, so those are reported rather than imported. Add them to the requests that need them.
WebSocket connection settings. Bruno’s exporter drops the handshake timeout and the keep-alive interval from both shapes. Set them again in the request’s Settings tab.
Per-request transport settings. Encode URL, timeout, follow redirects, and max redirects live outside the request in Requestly, so they are reported when they differ from Bruno’s defaults.
Files referenced by path. A file body, a multipart file row, and a .proto schema are stored in Bruno as paths on the machine that exported them. The request is imported and the attachment is not, so re-attach it.
gRPC messages beyond the first. A gRPC request holds one message body in Requestly and a list of them in Bruno, so the first is imported and the rest are reported by name. Copy the others out of Bruno if you need them.
GraphQL query bodies. Bruno’s exporter drops the query body from some GraphQL requests. Paste the query and variables again.
Assertions, captures, and per-request variables. Bruno’s assertions have no Requestly equivalent and are not rewritten into test scripts. Post-response captures come across as script lines when the captured value is a plain property path such as res.body.id; anything more involved is reported instead of guessed at.
Folder script order. Bruno’s folder-script execution order (sandwich or sequential) is not in the export. If your folder scripts depend on running in a particular order, check them after importing.
OAuth details Requestly does not model. The OAuth 2.0 credentials placement (Basic header against request body) and the OAuth 1.0 callback URL are reported. The rest of the auth config imports normally.
Request and folder tags. Bruno’s labels have no Requestly equivalent, so they are reported and dropped.
Non-standard HTTP verbs. A verb outside GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS, PROPFIND for example, is imported as GET and reported. Requestly’s method list is fixed, so the verb cannot be kept.
Bruno Apps, global environments, and mock servers. Bruno keeps these outside the collection folder, so no Bruno export contains them. Re-create them in Requestly.
Script calls with no Requestly equivalent are left in your code unchanged. They throw when the request runs, which stops the request being sent, so update them before you send. The result screen tells you how many scripts are affected. bru.runner.stopExecution() and the req.set* mutators are the common cases.
Requestly names the file it received rather than half-importing it. Each message tells you what to do next.
A .bru file. A .bru holds one request and is not read on its own. Export the whole collection from Share → Export.
A bruno.json file. That is a collection’s configuration, not the collection. Export the collection instead.
A ZIP with bruno.json at its root. That is a legacy .bru collection. Open it in Bruno 4 and export it again from Share → Export. A re-export carries everything across, so there is no separate path to take.
A ZIP with no opencollection.yml at its root. The archive is not a Bruno collection export. Use the file Bruno wrote under Share → Export.
A single request file from a ZIP. A ZIP export stores each request as its own .yml. Unzipping and picking one of those imports nothing useful, so Requestly refuses it. Import the archive itself.
A Postman-format file exported from Bruno. Requestly offers to open it with the Postman importer instead. Prefer a direct Bruno export: it brings across your gRPC requests, WebSocket requests, and assertions.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Requestly","description":"Design, build and test APIs in one place. Docs for the Requestly API Client: collections, environments, scripting, and Git-native sync.","colors":{"primary":"#2563eb","light":"#3b82f6","dark":"#1d4ed8"},"logo":{"light":"https://mintcdn.com/requestly/1os8lH_VUE6QydeH/images/logo-light.webp?fit=max\u0026auto=format\u0026n=1os8lH_VUE6QydeH\u0026q=85\u0026s=f4d79e60313d7b955f46e0ad446bc80d","dark":"https://mintcdn.com/requestly/1os8lH_VUE6QydeH/images/logo-dark.webp?fit=max\u0026auto=format\u0026n=1os8lH_VUE6QydeH\u0026q=85\u0026s=a20b66ddb959d92b66960804d0615fd7","href":"https://docs.requestly.com"},"favicon":"https://mintcdn.com/requestly/Z9psaKI2OUaqbNe1/images/favicon.webp?fit=max\u0026auto=format\u0026n=Z9psaKI2OUaqbNe1\u0026q=85\u0026s=7814a541aed21e1e617f27baa7b601eb","navbar":{"primary":{"type":"button","label":"Download","href":"https://requestly.com/downloads"}},"footer":{"socials":{"x":"https://x.com/requestlyio","linkedin":"https://linkedin.com/company/requestly","github":"https://github.com/requestly/requestly","youtube":"https://youtube.com/@requestly"},"links":[{"header":"Product","items":[{"label":"Features","href":"https://requestly.com"},{"label":"Pricing","href":"https://app.requestly.io/pricing"},{"label":"Chrome Extension","href":"https://rqst.ly/chrome-store"},{"label":"Desktop App","href":"https://requestly.com/desktop"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://requestly.com/blog"},{"label":"Support","href":"https://requestly.com/contact-us"}]},{"header":"Company","items":[{"label":"About","href":"https://www.browserstack.com/company"},{"label":"Privacy Policy","href":"https://requestly.com/privacy"},{"label":"Terms of Service","href":"https://requestly.com/terms"}]}]},"search":{"prompt":"Search Requestly docs..."},"seo":{"metatags":{"og:type":"documentation","og:site_name":"Requestly Documentation","twitter:card":"summary_large_image","twitter:site":"@requestlyio"},"indexing":"navigable"},"integrations":{"telemetry":{"enabled":true},"cookies":{"key":"rq_consent_tracking","value":"granted"}},"errors":{"404":{"redirect":true,"title":"Page Not Found","description":"The page you're looking for doesn't exist. Try searching or browse our documentation sections."}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"requestly","hasAudioNarration":false,"actualSubdomain":"requestly","customDomains":["docs.requestly.com"],"gitSource":{"type":"github","owner":"requestly","repo":"requestly-api-client","deployBranch":"staging","contentDirectory":"documentation","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4931fc69c99d3b7d1282c","collectionId":"1dc224bb-cc85-4aec-b218-b40bf1a2432b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4931fc69c99d3b7d1282c"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4931fc69c99d3b7d1282c","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Client","count":114},{"language":"default","tag":"Getting Started","count":84},{"language":"default","tag":"Sending Requests","count":23},{"language":"default","tag":"Requestly Scripts Reference","count":15},{"language":"default","tag":"Variables \u0026 Environments","count":12},{"language":"default","tag":"Git","count":10},{"language":"default","tag":"Account \u0026 Administration","count":9},{"language":"default","tag":"Import \u0026 Export","count":9},{"language":"default","tag":"Mock Server","count":8},{"language":"default","tag":"Authorization","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"changelog-layout.css","content":":has(>#content-container):has(#content[data-page-title=Changelogs]){max-width:1376px!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}@media (max-width:1471px){:has(>#content-container):has(#content[data-page-title=Changelogs]){margin-left:5%!important;margin-right:5%!important}}"}],"page":{"pagePath":"api-client/import-export/import-from-bruno","slug":"/api-client/import-export/import-from-bruno","pageMetadata":{"title":"Import from Bruno","description":"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.","href":"/api-client/import-export/import-from-bruno"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Bruno keeps every collection as plain-text files on your machine. Requestly imports a collection exported from Bruno 4 in either of Bruno’s two native shapes: `,_jsx(_components.strong,{children:`Bruno Collection (ZIP)`}),` or `,_jsx(_components.strong,{children:`Single File (YAML)`}),`. Both bring across your requests, folders, examples, environments, variables, and scripts. The ZIP brings more, and it is the shape Bruno itself recommends.`]}),`\n`,_jsx(Heading,{level:`2`,id:`export-your-collection-from-bruno`,children:`Export your collection from Bruno`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Share dialog`,children:_jsxs(_components.p,{children:[`Hover the collection in Bruno’s sidebar, click the `,_jsx(_components.code,{children:`...`}),` menu, and choose `,_jsx(_components.strong,{children:`Share`}),`.`]})}),_jsx(Step,{title:`Switch to the Export tab`,children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Share Collection`}),` dialog opens on the `,_jsx(_components.strong,{children:`Git`}),` tab, which offers no file at all. Click `,_jsx(_components.strong,{children:`Export`}),`. This is where most people get stuck, so check the tab before you look for the format cards.`]})}),_jsxs(Step,{title:`Choose Bruno Collection (ZIP)`,children:[_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`BRUNO FORMAT`}),`, pick `,_jsx(_components.strong,{children:`Bruno Collection (ZIP)`}),`. Bruno badges it `,_jsx(_components.em,{children:`Recommended`}),` and selects it for you.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Single File (YAML)`}),` is supported too, and it is the right pick when you need one file to paste into a gist or attach to an issue. Bruno’s exporter drops two things on the way into that shape: client certificates and the OAuth 2.0 token source setting.`]})]}),_jsx(Step,{title:`Click Proceed and save the file`,children:_jsxs(_components.p,{children:[`Bruno writes a `,_jsx(_components.code,{children:`.zip`}),` (or a `,_jsx(_components.code,{children:`.yml`}),` for the single-file shape) to the location you choose.`]})})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Do not route through Postman. Exporting Bruno to a Postman collection and then importing that into Requestly loses data twice: Bruno’s own dialog warns that gRPC and WebSocket requests are not exported at all in that format, and Postman’s format cannot carry Bruno’s assertions. Import the Bruno export directly instead.`})}),`\n`,_jsx(Heading,{level:`2`,id:`import-into-requestly`,children:`Import into Requestly`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the Import dialog`,children:[_jsxs(_components.p,{children:[`In the API Client, click `,_jsx(_components.strong,{children:`Import`}),` in the sidebar header and choose `,_jsx(_components.strong,{children:`Bruno`}),`.`]}),_jsxs(Frame,{caption:`Choosing Bruno from the Import menu`,children:[_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=63780eb2273ff6545451b343c0675227`,alt:`Import menu in the API Client sidebar listing Requestly, Postman, Bruno, cURL, gRPCurl, OpenAPI, WSDL, HAR and SoapUI.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-picker.light.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=f8c01301f2a937214898cae0b69240b3 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=d27b952ba4fb9d651f000a2e637244b0 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=c8b82df00fab56b05e89ac868a7963b2 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=fc57e6dd1f6a762d4dab9f9985c6ceb5 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=1409fc936413e80e2d28ff61fea6c853 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.light.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=96f20b155b77b097a1513049b9ef41d2 2500w`}),_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=aac33e77185fc40fe56dbd983f0288ba`,alt:`Import menu in the API Client sidebar listing Requestly, Postman, Bruno, cURL, gRPCurl, OpenAPI, WSDL, HAR and SoapUI.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-picker.dark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=96799526b5b87adf0c9eec7273a6a22f 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=b626e49b06d47d7c5be50c98b742ab32 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=3ab4d82117ccb747e21aa1b264077639 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=26d51c009e9b9c0c104d57c3fe62b29d 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=20954ee0c8cd6f24cc80ef640cbb07ca 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-picker.dark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=490cbecef3b8cc7885244c3306759958 2500w`})]})]}),_jsxs(Step,{title:`Select your export`,children:[_jsxs(_components.p,{children:[`Drag the file onto the upload area or click to browse. `,_jsx(_components.code,{children:`.zip`}),`, `,_jsx(_components.code,{children:`.yml`}),`, and `,_jsx(_components.code,{children:`.yaml`}),` are accepted, up to `,_jsx(_components.strong,{children:`100 MB`}),`. A ZIP is expanded up to 500 files, with a 50 MB ceiling per file and 100 MB in total.`]}),_jsxs(Frame,{caption:`The Bruno upload step, with its file drop zone`,children:[_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=a58e333ddd4511e664e62d1d0985ee74`,alt:`Import Bruno dialog showing a file drop zone that accepts .zip, .yml and .yaml files.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-upload.light.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=280\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=4bec42f4c814267c4f2f43015f2d66ba 280w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=560\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=c4d8abcbe7598d04efe9643752f94755 560w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=840\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=1a17d04069f31bffa2c8cc509175bb73 840w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=1100\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=fa71baa766377c34af0567b5bab519c9 1100w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=1650\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=c7933ef17e43c4a9a12beeb1754d1763 1650w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.light.png?w=2500\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=63c8209aa58d328ee230c6713d266c8c 2500w`}),_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=3c60e0dc708a98dc025f0ed1409a6ccf`,alt:`Import Bruno dialog showing a file drop zone that accepts .zip, .yml and .yaml files.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-upload.dark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=280\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=b40d02569f9a4b085fd283c184a8abde 280w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=560\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=f0daed8bb9e48965371f197472b63637 560w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=840\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=312c8209f4d5f3897f8ec1c51d5d13f2 840w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=9a189d1f1128d00f978351f40f52db19 1100w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=b5ba0d52a53b658c0a80ec08256e3fdd 1650w, https://mintcdn.com/requestly/41gSNnzWTxcYkFkq/images/import-bruno-upload.dark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=41gSNnzWTxcYkFkq\u0026q=85\u0026s=d20d8c3769f49a72960b433f46c34067 2500w`})]})]}),_jsxs(Step,{title:`Review the preview and import`,children:[_jsxs(_components.p,{children:[`Requestly reads the file and shows what it found. Click `,_jsx(_components.strong,{children:`Import`}),` to create the collection.`]}),_jsxs(Frame,{caption:`The import summary, before anything is created`,children:[_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=7f3ab92e60c1cb2afdd281845e8de6db`,alt:`Import summary listing one collection, five requests and one environment, with Back and Import buttons.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-preview.light.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=433500d2928975fd46024011ea070b84 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=39b948038e775554c26cfacc2b2abb07 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=c0e9fceec08445ed33811c7a7ad15d70 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=281bf139ac0171497e23a80713a749b1 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=52df83adcfbe42bbd49a68332fb10c1c 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.light.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=07f2eb1d98662056be20cb786843fe3f 2500w`}),_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=33b732046a19bd25d9ccd01292436d2d`,alt:`Import summary listing one collection, five requests and one environment, with Back and Import buttons.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-preview.dark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=0fa8a1af93e7590460ad7dc45478d24f 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=472e04b4950a27de3071740521c1c794 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=6539dbbc7d4b3f8264a347af33a0e63b 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=95aa7023f7b5c42406259096a2d015ee 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=312a9fe7cb941fad8e53f43946e2f911 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-preview.dark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=e0f359cde5ca799ed28814093cf4e8c2 2500w`})]})]}),_jsxs(Step,{title:`Read What needs attention`,children:[_jsxs(_components.p,{children:[`The result screen lists anything that did not come across cleanly, grouped by reason, with a `,_jsx(_components.strong,{children:`Show details`}),` toggle for the affected items. Every entry names what to do about it. The next two sections explain what you can expect to see there.`]}),_jsxs(Frame,{caption:`The result screen, listing what needs attention`,children:[_jsx(OptimizedImage,{className:`mint-block dark:mint-hidden`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=833bd130efc02d14c1ccbf30bedd78b6`,alt:`Import completed with notes, showing seven items imported and a What needs attention list with an expandable detail toggle.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-result.light.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=2807caa76a44f46a85fe0eb4a7bd45c9 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=0df46ba83f8dce0770436f398632bd09 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=27d2c961c932457e1cd00a87052c6daa 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=cbccf01204b5a8ffec6dbe8809356a4b 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=6d55b834a6bd47068fa11fc7e044a4a2 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.light.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=e2186e56876b6c8ddbcb1bbc532682b9 2500w`}),_jsx(OptimizedImage,{className:`mint-hidden dark:mint-block`,src:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=61c3179d5c977becebb301420f51b39b`,alt:`Import completed with notes, showing seven items imported and a What needs attention list with an expandable detail toggle.`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`800`,height:`800`,\"data-path\":`images/import-bruno-result.dark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=280\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=ea60157ed5e47dd980d65ec6b98a6e37 280w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=560\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=44134f4057c3e6d0145737f2e10e3074 560w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=840\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=47013fd0024878cc02c245c4ac94d9ba 840w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=b1cff3728924acc0e486da6da8e16148 1100w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=b5dc5092df9153166bd107bc5bec3f85 1650w, https://mintcdn.com/requestly/Aax5kHsGNwEBPk2a/images/import-bruno-result.dark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Aax5kHsGNwEBPk2a\u0026q=85\u0026s=ba90464dec001a02ea1fd3ba3346714d 2500w`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-comes-across`,children:`What comes across`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Requests of all four kinds.`}),` HTTP, GraphQL, gRPC, and WebSocket requests are imported, along with the folder tree that holds them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Examples.`}),` Each saved example is built from its own request, not from its parent, so the URL, method, and body you saved are the ones you get.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Environments and variables.`}),` Collection variables, folder variables, and each environment come across. Folder and collection variables of the same name fold together, last one winning, which matches how Bruno resolves them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Authorization.`}),` Every auth mode Bruno records, including requests set to inherit their parent’s auth.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scripts.`}),` Pre-request and post-response scripts are translated from Bruno’s `,_jsx(_components.code,{children:`bru.*`}),`, `,_jsx(_components.code,{children:`req.*`}),`, and `,_jsx(_components.code,{children:`res.*`}),` API to Requestly’s `,_jsx(_components.code,{children:`rq.*`}),` API. Post-response variable captures come across as script lines when the captured value is a plain property path such as `,_jsx(_components.code,{children:`res.body.id`}),`. Anything more involved, a JSONPath selector for example, is reported instead of guessed at.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Standalone `,_jsx(_components.code,{children:`.js`}),` files`]}),` in the collection folder become `,_jsx(_components.a,{href:`/api-client/import-packages-into-your-scripts`,children:`Custom Packages`}),`, and `,_jsx(_components.code,{children:`require()`}),` calls in your scripts are rewritten to point at them.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`The collection’s `,_jsx(_components.code,{children:`.env`}),` file`]}),`, when you import a ZIP. The keys are created so that `,_jsx(_components.code,{children:`{{apiKey}}`}),` resolves to something you can fill in. Every value is blanked, because a `,_jsx(_components.code,{children:`.env`}),` is the file you deliberately kept out of your collection.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Client certificates`}),`, when you import a ZIP into the desktop app. They land in `,_jsx(_components.strong,{children:`App Settings → SSL certificates`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`known-limitations`,children:`Known limitations`}),`\n`,_jsx(_components.p,{children:`Some things are missing from Bruno’s export before Requestly ever sees the file, and some have no place to land in Requestly. The import result names every one that applies to your file, so you are told about a loss only when it actually happened.`}),`\n`,_jsx(Heading,{level:`3`,id:`two-losses-depend-on-which-shape-you-exported`,children:`Two losses depend on which shape you exported`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What`}),_jsx(_components.th,{children:`Single File (YAML)`}),_jsx(_components.th,{children:`Bruno Collection (ZIP)`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Client certificates`})}),_jsxs(_components.td,{children:[`Not in the export. Re-add them in `,_jsx(_components.strong,{children:`App Settings → SSL certificates`}),`.`]}),_jsx(_components.td,{children:`Imported on the desktop app. The web app has no certificate store, so they are not added there. Passphrases are never carried across, because Bruno stores them in plain text, and a certificate whose file is missing from the archive is reported by name rather than imported half-configured.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`OAuth 2.0 token source`})}),_jsxs(_components.td,{children:[`Not recorded. If a request used an ID token rather than an access token, set it again in the `,_jsx(_components.strong,{children:`Authorization`}),` tab, or it will send the wrong one.`]}),_jsx(_components.td,{children:`Imported.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`everything-else-applies-to-both-shapes`,children:`Everything else applies to both shapes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Secret environment variable values.`}),` A variable marked secret in Bruno is created with its name and an empty value. Re-enter it, or store it in the `,_jsx(_components.a,{href:`/api-client/vault/vault`,children:`Vault`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`The collection’s `,_jsx(_components.code,{children:`.env`}),` file.`]}),` A ZIP import creates every key with a blank value, so `,_jsx(_components.code,{children:`{{apiKey}}`}),` resolves to something you can fill in. A single-file export does not carry the file at all. Import it separately with the `,_jsx(_components.strong,{children:`Import .env file`}),` option in the Environments sidebar.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Collection and folder headers.`}),` Bruno lets a collection or folder define headers that every request below it inherits. Requestly sets headers per request, so those are reported rather than imported. Add them to the requests that need them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`WebSocket connection settings.`}),` Bruno’s exporter drops the handshake timeout and the keep-alive interval from both shapes. Set them again in the request’s `,_jsx(_components.strong,{children:`Settings`}),` tab.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Per-request transport settings.`}),` Encode URL, timeout, follow redirects, and max redirects live outside the request in Requestly, so they are reported when they differ from Bruno’s defaults.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Files referenced by path.`}),` A file body, a multipart file row, and a `,_jsx(_components.code,{children:`.proto`}),` schema are stored in Bruno as paths on the machine that exported them. The request is imported and the attachment is not, so re-attach it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`gRPC messages beyond the first.`}),` A gRPC request holds one message body in Requestly and a list of them in Bruno, so the first is imported and the rest are reported by name. Copy the others out of Bruno if you need them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GraphQL query bodies.`}),` Bruno’s exporter drops the query body from some GraphQL requests. Paste the query and variables again.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Assertions, captures, and per-request variables.`}),` Bruno’s assertions have no Requestly equivalent and are not rewritten into test scripts. Post-response captures come across as script lines when the captured value is a plain property path such as `,_jsx(_components.code,{children:`res.body.id`}),`; anything more involved is reported instead of guessed at.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Folder script order.`}),` Bruno’s folder-script execution order (sandwich or sequential) is not in the export. If your folder scripts depend on running in a particular order, check them after importing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`OAuth details Requestly does not model.`}),` The OAuth 2.0 credentials placement (Basic header against request body) and the OAuth 1.0 callback URL are reported. The rest of the auth config imports normally.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Request and folder tags.`}),` Bruno’s labels have no Requestly equivalent, so they are reported and dropped.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Non-standard HTTP verbs.`}),` A verb outside `,_jsx(_components.code,{children:`GET`}),`, `,_jsx(_components.code,{children:`POST`}),`, `,_jsx(_components.code,{children:`PUT`}),`, `,_jsx(_components.code,{children:`PATCH`}),`, `,_jsx(_components.code,{children:`DELETE`}),`, `,_jsx(_components.code,{children:`HEAD`}),`, and `,_jsx(_components.code,{children:`OPTIONS`}),`, `,_jsx(_components.code,{children:`PROPFIND`}),` for example, is imported as `,_jsx(_components.code,{children:`GET`}),` and reported. Requestly’s method list is fixed, so the verb cannot be kept.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bruno Apps, global environments, and mock servers.`}),` Bruno keeps these outside the collection folder, so no Bruno export contains them. Re-create them in Requestly.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Script calls with no Requestly equivalent are left in your code unchanged.`}),` They throw when the request runs, which stops the request being sent, so update them before you send. The result screen tells you how many scripts are affected. `,_jsx(_components.code,{children:`bru.runner.stopExecution()`}),` and the `,_jsx(_components.code,{children:`req.set*`}),` mutators are the common cases.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`if-requestly-refuses-the-file`,children:`If Requestly refuses the file`}),`\n`,_jsx(_components.p,{children:`Requestly names the file it received rather than half-importing it. Each message tells you what to do next.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A `,_jsx(_components.code,{children:`.bru`}),` file.`]}),` A `,_jsx(_components.code,{children:`.bru`}),` holds one request and is not read on its own. Export the whole collection from `,_jsx(_components.strong,{children:`Share → Export`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A `,_jsx(_components.code,{children:`bruno.json`}),` file.`]}),` That is a collection’s configuration, not the collection. Export the collection instead.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A ZIP with `,_jsx(_components.code,{children:`bruno.json`}),` at its root.`]}),` That is a legacy `,_jsx(_components.code,{children:`.bru`}),` collection. Open it in Bruno 4 and export it again from `,_jsx(_components.strong,{children:`Share → Export`}),`. A re-export carries everything across, so there is no separate path to take.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`A ZIP with no `,_jsx(_components.code,{children:`opencollection.yml`}),` at its root.`]}),` The archive is not a Bruno collection export. Use the file Bruno wrote under `,_jsx(_components.strong,{children:`Share → Export`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A single request file from a ZIP.`}),` A ZIP export stores each request as its own `,_jsx(_components.code,{children:`.yml`}),`. Unzipping and picking one of those imports nothing useful, so Requestly refuses it. Import the archive itself.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A Postman-format file exported from Bruno.`}),` Requestly offers to open it with the Postman importer instead. Prefer a direct Bruno export: it brings across your gRPC requests, WebSocket requests, and assertions.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s Next?`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Save to a Collection`,icon:`folder`,href:`/api-client/api-collections`,children:_jsx(_components.p,{children:`Organize and rename the imported requests`})}),_jsx(Card,{title:`Environments and Variables`,icon:`brackets-curly`,href:`/api-client/environments-and-variables`,children:_jsx(_components.p,{children:`Fill in the values that arrived blank`})}),_jsx(Card,{title:`Run the Collection`,icon:`play`,href:`/api-client/collection-runner`,children:_jsx(_components.p,{children:`Replay the imported requests in sequence`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Import from Bruno","description":"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.","href":"/api-client/import-export/import-from-bruno"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Export your collection from Bruno","slug":"export-your-collection-from-bruno","depth":2,"children":[]},{"title":"Import into Requestly","slug":"import-into-requestly","depth":2,"children":[]},{"title":"What comes across","slug":"what-comes-across","depth":2,"children":[]},{"title":"Known limitations","slug":"known-limitations","depth":2,"children":[{"title":"Two losses depend on which shape you exported","slug":"two-losses-depend-on-which-shape-you-exported","depth":3,"children":[]},{"title":"Everything else applies to both shapes","slug":"everything-else-applies-to-both-shapes","depth":3,"children":[]}]},{"title":"If Requestly refuses the file","slug":"if-requestly-refuses-the-file","depth":2,"children":[]},{"title":"What’s Next?","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/requestly/2cf99d119986eba4/js/botsonic.js","/_mintlify/custom/requestly/5c5995a0f8a825f2/js/download-popup.js","/_mintlify/custom/requestly/9e92f7b5c9350811/js/analytics.js","/_mintlify/custom/requestly/63b7c64ab43d10df/js/consent-bootstrap.js"],"dynamicCss":".mint-block {\n display: block\n}\n.mint-hidden {\n display: none\n}\n.dark\\:mint-block:is(.dark *) {\n display: block\n}\n.dark\\:mint-hidden:is(.dark *) {\n display: none\n}","subdomain":"requestly","siteName":"Requestly","title":"Import from Bruno - Requestly","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-01T07:59:52.612Z","originalFileLocation":"api-client/import-export/import-from-bruno.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Requestly\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Import from Bruno - Requestly\">\u003cmeta data-mint-head property=\"og:description\" content=\"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Requestly Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.requestly.com/api-client/import-export/import-from-bruno\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://requestly.mintlify.app/_mintlify/api/og/v2?division=Import+%26+Export\u0026amp;title=Import+from+Bruno\u0026amp;description=Move+a+Bruno+collection+into+Requestly%2C+with+its+requests%2C+environments%2C+scripts%2C+and+client+certificates.\u0026amp;theme=f0a4e6c7d308f6656aeac52d\u0026amp;signature=9b557a1f1883ea207c3748369b1ec3403a1d0f5e163dc169be9b014a3b2983c5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Import from Bruno - Requestly\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://requestly.mintlify.app/_mintlify/api/og/v2?division=Import+%26+Export\u0026amp;title=Import+from+Bruno\u0026amp;description=Move+a+Bruno+collection+into+Requestly%2C+with+its+requests%2C+environments%2C+scripts%2C+and+client+certificates.\u0026amp;theme=f0a4e6c7d308f6656aeac52d\u0026amp;signature=9b557a1f1883ea207c3748369b1ec3403a1d0f5e163dc169be9b014a3b2983c5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/requestly/7Syc77EEQZldZCdP/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Requestly\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563eb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.requestly.com/api-client/import-export/import-from-bruno\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-client/import-export/import-from-bruno.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.requestly.com/#organization\",\"name\":\"Requestly\",\"url\":\"https://docs.requestly.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/requestly/1os8lH_VUE6QydeH/images/logo-light.webp?fit=max\u0026auto=format\u0026n=1os8lH_VUE6QydeH\u0026q=85\u0026s=f4d79e60313d7b955f46e0ad446bc80d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.requestly.com#website\",\"name\":\"Requestly\",\"url\":\"https://docs.requestly.com\",\"publisher\":{\"@id\":\"https://docs.requestly.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno#webpage\",\"url\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno\",\"name\":\"Import from Bruno\",\"description\":\"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\",\"dateModified\":\"2026-09-01T07:59:52.612Z\",\"isPartOf\":{\"@id\":\"https://docs.requestly.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.requestly.com/api-client/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Import \u0026 Export\",\"item\":\"https://docs.requestly.com/api-client/import-export\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Import from Bruno\",\"item\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno#article\",\"headline\":\"Import from Bruno\",\"name\":\"Import from Bruno\",\"description\":\"Move a Bruno collection into Requestly, with its requests, environments, scripts, and client certificates.\",\"url\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno\",\"mainEntityOfPage\":{\"@id\":\"https://docs.requestly.com/api-client/import-export/import-from-bruno#webpage\"},\"dateModified\":\"2026-09-01T07:59:52.612Z\",\"publisher\":{\"@id\":\"https://docs.requestly.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.requestly.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Requestly\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Requestly","nav":{"global":null,"tabs":[{"tab":"API Client","icon":"house","groups":[{"group":"Getting Started","pages":[{"title":"Getting Started","href":"/api-client/overview"},{"title":"Verify Your Linux Download","icon":"shield-check","href":"/api-client/verify-linux-download"},{"group":"Sending Requests","pages":[{"group":"Create Requests","pages":[{"title":"Overview","href":"/api-client/send-api-request/create-requests/overview"},{"title":"Configure Request","href":"/api-client/send-api-request/create-requests/configure-request"},{"title":"Parameters and Body Data","href":"/api-client/send-api-request/create-requests/parameters-and-body"},{"title":"Request Headers","href":"/api-client/send-api-request/create-requests/request-headers"},{"title":"Generate Client Code","href":"/api-client/send-api-request/create-requests/generate-client-code"}]},{"title":"GraphQL Request","href":"/api-client/send-api-request/graphql-request"},{"title":"gRPC Request","href":"/api-client/send-api-request/grpc-request"},{"title":"SOAP Requests","href":"/api-client/send-api-request/send-soap"},{"group":"Realtime","pages":[{"title":"WebSocket Request","href":"/api-client/send-api-request/websocket-request"},{"title":"Socket.IO Request","href":"/api-client/send-api-request/socketio-request"},{"title":"MQTT Request","href":"/api-client/send-api-request/mqtt-request"}]},{"group":"Authorization","pages":[{"title":"Authorization","href":"/api-client/send-api-request/authorization"},{"title":"Digest Auth","href":"/api-client/send-api-request/authorization/digest"},{"title":"JWT Bearer","href":"/api-client/send-api-request/authorization/jwt-bearer"},{"title":"NTLM","href":"/api-client/send-api-request/authorization/ntlm"},{"title":"OAuth 1.0","href":"/api-client/send-api-request/authorization/oauth1"},{"title":"OAuth 2.0","href":"/api-client/send-api-request/authorization/oauth2"},{"title":"Hawk","href":"/api-client/send-api-request/authorization/hawk"},{"title":"AWS Signature v4","href":"/api-client/send-api-request/authorization/aws-signature-v4"}]},{"title":"SSL Certificates","href":"/api-client/send-api-request/ssl-certificates"},{"title":"Cookies","href":"/api-client/send-api-request/cookies"},{"title":"Filter a JSON Response","href":"/api-client/send-api-request/filter-json-response"},{"title":"API Call History","href":"/api-client/send-api-request/replay-request-from-history"}]},{"group":"Organizing APIs","pages":[{"title":"API Collections","href":"/api-client/api-collections"},{"title":"Create Request \u0026 Response Examples","href":"/api-client/examples"}]},{"group":"Import \u0026 Export","pages":[{"title":"Overview","href":"/api-client/import-export"},{"title":"Import from cURL","href":"/api-client/import-export/import-from-curl"},{"title":"Import from postman","description":"Learn how to migrate your Postman collections and environment variables to Requestly.","href":"/api-client/import-export/import-from-postman"},{"title":"Import from Bruno","href":"/api-client/import-export/import-from-bruno"},{"title":"Import SOAP requests from WSDL","description":null,"href":"/api-client/import-export/import-from-wsdl"},{"title":"Import / Export OpenAPI Spec","href":"/api-client/import-export/import-openapi-spec"},{"title":"Import / Export Collections","href":"/api-client/import-export/import-export-api-collections"},{"title":"Import / Export Environments","href":"/api-client/import-export/import-export-api-environment"},{"title":"Import from HAR","href":"/api-client/import-export/import-from-har"}]},{"group":"Variables \u0026 Environments","pages":[{"title":"Variables and Environment","href":"/api-client/environments-and-variables"},{"title":"Environment Variables","href":"/api-client/environments-and-variables/environment-variables"},{"title":"Collection \u0026 SubCollection Variables","href":"/api-client/environments-and-variables/collection-and-subcollection-variables"},{"title":"Global Variables","href":"/api-client/environments-and-variables/global-variables"},{"title":"Runtime Variables","href":"/api-client/environments-and-variables/runtime-variables"},{"title":"Dynamic Variables","href":"/api-client/environments-and-variables/dynamic-variables"},{"title":"Variable Precedence","href":"/api-client/environments-and-variables/variable-precedence"},{"title":"Using Variables in API Requests","href":"/api-client/environments-and-variables/using-variables-in-api-requests"},{"title":"Set a Response Value as a Variable","href":"/api-client/environments-and-variables/set-response-value-as-variable"},{"group":"Vault","pages":[{"title":"Overview","href":"/api-client/vault/vault"},{"title":"AWS Secrets Manager","href":"/api-client/vault/aws-secrets-manager"},{"title":"Azure Key Vault","href":"/api-client/vault/azure-key-vault"}]}]},{"group":"API Testing","pages":[{"title":"Generate API Test Cases using the Test Authoring Agent","href":"/api-client/ai-test-generator"},{"title":"Pre-request \u0026 Post-response Scripts","href":"/api-client/scripts"},{"title":"Code Snippets in Scripts","href":"/api-client/script-snippets"},{"title":"Writing Tests","href":"/api-client/tests"},{"title":"DevTools","href":"/api-client/devtools"},{"title":"Import packages into your scripts","href":"/api-client/import-packages-into-your-scripts"}]},{"group":"Automation","pages":[{"title":"Collection Runner","href":"/api-client/collection-runner"},{"title":"Run Collections with Custom Data","href":"/api-client/collection-runner-data-file"},{"title":"Scheduled Runs","href":"/api-client/scheduled-runs"},{"group":"Command Line","pages":[{"title":"CLI","href":"/api-client/cli"},{"title":"Run on CI/CD","href":"/api-client/run-on-cicd"}]}]},{"group":"Git","pages":[{"title":"Overview","href":"/api-client/git/overview"},{"title":"Connect a project to Git","href":"/api-client/git/connect-a-project"},{"title":"Stage and commit changes","href":"/api-client/git/commit-changes"},{"title":"Push and pull","href":"/api-client/git/push-and-pull"},{"title":"Providers and authentication","href":"/api-client/git/providers-and-authentication"},{"title":"Switch and create branches","href":"/api-client/git/branches"},{"title":"Browse history and diffs","href":"/api-client/git/history-and-diffs"},{"title":"Stash changes","href":"/api-client/git/stashes"},{"title":"Resolve merge conflicts","href":"/api-client/git/resolve-conflicts"},{"title":"Manage remotes","href":"/api-client/git/remotes"}]},{"group":"Requestly Scripts Reference","pages":[{"title":"Overview","href":"/api-client/rq-api-reference/overview"},{"title":"rq.collectionVariables (Collection variables)","href":"/api-client/rq-api-reference/rq-collection-variables"},{"title":"rq.environment (Environment variables)","href":"/api-client/rq-api-reference/rq-environment"},{"title":"rq.execution (Execution control)","href":"/api-client/rq-api-reference/rq-execution"},{"title":"rq.expect (Expect object)","href":"/api-client/rq-api-reference/rq-expect"},{"title":"rq.globals (Global variables)","href":"/api-client/rq-api-reference/rq-globals"},{"title":"rq.info (Execution info)","href":"/api-client/rq-api-reference/rq-info"},{"title":"rq.iterationData (Iteration data)","href":"/api-client/rq-api-reference/rq-iteration-data"},{"title":"rq.request (Request object)","href":"/api-client/rq-api-reference/rq-request"},{"title":"rq.response (Response object)","href":"/api-client/rq-api-reference/rq-response"},{"title":"rq.sendRequest (Send a request)","href":"/api-client/rq-api-reference/rq-send-request"},{"title":"rq.test (Test object)","href":"/api-client/rq-api-reference/rq-test"},{"title":"rq.variables (All scopes)","href":"/api-client/rq-api-reference/rq-variables"},{"title":"rq.vault (Vault object)","href":"/api-client/rq-api-reference/rq-vault"},{"title":"rq.visualizer (Response visualization)","href":"/api-client/rq-api-reference/rq-visualizer"}]}]},{"group":"API Design","pages":[{"title":"API Design","href":"/api-client/api-design/overview"},{"title":"Create and Edit a Specification","href":"/api-client/api-design/create-and-edit-a-specification"},{"title":"Component Library","href":"/api-client/api-design/component-library"},{"title":"Issues \u0026 Governance","href":"/api-client/api-design/issues-and-governance"},{"title":"Sync a Collection from a Specification","href":"/api-client/api-design/sync-a-collection-from-a-specification"},{"title":"Versions \u0026 Releases","href":"/api-client/api-design/versions-and-releases"},{"title":"Publish API Documentation","href":"/api-client/api-design/publish-api-docs"}]},{"group":"Mock Server","pages":[{"title":"Introduction","href":"/api-client/mock-server"},{"group":"Create a mock","pages":[{"title":"From a Collection","href":"/api-client/mock-server/create-from-collection"},{"title":"From an OpenAPI File","href":"/api-client/mock-server/create-from-openapi"}]},{"title":"Routes","href":"/api-client/mock-server/routes"},{"title":"Responses and selection modes","href":"/api-client/mock-server/responses"},{"title":"Matching rules","href":"/api-client/mock-server/rules"},{"title":"Private Mocks","href":"/api-client/mock-server/private-mocks"},{"title":"Request Logs","href":"/api-client/mock-server/logs"}]},{"group":"Collaboration \u0026 Projects","pages":[{"title":"Introduction","href":"/collaboration/workspaces"},{"title":"Local project","href":"/collaboration/local-workspace"},{"title":"Working with multiple projects","href":"/collaboration/multiple-workspaces"},{"group":"Shared projects","pages":[{"title":"Team projects","href":"/collaboration/how-to-get-started-with-shared-workspace"},{"title":"Managing your project","href":"/collaboration/how-to-get-started-with-shared-workspace/managing-workspace"},{"title":"User Roles and Permissions","href":"/collaboration/how-to-get-started-with-shared-workspace/user-roles"}]}]},{"group":"Account \u0026 Administration","pages":[{"title":"Billing \u0026 Subscriptions","href":"/account/billing-subscriptions"},{"title":"Organization resources","href":"/account/organization-resources"},{"title":"Data residency","href":"/account/data-residency"},{"title":"AI features and your data","href":"/account/ai-and-your-data"},{"title":"Data Recovery Policy","href":"/account/data-recovery"},{"title":"How is the Browser Extension Different from the Desktop App","href":"/account/how-is-browser-extension-different-from-a-desktop-app"},{"group":"Single Sign-On","pages":[{"title":"Set up Microsoft Entra ID","href":"/account/sso/how-to-set-up-sso-with-microsoft-entra-id"},{"title":"SAML SSO with Okta","href":"/account/sso/setup-sso-with-okta"}]},{"group":"Enterprise Deployment","pages":[{"title":"Deploy on Windows","href":"/account/enterprise-deployment/deploy-windows-msix"}]}]}]},{"tab":"HTTP Interceptor","icon":"globe","href":"https://interceptor-docs.requestly.com"},{"tab":"Changelogs","icon":"clock","pages":[{"title":"Changelogs","href":"/changelogs"}]}]},"basePath":"","title":"Import from Bruno - Requestly","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DXXFP6nH.js","DynamicMarkdown-B54_zNBF.js","zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}