axiom

Axiom observability API for logs and analytics. Use when user mentions "logs", "query logs", "Axiom", or asks about event analytics.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "axiom" with this command: npx skills add vm0-ai/vm0-skills/vm0-ai-vm0-skills-axiom

Axiom

Axiom is a cloud-native observability platform for storing, querying, and analyzing log and event data at scale. Use the REST API to ingest data, run queries using APL (Axiom Processing Language), and manage datasets programmatically.

Official docs: https://axiom.co/docs/restapi/introduction


When to Use

Use this skill when you need to:

  • Send logs, metrics, or event data to Axiom
  • Query and analyze data using APL (Axiom Processing Language)
  • Manage datasets, monitors, and annotations
  • Build observability pipelines and dashboards

Prerequisites

  1. Create an Axiom account at https://app.axiom.co/register
  2. Create an API token with appropriate permissions (Settings > API Tokens)
  3. Create a dataset to store your data

Token Types

Axiom supports two token types:

TypePrefixUse Case
API Tokenxaat-Most operations (datasets, ingest, queries, monitors)
Personal Access Token (PAT)xapt-Full account access (required for /v2/user endpoint)

Set environment variables:

# Required: API Token for most operations
export AXIOM_TOKEN="xaat-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

How to Use

Base URLs

  • Ingest (US East): https://us-east-1.aws.edge.axiom.co
  • Ingest (EU Central): https://eu-central-1.aws.edge.axiom.co
  • API: https://api.axiom.co

1. List Datasets

curl -s "https://api.axiom.co/v2/datasets" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)"

2. Get Dataset Info

curl -s "https://api.axiom.co/v2/datasets/my-logs" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)"

3. Create Dataset

Write to /tmp/axiom_request.json:

{
  "name": "my-logs",
  "description": "Application logs"
}

Then run:

curl -s -X POST "https://api.axiom.co/v2/datasets" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/json" -d @/tmp/axiom_request.json

4. Ingest Data (JSON)

Write to /tmp/axiom_request.json:

[
  {"message": "User logged in", "user_id": "123", "level": "info"}
]

Then run:

curl -s -X POST "https://us-east-1.aws.edge.axiom.co/v1/ingest/my-logs" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/json" -d @/tmp/axiom_request.json

5. Ingest Data (NDJSON)

Write to /tmp/axiom_ndjson.ndjson:

{"message": "Event 1", "level": "info"}
{"message": "Event 2", "level": "warn"}

Then run:

curl -s -X POST "https://us-east-1.aws.edge.axiom.co/v1/ingest/my-logs" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/x-ndjson" -d @/tmp/axiom_ndjson.ndjson

6. Query Data with APL

Write to /tmp/axiom_request.json:

{
  "apl": "[\"my-logs\"] | where level == \"error\" | limit 10",
  "startTime": "2024-01-01T00:00:00Z",
  "endTime": "2025-12-31T23:59:59Z"
}

Then run:

curl -s -X POST "https://api.axiom.co/v1/datasets/_apl?format=tabular" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/json" -d @/tmp/axiom_request.json

7. Query with Aggregation

Write to /tmp/axiom_request.json:

{
  "apl": "[\"my-logs\"] | summarize count() by level",
  "startTime": "2024-01-01T00:00:00Z",
  "endTime": "2025-12-31T23:59:59Z"
}

Then run:

curl -s -X POST "https://api.axiom.co/v1/datasets/_apl?format=tabular" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/json" -d @/tmp/axiom_request.json

8. Create Annotation

Write to /tmp/axiom_request.json:

{
  "datasets": ["my-logs"],
  "type": "deployment",
  "title": "v1.2.0 deployed",
  "time": "2024-12-24T10:00:00Z"
}

Then run:

curl -s -X POST "https://api.axiom.co/v2/annotations" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)" -H "Content-Type: application/json" -d @/tmp/axiom_request.json

9. List Monitors

curl -s "https://api.axiom.co/v2/monitors" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)"

10. Delete Dataset

curl -s -X DELETE "https://api.axiom.co/v2/datasets/my-logs" -H "Authorization: Bearer $(printenv AXIOM_TOKEN)"

APL Query Examples

APL (Axiom Processing Language) is similar to Kusto Query Language (KQL). Use ["dataset-name"] syntax for dataset names with special characters.

QueryDescription
["dataset"] | limit 10Get first 10 events
["dataset"] | where level == "error"Filter by field value
["dataset"] | where message contains "timeout"Search in text
["dataset"] | summarize count() by levelCount by group
["dataset"] | summarize avg(duration_ms) by bin(_time, 1h)Hourly average
["dataset"] | sort by _time desc | limit 100Latest 100 events
["dataset"] | where _time > ago(1h)Events in last hour

Guidelines

  1. Use Edge URLs for Ingest: Always use the edge endpoint (us-east-1.aws.edge.axiom.co or eu-central-1.aws.edge.axiom.co) for data ingestion, not api.axiom.co
  2. Batch Events: Send multiple events in a single request for better performance
  3. Include Timestamps: Events without timestamps will use server receive time
  4. Rate Limits: Check X-RateLimit-Remaining header to avoid hitting limits
  5. APL Time Range: Always specify startTime and endTime for queries to improve performance
  6. Data Formats: JSON array is recommended; NDJSON and CSV are also supported

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

google-sheets

No summary provided by upstream source.

Repository SourceNeeds Review
246-vm0-ai
General

apify

No summary provided by upstream source.

Repository SourceNeeds Review
214-vm0-ai
General

hackernews

No summary provided by upstream source.

Repository SourceNeeds Review
169-vm0-ai
General

serpapi

No summary provided by upstream source.

Repository SourceNeeds Review
164-vm0-ai