Get API key →

Integrations

Every package below is published from one repository, github.com/marketinglior-pixel/agentbill. The rows marked Guide are not packages: each is the plain Python SDK placed in a hook that framework already has. Any code that can make one HTTP call before its provider call can use the API directly.

NameKindInstallRegistryOur page
@agentbill/openclaw 0.1.0Pluginopenclaw plugins install clawhub:@agentbill/openclawClawHubOpenClaw
agentbill-mcp 0.2.2Package, MCP serveruvx agentbill-mcpPyPIMCP server
agentbill-sdk 0.6.5Package, Python SDKpip install agentbill-sdkPyPIQuick start
agentbill 0.4.1Package, Node SDKnpm install agentbillnpmNode.js
HTTP APIAPIPOST /preflight with a Bearer keynoneAPI reference
LangChainGuidepip install agentbill-sdk "langchain==1.4.2"uses agentbill-sdkLangChain
OpenAI Agents SDKGuidepip install agentbill-sdk "openai-agents==0.22.3"uses agentbill-sdkOpenAI Agents SDK
CrewAIGuidepip install agentbill-sdk "crewai==1.15.22"uses agentbill-sdkCrewAI

Each version is what its registry serves, not what the repository holds.

Which one fits

Your agent runs inside OpenClaw. Install the plugin. It asks one ceiling before every tool call in a session, and before every model turn on OpenClaw's embedded and CLI runners. OpenClaw does not run a tool or send a turn the ceiling refused. On the Codex and Copilot harnesses only tool calls are asked; the OpenClaw page says why.

Your agent is code you own. Put preflight and record where your code, or your framework, calls the model. The guides show where that is in LangChain, the OpenAI Agents SDK and CrewAI, with samples that were run against the framework versions in the table.

Your agent host speaks MCP. The MCP server gives the model a preflight tool it can consult. The model decides whether to call it, and it does not limit the host's own model calls.

Anything else. POST /preflight with a Bearer key, before the call; POST /events after it. The whole contract is in the API reference.

What every row has in common

The ceiling is bound to a task_ref, the name you give a job, and every call that passes it draws on the same number, whichever process, agent or provider made it. Before a call, preflight answers, and when the call would pass the ceiling it answers approved: false. Task budgets explains the mechanism.

What reaches you then depends on the row. With the Python and Node SDKs, and the guides built on them, the SDK raises TaskCeilingExceededError and your code decides what the job does next. The OpenClaw plugin hands the refusal to OpenClaw, and the MCP server returns it to the model as a value. Over the HTTP API, the answer is the JSON body.

Units are integers you assign to each call, except in the OpenClaw plugin's tokens mode, which counts the token totals OpenClaw reports. AgentBill never reads your provider bill.

Get API key →