Docs

Install Incursion, sign in, and call the Excession API.

Install

# macOS and Linux
curl -fsSL https://excessionlabs.ai/install.sh | sh

# Windows (PowerShell)
irm https://excessionlabs.ai/install.ps1 | iex

The script installs Incursion and puts the excession command in ~/.local/bin (Windows: %LOCALAPPDATA%\Excession\bin). Set EXCESSION_INSTALL_DIR to choose another folder, or EXCESSION_VERSION to pin a version.

Sign in

excession

On first launch you choose one of the two models, then browser sign-in opens. Your Excession plan credit and balance pay for usage. The defaults are 12 workers and high reasoning.

excession login              # sign in again
excession whoami             # plan credit, balance and available
excession billing            # open Billing to add funds or pick a plan
excession billing --use-balance on   # use balance after plan credit
excession logout             # revoke this device login

The CLI shows a code like BCDF-GHJK and opens excessionlabs.ai/device. Check that the code matches, then press Approve. The CLI receives its own API key; you can revoke it on the API keys page.

Signing in creates your account with $5 API credit, once per new account. No card required. Use it for your first requests, then add funds from $0.50 or pick a plan in Billing. Using the service means you accept the Acceptable Use Policy.

Models and reasoning

/model (or /models) lists deepseek/deepseek-v4.1-flash-1017 and deepseek-v4.1-flash-abliterated. Both run through the Excession API. /effort high sets reasoning directly; /effort opens the picker.

The app is fullscreen. Scroll messages with the wheel or PgUp/PgDn; the composer stays at the bottom. Ctrl+End follows the latest message.

Plan credit and balance

You pay in US dollars. A plan gives plan credit each month; Add funds adds balance. Without a plan, requests use your balance.

OptionYou payPlan credit or balanceExtraUnused money
Pay as you goAdd funds: $0.50 to $1,000, card or cryptoSame amount as balance0%Never expires
Starter$20/month$30/month+50%Ends at renewal
Pro$100/month$175/month+75%Ends at renewal
Max$200/month$400/month+100%Ends at renewal
Ultra$500/month$1,250/month+150%Ends at renewal

Balance never expires while your account is open, including after you cancel a plan. Each plan covers one person.

Debit order

OrderMoneyWhen it is empty
1stPlan creditBalance pays next. If Use balance after plan credit is off: HTTP 402 balance_use_off
2ndBalanceHTTP 402 insufficient_funds

The setting is on by default. Change it in Billing or with excession billing --use-balance off. Available is what requests can spend now.

Alerts

The console and the CLI warn you at 80% and 95% of plan credit, when requests move to your balance, and when money is low.

Set Email me when available funds fall below in Billing (default $5). We send the email once, and again only after you add funds.

Streaming latency: measured timings, errors and raw data.

Prices

USD per 1M tokens
Model, USD per 1M tokensInputCached inputOutput
DeepSeek V4.1 Flash$0.035$0.005$0.50
DeepSeek V4.1 Flash Abliterated$0.20$0.025$0.80

Output includes reasoning tokens. Plans and pay as you go use the same prices. Compare models or estimate your monthly API cost.

A request holds an input estimate plus its maximum output (16,384 tokens by default), then releases what it does not use. If a request does not fit what is available, lower its maximum output.

Money fields

Field names for each money value in GET /v1/me and in an HTTP 402 body.

ValueGET /v1/meHTTP 402 body
Plan credit per monthplan.credit_usd—
Plan credit leftplan.credit_left_usdplan_credit_left_usd
New plan credit onplan.resets_atresets_at
Balancebalance_usdbalance_usd
Balance use on or offbalance_use_enabled—
Available nowavailable_usdavailable_usd
Cost of the request—required_usd
Where to add fundsbilling_urlbilling_url
Account statestate: ok, low, no_funds, plan_80, plan_95, plan_used_balance or plan_used_balance_off

Referrals

Every account has one referral link, https://excessionlabs.ai/r/<code>. Find it on the Invite page in the console, or run excession invite.

Their first paymentThey get, onceYou get
Add funds, for example $5010%: $5.00$10.00
Starter, $20$2.00$10.00
Pro, $100$10.00$15.00
Max, $200$20.00$25.00
Ultra, $500$50.00$50.00
  • Both rewards go to the balance when the first payment clears. A refund or dispute reverses both.
  • A visit to your link counts for 30 days, and only for a new account.
  • At most $500.00 of rewards per month (UTC) for each person who invites. Self-referral does not count, including with the same card or Stripe customer.

Each step shows in Activity. See the Terms for the full rules.

API

Base URL https://api.excessionlabs.ai/v1 (also served at https://excessionlabs.ai/v1). Send your key as Authorization: Bearer exl_... or x-api-key: exl_....

EndpointFormat
POST /v1/chat/completionsOpenAI Chat Completions
POST /v1/responsesOpenAI Responses
POST /v1/messagesAnthropic Messages
GET /v1/modelsModel list with prices
GET /v1/meAccount: plan credit, balance and available

All three formats support streaming and tool calls. Every response carries an X-Request-Id header; non-streaming responses also carry X-Cost-Usd.

curl https://api.excessionlabs.ai/v1/chat/completions \
  -H "Authorization: Bearer $EXCESSION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek/deepseek-v4.1-flash-1017","messages":[{"role":"user","content":"hello"}]}'

Errors

Money errors are always HTTP 402. Retrying does not help until you add funds or change the setting. 429 is never a money error: it means a rate limit or a busy model.

StatuscodeMeaning
401invalid_api_keyMissing, wrong or revoked key.
402insufficient_fundsNot enough funds for this request. Add funds at the billing_url in the body, or reduce max output.
402balance_use_offPlan credit is used up and you have a balance, but balance use is off. Turn on Use balance after plan credit or run excession billing --use-balance on.
429rate_limited / model_busyMore than 600 requests per minute on one key, or the model is busy. Wait for Retry-After seconds.
503service_unavailableTemporary. You were not charged.

A 402 body gives the numbers in the money fields.

Device login for tool builders

Any client can sign in the way the CLI does, using the OAuth 2.0 Device Authorization Grant (RFC 8628).

POST /v1/device/code   {"client_name": "excession-cli 0.1 on my-laptop"}
→ {"device_code", "user_code": "BCDF-GHJK", "verification_uri", "verification_uri_complete", "expires_in": 900, "interval": 5}

POST /v1/device/token  {"device_code": "...", "grant_type": "urn:ietf:params:oauth:grant-type:device_code"}
→ 400 {"error": "authorization_pending"}   keep polling every interval seconds
→ 400 {"error": "slow_down"}               add 5 seconds to the interval
→ 400 {"error": "access_denied" | "expired_token"}
→ 200 {"access_token": "exl_...", "token_type": "Bearer", "key_id", "email"}

Open verification_uri_complete in the browser. The API returns the key once; store it with file mode 0600.