Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions debugging/timeline.mdx
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
---
title: "Timeline"
description: "Inspect the main request, script-triggered HTTP calls, and console output in one chronological view."
---

The **Timeline** tab provides comprehensive insights into your API requests and responses. It displays detailed information about what was sent, what was received, and network-level details to help you debug and validate your API calls effectively.
**Timeline** tab shows everything that happened during a request run. It includes the main HTTP call, any extra requests made from scripts, and the resolved request details for each step.

## Timeline Structure
## Timeline Interface

The Timeline tab is organized into three categories:

1. **Request**
2. **Response**
3. **Network Logs**

![Response Timeline](/images/screenshots/send-request/res-data-and-cookie/res-timeline.webp)

![Response Timeline](/images/screenshots/send-request/res-data-and-cookie/01-timeline.webp)
### 1. Request Tab

The Request tab displays everything that was sent with your API request:
Expand Down Expand Up @@ -45,3 +45,21 @@ The Network Logs tab provides low-level network insights for advanced debugging:
* **Debugging Information** - Additional network-level diagnostics

This comprehensive view helps you identify performance bottlenecks, debug connection issues, and understand the complete lifecycle of your API requests.

## Script Logs in Timeline

When scripts use [`bru.sendRequest()`](/testing/script/javascript-reference#brusendrequestoptions-callback) or [`bru.runRequest()`](/testing/script/javascript-reference#brurunrequestrequestpathname), Timeline lists every HTTP call made during the run. Use the filter tabs to narrow the view.

![Script Logs in Timeline](/images/screenshots/send-request/res-data-and-cookie/res-timeline.webp)

The number on each tab is how many requests match that filter.

| Tab | What it shows |
| --- | --- |
| **All** | Every HTTP request from the run including the main request plus any calls made from scripts (with or without `sendRequest` / `runRequest`). |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| **All** | Every HTTP request from the run including the main request plus any calls made from scripts (with or without `sendRequest` / `runRequest`). |
| **All** | Every HTTP request from the run including the main request plus any calls made from scripts (with `sendRequest` / `runRequest`). |

| **Request** | Only the **main request** — the HTTP call defined in the request URL bar (method, URL, body, and headers you configured in Bruno). |
| **Pre-Request** | Only HTTP requests executed during the **pre-request script** phase (from `bru.sendRequest()` or `bru.runRequest()` before the main request is sent). |
| **Post-Response** | Only HTTP requests executed during the **post-response** or **test** script phase (from `bru.sendRequest()` or `bru.runRequest()` after the main response returns). |

Click a row to expand it and inspect that call's request body, headers, response, and network timing. Use **Clear Timeline** to reset the list before the next run.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion send-requests/res-data-cookies/res-data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
title: "Response Data"
---

The API returns data as a response from the server after the request is executed. The response panel in Bruno provides you with an organized view of the API's response, including the body, headers, HTTP status code, raw response code, and more.

Check warning on line 5 in send-requests/res-data-cookies/res-data.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

send-requests/res-data-cookies/res-data.mdx#L5

Did you really mean 'API's'?

### Response Panel

After executing a request, the response panel provides detailed information on the API's response. It shows the response body, headers, status code, and other relevant data. You can also search within the response using the `cmd+f` or `ctrl+f` keyboard shortcut.

Check warning on line 9 in send-requests/res-data-cookies/res-data.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

send-requests/res-data-cookies/res-data.mdx#L9

Did you really mean 'API's'?

![Response Panel](/images/screenshots/send-request/res-data-and-cookie/res-data.webp)

Expand All @@ -24,7 +24,7 @@

### Timeline

The response timeline displays the response headers sent along with the request body, including details such as content-type, date, cache, and connection status.
The **Timeline** tab lists every HTTP call from a request run along with the main request plus any calls made by scripts. See [Timeline](/debugging/timeline) for context badges (`main`, `sendRequest`, `runRequest`), filter tabs, and per-request details.

![Response Timeline](/images/screenshots/send-request/res-data-and-cookie/res-timeline.webp)

Expand Down
4 changes: 2 additions & 2 deletions testing/script/javascript-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
| ------------------------------ | -------------------------------------------------------------------- |
| req.getUrl() | Get the current request URL. |
| req.setUrl(url) | Set the current request URL. |
| req.getHost() | Get the hostname from the request URL. |

Check warning on line 23 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L23

Did you really mean 'hostname'?
| req.getPath() | Get the path from the request URL. |
| req.getQueryString() | Get the raw query string from the request URL. |
| req.getPathParams() | Extract path parameters using the path template. |
Expand Down Expand Up @@ -73,7 +73,7 @@

### `req.getHost()`

Get the hostname from the request URL.

Check warning on line 76 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L76

Did you really mean 'hostname'?

```javascript
const host = req.getHost();
Expand Down Expand Up @@ -262,7 +262,7 @@

### `req.headerList`

`req.headerList` exposes the full **PropertyList** interface for request headers, giving you richer querying, iteration, and bulk-mutation capabilities beyond the basic `getHeader` / `setHeader` methods. All key lookups are **case-insensitive** per the HTTP spec.

Check warning on line 265 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L265

Did you really mean 'lookups'?

<Info>
`req.headerList` is available in **pre-request** and **test** scripts. Changes made via write methods take effect before the request is sent.
Expand Down Expand Up @@ -300,8 +300,8 @@
| `req.headerList.has(name)` | `boolean` | `true` if any header with that key exists. |
| `req.headerList.has(name, value)` | `boolean` | `true` if a header with that key **and** exact value exists. |
| `req.headerList.has(object)` | `boolean` | `true` if a header matching `object.key` exists. |
| `req.headerList.find(fn, context?)` | `object \| undefined` | First header for which the predicate returns truthy. |

Check warning on line 303 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L303

Did you really mean 'truthy'?
| `req.headerList.filter(fn, context?)` | `object[]` | All headers for which the predicate returns truthy. |

Check warning on line 304 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L304

Did you really mean 'truthy'?
| `req.headerList.indexOf(item)` | `number` | Index of a header by string key or `{ key, value }` object; `-1` if not found. |

```javascript
Expand Down Expand Up @@ -429,7 +429,7 @@

**Parameters:**

- `options` (object, optional): `raw` (boolean) — when `true`, returns the raw unparsed body string; otherwise returns the parsed object (default).

Check warning on line 432 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L432

Did you really mean 'unparsed'?

```javascript
// Get the parsed body object (for JSON content type)
Expand Down Expand Up @@ -595,7 +595,7 @@

### `res.headers`

A plain object containing all response headers as key-value pairs. Header names are lowercased.

Check warning on line 598 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L598

Did you really mean 'lowercased'?

```javascript
console.log(res.headers);
Expand Down Expand Up @@ -689,7 +689,7 @@

### `res.getHeaders()`

Returns an object containing all response headers as key-value pairs. Header names are lowercased.

Check warning on line 692 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L692

Did you really mean 'lowercased'?

```javascript
const headers = res.getHeaders();
Expand All @@ -704,7 +704,7 @@

### `res.headerList`

`res.headerList` exposes the full **PropertyList** interface for response headers, giving you richer querying and iteration capabilities beyond `getHeader` / `getHeaders`. All key lookups are **case-insensitive** per the HTTP spec.

Check warning on line 707 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L707

Did you really mean 'lookups'?

<Warning>
`res.headerList` is **read-only**. Calling any write method (`add`, `upsert`, `remove`, `clear`, `populate`, `repopulate`, `assimilate`) throws a `"HeaderList is read-only"` error. Use `req.headerList` when you need to mutate headers.
Expand Down Expand Up @@ -745,8 +745,8 @@
| `res.headerList.has(name)` | `boolean` | `true` if any response header with that key exists. |
| `res.headerList.has(name, value)` | `boolean` | `true` if a header with that key **and** exact value exists. |
| `res.headerList.has(object)` | `boolean` | `true` if a header matching `object.key` exists. |
| `res.headerList.find(fn, context?)` | `object \| undefined` | First response header for which the predicate returns truthy. |

Check warning on line 748 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L748

Did you really mean 'truthy'?
| `res.headerList.filter(fn, context?)` | `object[]` | All response headers for which the predicate returns truthy. |

Check warning on line 749 in testing/script/javascript-reference.mdx

View check run for this annotation

Mintlify / Mintlify Validation (bruno-a6972042) - vale-spellcheck

testing/script/javascript-reference.mdx#L749

Did you really mean 'truthy'?
| `res.headerList.indexOf(item)` | `number` | Index of a header by string key or `{ key, value }` object; `-1` if not found. |

```javascript
Expand Down Expand Up @@ -1453,7 +1453,7 @@
</Note>

<Tip>
You can see the executed request using `sendRequest` in the [timeline tab](/send-requests/res-data-cookies/res-data#timeline) with `sendRequest` tag attached to it.
You can see the executed request in the [Timeline](/debugging/timeline) tab with a `sendRequest` context badge.
</Tip>

```javascript
Expand Down Expand Up @@ -1598,7 +1598,7 @@
</Warning>

<Tip>
You can see the executed request using `runRequest` in the [timeline tab](/send-requests/res-data-cookies/res-data#timeline) with `runRequest` tag attached to it.
You can see the executed request in the [Timeline](/debugging/timeline) tab with a `runRequest` context badge.
</Tip>

```javascript
Expand Down
Loading