# Get started as a developer

> What you can build with Insights Orbit, the addresses and keys involved, and the order to set things up in.

Source: https://docs.bifrostorbit.com/insights/developers/get-started/

Insights Orbit counts visits and events on your organisation's websites and apps without cookies. As a developer you put the script on the website, send the events that matter, and read the numbers into your own tools. The examples use Northwilds, an outdoor travel brand at `northwilds.com` that sells guided trips such as a Lofoten ski touring week.

## What you need

- **A site in Insights Orbit:** An Admin adds it under **Sites**, with the addresses the website lives on. See [Add your first site](https://docs.bifrostorbit.com/insights/everyone/add-a-site/).
- **The site key:** It is on the site's **Install** screen. It goes in the page and is not a secret: events are only taken from the site's own addresses.
- **An API key:** Only for servers and data tools. See [API keys](https://docs.bifrostorbit.com/insights/developers/api-keys/).

## Set it up in this order

1. **Add the script:** One tag in the page's `<head>` counts page views, outbound links, downloads, forms, scroll depth and not-found pages. See [The script](https://docs.bifrostorbit.com/insights/developers/the-script/). A website built with the CMS Orbit SDK uses `CmsInsights` instead: [Connect Insights Orbit with the CMS Orbit SDK](https://docs.bifrostorbit.com/insights/developers/cms-orbit-sdk/).
2. **Check the first visit:** Open a page of the website. **Waiting for the first visit** on **Install** turns green within a few seconds.
3. **Serve it from your own domain:** Do this if ad blockers matter to you, with a proxy token so visitors' places and unique counts stay right. See [Serve Insights Orbit from your own domain](https://docs.bifrostorbit.com/insights/developers/first-party-proxy/).
4. **Send your own events:** Count what matters, such as `Trip booked` or `Brochure requested`, with `insights.track`. See [Send your own events](https://docs.bifrostorbit.com/insights/developers/send-events/). Events that happen on a server, such as a confirmed payment, go to the [server API](https://docs.bifrostorbit.com/insights/developers/server-api/).
5. **Agree goals with your team:** A goal is a page or an event that counts as success, such as the booking confirmation page. Editors set them up under **Goals**.

## Read the data

| Need | Use | Plan |
| --- | --- | --- |
| Every raw event, page by page, for a data warehouse | [Raw event API](https://docs.bifrostorbit.com/insights/developers/raw-event-api/) | Growth |
| The same events with a query | [GraphQL](https://docs.bifrostorbit.com/insights/developers/graphql/) | Growth |
| Trying requests from the browser | [API playground](https://docs.bifrostorbit.com/insights/developers/api-playground/) | Growth |
| A file of every event each night in your own bucket | [S3 export](https://docs.bifrostorbit.com/insights/developers/s3-export/) | Enterprise |
| An AI assistant that answers questions with your numbers | [The MCP server](https://docs.bifrostorbit.com/insights/developers/mcp-server/) | Growth |

## Addresses

| What | Production | Staging |
| --- | --- | --- |
| Script, events, server API and raw event API | `https://api.bifrostorbit.com/insights/v1/` | `https://api-stage.bifrostorbit.com/insights/v1/` |
| GraphQL | `https://api.bifrostorbit.com/insights/graphql` | `https://api-stage.bifrostorbit.com/insights/graphql` |
| The app and the MCP server | `https://app.bifrostorbit.com/insights` | `https://stage.bifrostorbit.com/insights` |

Under `/insights/v1/`:

| Path | Method | What it is |
| --- | --- | --- |
| `script.js` | `GET` | The script |
| `collect` | `POST` | Batches from the script |
| `server/events` | `POST` | Events from your servers, with an API key |
| `events` | `GET` | Raw events, with an API key |
| `opt-out?site=SITE_KEY` | `GET` | The page where visitors choose not to be counted |
| `labels`, `label.js`, `labelling` | `GET`, `POST` | Labelled events and labelling mode |

## Privacy

The script stores nothing in the browser unless a visitor asks not to be counted, and Insights Orbit keeps no IP addresses. Don't send names, email addresses or other personal data in event details. If your website asks for consent before counting, the script can wait for it. See [How visits are counted without cookies](https://docs.bifrostorbit.com/insights/everyone/how-visits-are-counted/).

Stuck? See [Troubleshooting for developers](https://docs.bifrostorbit.com/insights/developers/troubleshooting/).
