Quickstart
Capture your first agent run in 60 seconds. Create a team, drop in one of the paths below, and watch the run land in your dashboard.
1. Get your API key
Create a team at agentping.io/register, choose eu or us data
residency, and copy your key from the agent settings page:
apk_<region>_...: team API key, for the SDK.ping_<region>_...: per-agent token, safe in URLs (cron, curl). See Authentication.
Pick your path
There are three ways to send your first run. Pick the one that matches how your agent runs today; you can mix and match later.
- Path A if you call an LLM provider from your own code.
- Path B if you build on an agent framework.
- Path C if your agent is a scheduled job with no SDK.
Path A: SDK auto-instrumentation
Install the SDK, call init(), and instrument your provider. Every LLM call
inside a run is captured automatically, with tokens, latency, and cost.
import agentping, anthropic
agentping.init() # reads AGENTPING_API_KEY
agentping.instrument_anthropic() # capture every Anthropic call
client = anthropic.Anthropic()
with agentping.run("support-triage", customer_id="acme"):
client.messages.create(
model="claude-sonnet-4-5",
max_tokens=512,
messages=[{"role": "user", "content": "summarise this ticket"}],
)
The run closes when the block exits. It appears in the dashboard within a second, with cost in Spend and freshness in Pulse.
Path B: Framework integrations
Already on an agent framework? Add the AgentPing callback or middleware and your existing runs flow through unchanged, no per-call instrumentation needed.
- LangChain and LlamaIndex
- Vercel AI and Pydantic AI
- CrewAI and OpenAI Agents
Providers are auto-detected across OpenAI, Gemini, Bedrock, Mistral, and Cohere.
Path C: Webhook heartbeats
No SDK, or a scheduled job that just needs to prove it ran? Send one HTTP call
per run with a ping_ token. Everything goes in the query string, so it drops
straight into a cron line, an n8n HTTP node, or a CI step. The response is OK.
curl 'https://eu.ingest.agentping.io/v1/ping?key=ping_eu_...&agent=nightly-report&status=ok'
Send eu or us credentials to the matching region host. For a richer payload
(cost, timestamps, metadata) use the JSON POST /v1/heartbeats.
A missed call inside the expected schedule window raises a freshness alert in Pulse. See curl, cron, GitHub Actions, n8n, Make, Zapier, and Claude Routines.
Next: Runs and events for the data model.