Region waitlist
Some locations are on the list but not open for business. Rather than hide them — which is the same as pretending nobody wants them — we show them, say why you can't have one, and let you put your name against it. That's the waitlist. It's how we decide where to build next.
The four answers a region can give you
In the deploy wizard's Region step, every location we list is shown — including the ones you can't pick. The chip on the card tells you which kind of "not right now" it is:
| The card says | What it means | What you can do |
|---|---|---|
| (no chip — it's selectable) | Open, with machines free. | Deploy. |
| Coming soon | We've announced the location but haven't opened it. There's nothing there to run out of yet. | Tap it, then Tell us you want it. |
| Fully booked | It's open, but every machine there is committed. | Tap it, then Join the queue. |
| No capacity | The location is open — we just have no machine free at this exact moment. | Try again shortly. There's no waitlist for this one, because there's nothing to announce; it clears itself. |
Tapping a Coming soon or Fully booked card doesn't select it for deploy — it opens a panel under the grid explaining the situation, with the join button and how many people are already waiting.
We publish the same picture — every listed location, its state, and how many accounts are waiting on it — for the public site to render, so what's coming is visible before you ever sign in.
A closed region really is closed
The deploy API refuses a coming-soon or fully-booked region outright (region_coming_soon,
region_out_of_stock), and the placement scheduler won't drop a server into one even if you name no
region at all. Seeing a region listed is not a way in through the back door — joining the waitlist is the
only thing to do with it.
Why you need an account to join
Because it's a vote, not a click counter. One account can hold one entry per region, and the count we show is a headcount of real accounts. That's what makes the number worth acting on: nobody can inflate it by refreshing a page, and we can't fool ourselves with it either.
So if you're not signed in when you click join, you'll be asked to sign in or create an account first — and then you land back on the region you came for, already on its list. You don't have to find it again. Signing up is free and takes an email address; you don't need to add funds to register interest in a location.
Joining is owner-only on team accounts
The vote belongs to the account, not to whoever happens to be driving it. If you're acting on someone else's account as a team collaborator, joining and leaving are reserved for the account owner — you'll see "This action is reserved for the account owner." See Team & collaborators.
What joining does — and what it doesn't
Joining records one line: your account, the region, when you asked, and which page you asked from. The region's waiting count goes up by one immediately, the card reads You're on the list, and the button becomes a way back out.
It does not:
- reserve capacity or hold a machine for you,
- give you a queue position — there's no "you're number 12", because we open a location for everyone at once,
- lock in a price,
- start any billing. A waitlist entry costs nothing and touches your wallet in no way at all.
Nothing emails you automatically yet
We don't have automated waitlist notifications built. Your entry is the list our team writes to when a location opens, and today that send is done by hand. So treat it as "we now know you want this," not as an alarm clock — if a location matters to you, it's worth checking the deploy page too.
Clicking join twice is harmless: the second one changes nothing and keeps your original joined date. You'll never end up with two entries or push the count up twice.
Leaving
Open the same region's panel and click Take me off the list (or Leave the queue on a fully-booked one). Your entry is deleted and the count drops by one right away — it's a withdrawal, not an archive, because a count that included people who changed their mind would send us to build in the wrong place.
One consequence worth knowing: leaving throws away your joined date. Join again later and you're recorded as having asked from that moment, not from the first time. If you're only unsure, leaving it be costs you nothing.
What we can see
An entry carries your account's email and name, the region, the time you joined, and the surface you joined from (the public site, the deploy page, or the console). Nothing else — no wallet, no servers, no browsing.
Inside Ekire it's readable only by staff who hold the fleet-capacity permission, because deciding where to add hardware and writing to the people who asked for it are the same job. The public counts on the site and the deploy page are just numbers: they never carry a name, an email, or a join time.
There's deliberately no "My waitlists" page in the console — the state lives where you'd act on it, next to the region itself.
From the API
Three endpoints, all documented in the API reference. Joining is idempotent, so a retry after a dropped connection is safe:
POST /api/v1/waitlist
Authorization: Bearer <token>
Content-Type: application/json
{ "subjectType": "region", "subjectKey": "fra-1", "source": "console" }{
"subjectType": "region",
"subjectKey": "fra-1",
"subjectLabel": "Frankfurt",
"source": "console",
"joinedAt": "2026-08-01T16:23:57.277Z",
"count": 12
}DELETE /waitlist/region/fra-1 withdraws it — and answers 200 with "left": false if you weren't on the
list, rather than an error. GET /waitlist/me returns everything your account is waiting on. Both writes are
capped at 30 requests a minute.