---
title: AgentPing docs
description: Production observability for AI agents. Cost attribution, live monitoring, quality scoring.
section: getting-started
order: 0
---

# AgentPing docs

One ingest pipeline, one dashboard, three answers about your production agents: what they cost, whether they're running, whether their answers are still good.

## How it works

<svg class="ap-arch" viewBox="0 0 800 320" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="ap-arch-title ap-arch-desc">
  <title id="ap-arch-title">AgentPing architecture overview</title>
  <desc id="ap-arch-desc">Your agents send runs, events, and heartbeats over HTTP to the AgentPing ingest endpoint, which scores, routes, and surfaces them as Spend, Pulse, and Verify signals via the dashboard, email, webhook, and API.</desc>
  <defs>
    <marker id="ap-arch-arrow" markerWidth="9" markerHeight="9" refX="7" refY="4.5" orient="auto">
      <polygon points="0 0, 8 4.5, 0 9" fill="#E8512F" />
    </marker>
  </defs>
  <g>
    <rect x="20" y="40" width="200" height="240" class="ap-arch-card" />
    <text x="36" y="68" class="ap-arch-eyebrow"><tspan class="ap-arch-num">001 ·</tspan> your agents</text>
    <text x="36" y="106" class="ap-arch-label">Python</text>
    <text x="36" y="128" class="ap-arch-label">TypeScript</text>
    <text x="36" y="150" class="ap-arch-label">Go</text>
    <text x="36" y="172" class="ap-arch-label">Laravel</text>
    <text x="36" y="208" class="ap-arch-muted">curl · cron</text>
    <text x="36" y="228" class="ap-arch-muted">n8n · GitHub Actions</text>
    <text x="36" y="248" class="ap-arch-muted">Zapier · any HTTP</text>
  </g>
  <text x="260" y="186" class="ap-arch-arrow-label">run</text>
  <text x="260" y="202" class="ap-arch-arrow-label">event</text>
  <text x="260" y="218" class="ap-arch-arrow-label">heartbeat</text>
  <line x1="222" y1="160" x2="298" y2="160" stroke="#E8512F" stroke-width="1.5" marker-end="url(#ap-arch-arrow)" />
  <g>
    <rect x="300" y="40" width="200" height="240" class="ap-arch-card" />
    <text x="316" y="68" class="ap-arch-eyebrow"><tspan class="ap-arch-num">002 ·</tspan> AgentPing</text>
    <text x="316" y="106" class="ap-arch-label">ingest</text>
    <text x="316" y="128" class="ap-arch-muted">runs · events</text>
    <text x="316" y="148" class="ap-arch-muted">heartbeats · ping</text>
    <text x="316" y="190" class="ap-arch-label">workers</text>
    <text x="316" y="212" class="ap-arch-muted">cost · check</text>
    <text x="316" y="232" class="ap-arch-muted">judge · alert</text>
  </g>
  <text x="540" y="186" class="ap-arch-arrow-label">score</text>
  <text x="540" y="202" class="ap-arch-arrow-label">route</text>
  <text x="540" y="218" class="ap-arch-arrow-label">surface</text>
  <line x1="502" y1="160" x2="578" y2="160" stroke="#E8512F" stroke-width="1.5" marker-end="url(#ap-arch-arrow)" />
  <g>
    <rect x="580" y="40" width="200" height="240" class="ap-arch-card" />
    <text x="596" y="68" class="ap-arch-eyebrow"><tspan class="ap-arch-num">003 ·</tspan> operators</text>
    <text x="596" y="100" class="ap-arch-pillar">SPEND</text>
    <text x="596" y="118" class="ap-arch-muted">what it costs</text>
    <text x="596" y="148" class="ap-arch-pillar">PULSE</text>
    <text x="596" y="166" class="ap-arch-muted">is it running</text>
    <text x="596" y="196" class="ap-arch-pillar">VERIFY</text>
    <text x="596" y="214" class="ap-arch-muted">is it still good</text>
    <text x="596" y="248" class="ap-arch-muted">dashboard · email</text>
    <text x="596" y="266" class="ap-arch-muted">webhook · API</text>
  </g>
</svg>

A run is one invocation of an agent. The SDK (or any HTTP caller) opens it, appends events as the agent works, closes it with a terminal status. Heartbeats are the shortcut: one HTTP call, one finished run.

## Next steps

- [**Quickstart**](/docs/quickstart): your first agent run in under a minute.
- The three signals: [Spend](/docs/spend), [Pulse](/docs/pulse), [Verify](/docs/verify).
- [Runs and events](/docs/concepts/runs-and-events): the data model.
- [API reference](/docs/api/auth): raw HTTP endpoints.
