WHY GARTNER’S “CONTEXT MESH” CHANGES EVERYTHING AI CONNECTIVITY: THE ROAD AHEAD DON’T MISS API + AI SUMMIT 2026 SEPT 30 – OCT 1
  • [Why Kong](/company/why-kong)Why Kong
    • Explore the unified API Platform
        • BUILD APIs
        • [
          Kong Insomnia](/products/kong-insomnia)
          Kong Insomnia
        • [
          API Design](/products/kong-insomnia/api-design)
          API Design
        • [
          API Mocking](/products/kong-insomnia/api-mocking)
          API Mocking
        • [
          API Testing and Debugging](/products/kong-insomnia/api-testing-and-debugging)
          API Testing and Debugging
        • [
          MCP Client](/products/kong-insomnia/mcp-client)
          MCP Client
        • RUN APIs
        • [
          API Gateway](/products/kong-gateway)
          API Gateway
        • [
          Context Mesh](/products/kong-konnect/features/context-mesh)
          Context Mesh
        • [
          AI Gateway](/products/kong-ai-gateway)
          AI Gateway
        • [
          Event Gateway](/products/event-gateway)
          Event Gateway
        • [
          Kubernetes Operator](/products/kong-gateway-operator)
          Kubernetes Operator
        • [
          Service Mesh](/products/kong-mesh)
          Service Mesh
        • [
          Ingress Controller](/products/kong-ingress-controller)
          Ingress Controller
        • [
          Runtime Management](/products/kong-konnect/features/runtime-management)
          Runtime Management
        • DISCOVER APIs
        • [
          Developer Portal](/products/kong-konnect/features/developer-portal)
          Developer Portal
        • [
          Service Catalog](/products/kong-konnect/features/api-service-catalog)
          Service Catalog
        • [
          MCP Registry](/products/mcp-registry)
          MCP Registry
        • GOVERN APIs
        • [
          Metering and Billing](/products/kong-konnect/features/usage-based-metering-and-billing)
          Metering and Billing
        • [
          APIOps and Automation](/products/apiops-automation)
          APIOps and Automation
        • [
          API Observability](/products/kong-konnect/features/api-observability)
          API Observability
        • [Why Kong?](/company/why-kong)Why Kong?
      • CLOUD
      • [Cloud API Gateways](/products/kong-konnect/features/dedicated-cloud-gateways)Cloud API Gateways
      • [Need a self-hosted or hybrid option?](/products/kong-enterprise)Need a self-hosted or hybrid option?
      • COMPARE
      • [Considering AI Gateway alternatives? ](/performance-comparison/ai-gateway-alternatives)Considering AI Gateway alternatives?
      • [Kong vs. Postman](/performance-comparison/kong-vs-postman)Kong vs. Postman
      • [Kong vs. MuleSoft](/performance-comparison/kong-vs-mulesoft)Kong vs. MuleSoft
      • [Kong vs. Apigee](/performance-comparison/kong-vs-apigee)Kong vs. Apigee
      • [Kong vs. IBM](/performance-comparison/ibm-api-connect-vs-kong)Kong vs. IBM
      • GET STARTED
      • [Sign Up for Kong Konnect](/products/kong-konnect/register)Sign Up for Kong Konnect
      • [Documentation](https://developer.konghq.com/)Documentation
      • FOR PLATFORM TEAMS
      • [Developer Platform](/solutions/building-developer-platform)Developer Platform
      • [Kubernetes and Microservices](/solutions/build-on-kubernetes)Kubernetes and Microservices
      • [Observability](/solutions/observability)Observability
      • [Service Mesh Connectivity ](/solutions/service-mesh-connectivity)Service Mesh Connectivity
      • [Kafka Event Streaming](/solutions/kafka-stream-api-management)Kafka Event Streaming
      • FOR EXECUTIVES
      • [AI Connectivity](/ai-connectivity)AI Connectivity
      • [Open Banking](/solutions/open-banking)Open Banking
      • [Legacy Migration](/solutions/legacy-api-management-migration)Legacy Migration
      • [Platform Cost Reduction](/solutions/api-platform-consolidation)Platform Cost Reduction
      • [Kafka Cost Optimization](/solutions/reduce-kafka-cost)Kafka Cost Optimization
      • [API Monetization](/solutions/api-monetization)API Monetization
      • [AI Monetization](/solutions/ai-monetization)AI Monetization
      • [AI FinOps](/solutions/ai-cost-governance-finops)AI FinOps
      • FOR AI TEAMS
      • [AI Governance](/solutions/ai-governance)AI Governance
      • [AI Security](/solutions/ai-security)AI Security
      • [AI Cost Control](/solutions/ai-cost-optimization-management)AI Cost Control
      • [Agentic Infrastructure](/solutions/agentic-ai-workflows)Agentic Infrastructure
      • [MCP Production](/solutions/mcp-production-and-consumption)MCP Production
      • [MCP Traffic Gateway](/solutions/mcp-governance)MCP Traffic Gateway
      • FOR DEVELOPERS
      • [Mobile App API Development](/solutions/mobile-application-api-development)Mobile App API Development
      • [GenAI App Development](/solutions/power-openai-applications)GenAI App Development
      • [API Gateway for Istio](/solutions/istio-gateway)API Gateway for Istio
      • [Decentralized Load Balancing](/solutions/decentralized-load-balancing)Decentralized Load Balancing
      • BY INDUSTRY
      • [Financial Services](/solutions/financial-services-industry)Financial Services
      • [Healthcare](/solutions/healthcare)Healthcare
      • [Higher Education](/solutions/api-platform-for-education-services)Higher Education
      • [Insurance](/solutions/insurance)Insurance
      • [Manufacturing](/solutions/manufacturing)Manufacturing
      • [Retail](/solutions/retail)Retail
      • [Software & Technology](/solutions/software-and-technology)Software & Technology
      • [Transportation](/solutions/transportation-and-logistics)Transportation
      • [See all Solutions](/solutions)See all Solutions
  • [Pricing](/pricing)Pricing
      • DOCUMENTATION
      • [Kong Konnect](https://developer.konghq.com/konnect/)Kong Konnect
      • [Kong Gateway](https://developer.konghq.com/gateway/)Kong Gateway
      • [Kong Mesh](https://developer.konghq.com/mesh/)Kong Mesh
      • [Kong AI Gateway](https://developer.konghq.com/ai-gateway/)Kong AI Gateway
      • [Kong Event Gateway](https://developer.konghq.com/event-gateway/)Kong Event Gateway
      • [Kong Insomnia](https://developer.konghq.com/insomnia/)Kong Insomnia
      • [Plugin Hub](https://developer.konghq.com/plugins/)Plugin Hub
      • EXPLORE
      • [Blog](/blog)Blog
      • [Learning Center](/blog/learning-center)Learning Center
      • [eBooks](/resources/e-book)eBooks
      • [Reports](/resources/reports)Reports
      • [Demos](/resources/demos)Demos
      • [Customer Stories](/customer-stories)Customer Stories
      • [Videos](/resources/videos)Videos
      • EVENTS
      • [API + AI Summit](/events/conferences/api-ai-summit)API + AI Summit
      • [Agentic Era World Tour](/agentic-era-world-tour)Agentic Era World Tour
      • [Webinars](/events/webinars)Webinars
      • [User Calls](/events/user-calls)User Calls
      • [Workshops](/events/workshops)Workshops
      • [Meetups](/events/meetups)Meetups
      • [See All Events](/events)See All Events
      • FOR DEVELOPERS
      • [Get Started](https://developer.konghq.com/)Get Started
      • [Community](/community)Community
      • [Certification](/academy/certification)Certification
      • [Training](https://education.konghq.com)Training
      • COMPANY
      • [About Us](/company/about-us)About Us
      • [We're Hiring!](/company/careers)We're Hiring!
      • [Press Room](/company/press-room)Press Room
      • [Contact Us](/company/contact-us)Contact Us
      • [Kong Partner Program](/partners)Kong Partner Program
      • [Enterprise Support Portal](https://support.konghq.com/s/)Enterprise Support Portal
      • [Documentation](https://developer.konghq.com/?_gl=1*tphanb*_gcl_au*MTcxNTQ5NjQ0MC4xNzY5Nzg4MDY0LjIwMTI3NzEwOTEuMTc3MzMxODI2MS4xNzczMzE4MjYw*_ga*NDIwMDU4MTU3LjE3Njk3ODgwNjQ.*_ga_4JK9146J1H*czE3NzQwMjg1MjkkbzE4OSRnMCR0MTc3NDAyODUyOSRqNjAkbDAkaDA)Documentation
  • [](/search)
  • [Login](https://cloud.konghq.com/login)Login
  • [Book Demo](/contact-sales)Book Demo
  • [Get Started](/products/kong-konnect/register)Get Started
[Blog](/blog)Blog
  • [AI Gateway](/blog/tag/ai-gateway)AI Gateway
  • [AI Security](/blog/tag/ai-security)AI Security
  • [AIOps](/blog/tag/aiops)AIOps
  • [API Security](/blog/tag/api-security)API Security
  • [API Gateway](/blog/tag/api-gateway)API Gateway
|
    • [API Management](/blog/tag/api-management)API Management
    • [API Development](/blog/tag/api-development)API Development
    • [API Design](/blog/tag/api-design)API Design
    • [Automation](/blog/tag/automation)Automation
    • [Service Mesh](/blog/tag/service-mesh)Service Mesh
    • [Insomnia](/blog/tag/insomnia)Insomnia
    • [View All Blogs](/blog/page/1)View All Blogs
We're Entering the Age of AI Connectivity [Read more](/blog/news/the-age-of-ai-connectivity)Read moreProducts & Agents:
    • [Kong AI Gateway](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong API Gateway](/products/kong-gateway)Kong API Gateway
    • [Kong Event Gateway](/products/event-gateway)Kong Event Gateway
    • [Kong Metering & Billing](/products/usage-based-metering-and-billing)Kong Metering & Billing
    • [Kong Insomnia](/products/kong-insomnia)Kong Insomnia
    • [Kong Konnect](/products/kong-konnect)Kong Konnect
  • [Documentation](https://developer.konghq.com)Documentation
  • [Book Demo](/contact-sales)Book Demo
  1. Home
  2. Blog
  3. Engineering
  4. Building With Insomnia as a REST API Client
[Engineering](/blog/engineering)Engineering
December 8, 2021
9 min read

# Building With Insomnia as a REST API Client

Garen Torikian

As more companies invest in a [cloud native infrastructure](https://konghq.com/blog/cloud-native-infrastructure)cloud native infrastructure, they're choosing to prioritize their applications as [microservices](https://konghq.com/blog/learning-center/what-are-microservices)microservices—architecting them into distinct servers. Each component is responsible for one (and only one) feature.

For example, you might have Server A responsible for handling billing logic, Server B for handling user interaction and Server C for handling third-party user interactions. These servers individually are *microservices *that make up the entirety of your application.

When designing a [microservices architecture](https://konghq.com/learning-center/microservices/microservices-architectures)microservices architecture, you'll need to determine how these servers ought to communicate early on. For example, Server C might need to check billing information before performing some action, which means Server C would need to ask Server A if a user has the appropriate permissions.

We'll need an API to handle the requests and responses consistently in these cases. The most popular API protocols boil down to three choices: gRPC, graphQL and good ol' REST. REST is the lingua franca of the web; it has all the HTTP verbs you're aware of, like GET and POST, and matches very closely with how browsers send and receive data.

In this post, we will explore how to build a [REST API](https://konghq.com/blog/learning-center/what-is-restful-api)REST API and test it using [Insomnia](https://insomnia.rest)Insomnia, an open source client for interacting with APIs. We'll build a simple server in Node.js and send requests to fetch and manipulate data. We'll also add different authentication strategies and show off some of the highlights of using Insomnia.

## Getting Started

Before following this guide, be sure to install [the latest version of Insomnia](https://insomnia.rest/download)the latest version of Insomnia. You will also need to install [the latest version of Node](https://nodejs.org/en)the latest version of Node (at least version 14.0) and npm (which comes with Node).

## Building Our Server

In a brand new directory, run the following command to install all the necessary dependencies:

npm install express

Next, create a file called server.js, and paste the following lines into it:

const express = require("express");
const app = express();
const port = 3000;
app.use(express.json())

app.get("/", (req, res) => {
 res.send("Hello World!");
});

app.listen(port, () => {
 console.log(`Example app listening at http://localhost:${port}`);
});

On the command line, run node server.js, then visit [http://localhost:3000](http://localhost:3000)http://localhost:3000 in your browser. You should see a cheerful greeting. This demonstrates that we have the necessary dependencies to continue building our server.

Normally, you would expect your server to have some form of stable long-term storage, like a database. For simplicity, we'll create a fake list of records in JSON, which will act as the content that we can serve out during requests.

In your server.js file, add the following lines of code:

let books = [
 {
   id: 1,
   title: "Absalom, Absalom",
   isbn: 97803801407743,
   author: { id: 1, firstname: "William", lastname: "Faulkner" },
 },
 {
   id: 2,
   title: "The Fire Next Time",
   isbn: 97801401284643,
   author: { id: 2, firstname: "James", lastname: "Baldwin" },
 },
 {
   id: 3,
   title: "Orlando",
   isbn: 9780241827502,
   author: { id: 3, firstname: "Virginia", lastname: "Woolf" },
 },
];

Our microservice will serve as the front for a bookstore inventory. Next, we'll work out some API paths to fetch this list.

## Getting Data With Insomnia

Now, let's build an endpoint that returns this data to a user. Add the following lines to your server.js file:

app.get("/api/books", (req, res) => {
 res.send(books);
});

Restart your server if it's already running. Let's first visit this URL in the browser: [http://localhost:3000/api/books](http://localhost:3000/api/books)http://localhost:3000/api/books. You'll see your list of books as a text dump. That's great, but we can do better.

Open up Insomnia and follow these two steps:

  1. - Select GET as the operation type.
  2. - Set the endpoint to the same URL you visited in the browser.

json-hello-world

app.get("/api/book/:id", (req, res) => {
 let book = books.find((book) => book.id === req.params.id);
 res.send(book);
});

That :id is essentially a placeholder. Whatever we put at the end of the path string will become available as a variable that we can use in Express. Restart your server, and then head back to Insomnia. This time, you can issue a query with a specific ID to get more details about it. In my case, I just want [http://localhost:3000/api/book/2](http://localhost:3000/api/book/2)http://localhost:3000/api/book/2 .

json-query

Since all of the responses are JSON, looking at the data in this way—rather than through the browser or command line—makes it much easier to see what you're getting.

## Adding Data With Insomnia

Okay, we can get our inventory, but what about manipulating the inventory? Suppose we want to *add *a book. How would we do that?

We probably want to POST some JSON data that represents a book. In the browser, it would be near impossible to do so. In addition, trying to format JSON through the command line can be challenging. Let's see how Insomnia handles it.
First, add the following POST route to Express:

app.post("/api/book", (req, res) => {
  const body = req.body;
  const book = {
    id: body.id,
    title: body.title,
    isbn: body.isbn,
    author: {
      id: body.author.id,
      firstname: body.author.firstname,
      lastname: body.author.lastname,
    },
  };
  books.push(book);

  res.send(books);
});

req.body is the HTTP request body and represents the JSON data payload accompanying the request. If we want to add a new book, we need to provide some JSON that's "shaped" like the other books in our array—something like this:

{
  "id": 4,
  "title": "Ulysses",
  "isbn": 92803801040749,
  "author": {
    "id": 1,
    "firstname": "James",
    "lastname": "Joyce"
  }
}

Restart your server, and head back to Insomnia. Change the HTTP operation type to POST. Then, set the body type to JSON, and paste this text into it (or another book, if your heart desires).

json-ulysse-james-joyce

Voila! The server will respond with the book inventory, including your recently added one. Success!

By the way, note that *every time* you restart your server, your list of books will begin with the original list of three books initialized at the top of your server.js file. Since we're not maintaining persistent storage with a database, any data changes you make will disappear each time you restart the server.

## Deleting Data With Insomnia

Just to close the loop, let's also consider how to delete a book using Insomnia. By adding the following lines to our server, we provide a "delete book" endpoint as shown below:

app.delete("/api/book/:id", (req, res) => {
 books = books.filter((book) => book.id !== req.params.id);
 res.send(books);
});

Back in Insomnia, set the HTTP operation to DELETE. This request doesn't need a request body, so select "No Body" from the dropdown:

deleting-data-with-insomnia

The server will respond with the inventory, minus the book you put on the chopping block.

## Providing Headers

We'll explore Insomnia further by extending our demo application with more functionality. In a real-world scenario, you would never expose dangerous actions—like the ability to add or delete books from an inventory—without some form of authentication. Authentication acts as a security measure that only allows users with permissions to make modifications.

In server.js, right after where you defined your book inventory, paste the following lines:

const auth = {
 username: "admin",
 password: "mysecretpassword",
};

function authenticated(headers) {
 const [user, pass] = headers.authorization.split(":");

 if (user && pass && user === auth.login && pass === auth.password) {
   return true;
 }

 return false;
}

Here, we've defined a function that checks the HTTP header to see whether or not there is correct authentication info. If not, we'll reject the request. It's worth noting that defining passwords in plaintext and your files is a huge security risk and a very bad idea! We're only doing it here for demo purposes. You should always [store your secure config values in an environment variable](https://12factor.net/config)store your secure config values in an environment variable.

To enforce authentication, add the following lines to your POST route:

app.post("/api/book", (req, res) => {
if (!authenticated(req.headers)) {
  return res.status(401).send("Authentication required.");
}

To demonstrate how this works, restart your server and return to Insomnia. Issue another POST request to add a book. You will get a 401 error message because you haven't provided any authentication info! Adding authentication like this is an excellent way to protect unauthorized users from accessing endpoints that we should protect.

To provide the authentication, we need to modify Insomnia's headers. Click on the **Headers **tab, and create a new key-value pair of Authorization and admin:mysecretpassword.

avoiding-headers

When you issue the request again, you'll see your new book added, just as before.

## Setting Environment Variables

One of the other neat things about Insomnia is that it supports [environment variables](https://docs.insomnia.rest/insomnia/environment-variables)environment variables directly in the editor. Environment variables are a great way to reuse information across multiple requests, like URLs or usernames. Insomnia environment variables can also come [from files and URLs](https://konghq.com/blog/avoiding-plain-text-passwords-insomnia/)from files and URLs, which provide consistency across all platforms when you're testing your API.

To see how this feature works, we'll perform a few actions. First, we'll create an environment that defines the variables Insomnia should know about. However, instead of using just a plaintext password, we'll Base64-encode it to demonstrate what some sort of obfuscation might look like.

To create an environment, click on the **Environment **dropdown menu on the left-hand side of Insomnia, and select **Manage Environments**.

no-enviroment

From there, create a new sub-environment called *REST API*, and paste in the following JSON:

{
  "ROOT_URL": "http://localhost:3000",
  "AUTH_INFO": "{% base64 'encode', 'normal', 'admin:mysecretpassword' %}"
}

managed-enviroment

ROOT_URL, as you might notice, is the URL of our running Node server; AUTH_INFO is base-64 encoded version of our username and password. Base64-encoded version of the string admin:mysecretpassword. You'll notice that as soon as you finish typing the {% base64 ‘encode’ template function, it converts into a label. Clicking on it brings a pop-up with more information on the encoded and plaintext values of this variable:

edit-tag

We will use this new auth string to demonstrate working with environment variables and encodings in both our API and Insomnia. Once you've saved this environment, select it from the same dropdown menu as before:

activate-environment

In server.js, change how the authentication headers are retrieved in the authenticated function to this:

  const authorization = Buffer.from(headers.authorization, "base64")
   .toString("utf-8")
   .split(":");

Restart your server, then head back to Insomnia's **Headers **tab. Click on the previously entered admin:mysecretpassword value, then press Ctrl+space (or Cmd+space). You should have the option to enter _.AUTH_INFO, which is your environment variable from before. You can insert environment variables almost anywhere Insomnia provides a text box. To that end, let's also replace our server name with the ROOT_URL value that we also created:

root-url-api-book

Go ahead and try to add yet another book to your growing catalog. You should be able to do so with this newer, more secure version of passing around authentication info.

## Activating Plugins for More Features

Wouldn't it be nice if you could send dynamic JSON payloads to your API? Well, you're in luck! Insomnia provides support for various plugins, and one of them, [the faker plugin](https://insomnia.rest/plugins/insomnia-plugin-faker)the faker plugin, lets you use [template tags](https://support.insomnia.rest/article/171-template-tags)template tags to generate fake random strings with each request.

activating-plugins-for-more-features

After installing the plugin, you can press Ctrl+space (or Cmd+space) to insert dynamically generated data. Just like the base64 template tag we showed earlier, clicking on the Faker label lets you modify the types of data you want included.

edit-tag

## Running Tests Using Insomnia

Of course, deploying your untested API directly to production isn't a great idea, regardless of how confident you are that it works. It's a good practice to create a test suite that validates your API is working properly. Insomnia can [run unit tests](https://docs.insomnia.rest/insomnia/unit-testing)run unit tests to assert that your API's status codes and response bodies are as expected. Let's explore how that works!

First, click on the purple **Dashboard **link in the upper left corner of the app. Then click **Create**, followed by **Design Document**. Give this file a name like *book-api.yml*, and click **Create**. Here, you can design your API using the popular [OpenAPI spec](https://www.openapis.org/)OpenAPI spec. The following spec represents the book store API we have just created; go ahead and paste the following lines directly into the editor:

openapi: 3.0.0
info:
  version: 1.0.0
  title: Sample API
  description: A sample API to illustrate OpenAPI concepts
servers:
  - url: http://localhost:3000
paths:
  /api/books:
    get:
      description: Returns a list of books
      responses:
        "200":
          description: Successfully retrieved books
  /api/book/{id}:
    get:
      description: Returns a single book
      parameters:
        - name: id
          in: path
          description: Book ID
          required: true
          schema:
            type: integer
            format: int
      responses:
        "200":
          description: Successfully retrieved one book
    delete:
      description: Removes a single book
      parameters:
        - name: id
          in: path
          description: Book ID
          required: true
          schema:
            type: integer
            format: int
      responses:
        "200":
          description: Successfully removed one book
  /api/book:
    post:
      description: Adds a new books
      responses:
        "200":
          description: Successfully added a book

Here, we've described our API using the OpenAPI YAML format. Click on the **Debug **tab, then select OpenAPI as your environment. Your left-hand pane will populate with your API endpoints; go ahead and click on GET /api/books, and click **Send** to execute the query:

book-api-yml

You should see a response with your list of books. There's nothing different about how this Debug tab works; the real power of creating an OpenAPI spec is the ability to create tests. Go ahead and click on **Test** next, then click on **New Test Suite**. Call it **Inventory tests**, then click **Create suite**. Insomnia will present you with a blank pane. Let's populate it!

Click on **New test**, and enter the phrase *Returns a list of books *as its name. Pick your [GET] /api/books endpoint in the Select Request dropdown menu. You might have noticed that these options map directly to your API and come from your provided OpenAPI spec.

Next, click on **Run tests**. In the right-hand pane, you should see a *Passed *message. That's great, but what happened? Go ahead and expand the test suite, and you should see some lines of code. Insomnia [uses the Chai testing library](https://www.chaijs.com/)uses the Chai testing library behind the scenes, which enables you to set up expectations and assertions for your API responses. Let's go ahead and modify this test to assert that an array is returned by ensuring that the inventory has more than one item. Replace the lines of code with the following:

const response1 = await insomnia.send();
expect(response1.status).to.equal(200);
// it's an array
expect(response1.data).to.have.lengthOf.above(1);

Click on **Run Tests **again, and your test should still pass!

test-passed

Of course, you also want to make sure that the elements in the response are in the format you expect—with an id, a title, an author and so on. But as a sample, this is pretty great!

Go ahead and add one more test: [GET] /api/book/{id}. Now, try to run it—you'll receive an error. What happened? Well, Insomnia knows about your endpoint, but it doesn't know what to insert for {id}. You can provide a value by going back to the **Design **tab, then editing the environment to add a mapping between the path parameter and its value, like this:

managed-enviroments

If you go back to **Test** and run all of your tests, you should see the endpoint with the variable pass!

## Learning More About Insomnia

Insomnia isn't just for REST APIs. Many of the UX features we covered are also available for APIs written in [gRPC](https://konghq.com/blog/insomnia-grpc/)gRPC and [graphQL](https://konghq.com/blog/insomnia-graphql)graphQL. Insomnia is [an active open source project](https://github.com/Kong/insomnia)an active open source project, and you can contribute to its development or [develop plugins that suit your needs](https://docs.insomnia.rest/insomnia/introduction-to-plugins)develop plugins that suit your needs!

To learn more about Insomnia, check out [our documentation](https://docs.insomnia.rest/insomnia/get-started)our documentation. You can also find out how to [deploy your APIs to a microservice](https://docs.insomnia.rest/insomnia/publish-to-dev-portal)deploy your APIs to a microservice or [discover plugins](https://insomnia.rest/plugins)discover plugins to help enhance your Insomnia experience.

- [API Development](/blog/tag/api-development)API Development- [Insomnia](/blog/tag/insomnia)Insomnia- [REST API](/blog/tag/rest-api)REST API

## More on this topic

_Videos_

## Native API Mocking in Insomnia

_Videos_

## How to Migrate Collections Into Insomnia

## See Kong in action

Accelerate deployments, reduce vulnerabilities, and gain real-time visibility. 

[Get a Demo](/contact-sales)Get a Demo
**Topics**
- [API Development](/blog/tag/api-development)API Development- [Insomnia](/blog/tag/insomnia)Insomnia- [REST API](/blog/tag/rest-api)REST API
Garen Torikian

Recommended posts

# Harnessing the Power of Insomnia Plugins

[Engineering](/blog)EngineeringFebruary 17, 2022

Insomnia is a fast and lightweight open source desktop application that doubles as a tool for API design and testing and as an API client for making HTTP requests. It has built-in support for REST Client , gRPC and GraphQL . All of that is just

Viktor Gamov
[](https://konghq.com/blog/engineering/insomnia-plugins)

# Speed-Review API Specifications with Insomnia

[Engineering](/blog)EngineeringSeptember 20, 2021

As the software application world moves from monolith architectures to microservices , we are also seeing a shift toward developing modular and reusable APIs. According to APIOps , reusable APIs are consumable APIs, which means they must be well-d

Viktor Gamov
[](https://konghq.com/blog/engineering/api-specifications)

# How to Leverage Insomnia as a GraphQL Client

[Engineering](/blog)EngineeringAugust 24, 2021

Here at Kong, we're advocates for architecting your application as a group of microservices . In this design style, individual services are responsible for handling one aspect of your application, and they communicate with other services within you

Garen Torikian
[](https://konghq.com/blog/engineering/insomnia-graphql)

# Can You Trust What You’re Shipping? You Will with Insomnia v12

[Product Releases](/blog)Product ReleasesOctober 13, 2025

AI Assist: Clean commits, transparent teams Building trust starts with small things, like making sure every commit tells the right story. That’s where Insomnia’s v12 AI Commit capability comes in.  Developers want to write code. It’s what they’re go

Haley Giuliano
[](https://konghq.com/blog/product-releases/trust-what-youre-shipping-with-insomnia-v12)

# GraphQL vs REST: Key Similarities and Differences Explained

[Learning Center](/blog)Learning CenterFebruary 28, 2025

Choosing the right API architecture is crucial for building efficient and scalable applications and the two prominent contenders in this arena are GraphQL and REST, each with its unique set of characteristics and benefits. Understanding the similari

Kong
[](https://konghq.com/blog/learning-center/graphql-vs-rest)

# RESTful API Best Practices

Kong Logo
[Learning Center](/blog)Learning CenterMarch 10, 2022

If youre involved in API design these days it can feel like someone is proclaiming the benefits of RESTful API design everywhere you turn. However, that advice often comes without an explanation of exactly what is meant by RESTful APIs or is mixed i

Kong
[](https://konghq.com/blog/learning-center/restful-api-best-practices)

# Evaluating API Testing Tools: Insomnia vs Postman

[Enterprise](/blog)EnterpriseMarch 26, 2026

Free collaboration with Postman — a myth On March 1st, 2026, Postman discontinued free collaboration for small teams. Now , Git or Cloud-native collaboration requires a Team plan starting at $19 per person per month. That means even a 3-person team

Haley Giuliano
[](https://konghq.com/blog/enterprise/insomnia-vs-postman-evaluating-api-testing-tools)

## Ready to see Kong in action?

Get a personalized walkthrough of Kong's platform tailored to your architecture, use cases, and scale requirements.

[Get a Demo](/contact-sales)Get a Demo
Ask AI for a summary of Kong
  • [](https://chatgpt.com/s/t_69b981cfa37081919ce25ce107c431c1)
  • [](https://share.google/aimode/hyefOiNwl8pg8W99d)
  • [](https://www.perplexity.ai/search/what-solutions-does-kong-offer-VsYWPddxQjajgvLA4B9hjQ)
Stay connected

## step-0

    • Company
    • [About Kong](/company/about-us)About Kong
    • [Customers](/customer-stories)Customers
    • [Careers](/company/careers)Careers
    • [Press](/company/press-room)Press
    • [Events](/events)Events
    • [Contact](/company/contact-us)Contact
    • [Pricing](/pricing)Pricing
    • Legal
    • [Terms](/legal/terms-of-use)Terms
    • [Privacy](/legal/privacy-policy)Privacy
    • [Trust and Compliance](https://trust.konghq.com)Trust and Compliance
    • Platform
    • [Kong AI Gateway](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong Konnect](/products/kong-konnect)Kong Konnect
    • [Kong Gateway](/products/kong-gateway)Kong Gateway
    • [Kong Event Gateway](/products/event-gateway)Kong Event Gateway
    • [Kong Insomnia](/products/kong-insomnia)Kong Insomnia
    • [Documentation](https://developer.konghq.com)Documentation
    • [Book Demo](/contact-sales)Book Demo
    • Compare
    • [AI Gateway Alternatives](/performance-comparison/ai-gateway-alternatives)AI Gateway Alternatives
    • [Kong vs Apigee](/performance-comparison/kong-vs-apigee)Kong vs Apigee
    • [Kong vs IBM](/performance-comparison/ibm-api-connect-vs-kong)Kong vs IBM
    • [Kong vs Postman](/performance-comparison/kong-vs-postman)Kong vs Postman
    • [Kong vs Mulesoft](/performance-comparison/kong-vs-mulesoft)Kong vs Mulesoft
    • Explore More
    • [Open Banking API Solutions](/solutions/open-banking)Open Banking API Solutions
    • [API Governance Solutions](/solutions/api-governance)API Governance Solutions
    • [Istio API Gateway Integration](/solutions/istio-gateway)Istio API Gateway Integration
    • [Kubernetes API Management](/solutions/build-on-kubernetes)Kubernetes API Management
    • [API Gateway: Build vs Buy](/campaign/secure-api-scalability)API Gateway: Build vs Buy
    • [Kong vs Apigee](/performance-comparison/kong-vs-apigee)Kong vs Apigee
    • Open Source
    • [Kong Gateway](https://developer.konghq.com/gateway/install/)Kong Gateway
    • [Kuma](https://kuma.io/)Kuma
    • [Insomnia](https://insomnia.rest/)Insomnia
    • [Kong Community](/community)Kong Community

Kong enables the connectivity layer for the agentic era – securely connecting, governing, and monetizing APIs and AI tokens across any model or cloud.

  • Japanese
  • Frenchcoming soon
  • Spanishcoming soon
  • Germancoming soon
© Kong Inc. 2026
Interaction mode