---
sidebar_position: 2.5
tags: [account, agents]
description: Sign up for Lium with a fingerprint — a random 32-character string, not a password. Scriptable headless via POST /api/auth/signup — no email or confirmation needed; designed for AI agents.
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Signing up without an email

Lium can create an account in **one click** — no email, no password, no wallet. Instead of a
password you get a **fingerprint**: one 32-character string that is both your login and the
only way back into the account. Despite the name, this is **not** a passkey, WebAuthn or
biometrics — it is a random 32-character string you store like a password, and a script or an
agent can obtain one through the HTTPS API (see [Script it](#script-it)).

Use it when:

- You want to rent a GPU **right now** and don't want to hand over an email address.
- An **AI agent** or a script is signing up on your behalf, headless, with no mailbox to confirm.
- You're trying Lium out and will decide about a real account later.

If you want password resets, receipts and balance alerts in your inbox, sign up with an email
instead — see [Quickstart](./quickstart).

## What a fingerprint is

A fingerprint is a 32-character random string, for example:

```
9lbcaReNipAqVExn7VJXpHMm5IFNZRae
```

It carries 192 bits of randomness, so it can't be guessed. Lium stores only a **hash** of it,
the same way passwords are stored. That has one consequence worth repeating:

:::danger The fingerprint is shown exactly once

Nobody at Lium can look it up, resend it or reset it — not support, not the founders. Lose the
fingerprint and the account is gone, along with any balance on it.

:::

A fingerprint is **not** an [API key](./api-keys). The fingerprint signs you in to the dashboard;
an API key authenticates requests to the API. Signup always mints the fingerprint and tries to
mint an API key; if that best-effort step fails, you can create a key later on the Access page.

## Sign up

1. Go to [lium.io/register](https://lium.io/register).
2. Press **Register with fingerprint**. There is nothing to fill in — Lium names the account for
   you (`lium_a1b2c3`).
3. Save the fingerprint from the screen that follows — copy it into your password manager, or
   use **Download as .txt**. Then tick the confirmation box and continue.

New accounts may get **$5 in free credits** when the platform has free credit enabled and no
other account has claimed it from the signup IP. The account is still created when either check
fails — just without the bonus.

## Script it

The web form is optional. The same signup is a single unauthenticated POST, which is what makes
this flow work for an AI agent or a script with no mailbox to confirm:

```bash
# an empty body is the whole request — the server names the account
curl -fsS -X POST https://lium.io/api/auth/signup \
  -H "Content-Type: application/json" \
  -d '{}'
```

```json
{
  "user_id": "ec8c2436-1039-45aa-a508-bcbe865fbcd8",
  "username": "lium_a1b2c3",
  "fingerprint": "9lbcaReNipAqVExn7VJXpHMm5IFNZRae",
  "api_key": "sk_...",
  "signup_credit_granted": true
}
```

Save `fingerprint` first — the response is the only place it ever appears, and it is the only
way back into the account. When `api_key` is a string, it is ready to use without a verification
step; renting then requires a balance sufficient to cover the minimum rental window:

```bash
curl https://lium.io/api/pods -H "X-API-Key: sk_..."
```

`api_key` can come back `null`: minting it is best-effort, and a failure there never blocks the
signup. In that case sign in with the fingerprint and create a key yourself — see
[API keys](./api-keys). `signup_credit_granted` tells you whether the free credit landed; read
it instead of assuming, since it is `false` both when the grant is switched off and when the
credit was already claimed from your IP.

`username` is only a display name — the fingerprint alone signs you in, and the web form does not
ask for a name at all. Omit it and the server generates `lium_` plus six hex characters. Send one
and it must be 3–32 characters from `a-z A-Z 0-9 _ -`, with `409` if it is already taken. The
endpoint is rate-limited per IP, with the same numbers as the form — see [Sign in](#sign-in)
below.
Signing up through the API is the only headless way into this flow today: the
[Lium CLI](/developers/cli/reference/signup) creates email accounts, not fingerprint ones.

## Sign in

1. Go to [lium.io/login](https://lium.io/login).
2. Scroll to **or sign in with your fingerprint**.
3. Paste the fingerprint and press **LOGIN WITH FINGERPRINT**.

Wrong fingerprints all get the same answer — *Invalid fingerprint* — whether the account exists
or not. Per IP address, sign-in is limited to 10 attempts per minute and signup to 5 per minute
and 20 per day; past that, wait and try again.

## What you give up without an email

| | Email account | Fingerprint account |
|---|---|---|
| Sign in with | Email + password | Fingerprint |
| Forgot the credential | Reset by email | **Account is lost** |
| Email notifications (receipts, low balance) | Yes | Not delivered |
| Rent pods, use the API and CLI | Yes | Yes |
| $5 signup credit | Conditional on platform and signup IP | Conditional on platform and signup IP |

Everything about renting works the same: pods, volumes, backups, templates, the CLI and the API
behave identically for both kinds of account.

## Storing it safely

- Put it in a password manager as you would a password.
- Treat it like a bearer token: anyone who has the string **is** you, and can spend your balance.
- Don't paste it into a pod, a screenshot, a support ticket or a public repository. Lium support
  will never ask for it — see [Official support and scams](/security/official-support-and-scams).
- Keep a second copy somewhere offline. There is no recovery path.
