Getting Started
Check that LLMCap fits your setup, then pick the integration that matches it
Before you start — does this fit your setup?
- You need to be able to set a base URL and a custom header. That covers your own applications, scripts and agents, and any no-code tool that exposes both settings. If neither can be changed, LLMCap cannot sit in the path.
- A web subscription is not enough. If your AI usage is ChatGPT, Claude or Gemini in the browser on a monthly plan, there is no API call for LLMCap to intercept and nothing on this page will apply to you.
- You need API access at the provider, billed separately. The provider invoices you for that usage directly. LLMCap caps and records the spend; it does not replace your provider account and does not appear on their invoice.
What you will be handling: your LLMCap Proxy Key + your provider credential
- The Proxy Key is ours. On this sample page it starts with demo_pk_, a non-working placeholder — a real workspace gives you an actual Proxy Key after signup. You create it under Proxy Keys, and it travels as the X-LLMCap-Key header. It is how LLMCap knows the request is yours — it is not a provider key and never replaces one.
- The provider credential is theirs. Whatever the provider issues you: one API key for most of them, an access key and a secret access key for AWS Bedrock. It either travels on your request, or — where your client allows it — sits in the Provider Secret Vault so your own code never carries it.
Create a Proxy Key
Go to Proxy Keys and create your first one. On this sample page it starts with demo_pk_ — a non-working placeholder, shown once, so you can see the shape of it. This is the key LLMCap authenticates you with; it is not a provider key and never replaces one. Sign up for your own workspace to get your actual Proxy Key.
Set a spending cap
Go to Budgets and add a limit on the window you care about — daily, weekly or monthly. The action decides what happens when you reach it: Block stops new requests, Alert only warns you and traffic keeps flowing. If you want spending to stop, the rule has to be a Block rule.
Point your client at LLMCap
Answer three questions and you get the honest answer for that combination — including the combinations we do not support.
Works
Supported — this is the default path
- Base URL: https://proxy.example.invalid/anthropic — everything after it is passed through to Anthropic unchanged.
- Headers: X-LLMCap-Key with your Proxy Key, plus your usual provider credential.
- Pass-through: your Anthropic credential travels in the request as x-api-key, is used once, and is not stored by us.
- Captured with the SDK versions we tested — anthropic 0.102, openai 2.50, google-genai 2.16, mistralai 2.8, cohere 7.0. Official SDK APIs change between releases, so check this against your own version rather than treating it as true of every version forever.
- What we verified is request formation: the request this SDK builds arrives at the right LLMCap route with the right headers, captured locally. We did not make a paid call to the provider, so nothing here claims a provider-side response was tested.
Anthropic example
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://proxy.example.invalid/anthropic",
default_headers={"X-LLMCap-Key": os.environ["LLMCAP_KEY"]},
)This configures the client and stops there — run it as it stands and no request is sent. Add your usual model call underneath and run that: it is the one the last step below asks for.
Keep your credentials out of your source code
Never put a Proxy Key in code that runs in a browser or on a phone. Anything shipped to a device can be read out of it, and a Proxy Key is a secret — this page's demo_pk_ example is a non-working placeholder, but your real key deserves the same care. Call LLMCap from your server, a backend job, or an edge function instead.
Read every credential from wherever your process already keeps secrets. Any of these work:
- Your shell environment — exported in the session or your shell profile.
- A .env file your process loads, kept out of version control. This is one option, not a requirement.
- The secret manager of your hosting platform.
- Your CI provider secret store, for anything that runs in a pipeline.
- The secret field of your no-code tool, if that is where the call is made.
The examples above read the Proxy Key from a variable named LLMCAP_KEY. That name is a suggestion, not a requirement — call it whatever fits your project.
Send one real request, then check the key
Make one cheap request through the proxy with your Proxy Key — a few tokens is enough — then come back to Proxy Keys and read the Connection column for that key. Success is three things together: your provider answered your client the way it normally does, whether that is a completion or a stream; that key reads Connected; and the request is there in Logs. Together they prove the path. None of them prove a budget is enforcing anything — only a Block rule that has actually stopped a request shows you that.
What you will see on the Proxy Keys page
Reached LLMCap may appear first. It means the key authenticated at the gateway — which happens before your provider is called, so on its own it does not mean the request got through.
Connected appears once your provider has answered successfully and that forward has been written to your log. That is the only state that proves the whole path works.
A blocked or errored request is not Connected. It reached us and did not get through; the row shows the latest outcome so you can see which it was.
The connection check makes no provider call. It only reads evidence of real traffic you sent yourself — so opening or refreshing that page never spends your money, and a key stays Not connected until you send something.
The checkmarks above are a reminder in this browser tab only. Nothing is saved, and ticking one does not check that the step actually works — send a request and look at Logs for that. This is a demo workspace, so Proxy Keys, Budgets and Provider API Keys all show sample data rather than anything you create here.
Need help?
Email us at celikkanat1983@gmail.com — we respond within 24 hours.