> ## Documentation index
> Fetch the complete index at: https://maritime.sh/llms.txt
> Setup procedure for AI agents (install, sign in, deploy, verify): https://maritime.sh/agents.md
> This page as HTML: https://maritime.sh/docs/add-ons

# Add-ons

Images & add-ons

Add-ons are extras for a machine or for the whole account: network exits, private networks, warm
pools, dedicated hosts and model spend limits. The current plans bill machines and disk only, so the
add-ons that work today cost nothing extra for now; each one will get a price before
it is billed separately. How machines are billed is in
[Billing & plans](https://maritime.sh/docs/billing).

## Network

### Static IP

Paid plans. Not billed separately yet

A fixed outbound address, kept through sleep and wake, for partners that allowlist by IP. Your
account has one address per region, shared by every machine set to it. Set the machine's exit to
`fixed`:

```json
{"exit": {"mode": "fixed"}}
```

Available in US East. Needs a verified email and a paid
plan: an active Starter, Growth, Scale or Dedicated plan, not the free trial, and not while a payment is
failing. Details in [Networks](https://maritime.sh/docs/networks#the-three-settings).

### Residential IP

$10 a month upfront, includes $10 of traffic, then $7 per GB

Traffic leaves through an exit in the country you pick, for sites that block data centres. Set the
exit to `country` with a country code from the list the account is offered:

```json
{"exit": {"mode": "country", "countryCode": "DE"}}
```

Country traffic has a monthly cap per account, 50 GB by default; past it the machine drops the
country exit until the month ends. TCP only, UDP is dropped. Not available on accounts that declared
patient data. Needs a verified
email and a paid plan: an active Starter, Growth, Scale or Dedicated plan, not the free trial, and not while a
payment is failing.

### Private network

Every plan. Not billed separately yet

Reach systems inside a customer's office, such as an ERP or a database, through a small connector
installed on their side. No VPN. You add each system as a resource, then allow a machine to reach it
with `access`, or send all of its traffic out through the office with the `through` exit.

See [Networks](https://maritime.sh/docs/networks) for the connector, the CLI (`maritime connect`)
and the API. Works on every plan, the free trial included.

## Storage

### Volumes

On request

Disk that outlives the machine: attach it to any machine, move it between machines, or keep it
after a delete. Set up on request: [contact us](https://maritime.sh/contact).

## Runtime

### Always on

Earlier seat plans only

The current plans don't sell always on: machines run on demand, sleep when idle, wake in about a
second on the next request, and are billed per second. On these plans the resize call
below answers 400 `always_on_not_sold`.

Accounts on an earlier seat plan switch it on for an existing machine:

```bash
curl -X POST https://api.maritime.sh/api/agents/AGENT_ID/resize \
  -H "Authorization: Bearer $MARITIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"always_on": true}'
```

The body field is `always_on`, with an underscore.

### Warm pool

Available. Spares are billed as agent boxes

Spare machines kept ready in a project, so a new end user gets one at once instead of waiting for a
cold start. The first message from a new user claims a spare, and the pool tops itself back up. Each
spare is a machine, billed like any agent box. Set the size, 0 to 100, on the project (key
scope `deploy`):

```bash
curl -X PATCH https://api.maritime.sh/api/projects/PROJECT_ID \
  -H "Authorization: Bearer $MARITIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"warmPoolSize": 5}'
# the response includes warmPoolSize and warmReady (spares ready now)
```

## Trust

### Dedicated host

On request

A whole server for your machines only. Nothing else runs on it.

**Compliance (HIPAA, BAA)** is on request. [Contact us](https://maritime.sh/contact).

## Models

The Maritime model proxy ([Maritime LLM](https://maritime.sh/docs/llm)) gives every agent its own key to
OpenAI models through one OpenAI-compatible endpoint, with a monthly budget per agent. Its calls are paid from prepaid AI credits at the provider's list price,
separate from your plan; buy them on the Billing page. With your own OpenAI key, calls go to OpenAI
on your key and use no AI credits. See [Model calls](https://maritime.sh/docs/billing#ai-credits).

Cap what an agent spends on models each month, in cents, from the agent's page in the dashboard or
over REST. An agent with no limit of its own follows the account default; a `null` limit means no
limit for that agent, even when a default is set. Once an agent reaches its limit, its proxy calls
answer 429 until the next month. Writes need the `manage` scope.

```bash
# one agent: $25 a month
curl -X PUT https://api.maritime.sh/api/agents/AGENT_ID/llm-spend-limit \
  -H "Authorization: Bearer $MARITIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"monthlyLimitCents": 2500}'
# {"monthlyLimitCents": 2500, "source": "agent", "spentThisMonthCents": 0,
#  "limitReached": false, "periodStart": "...", "periodEnd": "..."}

# every agent without its own limit: $10 a month
curl -X PUT https://api.maritime.sh/api/llm-spend-limit/default \
  -H "Authorization: Bearer $MARITIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"monthlyLimitCents": 1000}'
```

`GET` on either path reads the limit; `source` is `agent`, `account_default` or `none`.
`DELETE` removes it (204): an agent then follows the account default, and the account has no
default. Limits run from 0 to 1,000,000 cents.

## Included with every machine

These are free and need no add-on:

- **Internet policy**: everything, the `coding` or `llm-apis` preset, your own allow list, or no
  internet. Enforced outside the machine. See [Networks](https://maritime.sh/docs/networks).
- **Bring your own proxy**: send country traffic through a proxy you already pay for
  (`ownProxyUrl` in the network settings).
- **Public URL**: serve HTTP from the machine at its own address, private by default, with share
  links that expire. See [Public web agents](https://maritime.sh/docs/web-apps).
- **Smart sleep**: sleep when idle, wake in about a second on the next request.
- **Human takeover**: send a link and a person drives the screen of a computer, then hands it back.
  See [Linux desktops](https://maritime.sh/docs/computers).

## Related

- [All add-ons on the site](https://maritime.sh/add-ons)
- [Billing & plans](https://maritime.sh/docs/billing)
- [Networks](https://maritime.sh/docs/networks)
