The easiest way to send your first event data to Axiom is with a direct HTTP request using a tool like cURL.
curl -X 'POST' 'https://AXIOM_DOMAIN/v1/datasets/DATASET_NAME/ingest' \
    -H 'Authorization: Bearer API_TOKEN' \
    -H 'Content-Type: application/x-ndjson' \
    -d '{ "http": { "request": { "method": "GET", "duration_ms": 231 }, "response": { "body": { "size": 3012 } } }, "url": { "path": "/download" } }'
Replace AXIOM_DOMAIN with api.axiom.co if your organization uses the US region, and with api.eu.axiom.co if your organization uses the EU region. For more information, see Regions.Replace API_TOKEN with the Axiom API token you have generated. For added security, store the API token in an environment variable.Replace DATASET_NAME with the name of the Axiom dataset where you send your data.
To send events continuously, Axiom supports a wide range of standard tools, libraries, and platform integrations.
MethodDescription
Rest APIDirect HTTP API for sending logs and events
OpenTelemetryIndustry-standard observability framework
VectorHigh-performance observability data pipeline
CriblRoute and transform data with Cribl Stream
Fluent BitFast and lightweight log processor
FluentdOpen source data collector with plugin ecosystem
JavaScriptBrowser and Node.js logging

Other methods

MethodDescription
.NETSend logs from .NET applications
Apache Log4jJava logging with Log4j integration
ApexStructured logging for Go
Cloudflare WorkersEdge computing with Workers and OpenTelemetry
ConvexStream data from Convex applications
Elastic BeatsLightweight data shippers from Elastic
Elasticsearch Bulk APICompatible endpoint for Elasticsearch clients
GoNative Go logging integration
Heroku Log DrainsStream logs directly from Heroku apps
HoneycombCompatible endpoint for Honeycomb clients
KubernetesCollect logs and metrics from K8s clusters
LaravelPHP Laravel framework integration
LogrusStructured logging for Go with Logrus
LogstashServer-side data processing pipeline
LokiCompatible endpoint for Grafana Loki clients
Loki MultiplexerForward Loki data to multiple destinations
Next.jsFull-stack React framework logging
PinoFast Node.js logger integration
PythonPython logging with standard library
ReactClient-side React app logging
RenderStream logs from Render.com services
Ruby on RailsRails app logging
RustHigh-performance Rust logging
Secure SyslogTLS-encrypted syslog forwarding
ServerlessBest practices for serverless environments
SplunkCompatible endpoint for Splunk forwarders
Syslog ProxyForward syslog data with transformation
TremorEvent processing system for complex workflows
WinstonPopular Node.js logging library
ZapUber’s fast, structured Go logger

Amazon Web Services (AWS)

Axiom offers deep integration with the AWS ecosystem.
MethodDescription
Amazon CloudFrontCDN access logs and real-time logs
Amazon CloudWatchStream logs from CloudWatch Logs
Amazon Kinesis Data FirehoseReal-time streaming with Firehose
Amazon S3Process logs stored in S3 buckets
AWS FireLensContainer log routing for ECS/Fargate
AWS IoT RulesRoute IoT device data and telemetry
AWS LambdaServerless function logs and traces
AWS Lambda .NET.NET-specific Lambda integration

Example configurations

The following examples show how to send data using OpenTelemetry from various languages and frameworks.
ApplicationDescription
OpenTelemetry .NETComplete .NET app example
OpenTelemetry DjangoPython Django with OpenTelemetry
OpenTelemetry GoGo app with full observability
OpenTelemetry JavaJava Spring Boot example
OpenTelemetry Next.jsFull-stack Next.js with tracing
OpenTelemetry Node.jsNode.js Express example
OpenTelemetry PythonPython Flask/FastAPI example
OpenTelemetry RubyRuby on Rails with OpenTelemetry
If you need an ingestion method that isn’t in the list above, contact Axiom.

Limits on ingested data

The table below summarizes the limits Axiom applies to each data ingest. These limits are independent of your pricing plan.
Limit
Maximum event size1 MB
Maximum events in a batch10,000
Maximum field name length200 bytes
For more information about limits and requirements, see Limits.