Skip to content

Features

Peter Thomas edited this page May 13, 2025 · 45 revisions

Note

If you would like to comment or add more to this list, please use the issue tracker. Also see the User Guide.

API Client

Capability Implemented Comment
Local First The application runs locally - which means that all your data is secure, you can test APIs that run on localhost or within your network, and you won't be blocked by CORS restrictions.
API Chaining Any number of APIs can be called in a "sequence". Unlike other tools, you can view the whole sequence on one page. You can save variables and chain response data into the next request. Header manipulation (e.g. for auth) can be done using JS functions
Environment Switching You will be able to define variables that are different for different environments, for e.g. "staging", "e2e" etc. This is useful to manage URLs and secrets
De-coupled Secrets For security reasons, environment variables that contain sensitive values or secrets should be de-coupled from the main Xplorer project file. This avoids secrets leaking into version control or GitHub and also allows teams to safely share Xplorer files. Another need for this de-coupling is so that multiple Xplorer files within a project folder can re-use the same environment variables set-up.
JSON Support JSON support is built-in natively. You can create JSON variables directly or by extracting parts of the response
Before / After Scripts You can run JavaScript expressions before and after each HTTP call. This is useful to save variables and data needed for subsequent calls. JavaScript is ideal for extracting data from JSON responses and manipulating requests.
Team Collaboration Each sequence or API "flow" is saved to the file-system. You will be able to save the folder structure in Git or any backup system of your choice. The data is plain-text and Git can be used to collaborate and share API calling data with a wide, distributed team. While you may not have the best "diff" experience because of the JSON format, this is sufficient for team collaboration.
Folder Structure Teams typically like to manage API flows under a tree structure that maps to the business-domain or API end-point / paths. Xplorer will support a local-first approach, where artifacts are on the local-file system, and a directory structure is the source of truth
Built in Auth The existing scripting support is more than capable, but support for common schemes such as OAuth and JWT would be good to have
File Upload / Multipart Ability to reference local files or create data on-the-fly for upload use-cases
Looping Simple looping over JSON arrays that have come from previous responses or scripting.
Advanced Scripting Utilities to read and write from files (e.g. CSV), needed for making data-driven API requests and saving results
XML Support Support for XML syntax coloring and XPath expressions for scripting and assertions. Some teams have expressed interest in using Xplorer for legacy SOAP and XML end points. If you need this expedited, open an issue or reach out directly.
GraphQL Support Support for GraphQL query syntax coloring and schema exploring similar to OpenAPI support would be good to have
Testing You will be able to write simple and complex assertions powered by Karate's powerful match operator. While Karate Xplorer is focused on exploring and visualizing API flows, it is a great starting point to learn test-automation. You will be also able to export an Xplorer flow into a working Karate test

User Experience

