The fastest way to see everything: connect the account where your AI is billed — OpenAI or Anthropic — and Jents imports your agents, the people who have access, and their real cost. No adding records by hand, no code.
Two providers today, and that's the whole list. There is no AWS Bedrock, Google Vertex AI, Azure OpenAI or OpenRouter import right now — no card to click, no key to paste. If that's where your AI bills, nothing in this guide will bring it in; talk to us.
The idea: your account is the bill
Every AI call your company makes — a custom agent, a script, a tool — eventually bills to a provider account, and that account records it by project, key, and model. So the account is the one place that already sees everything. Connecting it is like linking your bank statement: you don't type in each purchase — the statement already has them all.
How it works
- Connect — in Connections, pick OpenAI or Anthropic and paste an Admin key. It's encrypted at rest and never shown again.
- Import (read-only) — Jents reads your account's structure: projects or workspaces, API keys, models, members, and cost. Nothing hits your Inventory yet — it's a safe preview.
- Review — each imported key lands under Needs your attention on that same page. Give it an Owner (+ optional Team) and press Confirm to send it through, or Dismiss the noise.
- In your Inventory — confirmed items are real agents (type API integration, badged with the account they came from), members are People, and usage is cost. Re-importing never creates duplicates.
- Sync — cost refreshes hourly, so it stays current, with nothing to re-import by hand.
One key, two imports. The same Admin key also brings that vendor's paid seat roster — Claude seats from Anthropic, ChatGPT Team seats from OpenAI. That roster is what makes an idle seat visible, because a seat nobody opens produces no usage to notice.
What creates what
When you connect an account, here's exactly what maps to what:
| In your account | → | In Jents |
|---|---|---|
| The account (the connection) | → | a connected account — stores your key (encrypted) + sync status |
| API key | → | an Agent (type "API integration"), named project · key on OpenAI and workspace · key on Anthropic. This is the grain: one key = one agent |
| Project (OpenAI) / Workspace (Anthropic) | → | not a record — it names the keys inside it, and it's the container whose exact bill gets split across them |
| Member (person with access) | → | a Person in your People directory — no login invite is sent, up to 200 |
| Model (gpt-4o, claude-…) | → | not a record — it shows as the model on the agent's usage |
| Daily usage + cost (the bill) | → | cost on the agent, one row per key × model × day |
Why a key — and what that does to the dollars
A key is something you can put an owner on ("the key our support bot uses") in a way a whole project usually isn't. But the two halves of a bill arrive at different grains, and this is the one thing worth understanding before you read a number:
- Tokens are reported per API key. Exact.
- Dollars are reported only per project (OpenAI) or per workspace (Anthropic). Anthropic's own FAQ tells you to use token usage as the per-key proxy.
So Jents keeps each container's billed total exactly as invoiced and decides only how it splits inside: every key takes the share its own usage earned, weighted by what those tokens are actually worth — so a key on Opus isn't averaged out with a key on Haiku. The shares always sum back to the container total; nothing is invented and nothing is dropped.
What that means in practice: the number your finance team reconciles against the invoice is untouched. The per-key split beneath it is our attribution, not the provider's — trust it to answer "which key is burning the money", not to settle a chargeback to the cent.
What a bill can't tell you
- Who. An API key isn't a person, and one key can be shared by a whole team.
- Per-call detail — latency, errors, retries, the individual calls. A statement is a daily total.
- Live — cost re-syncs hourly. It is never the last five minutes.
For who, there are two live routes, and neither of them puts us in your request path:
- Telemetry — Claude Code, Claude Cowork and OpenAI Codex report their own usage, per person, within a minute or two. Start from Add AI source → AI your team uses.
- Your own gateway — if you already run LiteLLM, point its logs at Jents (Settings → Gateways) and every call arrives with exact cost and the person who made it. Your traffic and your provider keys never leave your environment.
Routing your traffic through a Jents-hosted gateway isn't on offer right now — there is no way to start it, so don't plan around it. Your own gateway is the live version of the same idea and the opposite arrangement: the traffic stays on your LiteLLM, and Jents only reads the prices it already computed. Everything above works without either.
Ready? Open Connections and paste an Admin key for OpenAI or Anthropic.