Skip to main content

Limits

Beta

This feature is in beta. Core behavior is stable, but some APIs or configuration may change before general availability.

Technical limits for EdgeBase Analytics.

Custom Events

LimitValueNotes
Max events per request100Single POST /api/analytics/track call
Max properties per event50 keysFlat key-value only (no nested objects)
Max properties size4,096 bytesJSON-serialized total
Property value typesstring, number, booleanArrays and objects not supported
Event nameNon-empty stringRequired for every event

Data Retention

DataRaw RetentionRollup
Custom events (_events)90 daysAggregated into daily summaries after 90 days
Daily summaries (_events_daily)IndefiniteEvent count + unique users per day
Request logs (_logs)90 daysAggregated into daily summaries after 90 days

Query Limits

ParameterRangeDefault
range1h, 6h, 24h, 7d, 30d, 90d24h
limit (list metric)1–100050
groupByminute, hour, dayhour

Rate Limiting

GroupDefaultKeyNotes
events100 req / 60sIPApplies to POST /api/analytics/track
global10,000,000 req / 60sIPApplies to all other analytics endpoints

The events rate limit protects the event ingestion endpoint from abuse, especially for anonymous (unauthenticated) callers.

Authentication

EndpointAuth Required
POST /api/analytics/trackOptional — JWT, Service Key, or anonymous
GET /api/analytics/queryService Key
GET /api/analytics/eventsService Key

Those Service Key-protected analytics queries are available across all Admin SDKs.

Storage

EnvironmentRequest LogsCustom Events
Cloud (Cloudflare)Analytics Engine + LogsDOLogsDO (SQLite)
Docker / Self-hostedLogsDO (SQLite)LogsDO (SQLite)

All custom events are stored in LogsDO regardless of environment. Request logs use Analytics Engine on Cloud for higher-performance aggregation queries.