Skip to main content
The Public API (V2) is a REST API for reading raw application data: metrics, traces, logs, Kubernetes metrics, and deploy statistics. It complements the GraphQL API, which manages models such as apps, incidents, dashboards, and alerts. As a rule of thumb, use the REST API to read data and the GraphQL API to manage configuration.
If you’re building an AI agent or assistant, AppSignal MCP exposes this data to agents directly — you may not need to call this API yourself.

Base URL

All endpoints are served under /api/v2 on the appsignal.com domain:
https://appsignal.com/api/v2

Authentication

Requests are authenticated with your personal API token, passed either as a bearer token or as a query parameter. You can find your token in the personal settings screen.
curl -H "Authorization: Bearer YOUR-PERSONAL-API-TOKEN" \
  https://appsignal.com/api/v2/metrics/names/YOUR-SITE-ID
Your token grants access to the same sites and organizations you can see in AppSignal. Most requests are scoped to a single site_id; tracing endpoints use a site_ids array so they can search across multiple sites. The API checks that your token has access to every requested site before returning data. To verify a token itself, call GET /api/v2/auth. Your site_id is the ID in your app’s URL: https://appsignal.com/<organization>/sites/<SITE_ID>. For log queries you also need a log source ID — see finding your site and source IDs.

Verify a token

GET /api/v2/auth
Returns a JSON object with a message confirming the authenticated user ID.

Requests and responses

Most endpoints use POST with a JSON body and return JSON. Read-only lookups (such as listing metric names) use GET with path parameters. Set Content-Type: application/json on requests with a body. Times are ISO 8601 strings. Most query bodies take a from and to time range plus either a site_id or, for tracing endpoints, a site_ids array. For a complete, auto-generated reference of every endpoint, request, and response type, see the REST API reference.

Error responses

Any endpoint can return these non-2xx responses:
StatusMeaningBody
401Missing or invalid token{ "error": "Unauthorized" }
404Route or resource not found{ "error": "Not found" }
422Request parsed but cannot be processedError envelope (see the following section)
500Unhandled server-side failure{ "error": "<message>" }

422 envelope

Every 422 response uses the same envelope, so you can handle them in one place:
{
  "error": "<stable_slug>",
  "message": "<human-readable message>",
  "details": {}
}
  • error: a stable, machine-readable slug. Branch on this in your code.
  • message: a human-readable message, safe to display.
  • details: an optional object whose shape depends on error.
One slug you may encounter is legacy_log_query_syntax, returned when a logs query uses the legacy attributes.<name>_<type> syntax. See querying logs for the current query language.

Endpoints

Metrics

MethodPathDescription
POST/api/v2/metrics/timeseriesQuery metric data as a timeseries
POST/api/v2/metrics/listQuery aggregated metric data as a list with grouping
GET/api/v2/metrics/names/{site_id}List all metric names for a site
GET/api/v2/metrics/type_and_tags/{site_id}/{metric_name}Get a metric’s type and available tags
See the metrics reference.

Tracing

MethodPathDescription
POST/api/v2/tracing/locatorLocate a trace across sites by trace ID
POST/api/v2/tracing/traceGet all spans for a trace
POST/api/v2/tracing/trace/performanceGet spans for a performance trace
POST/api/v2/tracing/trace/errorGet spans for an error trace
POST/api/v2/tracing/traces/performanceList performance traces
POST/api/v2/tracing/traces/errorsList error traces
POST/api/v2/tracing/actionsList performance actions with aggregated metrics
POST/api/v2/tracing/action_edgesList upstream and downstream edges for an action
POST/api/v2/tracing/site_edgesList service dependency edges for a site
POST/api/v2/tracing/slow_eventsList slow events with aggregated stats
POST/api/v2/tracing/slow_events/actionsList actions related to a slow event
See the tracing reference.

Logs

MethodPathDescription
POST/api/v2/logs/linesSearch log lines
See the logs reference.

Kubernetes

MethodPathDescription
POST/api/v2/kubernetes/nodesQuery node metrics
POST/api/v2/kubernetes/podsQuery pod metrics
POST/api/v2/kubernetes/pods/overviewQuery pod overview with labels and status
See the Kubernetes reference.

Deploys

MethodPathDescription
POST/api/v2/deploys/statsGet deploy statistics for a revision
See the deploys reference.

Check-ins

MethodPathDescription
POST/api/v2/check_ins/test_cronTest and validate a cron schedule expression
See the check-ins reference.

Saved visuals

MethodPathDescription
GET/api/v2/saved_visuals/{id}Retrieve a saved visual as JSON
GET/api/v2/saved_visuals/{id}/csvDownload a saved visual as CSV
Saved visual endpoints do not require authentication. See the saved visuals reference.

System

MethodPathDescription
GET/api/v2/authVerify that a token is valid