Skip to content
Coritan Docs

Set up the services your plan includes

Create the Mail Hosting, SMTP Relay and Object Storage services your account plan includes at no charge, and see how they follow your plan.

View as Markdown

Every account plan, Free included, comes with three services at no charge: a Mail Hosting service, an SMTP Relay service and an Object Storage service, each sized to the plan. You set up each one once, when you need it. When your plan changes, Coritan resizes the service to match, with no invoice. You can set them up through the API before account plans open on your account, and they have the Free plan's sizes until then.

  • Account plans are open on your account, for the dashboard's buttons. Before they open, set the services up through the API (With the API).
  • Each account can hold one free service of each kind. If you already have the free SMTP Relay plan, it is your included SMTP Relay, and it follows your plan from now on.

What each plan includes lists each service's size on each plan.

In the dashboard, each product offers the service your plan includes until you have it:

Mail Hosting
In Email, select Set up free email… (Set up the email your plan includes).
SMTP Relay
In Email, select Set up free SMTP Relay… (Set up the email your plan includes).
Object Storage
In Object Storage, select Create free storage (Create the storage your plan includes).

A new account's first page, What do you want to do first?, offers the email and the storage too (Choose what to do first). Each dialog asks for the verification check while it is on, and opens the new service when you confirm.

Coritan sets the service up as it does any order, and it renews at $0. Its header has an Included in your plan badge. Once it is active, use it like any other service of its kind: add mailboxes, add a sending domain or create buckets.

When your account moves to another plan, starts or ends a trial, or has a plan suspended or restored, Coritan resizes each included service to the new plan's size. The Activity table on the service's Billing tab lists each resize, such as Resized to the Pro plan's allowance.

When the new size is smaller than what a Mail Hosting or SMTP Relay service already uses, Coritan keeps the service at what it uses, and the entry says so: Resized to the Free plan's allowance, and held at 7 mailboxes, which the service already uses. You cannot add more until the service is back within the plan. Coritan looks again each day and lowers the service as you remove things. Object Storage moves to the new allowance and keeps every file. Storage above the allowance counts as it does on any Object Storage service (When your buckets hold more than the allowance).

In the dashboard, the dialog shows the reason under its title, such as Could not set up the email or Could not create the storage. Over the API, it is the answer's detail, with the status in the first column.

Status detail Cause
400 Included services follow your account plan. Change your plan instead. You tried to change an included service's plan. Choose another account plan instead.
403 {"error": "turnstile_failed", ...} The verification check is on, and turnstile_token is missing or did not pass.
404 Included services are mail, sending and storage. kind is not mail, sending or storage.
409 {"error": "free_limit_reached", ...} The account has another free service of that kind. Cancel it, then try again.
422 {"errors": ["location_id is required and must be an integer"]} An Object Storage request without a location_id. errors lists every value the service cannot take.
429 {"error": "rate_limited", ...} The account created free services too often in a short time. Wait the number of seconds in retry_after_seconds, then try again.
503 Mail Hosting is not available right now. Try again later. The service cannot be set up at the moment.

Send POST /account/included/{kind}, where kind is mail, sending or storage.

  • Mail Hosting (mail) and SMTP Relay (sending) take an optional domain, the first domain to use. You can add it later.
  • Object Storage (storage) needs a location_id, and takes an optional bucket_name for a first bucket, with or without your account's prefix (Bucket names).
Shell
curl -X POST https://api.coritan.com/api/v1/account/included/mail \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com", "turnstile_token": "the-widget-answer"}'
Shell
curl -X POST https://api.coritan.com/api/v1/account/included/storage \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"location_id": 1, "bucket_name": "assets", "turnstile_token": "the-widget-answer"}'

The answer is the service, as GET /services/{service_ref} returns it: 201 when this request created it, and 200 with the service you already have. Once its status is active, it is ready. This answer is shortened:

JSON
{
  "id": 5311,
  "product_name": "Mail Free",
  "product_slug": "mail-free",
  "module_name": "mail",
  "status": "pending",
  "billing_cycle": "monthly",
  "amount": 0.0,
  "hostname": "example.com",
  "config": {
    "domain": "example.com",
    "mailboxes": 5,
    "storage_gb_per_mailbox": 1,
    "domains": 1,
    "included": {
      "plan": "free",
      "tier": "free",
      "quotas": {"mailboxes": 5, "storage_gb_per_mailbox": 1, "domains": 1},
      "applied": {"mailboxes": 5, "storage_gb_per_mailbox": 1, "domains": 1},
      "state": "applied",
      "revision": 1,
      "updated_at": "2026-09-26T09:30:00+00:00"
    }
  }
}

config.included in the service records what Coritan did:

plan, tier
The plan the service is sized for, and the size it uses: free, pro or business.
quotas, applied
The sizes the plan gives, and the sizes the service has now.
state
applied when the service has its sizes, pending while Coritan resizes it, and over_limit when it keeps more than the plan gives.
held
When state is over_limit, what the service keeps above the plan because it already uses it, such as {"mailboxes": 7}.
revision
A number that grows with each change.

API operations on this page

MethodPathWhat it does
POST/api/v1/account/included/{kind}Set up the mail, SMTP Relay or Object Storage your plan includes