Capability Implemented Comment
Re-use URL Base You have the option to set the common URL base as a global variable, which means that steps just need to specify the path. This aligns to REST standards, reduces the effort needed to make a call and encourages API chaining. You can always over-ride the URL per-step
Label API calls Each call in a sequence can be given a friendly name that is clearly visible in the UI. This is very useful for helping others in your team understand the business context of your API sequence
Input Switching When you need to keep switching between some values for request data, and switching environments is too "heavy weight", you can do this by introducing a Variable. Keep the right pane open and you can re-run requests quickly after changing it
Request and Response side-by-side Other tools show you only the response-body and response-headers, but it is important to see the actual request made also. Karate Xplorer is designed to show you both, side-by-side. This also has the benefit of serving as API documentation
Mask Secrets Any variables marked as "secret" should be masked in the UI and even in the HTTP requests and responses shown on screen or rendered in any report or log
Custom Doc / Visualization For some complex APIs it makes sense to re-format the JSON into a user-friendly view, for example by removing un-necessary data and formatting the core data into an HTML table. This is a great way to add rich documentation to the API sequence. This documentation is dynamic and can refer to variables or requests and responses
Readable Flows Unlike other tools, the Karate Xplorer UI is designed so that you can see all calls within your sequence at the same time. You can expand or collapse each row for convenience. What this means is that your sequences are much more readable and presentable to non-technical stakeholders
Assertion Builder A no-code option to build assertions from a real response
View all Environments If you have multiple environments, you will be able to see all environments in one grid view. This is very convenient for eyeballing the differences between your environments in one-shot
Simpler Scripting The concept of sequence variables is "built-in", and most chaining needs are achieved either by directly referring to the previous response or by setting a named variable that will be used by the next request. Most of the time, you don't need to write raw JavaScript
Drag and Drop Scripting Allow business users to create chained sequences and payload assertions by drag-and drop.
Re-use JSON You can save JSON as a variable and re-use it in subsequent calls
Modify JSON At any time you can mutate a JSON using JS to make it ready for subsequent calls and create complex and dynamic sequences that way
Business Friendly Karate Xplorer shows JSON responses in a human-friendly format (unique to Xplorer) that is ideal for demoing API calls to non-technical stakeholders. API product owners will be able to demo APIs to the business or end-users and customers. You also have the option to view the "raw" JSON
JSON text search CTRL+F or bringing up the search bar within a JSON grid allows you to search, highlight and zoom-in on parts of the payload you are interested in
JSON path search Allow user to type in JSON-path expressions and filter / highlight results in the JSON grid
Save Preferences Local preferences should be save-able and should persist across upgrades and re-installs of the application. A high priority requirement is to show "Recent Files"
File Associations As a native desktop application, it should open compatible files directly when a user double-clicks on them
Drag and Drop The user should be able to drag and drop files to open or import

AI / MCP

Capability Implemented Comment
MCP Server The user can connect any LLM that supports the Model Context Protocol standard, and use natural language to work with all Xplorer capabilities
MCP Host We plan to embed the chat-box within Xplorer so you don't have to leave the app. We will also be able to deliver a UX relevant to the task at hand, and embed details about the JSON, HTTP request or render HTML reports where needed.

Import / Export

Capability Implemented Comment
Postman Import Even large nested collections are supported and you can choose which calls to bring in to Xplorer
Postman Script (Tests) Import Depending on the complexity of JavaScript used, this may not be 100%. Most of the frequently used Postman assertions are handled. We can work with you to improve this support, contact us.
Postman Environments Import Teams have asked for a way to make it easier to import Postman enviroments, so as to reduce the number of steps needs to import and then be able to run in Xplorer
OpenAPI Import Details
Swagger Import Details
OpenAPI / Swagger Impact Analysis Be able to compare two different specification files (or versions) and show the differences visually
cURL Import
HAR Import
Export cURL You may want to share API call data to developers and for other tools
Export Karate Test When you want to turn your sequences into formal test-automation that can run in parallel and in CI / CD, you have the option to export your Xplorer scripts into Karate *.feature files. This is how you can scale from exploratory-testing to full-fledged test-automation.
Export HTML You will be able to export a sequence execution as plain HTML. The entire runtime of the session including your custom documentation, requests and responses can be saved and shared with project stakeholders
Record API Calls Xplorer will be able to launch a Chrome browser instance and listen to all HTTP traffic. This can be used (assisted by AI) to generate and refine API flows

Install

Capability Implemented Comment
Local Install You install and run the application locally. No data needs to be saved in the cloud or outside your firewall. A local install is needed to be able to test APIs running on localhost or within your private network.
Simple Install Cross-platform (Windows, Mac, Linux). Business-users who are not comfortable with an IDE can easily use it
Native Installer If you require a Linux version, let us know
Update Mechanism Automatic detection, download of updates is planned in a future release (subscription only).

Advanced

Capability Implemented Comment
Extend via Java The JS scripting support already allows for logic-reuse, but teams would like to make calls to databases or even cloud services. This will be possible by adding Java libraries to the classpath when Xplorer starts
Async Protocols Support websockets, webhooks, gRPC, Kafka. Users can optionally switch on these capabilities by adding Java JAR files to the classpath. Xplorer will include capabilities to listen for async messages (on separate threads if needed) and visually presenting the results. The user will be able to script message handling logic and specify JSON conversion rules if needed
Clone this wiki locally