Prerequisites
- You need a Postgres database that can receive incoming traffic from our IPs
15.188.105.163,15.188.215.105and35.181.129.14 - The associated database URL (should look something like
postgres://username:password@host.com/database)
Load your data
To get started, go to the data loaders page in Hyperline. You should see an empty state.
- Select a provider
- Give a name you’ll remember to your connection
- Enter the URL you got from the prerequisites
- Select the connection you just created
- Set an event type for this query. Hyperline uses this identifier to refer to the data from this query. For example,
api_callsoractive_users - Select the refresh rate for your use case. Every hour is usually enough to get started

Getting the SQL right
Now write your query. Hyperline expects the query output to follow a specific format. Hyperline requires 3 fields to validate the query:timestamp— The date used to determine whether a record falls within a billing period. For example, if you bill monthly API calls, only events with a timestamp within the current billing cycle are included. This field is less critical if your pricing does not rely on periodic metering.customerId— The Hyperline ID or external ID of the customer. This field is used to associate each record with the corresponding customer.id— A unique identifier for the record (can be an ID from your system). Hyperline uses this field to de-duplicate and update records, so ensure it uniquely represents each record.
automatically_created. To avoid clutter, these customers don’t appear in your customers list by default. You can access them in the pending customers table.
Optionally, you can also return a customerName property. Hyperline uses it to name the customer on creation, which makes the customer easier to find later.
To summarise, the minimum acceptable request looks like this:

Updating records
Hyperline automatically updates existing records. It uses the combination of the suppliedid and customerId and always keeps the latest version. Hyperline doesn’t update customer names, even if the name has changed. To change a name, update it in the interface.
Deleting records
Hyperline doesn’t delete records automatically. Instead, add adeletedAt field to the query and set it when the record is deleted. You can then filter these records out in the Hyperline pricing engine.

