Skip to content
On this page

Account

Free plan

The exact activation flow, what unlocks, and the limits that apply.

Free access is a verified account plus an eligible free status. It is separate from your paid balance: the free model bills $0 and works at a $0.00 balance, while paid models still require credit.

What you get

ItemValue
Free modeldeepseek-v4.1-flash-1017:free
PriceNo token cost and no network fee.
Per-account tokensTotal free-model tokens for the life of the account.
Daily input capPer account, per UTC day, across all keys.
Daily output capPer account, per UTC day, across all keys.
UniquenessEnforced per fingerprint, per IP, and up to 3 per ASN.
Balance requiredFree models bypass the funds gate. Paid models still need a positive balance.

How activation works

Four steps, all enforced server-side. Nothing is granted automatically.

  1. 1

    Create a RelayRouter account

    Sign up at /signup with a supported consumer mailbox. The same address is what you enter in Discord in the next step.
  2. 2

    Join the Discord server and press the free-plan button

    Join discord.gg/fbHpZfVMC7, then use the free-plan button. A modal asks for your account email. The bot refuses if the interaction is not inside the guild, you are not a current member, or your Discord account is younger than 14 days.
  3. 3

    Type the code from the image

    The bot replies with a captcha image containing a short code. Press Enter code and type it. Codes expire after 5 minutes and allow a few attempts. On success the bot sends a single-use redeem link: https://api.relayrouter.org/redeem?code=….
  4. 4

    Claim on the site

    Open the link, sign in again on that page, solve the Turnstile check, and press Claim free plan. The link is valid for 30 minutes and works once.

Sign in again on the claim page

An existing session or an API key is not enough. The claim requires a sign-in issued in the last 15 minutes, which is why the page asks for your email and password again.

Result

{
"ok": true,
"dm": true,
"free": { "status": "eligible", "discord_age_days": 30 }
}
  • The account is marked verified = 1 and free_status = eligible.
  • The free model is enabled for the account and bills $0.
  • A row is written to free_claims with fingerprint, IP, ASN, and Discord id, so the one-per-device and one-per-network rules hold.

Claim endpoint

POST/redeem/claimFresh JWT
{
"code": "<from Discord>",
"turnstile": "<turnstile token>",
"fingerprint": "<same client fingerprint as signup>"
}

Send Authorization: Bearer <JWT> from the sign-in on the claim page. API keys are rejected.

Server-side checks

CheckFailure
JWT present (API keys rejected)Sign in with your account to continue.
JWT issued within 15 minutesSession is too old — sign in again to claim.
Code exists, unused, unexpiredAlready redeemed / code expired.
Code belongs to this accountThis code belongs to a different account.
Turnstile validCaptcha failed — try again.
Discord age ≥ 14 daysYour Discord account must be at least 14 days old.
Still a guild memberJoin our Discord server first, then claim.
≤ 1 claim per fingerprintThis device already claimed a free plan.
≤ 1 claim per IPThis network already claimed a free plan.
ASN concentration below 3Too many free plans from this network provider.

Checking your allowance

GET/account/limitsJWT or API key

daily_model_caps[] carries today's usage for every capped model, including the free one:

{
"daily_model_caps": [{
"model": "deepseek-v4.1-flash-1017:free",
"name": "DeepSeek V4.1 Flash 1017 (free)",
"input": { "limit": 700000, "used": 82, "remaining": 699918 },
"output": { "limit": 300000, "used": 32905, "remaining": 267095 },
"resets_at": 1792540800
}]
}

remaining is -1 for a side with no cap, and resets_at is the next UTC midnight. The limits page renders these as bars.

Platform pool

GET/free-statusPublic
{
"per_user_cap": 2000000,
"global_cap": 200000000,
"global_used_today": 1482033,
"locked": false,
"verified_required": true
}

When the shared daily pool is exhausted, locked is true and free calls return 403 until 00:00 UTC. This pool is platform-wide, not per account.

Errors when using the free model

StatusErrorMeaning
403free models require a verified accountYou have not claimed the plan and have no completed deposit.
403free access is disabled on this accountThe account is suspended or throttled for free access.
403free tier at capacity — back tomorrowThe platform-wide daily pool is exhausted.
403free token quota exhausted (2M)The per-account free-token lifetime cap is used up.
403daily input limit reached for this model: …Today's per-account input cap is reached.
403daily output limit reached for this model: …Today's per-account output cap is reached.

Skip the queue with a deposit

Any completed deposit also verifies the account, so the free model unlocks immediately — and every paid model becomes available. There is no subscription, the minimum top-up is $0.50, and balances do not expire.

Anti-abuse summary

LeverWhereDefault
Signup captcha/auth/signupTurnstile, when configured.
Email provider allowlist/auth/signupServer-configured consumer providers.
Canonical email/auth/signupDots and +tags collapse — one account per human.
Daily signup budget/auth/signup1 per IP and 1 per fingerprint per UTC day.
Sign-in throttle/auth/signin10 failures per IP + email per 15 minutes.
Discord age + membership/redeem/claim≥ 14 days, current guild member.
Claim uniqueness/redeem/claim1 per fingerprint, 1 per IP, 3 per ASN.
Daily token capschat / embeddingsAtomic per account per model.
Kill switchusers.free_statussuspended → free models return 403.