# Network Requests

This view is only available on Team and Business plans. Team plans can access the last 7 days of data, while Business plans can access the last 90 days. To enable extended data access, upgrade to the [Business or Enterprise plan](https://sentry.io/pricing.md).

If you have performance monitoring enabled, you can track your application's HTTP requests in Sentry. Sentry monitors all outgoing HTTP requests and helps you track and investigate the domains that serve those requests.

On the [**Requests** page](https://docs.sentry.io/.md#requests-page), you get an overview of the domains that serve your application's outgoing requests. From there, you can check each individual domain's behavior on its [**Domain Summary** page](https://docs.sentry.io/.md#domain-summary-page) and find sample events in the [Sample List](https://docs.sentry.io/.md#sample-list).



## [Prerequisites and Limitations](https://docs.sentry.io/.md#prerequisites-and-limitations)

Network requests using non-HTTP protocols (FTP, WebSocket, etc.) are not supported at this time.

Availability of HTTP request monitoring depends on the SDK your application uses. In most cases, Sentry's SDKs automatically enable HTTP request tracking. You can check your SDK's [automatic instrumentation documentation](https://docs.sentry.io/platform-redirect.md?next=%2Ftracing%2Finstrumentation%2Fautomatic-instrumentation) to see if it includes tracking HTTP requests.

If the SDK you're using doesn't automatically instrument HTTP requests, you can set up custom instrumentation. Dedicated platform documentation is available for these platforms:

* [Python SDK](https://docs.sentry.io/platforms/python/tracing/instrumentation/custom-instrumentation/requests-module.md)
* [JavaScript SDK](https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/custom-instrumentation/requests-module.md)

If your platform doesn't have dedicated custom instrumentation instructions, you can try adapting the code from one of the supported platforms. In addition, you can also reference the [Requests Modules SDK development guide](https://develop.sentry.dev/sdk/performance/modules/requests.md), which lists required span properties and their expected format.

## [Requests Page](https://docs.sentry.io/.md#requests-page)

The **Requests** page gives an overview of the domains that your application accesses via HTTP. You can use this page to see how those domains perform, including their average response duration and the rate of 3xx, 4xx, and 5xx HTTP response status codes.

You can access the **Requests** page by clicking "Requests" in the sidebar, under "Insights". The **Performance** page also shows the most time-consuming outgoing HTTP request domains in the "Most Time-Consuming Domains" widget. From there, you can click "View All" to open the **Requests** page.

At the top of the page, there are three graphs that summarize the overall behavior of outgoing HTTP requests: a requests per minute (throughput) chart, an average duration chart, and a chart that shows the percentage of 3xx, 4xx, and 5xx HTTP response status codes. You can click and drag to select a specific time range directly in a graph.

The domains table below the charts shows a list of domains your application makes requests to. The domain names are parameterized, where `*` means that all subdomains of that domain are included. Each row also shows the project that issued the requests, throughput, average duration, HTTP response code rate, and total time your app spent making requests to the domain (time spent).

By default, the table is sorted by most time spent, which serves as a proxy for the relative performance impact of a given domain. You can also sort by throughput, duration, and HTTP response status code rate by clicking on the relevant column header. The domain search bar also lets you search for specific domains.

To view more details, click on a domain name to open its **Domain Summary** page.

If Sentry cannot extract the domain of the outgoing HTTP request, it will group the requests in a special table row named "Unknown Domain". This can happen because of malformed URLs, or old JavaScript SDKs that don't support relative URLs. To fix this problem in JavaScript projects, please upgrade to version [7.111.0](https://github.com/getsentry/sentry-javascript/releases/tag/7.111.0) or above.

## [Domain Summary Page](https://docs.sentry.io/.md#domain-summary-page)

To open a domain's **Domain Summary** page, click on the domain from the table on the **Requests** page, or click on the individual rows in the "Most Time-Consuming Domains" widget on the **Performance** page.

At the top of the page, you'll see the same throughput, duration, and response status code charts. You'll also see a link to the domain's status page, if one is known.

Below, you'll find a list of transactions that make requests to that domain, sorted by time spent.

If you want to investigate a specific transaction, click on it to open the request samples panel.

## [Sample List](https://docs.sentry.io/.md#sample-list)

Click on a transaction to open its sample list. The sample list side panel shows metrics on this domain's behavior within the selected transaction. You can choose to view a breakdown either by duration or by response code.

### [Duration Breakdown](https://docs.sentry.io/.md#duration-breakdown)

The duration breakdown shows the average duration of requests to the domain in the selected transaction. It also finds relevant samples to help you investigate the requests. Sentry tries to find samples that are faster than, slower than, and roughly equal to the average duration. The samples will also span the entire selected time range, if possible. Each sample is plotted on the duration chart and represented as a triangle.

The samples are also listed in a table below the chart. Each sample has a link to the relevant trace, the HTTP status of the response, and the full URL of the request.

### [Response Code Breakdown](https://docs.sentry.io/.md#response-code-breakdown)

The response code breakdown chart plots the top 5 most common response status codes over time. You can use this chart to diagnose response code behavior. You can use the response code range selector in the top right to narrow down the status codes. For example, if you select the "3XX" value, the breakdown chart will narrow down to only 3XX HTTP status codes. You can click on the status code badges in the top right of the breakdown chart to show and hide the corresponding status code chart line.

The table below the chart shows a list of sample spans for the selected response code range. Each sample has a link to the relevant trace, the HTTP status of the response, and the full URL of the request.
