---
title: "asyncRequest(method, url, [body], [params]) | Grafana k6 documentation"
description: "Generic method for making asynchronous HTTP requests"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# asyncRequest(method, url, \[body], \[params])

Generic method for making arbitrary asynchronous HTTP requests. Note, this method returns a Promise. You must use the `await` keyword to resolve it.

Expand table

| Parameter         | Type                                                                                                      | Description                                                                                        |
|-------------------|-----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| method            | string                                                                                                    | HTTP method. Must be uppercase (GET, POST, PUT, PATCH, OPTIONS, HEAD, etc)                         |
| url               | string                                                                                                    | HTTP URL. If baseURL is set, provide only path.                                                    |
| body (optional)   | null / string / object / ArrayBuffer / [SharedArray](/docs/k6/latest/javascript-api/k6-data/sharedarray/) | Request body; objects will be `x-www-form-urlencoded`. Set to `null` to omit the body.             |
| params (optional) | null or object {}                                                                                         | Additional [parameters](/docs/k6/latest/javascript-api/k6-http/params/) for this specific request. |

### Returns

Expand table

| Type                  | Description                                                               |
|-----------------------|---------------------------------------------------------------------------|
| Promise with Response | HTTP [Response](/docs/k6/latest/javascript-api/k6-http/response/) object. |

### Example

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
import { Httpx } from 'https://jslib.k6.io/httpx/0.1.0/index.js';

const session = new Httpx({
  baseURL: 'https://quickpizza.grafana.com/api',
  timeout: 20000, // 20s timeout.
});

export default async function testSuite() {
  const resp_get = await session.asyncRequest('GET', `/status/200`);
  const resp_post = await session.asyncRequest('POST', `/status/200`, { key: 'value' });
  const resp_put = await session.asyncRequest('PUT', `/status/200`, { key: 'value' });
  const resp_patch = await session.asyncRequest('PATCH', `/status/200`, { key: 'value' });
  const resp_delete = await session.asyncRequest('DELETE', `/status/200`);

  // specific methods are also available.
  const respGet = await session.asyncGet(`/status/200`);
  const respPost = await session.asyncPost(`/status/200`, { key: 'value' });
  const respPut = await session.asyncPut(`/status/200`, { key: 'value' });
  const respPatch = await session.asyncPatch(`/status/200`, { key: 'value' });
  const respDelete = await session.asyncDelete(`/status/200`);
}
```
