# IP Ranges

## Learn how Sentry's SaaS product uses IP Ranges for API usage, event ingestion, outbound requests, and more.

##### Note

The contents of this page apply only to Sentry's SaaS product. It **does not** apply to self-hosted or single tenant.

##### API Access

You can programmatically access this IP range information via our API at `docs.sentry.io/api/ip-ranges`.

## [Dashboard and API](#dashboard-and-api)

Sentry's dashboard and API are both served from different domains, depending on your organization's data storage location. The IP addresses are:

```plaintext
sentry.io 35.186.247.156/32
us.sentry.io 35.186.247.156/32
de.sentry.io 34.36.122.224/32, 34.36.87.148/32
```

## [Event Ingestion](#event-ingestion)

Sentry's Event Ingestion respects two domains within a Data Source Name (DSN):

1. The [organization subdomain](https://forum.sentry.io/t/organization-subdomains-in-dsns/9360)
2. Sentry's apex domain

Sentry's apex domain (`sentry.io`) accepts events from the same IP address as the Dashboard and API:

```plaintext
35.186.247.156/32
```

Sentry's organization subdomains (`o<number>.ingest.sentry.io` and `o<number>.us.ingest.sentry.io`) accept events from a separate IP address:

```plaintext
34.120.195.249/32
```

Sentry's organization subdomains in the EU (`o<number>.ingest.de.sentry.io`) accept events from:

```plaintext
34.120.62.213/32
130.211.36.74/32
```

Sentry's legacy ingestion hostname (`app.getsentry.com`) accepts events from a separate IP address:

```plaintext
34.96.102.34/32
```

Organizations in the EU Data Storage Location are unable to ingest events via `sentry.io` or `app.getsentry.com`. You can use `o<number>.ingest.de.sentry.io` instead.

## [Outbound Requests](#outbound-requests)

In some circumstances the Hosted Sentry infrastructure might send HTTP requests your way. Primarily this is relevant to [*JavaScript Source Maps*](/platforms/javascript/sourcemaps/), but also affects things like webhooks and other integrations.

Sentry uses the following IP addresses to make outbound requests:

US Data Storage Location

```plaintext
35.184.238.160/32
104.155.159.182/32
104.155.149.19/32
130.211.230.102/32
```

EU Data Storage Location

```plaintext
34.141.31.19/32
34.141.4.162/32
35.234.78.236/32
```

## [Allowing Access via Nginx](#allowing-access-via-nginx)

To allow access to source maps with Nginx for instance, you can use this location example. This example assumes your source maps live in `/static/dist`:

```nginx
location ~ ^/static/dist/(.+)\.map$ {
    alias /your/path/site/static/dist/$1.map;

    allow 35.184.238.160/32;
    allow 104.155.159.182/32;
    allow 104.155.149.19/32;
    allow 130.211.230.102/32;
    deny all;
}
```

## [Allowing Access via Apache](#allowing-access-via-apache)

To allow access to source maps with Apache you can use this example. It can either go into your *.htaccess* or global config. This example assumes your source maps live in `/static/dist`:

```apacheconf
<FilesMatch "\.map$">
    Order deny,allow
    Deny from all
    Allow from 35.184.238.160/32
    Allow from 104.155.159.182/32
    Allow from 104.155.149.19/32
    Allow from 130.211.230.102/32
</FilesMatch>
```

## [Email Delivery](#email-delivery)

All email is delivered from [SendGrid](https://sendgrid.com/) from the following dedicated, static IP addresses:

```plaintext
167.89.86.73
167.89.84.75
167.89.84.14
```

These IP addresses are only for Sentry use.

## [Uptime Monitoring](#uptime-monitoring)

Sentry uses the following IP addresses for uptime checks for all regions:

```plaintext
34.123.33.225
34.41.121.171
34.169.179.115
35.237.134.233
34.85.249.57
34.159.197.47
35.242.231.10
34.107.93.3
35.204.169.245
```

### [Dynamic IP Address Retrieval](#dynamic-ip-address-retrieval)

For the most up-to-date list of Uptime Monitoring IP addresses, you can query the following API endpoint:

```plaintext
https://us.sentry.io/api/0/uptime-ips/
```

This endpoint returns a newline-separated list of all current Uptime Monitoring IP addresses (for all regions) that can be programmatically processed in your allowlist configurations.

##### Note

Uptime Monitoring IP addresses may change over time. If you need to programmatically verify whether a visitor is a Sentry bot, we recommend checking the [user agent](/product/uptime-monitoring/troubleshooting/#user-agent) instead.
