Quickstart
Create a project, send a valid event, and run your first analytics query step by step.
This guide starts with an empty account and ends with a working analytics query. It assumes no previous ReportPlane knowledge.
You will model a simple page_view event with these fields:
| Field | Type | Meaning |
|---|---|---|
occurred_at | timestamp | When the page view happened |
account_id | string | The customer account |
path | string | The page path |
duration_ms | integer | Time spent on the page |
Before you begin
You need a verified ReportPlane account and permission to create resources in a workspace. If your workspace requires a customer-owned warehouse, have a supported warehouse credential ready.
1. Create a project
Open the console, choose your workspace, and select New project. Use a clear name such as Acme Production.
A project is an isolation boundary. Data models, clients, analytics definitions, and warehouse connections belong to a project. Development and production should normally use separate projects.
2. Create a data model
Go to Data → Data Models → New data model. Name the model page_view and add the four fields from the table above.
Set occurred_at as the time field. Mark fields as required only when every sender can always provide them. Save the model.
3. Connect storage
Go to Data → Warehouses.
- Choose Managed warehouse when it is enabled for your workspace.
- Otherwise, create a customer warehouse connection and provide the requested credential.
Open the model and confirm that it has an active destination. A destination is the delivery relationship between the model and the warehouse.
4. Create an ingest client
Go to Access → Ingest Clients → New ingest client.
- Name it
web-app. - Select HTTP as the protocol.
- Allow the
page_viewmodel. - Choose the authentication method.
- Add a CIDR restriction only if the sender uses predictable outbound addresses.
The detail page shows the effective endpoint and access policy.
5. Send one event
Use the credential shown by the console. Secrets may be displayed only once, so copy them immediately and store them in a secret manager.
curl https://ingest.reportplane.com/ingest \
-H "Authorization: Bearer YOUR_INGEST_SECRET" \
-H "Content-Type: application/json" \
-d '{
"schema": "page_view",
"data": [
{
"occurred_at": "2026-08-02T12:00:00Z",
"account_id": "acct_123",
"path": "/settings/team",
"duration_ms": 18420
}
]
}'
An accepted response means ReportPlane validated and queued the event. It does not mean the warehouse finished writing it in the same millisecond; delivery is asynchronous.
6. Check the data flow
Open Analytics → Live Monitor to see recent ingest activity. You can also inspect the data model and destination statistics.
If the event is rejected, read the returned error before retrying. Common causes are a missing required field, a type mismatch, a model that the client cannot access, or an authentication/network restriction.
7. Create an Analytics API
Go to Analytics → APIs → New Analytics API.
Create a definition that groups by path and counts events:
- Dimension:
path - Metric:
count - Order: count descending
- Limit:
10 - Visualization: bar chart
Save and publish the definition. The preview should return rows containing a path and count.
8. Create a query client
Go to Access → Query Clients → New query client.
Allow the Analytics API you created. Select an authentication method and save the client. Copy its secret if the console generates one.
9. Run the query
curl https://query.reportplane.com/query \
-H "Authorization: Bearer YOUR_QUERY_SECRET" \
-H "Content-Type: application/json" \
-d '{
"analytics": "YOUR_ANALYTICS_API_KEY",
"query": {
"filters": []
}
}'
A successful response uses the standard envelope and includes columns, rows, and result_metadata inside data.