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

Pick the one that matches how your agent runs today; you can mix and match later.

  • Path A if you call Anthropic or OpenAI from your own code.
  • Path B if your agent is a scheduled job with no SDK, or anything else that can make an HTTP call.

Path A: SDK auto-instrumentation

Install the SDK, call init(), and instrument your provider. Every Anthropic or OpenAI call inside a run is captured automatically, with tokens, latency, and cost.

pip install agentping-io
npm install @agentping/sdk

Then put your team key in the environment the agent runs in:

export AGENTPING_API_KEY=apk_eu_...   # the team key from step 1
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",
                   goal="Triage the ticket and route it to the right queue"):
    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. The goal is optional but worth setting: it tells evaluations what the run was supposed to achieve, and the review is much sharper with it.

Check it landed: open your dashboard and look at the activity feed. You should see one run named support-triage with status ok, a token count, and a cost figure, usually within a second of the block exiting. If it is there, you are done; Spend is attributing cost and Pulse is tracking freshness from this point on. If it is not, check that AGENTPING_API_KEY is set in the process that ran the agent.

Calling a different provider, or going through a framework? Report the call yourself with r.event("llm_call", {...}) (the token counts are on the response object your provider returns) and cost is computed server-side from the same rate card. See Runs and events.

Path B: 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.

Check it landed: the curl response is OK, and the dashboard activity feed shows a run named nightly-report with status ok and the timestamp the ping arrived. That single line is your heartbeat baseline; once you set the agent's expected schedule, Pulse pages you when a window passes silently.

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.