Skip to main content
The k6/http module provides functionality for making HTTP requests.

Functions

get(url, [params])

Makes an HTTP GET request.
url
string
Target URL
params
object
Request parameters (headers, tags, etc.)
response
Response
HTTP response object
import http from 'k6/http';

export default function () {
  const res = http.get('https://test.k6.io');
  console.log(res.status);
}

post(url, [body], [params])

Makes an HTTP POST request.
url
string
Target URL
body
string | object | ArrayBuffer
Request body
params
object
Request parameters
import http from 'k6/http';

export default function () {
  const payload = JSON.stringify({ name: 'test' });
  const params = {
    headers: { 'Content-Type': 'application/json' },
  };
  http.post('https://test.k6.io/api', payload, params);
}

put(url, [body], [params])

Makes an HTTP PUT request.
url
string
Target URL
body
string | object | ArrayBuffer
Request body
params
object
Request parameters

patch(url, [body], [params])

Makes an HTTP PATCH request.

del(url, [body], [params])

Makes an HTTP DELETE request.

head(url, [params])

Makes an HTTP HEAD request.

options(url, [body], [params])

Makes an HTTP OPTIONS request.

request(method, url, [body], [params])

Makes an HTTP request with the specified method.
method
string
HTTP method (GET, POST, etc.)
url
string
Target URL
body
string | object | ArrayBuffer
Request body
params
object
Request parameters

batch(requests)

Makes multiple HTTP requests in parallel.
requests
array | object
Array or object containing request definitions
import http from 'k6/http';

export default function () {
  const responses = http.batch([
    ['GET', 'https://test.k6.io'],
    ['GET', 'https://test.k6.io/contacts'],
  ]);
  console.log(responses[0].status);
}

file(data, [filename], [contentType])

Creates a file object for multipart requests.
data
string | ArrayBuffer
File content
filename
string
Filename
contentType
string
Content type

Classes

CookieJar

Manages HTTP cookies.
import http from 'k6/http';

const jar = http.cookieJar();
jar.set('https://test.k6.io', 'session_id', '12345');

Response Object

HTTP response objects contain:
status
number
HTTP status code
body
string
Response body as string
headers
object
Response headers
timings
object
Response timing information
json()
function
Parse response body as JSON

Constants

TLS Versions

  • http.TLS_1_0
  • http.TLS_1_1
  • http.TLS_1_2
  • http.TLS_1_3

OCSP Status

  • http.OCSP_STATUS_GOOD
  • http.OCSP_STATUS_REVOKED
  • http.OCSP_STATUS_UNKNOWN
  • http.OCSP_STATUS_SERVER_FAILED

Examples

Complete Example

import http from 'k6/http';
import { check } from 'k6';

export default function () {
  const res = http.get('https://quickpizza.grafana.com');
  
  check(res, {
    'status is 200': (r) => r.status === 200,
    'response time < 500ms': (r) => r.timings.duration < 500,
  });
}

POST with JSON

import http from 'k6/http';

export default function () {
  const url = 'https://httpbin.org/post';
  const payload = JSON.stringify({
    name: 'k6 test',
  });

  const params = {
    headers: {
      'Content-Type': 'application/json',
    },
  };

  http.post(url, payload, params);
}

Build docs developers (and LLMs) love