- To price your product (ex: price per user or per API call)
- Limit usage (ex: free up to 5GB of storage)
- Orchestrate pricing-related workflows (ex: when a customer reaches X, show a paywall).
Ingestion basics
Events payloads always follow the same (minimalist) structure and can be sent to the POST/events
endpoint. The record
object can contain any additional properties of type string
, number
, boolean
, and array of these types but arrays of objects will be rejected.
Events are processed instantly, you can go to your events page and refresh it to see it.
You can send as many as 50 events per second before being rate-limited. We’ll increase these limits as our infrastructure grows, please contact us if you need a custom limit.
Here’s an example payload
Event
Security and privacy
Even though we’re making some basic security check, we can’t filter every personal or confidential data off our systems automatically. Most of the time you don’t need personal information in Hyperline so we recommend you remove or obfuscate (for instance, John becomes J***).- People names
- People’s personal email addresses
- Phone numbers
- Payment information like card numbers or IBANs
- Physical addresses
- Anything that could help identify someone’s identity or localization
Events or entities?
Hyperline is designed to rely fully on events for data ingestion. We can then apply a variety of operators to configure how you want to aggregate data (count, sum), and filters (equals, “is null” check, greater/lower than comparators, etc.).
Event

Update and delete events
Now you may be thinking, what happens if I send an event that shouldn’t be billed? Or if need to make a change to an entity? Hyperline’s API is an append-only system, meaning that except through our interface, we don’t allow update or delete operations. But don’t worry, we got you covered.Updating an event
Each event is identified by a unique key composed of 2 parameters:event_type
record.id
timestamp
value.
Using our users again, here’s an example where we add a “status” property
premium
status and the previous version will not exist anymore. If you need to keep both versions, you’ll need to provide a different record.id
.
Deleting an event
If you sent an event by mistake, you can delete them in the Events tab on the app. But this is not the way to manage standard deletions, for instance when a user is removed from an account. There are many ways to manage this, the first one is to use thedeleted_at
key we added early and set it to something different than null
. Then update the usage product we created earlier to filter out records where deleted_at
is not null like so.

active
boolean field in the user entity that you can toggle to off. The principle stays the same, just set a property to the right value and filter out the elements you don’t want.
Limitations
In order to process massive numbers of events, Hyperline had to adopt a rigid structure for events. While quite permissive, there are 2 main limitations:- Record properties can’t be nested (only one level of properties is allowed)
- Records can’t have more than 25 properties