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

# Public API

> Authenticate with an API key and upload files programmatically. The base URL, auth scheme, rate limits, and static IPs for allowlisting.

The Netter public API lets you push data into your workspace programmatically. Today it exposes a single endpoint—[file upload](/docs/api/upload-file)—authenticated with an [API key](/docs/api/api-keys).

## Base URL

```
https://api.netter.ai
```

Partners that allowlist outbound traffic by IP can use the [static-IP host](#connecting-from-an-ip-allowlisted-network) instead.

## Authentication

Send your API key as a bearer token:

```http theme={null}
Authorization: Bearer ntr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

Every key starts with the `ntr_` prefix and is tied to the user and company it was created in. See [API keys](/docs/api/api-keys) to create and manage them.

## Connecting from an IP-allowlisted network

If your network or partner only allows outbound calls to a fixed set of IPs, send requests to the dedicated ingest host instead of `api.netter.ai`. It routes to the same API through two **static IP addresses** that never change:

```
https://ingest.netter.ai
```

| Static IP        |
| ---------------- |
| `13.248.236.203` |
| `3.33.166.219`   |

Add both IPs to your firewall allowlist. Identity still comes from your API key, so the same key works against either host—no per-partner DNS or certificate changes are needed.

<Note>
  `api.netter.ai` and `ingest.netter.ai` serve the identical API. Use `ingest.netter.ai` only when you need the fixed IPs for allowlisting.
</Note>
