Skip to content

The .http File Format

Define, share, and execute HTTP requests in plain text. One format, every tool.

The simplest way to define an HTTP request

Section titled “The simplest way to define an HTTP request”
### Get all users
GET https://api.example.com/users
Accept: application/json
### Create a new user
POST https://api.example.com/users
Content-Type: application/json
{
"name": "Jane Doe",
"email": "jane@example.com"
}

That's it. A plain text file. No SDK, no GUI, no config files. Save it as .http, open it in your editor, and run it.

  • Readable. HTTP requests described in HTTP syntax. No abstraction layer.
  • Shareable. Commit them to your repo. Review them in PRs. Run them in CI.
  • Portable. Supported by VS Code, JetBrains IDEs, Neovim, Visual Studio, and CLI tools.
  • Composable. Variables, environments, response chaining, and scripting — when you need them.
Feature VS CodeJetBrainshttpyacVS 2022kulala
Request line (METHOD URL [HTTP-version])
Method defaults to GET when omitted
Multi-line URLs via indentation Continuation lines beginning with whitespace are concatenated to the URL.
HTTP/2 version VS Code REST Client does not document HTTP/2 support.
HTTP/2 (Prior Knowledge) Direct HTTP/2 without upgrade negotiation.
HTTP/3 version Unique to Visual Studio 2022.
Request separator (###)
Line comments (#)
Line comments (//)
Block comments (/* */) Unique to httpyac.
Text after ### as request title
Request headers (Name: Value)
Multi-line header values via indentation
Spread headers (...variableName) Injects all key-value pairs from an object variable as headers.
Request body after blank line
URL-encoded form body with & prefixes

Explore the full compatibility reference for detailed feature-by-feature comparison across all clients.

Pick your editor and start sending requests in minutes:

VS Code REST Client

IDE Extension

The originator of the .http file format (circa 2017). VS Code extension with ~6K GitHub stars. Supports HTTP requests, variables, environments, and response viewing with rich editor integration.

VS Code TypeScript

JetBrains HTTP Client

IDE Extension

Built into all JetBrains IDEs. The most feature-rich IDE implementation, with the only semi-formal spec attempt. Also available as a standalone CLI (ijhttp).

IntelliJ IDEA, WebStorm, GoLand, PyCharm, Rider Kotlin/Java

httpyac

IDE Extension

The most interoperable implementation. CLI tool and VS Code extension that supports both JetBrains and REST Client syntax while adding its own extensions. Bridges the gap between ecosystems.

VS Code, CLI TypeScript/Node.js

Visual Studio 2022

IDE Extension

Built-in since v17.6, significantly enhanced in v17.8+. Adopted JetBrains env format with Microsoft extensions including Azure Key Vault secrets providers.

Visual Studio 2022 C#

kulala.nvim

Neovim Plugin

Neovim plugin targeting 100% IntelliJ compatibility. Includes kulala-fmt formatter, kulala-ls language server, and a CLI with GitHub Action support.

Neovim Lua

See all clients and tools.