GraphJSON turns JSON events into useful analytics without asking you to design a warehouse first. Send an event, inspect it immediately, and build charts, dashboards, alerts, or embedded analytics from the same data.
Choose your path#
If this is your first time using GraphJSON, start with the quickstart. You will send a real event and graph it in about five minutes.
If you already have data flowing, jump to the task you need:
| I want to… | Start here |
|---|---|
| Understand how GraphJSON stores data | Events and collections |
| Instrument an application | Design an event schema |
| Model people and customer accounts | Users, accounts, and identity |
| Make delivery production-ready | Reliable event delivery |
| Collect from browsers or mobile apps | Browser and mobile collection |
| Query data with SQL | Run SQL queries |
| Manage and share dashboards | Dashboard management |
| Monitor instrumentation quality | Instrumentation health |
| Put a chart in my product | Embed graphs |
| Send events over HTTP | API overview |
| Export or delete data | Data portability |
| Migrate historical analytics | Migration overview |
| Follow an end-to-end design | Reference architectures |
The GraphJSON workflow#
Most projects follow the same loop:
- Collect. Send JSON objects to a named collection, or connect an integration.
- Inspect. Use the Samples view to confirm the shape and types of incoming fields.
- Visualize. Choose a chart, time range, aggregation, metric, split, and filters.
- Share. Save the result to a dashboard, create an alert, or generate an embed.
- Go deeper. Use the SQL notebook when the visualizer is not expressive enough.
You do not need to declare a schema before logging. GraphJSON discovers fields from your events and keeps the original event timestamp alongside the JSON payload.
A small mental model#
A collection is a named stream of related events. An event is a JSON object plus a Unix timestamp. Every workspace also has a virtual all_events collection that lets you query across all of its collections.
For example, a product_events collection might contain:
{
"event": "checkout_completed",
"user_id": "usr_42",
"plan": "pro",
"amount": 4900,
"currency": "usd"
}
From that one event shape, you can count checkouts, sum revenue, compare plans, build a conversion funnel, or filter a customer-facing chart to one user_id.
A note on flexibility#
GraphJSON accepts changing JSON shapes, but analytics become much easier when the same concept always has the same name and type. A field that alternates between 49, "49", and "$49" is harder to aggregate than a consistently numeric amount.
Read Design your event schema before instrumenting a large surface area. A few deliberate conventions now will save a great deal of cleanup later.
Get help#
If an answer is missing or something behaves differently from these docs, email hi@graphjson.com. Include the collection name, endpoint or dashboard page, and the exact error message. Never send your API key by email.