Use the App
The App is where you make API keys, run prompts in the browser, grow Looms, and read your usage. It uses the same API and the same Budget as your scripts. Sign in to open it.
The App's pages
The App's navigation lists these pages:
| Page | What you do there |
|---|---|
| Playground | Run a prompt with every setting of the API, compare models side by side, and read each token's probability (Use the Playground). |
| Loom | Grow a tree of continuations from a prompt, one Branch at a time (Use the Loom page). |
| Usage | Read the tokens that you used and have left, and ask for more (Read your usage, Ask for more tokens). |
| Jobs | Find the way to run a Job. The page has no list of Jobs: Run a Job from a script opens Run a Job from a shell script. |
| API Keys | Make, rename, pause, and revoke API keys (Use API keys). |
| Profile, in the menu with your name | Read your name and email, reset your password, and link a sign-in provider (Get access). |
| Admin, for admins only | Decide Applications and token requests, make Invites, and manage Users and their Budgets (Manage Users, Decide token requests). Read the platform's numbers (Read the platform's analytics). Keep models Warm at set hours (Keep a model Warm). |
Docs links to these docs. Support has Email, Discord, Feedback, and Help. Discord opens the invite to ACS's Discord server (Discord). Feedback opens Send feedback (Send feedback). Help opens Support in these docs. Sign out is in the menu with your name.
Read your usage
- Open Usage. It counts this month, up to today, for all your keys and models.
- To count other days, select the days at the top of the page. Choose Today, Last 7 days, Last 30 days, This month, or Last month. Or select a first and a last day in the calendar, then Apply.
- To count one key or one model, choose it in All keys or All models.
The page counts in UTC days, at most 366 at a time. The address keeps the days, the key, and the model, so a reload or a shared link opens the same view. The page reads the numbers again every minute while its tab is open. Updated beside the title says when it last read them, in UTC. Select Refresh beside it to read them at once. When a read fails, the page keeps the numbers that it read last and says Could not refresh.
The page has these parts, from the top:
| Part | What it shows |
|---|---|
| Tokens used | The input and output tokens of the Completions that the page counts. |
| Completions | How many Completions it counts, and how many of them still run. |
| Monthly allowance | The tokens left this month, of how many, and the day the allowance resets. Its meter turns orange from 90% used, and red once the allowance is spent. |
| Token budget | The tokens left in your Budget, and Request more tokens (Ask for more tokens). |
| Tokens per day | The input and output tokens of each day, as a chart. Point at a day, or select the chart and use the arrow keys, to read its numbers. View as table lists each day that had a Completion. |
| By model and By source | The tokens of each model, and of each source: the API, the Playground, the Loom, Jobs, or Harvests. By source also counts each source's Completions and its input and output tokens. |
| By key | Each key that ran Completions on those days, with its status and its input and output tokens. It also shows the key's tokens last month and in all, its own Budget, and when it last ran one. Select a key's name to count that key alone. |
| Completions | The newest 100 of those Completions. Each row has when it started (UTC), its model, source, key, input and output tokens, how they were counted, how long it took, and status. |
| Budget history | The newest 100 changes to your Budget or a key's, such as a Grant, newest first. |
A Completion's status is Running, Completed, Failed, or Stopped. Failed means that Inference failed it after its first token. Stopped means that its client went away, or that you stopped its Job, Branch, or Run, before Inference finished it. Each costs the tokens that it used (How a Hold ends).
Counted says where a Completion's tokens came from. Reported tokens are the ones that Inference reported. Partial tokens are the ones that a stream sent before it stopped. Held is the whole Hold, for a request without a stream that stopped after it reached Inference. Duration runs from the start of the Completion to its end, and includes the wait for the model to start.
The monthly allowance and the token budget are for all your keys and models. With one key or one model chosen, the page calls them "Your account's monthly allowance" and "Your account's token budget". When the chosen key has its own Budget, This key's token budget shows the tokens left in it first. The tokens left already leave out what your running Completions hold.
A released Completion costs nothing, and the page does not list it, for example one that Inference refused before it sent a token. Budgets and Holds explains what a Completion holds and pays.
Ask for more tokens
- Open Request more tokens. Request more tokens under Token budget on Usage opens it, and so does Request more in the notice under a page's title.
- Fill in Tokens, Models, Project, and Planned usage. Write Tokens as a number, such as
50Kor2.5M, and choose each model that the work needs. - Answer the optional questions if you can: How you got the number, Results, Links, and When you need them. An admin decides from your answers.
- Select Send request. The App says "Request sent."
If a required question has no answer, or the App cannot read Tokens, the App says what to fix under each such question. It keeps what you wrote.
An admin approves the request with a number of tokens, which may differ from the number that you asked for, or rejects it. An approval is a Grant to your Budget. Your requests lists each request with the day that you sent it, its tokens, and its status: Waiting, Approved, or Rejected. A rejected request also shows the admin's note. An approval for another amount shows both numbers, such as 50K of 100M. On a phone, the note is under the status. You have one request waiting at a time. Once an admin decides it, you can ask again.
From 90% of your tokens used, a notice under the title of each page says how many are left, with Request more. It counts the tokens that you used this month against those tokens and what your monthly allowance and Budget have left, as Usage shows them. With no tokens left, it says You have no tokens left. Its close button hides it until you close the browser, or until it says that no tokens are left.
Read the platform's analytics
An admin's Admin page has an Analytics tab. It counts the Users who arrive and who run Completions, and their monthly allowances. It also shows how the API served their requests, their tokens, and what the GPUs cost.
- Open Admin, then Analytics. It counts this month, up to today.
- To count other days, select the days at the top of the tab, as on Usage. Each tab of Analytics counts these days.
- Choose a tab: Users, Budget, Platform, Usage, or Spend. The address keeps the tab and the days.
Analytics has these tabs:
| Tab | What it shows |
|---|---|
| Users | The Applications that wait for a decision, and the new Users. How many new Users ran a Completion within 24 hours of getting access. The Users active in the last 7 days, and the Feedback of each day. |
| Budget | The Users at or close to their monthly allowance, and the requests that the Budget could not hold. The 10 Users closest to their allowance, with the day it runs out at their pace. |
| Platform | The requests of each day by how they ended, and the server errors and the timeouts. The requests and tokens of each source, the Users of each hour in five time zones, and the requests of each model. |
| Usage | The tokens of each User, model, and source, the newest Completions, and the newest Budget changes. To count one User or one model, choose it in All Users or All models. |
| Spend | What the GPUs cost, and the Spend stop (Watch the spend). |
Definitions, at the bottom of Users, Budget, and Platform, says how each number is counted. Daily numbers lists the numbers of each day. The tab leaves the team's accounts out of the numbers about Users. Platform also shows the GPU spend of the days and of each model, as Spend counts it.
Watch the spend
Spend, a tab of Analytics on Admin, shows what the GPUs cost. The API estimates it from Inference's count of its containers each minute. It is not Modal's bill.
| Part | What it shows |
|---|---|
| The top | The GPU spend of the last 24 hours, with the amounts that warn the team and that pause new GPU work. The spend that the pause counts, since its last Clear. When Inference last counted. |
| Spend stop | Whether new GPU work is paused, and its last change. Lock pauses it, with a reason if you want one, and Clear lifts it (Spend limit). |
| Last 24 hours by model | The spend and GPU hours of each model in each Modal environment. |
| GPU spend per day | Each day's spend of the models that cost the most. Choose the days at the top of Analytics. |
| Who used each model, last 48 hours | Each User's Completions and tokens of each model, and their part of its spend, by their share of its tokens. |
| Changes of the stop | The newest 10 changes, each a Lock, a Clear, or a pause at the stop amount, with who made it. |
Keep a model Warm
A start of a cold Llama 3.1 405B or Trinity Large takes 17 to 25 minutes, longer than the API's wait. An admin keeps a model Warm at set hours on the Models tab of Admin. Each Warm hour costs the model's GPUs. That is about $36.32 for Llama 3.1 405B or Trinity Large, and $1.95 for Llama 3.1 8B.
- Open Admin, then Models. Each model shows its Floor, the containers that Inference keeps running without requests, and what its windows cost in the Next 7 days.
- To keep a model Warm each week, open its actions, then Add a window. Choose its days, From, To, and its Time zone, which is UTC at first. A window that ends at or before its start ends the next day. The dialog shows what the window costs a week.
- To keep a model Warm at once, open its actions, then Warm now, and enter its Hours, from 1 to 24. The dialog shows what it costs, and it ends by itself.
- To stop a window, open the menu at the end of its row under Warm windows, select Remove, then confirm. The confirmation shows what it costs.
Start a window 30 to 45 minutes before Users need the model, so that the model is ready in time. While the API pauses new GPU work, no window keeps a model Warm (Spend limit).
Manage Users
An admin's Admin page has a Users tab. It lists each User with their organization, role, standing, tags, and engagement. It also shows when they last ran a Completion, their active weeks, and their tokens of the last 30 days. Then come the models they used, most tokens first, their Budget, monthly allowance, API keys, and the day they joined.
Engagement says when a User last ran a Completion:
| Engagement | The User's newest Completion |
|---|---|
| Active | In the last 7 days. |
| Cooling | 8 to 14 days ago. |
| Churned | More than 14 days ago. |
| Not activated | None. |
An active week is a UTC week, Monday to Sunday, in which the User ran a Completion. A Completion that Inference refused before its first token counts for none of these.
A User who got in with an @acsresearch.org address, without an Application, is an admin and a team account from the start. They also get the monthly allowance (Sign in with an ACS address). An admin can take the role away, and a later sign-in does not give it back.
Open a User's page
Select a User's email on Users to open their page. It has their account, their details, their tags, their Budget and usage, their API keys, their Application, and their notes. In Details, type their Organization and their Discord handle, and select Save details. The organization that you type replaces their Application's answer on the Admin page. Clear it, and the Application's answer shows again. The Budget and usage part counts as Usage does, for the days and the model that you choose. The menu beside the email has the same actions as the User's row. Copy User id copies the id that the API's logs and PostHog name the User by.
Act on many Users at once
- On Users, select the Users with the box in front of each row. The box in the header selects every row that the filters show, on every page.
- Choose an action in Selected Users: Suspend, Restore, Add tag, Remove tag, Set allowance, or Delete.
- Read the dialog, then confirm. To delete, type the words that the dialog shows, such as
delete 3 Users.
An action changes only the selected Users that the filters show. It leaves out the Users that it does not suit, and the dialog says how many. Suspend and Delete leave admins out: change an admin from their own row. You cannot select your own row or a deleted User. When the API refuses some Users, the dialog lists each one with the reason, and the others are changed.
Group Users with tags
An admin can put a tag on Users, such as hiring-2026-08, to find a group of them again. A tag has lowercase letters, digits, and dashes, and at most 32 characters. The App writes what you type in that form, so Hiring 2026 08 becomes hiring-2026-08.
- To list the Users of one tag, choose it in Tag on Users.
- To give each new User of an Invite a tag, write it in Tag when you make the Invites. A User gets the tag when they use the link.
Decide token requests
An admin's Admin page has a Token requests tab. It lists each request with the User, the tokens asked, the project, the status, the tokens granted, and who decided it and when. A request sent before the form asked for a project shows None as its project. The status is Waiting, Approved, or Rejected. Each new request also sends the team an email with the answers.
- To read the answers, select Read the request in its row's menu. Each answer is under its question, and an empty one says Not answered. A request sent before the form had these questions shows its reason under Planned usage.
- To approve it, select Approve, set Tokens to grant, such as
50Kor2500000, and select Approve. The field starts at the tokens asked. The amount is a Grant to the User's Budget. - To reject it, select Reject, write a Note to them or leave it empty, and select Reject. The User reads the note with their request.
Send feedback
- Open Support in the App's navigation, then select Feedback.
- Under What is it about?, choose Bug, Feature request, or General.
- Write Your note, of up to 5,000 characters. The App also sends the address of the page that you are on.
- To add screenshots, select Choose screenshots, drop them on the field, or paste them. Each is a PNG, JPEG, GIF, or WebP image of 2 MB or less, and a note has at most 5.
- Read the recent errors and request ids that the App sends with your note. To send the note without them, and without your User or your browser's name, select Send anonymously, without my account or the details below.
- Select Send. The App says "Thanks, your note reached the team."
The team tracks each note in Linear, its issue tracker. Your note's text, the page, your screenshots, and your account's email go there, so that the team can answer you. An anonymous note goes without your email. The recent errors and the request ids stay on the servers of ACS Infra. Do not paste a prompt or a Completion that you want to keep private.
An admin reads each note on the Feedback tab of Admin. The Linear column links to the note's issue.
To report a bug by email instead, read Report a bug.