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.1A 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"
}What to read next
- HTTP file format - request line formats, HTTP versions, implicit first request
- Variables -
@var=value, prompts, JSONPath iteration - Environments -
http-client.env.json, system env, Kuba - Request variables - chaining responses between named requests
- Operators and curl flags - timeouts, cookie jar,
@kulala-curl--*passthrough - Scripting - pre/post-request JavaScript and Lua
- Migrating from older Kulala docs -
@curl-*, plain{{USER}}, VS Code REST Client compat
All examples on this site are taken from kulala-core http-example-files and verified against the current kulala-core parser.