canonical: https://jentic.com/apis/axiom.co/axiom

# Axiom

This specification is Axiom's own published OpenAPI document, imported and validated by Jentic. Axiom is a cloud-native observability platform for ingesting, querying, and alerting on event data and logs. The v2 API exposes datasets, ingest, query, monitors, notifiers, dashboards, annotations, organisations, tokens, users, virtual fields, starred queries, and history endpoints, supporting both interactive analytics and automated pipelines. Authentication uses bearer tokens with a query-string token option for ingest.

## For AI agents

Ingest events into Axiom, run APL or aggregation queries over log data, and manage monitors, dashboards, and notifiers. Suited to agents that diagnose production issues from log evidence.

## Scope

Does not handle infrastructure provisioning, APM tracing, or end-user session replay - use Axiom for event ingestion, log querying, monitors, and dashboards only.

## Capabilities

- Ingest event payloads into a named Axiom dataset for log and metric storage
- Run APL or aggregation queries over a dataset and return matched events
- Create, update, and delete datasets and their virtual fields
- Manage monitors that trigger on threshold or anomaly conditions over query results
- Configure notifiers (Slack, email, webhook) that route monitor alerts onward
- Manage dashboards, starred queries, annotations, and query history for the org

## Use cases

### Centralised Log Ingestion

Engineering teams can ship application and infrastructure logs into Axiom by POSTing structured events to dataset-scoped ingest endpoints. The dataset CRUD endpoints under /datasets allow creation, trimming, and vacuuming so retention can be controlled. Suitable for teams consolidating logs from multiple services into a single queryable store.

Example prompt: POST a batch of JSON log events into an Axiom dataset and verify ingestion by running a count query over the last 5 minutes

### Automated Incident Detection

Operations teams can codify alerting rules in Axiom by creating monitors that evaluate APL queries on a schedule and fire when thresholds are breached. Notifiers attached to monitors route alerts to Slack, PagerDuty, or webhooks. Useful for replacing ad-hoc threshold dashboards with versioned, programmatic rules.

Example prompt: Create an Axiom monitor that runs an APL query for error rate over 5xx responses and attach a Slack notifier so alerts post to the on-call channel

### Ad-Hoc Log Investigation

On-call engineers can run APL queries directly against a dataset to investigate incidents, pivot into related events, and save useful queries as starred queries for reuse. Annotations let teams mark deploys or feature flips on the timeline. Suited to firefighting workflows where speed of search matters.

Example prompt: Run a query against an Axiom dataset for events where status >= 500 in the last 30 minutes and return the top 50 matches

### Agent-Driven Log Triage via Jentic

An on-call agent can pull recent error events from Axiom, summarise them, and propose a remediation by chaining query, monitor, and dataset operations through Jentic. Jentic isolates the bearer token and exposes the operations as discoverable tools. Suited to incident copilots and SRE assistants.

Example prompt: Search Jentic for 'query axiom dataset', load the dataset query operation, and execute it to retrieve the last 15 minutes of error events for triage

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/datasets` | List datasets |
| POST | `/datasets` | Create a dataset |
| POST | `/datasets/{dataset_id}/trim` | Trim a dataset by duration |
| GET | `/datasets/{dataset_id}/fields` | Get fields for a dataset |
| GET | `/annotations` | List annotations |
| POST | `/annotations` | Create an annotation |

## Key resources

- **Datasets** — Create, list, update, delete, trim, and vacuum Axiom datasets and their virtual fields
- **Monitors** — Scheduled queries that trigger when thresholds or anomalies are detected
- **Notifiers** — Channels (Slack, email, webhook) that receive monitor alerts
- **Dashboards** — Saved visual layouts of charts and tiles over Axiom data
- **Annotations** — Time-bound markers attached to a dataset for deploys, feature flips, or incidents
- **Organisations and Tokens** — Org-level settings, members, and API tokens for programmatic access

## Why Jentic

- **Setup:** Wiring Axiom by hand means handling its bearer token for most operations plus the separate query-string token on ingest, pointing at api.axiom.co/v2, and writing your own retry logic. Through Jentic you install once, import Axiom from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Axiom puts the dataset id in the URL path (`/datasets/{dataset_id}/...`), so a rule can pin your agent to one dataset for query and field reads and nothing else. You choose the operations it may call, so destructive ones like dataset deletion or trimming a dataset are not included unless you add them.
- **Credential handling:** Your Axiom bearer token, and any ingest token used in the tk query parameter, are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'query an axiom dataset' or 'create an axiom monitor', and Jentic returns the matching Axiom operation with its input schema so the agent acts without crawling the reference docs.

## Related APIs

- **Sentry API** — Sentry focuses on application error monitoring with stack traces and release health.
- **Splunk API** — Splunk offers enterprise log search and analytics as a competing observability platform.
- **Better Stack API** — Better Stack adds uptime monitoring and incident management on top of log sources.

## FAQ

### Is this Axiom's official OpenAPI specification?

Yes. This specification is Axiom's own OpenAPI document for the v2 REST API, sourced from `https://axiom.co/docs/restapi/versions/v2.json`, and its surface is carried over unchanged: 36 paths, 76 operations, the `https://api.axiom.co/v2/` server, and Axiom's own bearer, OAuth2, and `tk` query-token schemes. Jentic imports it and validates it so agents can call Axiom via structured tooling. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Axiom API use?

Axiom v2 supports HTTP bearer tokens for most operations and a query-string token (`tk`) on ingest endpoints. Through Jentic, these tokens are stored encrypted and attached to the request at call time so secrets never enter the agent context.

### Can I create datasets and ingest events with the Axiom API?

Yes. POST /datasets creates a dataset and the ingest endpoints under the dataset path accept event payloads. Use POST `/datasets/{dataset_id}/trim` to control retention and POST `/datasets/{dataset_id}/vacuum` to reclaim space.

### How do I create a monitor through the Axiom API?

Use the /monitors endpoints to create a monitor backed by an APL query, then attach a notifier so alerts route to Slack, email, or a webhook when the threshold is breached.

### What are the rate limits for the Axiom API?

Axiom enforces plan-based ingest and query quotas rather than fixed per-endpoint limits. The OpenAPI spec does not declare numeric limits; check your Axiom plan for current ingest and query quotas.

### How do I query a dataset through Jentic?

Search Jentic for 'query axiom dataset', load the dataset query schema, and execute it with your APL or aggregation query body. Jentic injects the bearer token and returns the matched events to your agent.

### Can I limit what my agent is allowed to do with the Axiom API?

Yes. Because you run Jentic One yourself, you decide which Axiom operations and credentials your agent may use, and your own rules are what grant or deny each call. Axiom carries the dataset id in the URL path (`/datasets/{dataset_id}/...`), so you can pin the agent to a single dataset for query and field reads and expose nothing else. Destructive operations such as deleting a dataset or trimming one via POST `/datasets/{dataset_id}/trim` are only available if you explicitly add them.
