Getting started with Kulala

Kulala uses .http files to describe API requests. Each file can hold one or many requests, separated by ### delimiters. You can name a request by placing text after the delimiter - that name is used for scripting, import/run, and request chaining.

Your first request

A minimal GET request needs only a method and URL:

simple-get.httphttp
GET https://echo.kulala.app/get HTTP/1.1

A POST with a JSON body looks like this:

simple-post.httphttp
POST https://echo.kulala.app/post HTTP/1.1
Content-Type: application/json

{
  "message": "Hello, Kulala!"
}

Named requests

Prefix a delimiter with a name to identify the request later:

named-request.httphttp
### NAMED_SIMPLE

POST https://echo.kulala.app/post HTTP/1.1
X-Custom-Header: Kulala-Named-Request

{
  "message": "Hello, Kulala!"
}

Comments and query parameters

Lines starting with # are comments. Query parameters can span multiple lines and include inline comments:

query-params.httphttp
POST https://echo.kulala.app/post
  ?someKey=someValue1
  # &someKey2=someValue2
  &someKey3=someValue3
  HTTP/1.1
Content-Type: application/json

{
  "username": "user123"
}

All examples on this site are taken from kulala-core http-example-files and verified against the current kulala-core parser.