> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pyx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Static IP addresses

pyx supports static IP addresses for customers who need to allowlist IP
addresses in their firewall configurations. This feature uses Anycast routing to
provide a stable set of IP addresses that can be used to access pyx services.

<Note>
  Static IP support must be enabled for your organization. Please [contact
  us](/contact) to enable this feature.
</Note>

## When to use static IPs

Static IPs are useful for machines running in a network-isolated environment
that want to access pyx. With this feature enabled, you can allowlist a fixed
set of pyx IP addresses in your firewall configurations.

## IP addresses to allowlist

Once static IP support is enabled for your organization, you'll need to
allowlist the following IP addresses in your firewall:

```text title="IPv4 addresses" expandable theme={null}
3.163.252.163
3.163.251.163
3.163.250.163
3.163.249.163
3.163.248.163
3.163.247.163
3.163.246.163
3.163.245.163
3.163.244.163
3.163.243.163
3.163.242.163
3.163.241.163
3.163.240.163
3.163.239.163
3.163.238.163
3.163.237.163
3.163.236.163
3.163.235.163
3.163.234.163
3.163.233.163
3.163.232.163
```

```text title="IPv6 addresses" expandable theme={null}
2600:9000:2714:0:a100:0:4:9d02
2600:9000:2713:0:a100:0:4:9d02
2600:9000:2712:0:a100:0:4:9d02
2600:9000:2711:0:a100:0:4:9d02
2600:9000:2710:0:a100:0:4:9d02
2600:9000:270f:0:a100:0:4:9d02
2600:9000:270e:0:a100:0:4:9d02
2600:9000:270d:0:a100:0:4:9d02
2600:9000:270c:0:a100:0:4:9d02
2600:9000:270b:0:a100:0:4:9d02
2600:9000:270a:0:a100:0:4:9d02
2600:9000:2709:0:a100:0:4:9d02
2600:9000:2708:0:a100:0:4:9d02
2600:9000:2707:0:a100:0:4:9d02
2600:9000:2706:0:a100:0:4:9d02
2600:9000:2705:0:a100:0:4:9d02
2600:9000:2704:0:a100:0:4:9d02
2600:9000:2703:0:a100:0:4:9d02
2600:9000:2702:0:a100:0:4:9d02
2600:9000:2701:0:a100:0:4:9d02
2600:9000:2700:0:a100:0:4:9d02
```

These addresses serve content for the following static domains:

* `api-static.pyx.dev`
* `files-static.astralhosted.com`
* `views-static.astralhosted.com`
* `conda-static.astralhosted.com`

## Configuration

When using static IPs, you must configure uv to use API key authentication and
the static API endpoint.

### Authentication

Static IP access requires API key authentication. You cannot use OAuth-based
authentication (`uv auth login`) with static IPs.

Create an API key in the [pyx dashboard](https://app.pyx.dev) and set it as an
environment variable:

```shell theme={null}
export PYX_API_KEY=sk-pyx-...
```

See [Authentication](/authentication) for more ways of authenticating with pyx.

### API URL configuration

Configure uv to use the static API endpoint:

```shell theme={null}
export PYX_API_URL=https://api-static.pyx.dev
```

### Installing packages

With the static API URL configured, you can install packages using the static
endpoint:

```shell theme={null}
uv pip install fastapi --index https://api-static.pyx.dev/simple/pypi
```

For example, to install from the PyPI proxy:

```shell theme={null}
uv pip install fastapi --index https://api-static.pyx.dev/simple/public/pypi
```

Or configure the index in your `pyproject.toml`:

```toml theme={null}
[[tool.uv.index]]
name = "pypi"
url = "https://api-static.pyx.dev/simple/public/pypi"
```

### Publishing packages

When publishing packages via the static interface, use the static upload
endpoint:

```shell theme={null}
uv publish --publish-url https://api-static.pyx.dev/v1/upload/acme/main
```

## Limitations

The following limitations apply to the static IP feature:

### Proxied public packages

If [mirroring](/mirroring) is not enabled, packages from public sources will
still be served from the upstream source (e.g., PyPI) instead of pyx. If your
environment does not allow access to these sources, consider
[turning on mirroring](/mirroring#toggling-delivery-modes) via the
[Settings tab](https://app.pyx.dev/team/settings).

### Performance considerations

Due to the Anycast routing architecture, static IPs have higher latency compared
to the standard dynamic IP-backed domains. You should expect package resolution
to be approximately 30% slower, depending on the number of packages being
resolved. Install and upload performance are effectively unchanged.

### Dashboard access

The [pyx dashboard](https://app.pyx.dev) is not currently available with static
IPs. You can still use it from machines that are not behind a network-isolated
firewall.

## Getting help

If you need assistance with static IP configuration or have questions about this
feature, please [contact us](/contact).
