Getting Access
How new Amba accounts get access while signups reopen in steps. Where to pass an invite code (API, MCP, CLI, console), what SIGNUPS_CLOSED, INVITE_REQUIRED, and INVITE_INVALID mean, and how to request access.
Amba is reopening new-account signups in steps. While signups are invite-only, creating a new account needs an invite code; signup tells you which mode applies by its answer. Existing accounts keep working as before. Login, token refresh, PAT rotation, and the projects you already have are unaffected.
Signup modes
Amba sets one signup mode for the whole platform:
| Mode | New accounts |
|---|---|
invite_only | Need a valid invite code. |
open | Anyone can sign up. An invite code is optional. |
closed | Nobody can sign up. Invite codes are refused in this mode too. |
While access is limited, creating projects is limited too. An account created with an invite code can create projects right away.
Invite codes
A code is AMBA- followed by four groups of four letters and digits, for
example AMBA-7KQ2-M9XD-4TNB-HR3W. Case, spaces, and dashes are ignored, so a code pasted from an email works however it got wrapped. A code
usually works once and may expire; the invite email gives the expiry date
when there is one.
The code is spent only when the account is actually created. A signup that
fails for another reason (for example 409 EMAIL_EXISTS) leaves the code
usable.
Pass the code
| Surface | Where the code goes |
|---|---|
| API | invite_code in the body of POST /v1/auth/developer/signup |
| MCP | invite_code argument on amba_developer_signup (and amba_affiliate_signup) |
| CLI | npx -y @layers/amba init --invite <code>. The headless signup also reads AMBA_INVITE_CODE. |
| Console | The Invite code field on app.amba.dev/signup. The link in your invite email (https://app.amba.dev/signup?invite=<code>) fills it in, and Sign up with GitHub carries it. |
When signup is refused
Each refusal is a 403 in the standard error envelope, with the
request-access link in details:
| Code | Meaning | What to do |
|---|---|---|
INVITE_REQUIRED | Signups are invite-only and the request had no code. | Retry with invite_code. No code yet? Request access. |
INVITE_INVALID | The code is mistyped, expired, revoked, or already used. | Check the code and retry. If it still fails, request access for a fresh code. |
SIGNUPS_CLOSED | New accounts are closed for now, with or without a code. | Request access and wait for the invite email. |
Coding agents: on INVITE_REQUIRED or INVITE_INVALID, ask the human
for the invite code from their email and call signup again with it. If they
have no code, or the answer is SIGNUPS_CLOSED, request access with the
human's own email, tell them the code arrives by email, and stop. Retry only
with a code the human gives you.
Request access
Fill in the form at app.amba.dev/request-access, or call the API:
note is optional (the first 500 characters are kept). Every well-formed
email gets the same 200 { "data": { "ok": true } }, and asking again for the
same address is safe. The endpoint is rate-limited per IP. Full reference:
POST /auth/developer/waitlist.
The invite email
When access is granted, Amba emails the address that requested it. The email contains:
-
Your invite code.
-
A signup link with the code filled in (
https://app.amba.dev/signup?invite=<code>). -
A one-line prompt to paste into your coding agent:
-
The terminal form:
npx @layers/amba init --invite <code>. -
The expiry date, when the code has one.
Paste the prompt into your agent and it signs up with the code and wires Amba into your app.
Existing accounts
Accounts that already exist sign in as before: the console, amba login, or
amba_developer_login. Their projects keep running. If creating a new project
answers 403 SIGNUPS_CLOSED, the account is not cleared to create projects
while access is limited. An invite code clears it: redeem the code on the
signed-in account with POST /v1/auth/developer/redeem-invite
{ "invite_code": "<code>" } (developer Bearer). No code yet? Request access
as above, or contact support@layers.com.