Images & add-ons
Add-ons
Extras for a machine or for the whole account. 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.
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:
{"exit": {"mode": "fixed"}}Available in US East. Needs a verified email and a paid plan: an active Starter, Growth or Scale plan, not the free trial, and not while a payment is failing. Details in Networks.
Residential IP
Paid plans. Not billed separately yet
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:
{"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 or Scale 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 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.
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 while awake. 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:
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 Persistent Sandboxes
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 Persistent Sandbox. Set the size, 0 to 100, on the project (key scope deploy):
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.
Models
The Maritime model proxy gives every machine one OpenAI-format key for every major model, 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.
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.
# 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
codingorllm-apispreset, your own allow list, or no internet. Enforced outside the machine. See Networks. - Bring your own proxy: send country traffic through a proxy you already pay for (
ownProxyUrlin 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.
- 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.