Rybbit Analytics API

Stats API for events and reporting per site.

Business capability
Product Usage Analytics BC-4280.30

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/sites/{site}/users List the visitors tracked on a site · List users for a site #
Ask an LLM
“Can I page through every user Rybbit has recorded for one of my sites?”
“Is there a way to narrow my site's user list to visitors from one country or browser?”
Tell an agent
List the users on site {site}.
Show page {page} of users for site {site}, {limit} per page.
GET /api/sites/{site}/users/{userId} Look up one visitor's profile · Get a single user #
Ask an LLM
“How do I pull up the profile of a single visitor by their user ID?”
“What does my analytics know about one specific user on my site?”
Tell an agent
Get user {userId} on site {site}.
Show me the profile for visitor {userId} of site {site}.
GET /api/sites/{site}/users/{userId}/sessions List every visit made by one user · List sessions for a user #
Ask an LLM
“Which visits has one particular user made to my site over time?”
“Can I see the session history belonging to a single known visitor?”
Tell an agent
List the sessions belonging to user {userId} on site {site}.
Show the visit history of user {userId} for site {site}.
GET /api/sites/{site}/users/session-count Count sessions per user on a site · Get per-user session counts #
Ask an LLM
“How many times has each user come back to my site?”
“Can I get a session tally per visitor, filtered by device or traffic source?”
Tell an agent
Get the number of sessions each user has had on site {site}.
Count sessions per user on site {site} using filters {filters}.
GET /api/sites/{site}/journeys See common navigation paths through a site · Get user journeys #
Ask an LLM
“What paths do visitors usually take from page to page on my site?”
“Which page sequences are most common among mobile visitors?”
Tell an agent
Show the most common user journeys on site {site}.
Get navigation paths for site {site} limited to filters {filters}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/rybbit:rybbit-analytics-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

rybbit-analytics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Rybbit Analytics API
  description: Rybbit is an open-source, privacy-friendly web and product analytics platform. This specification covers the public event ingestion endpoint (POST /api/track) used by the tracking script and server-side integrations, and the Bearer-key-authenticated Stats API (beta) for querying sites, sessions, users, retention, and events. The cloud base URL is https://app.rybbit.io; self-hosted instances expose the same paths on their own domain.
  termsOfService: https://www.rybbit.io/terms
  contact:
    name: Rybbit
    url: https://www.rybbit.io
  license:
    name: AGPL-3.0
    url: https://www.gnu.org/licenses/agpl-3.0.html
  version: '1.0'
servers:
- url: https://app.rybbit.io
  description: Rybbit Cloud
- url: https://your-instance.example.com
  description: Self-hosted instance (AGPL-3.0)
security:
- bearerAuth: []
tags:
- name: Analytics
  description: Stats API for events and reporting per site.
paths:
  /api/sites/{site}/users:
    get:
      operationId: listUsers
      tags:
      - Analytics
      summary: List users for a site
      parameters:
      - $ref: '#/components/parameters/Site'
      - name: page
        in: query
        schema:
          type: integer
      - name: limit
        in: query
        schema:
          type: integer
      - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          description: A list of users.
  /api/sites/{site}/users/{userId}:
    get:
      operationId: getUser
      tags:
      - Analytics
      summary: Get a single user
      parameters:
      - $ref: '#/components/parameters/Site'
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User detail.
  /api/sites/{site}/users/{userId}/sessions:
    get:
      operationId: listUserSessions
      tags:
      - Analytics
      summary: List sessions for a user
      parameters:
      - $ref: '#/components/parameters/Site'
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Sessions for the user.
  /api/sites/{site}/users/session-count:
    get:
      operationId: getUserSessionCount
      tags:
      - Analytics
      summary: Get per-user session counts
      parameters:
      - $ref: '#/components/parameters/Site'
      - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          description: Session counts grouped by user.
  /api/sites/{site}/journeys:
    get:
      operationId: getJourneys
      tags:
      - Analytics
      summary: Get user journeys
      description: Returns common navigation paths (journeys) users take through the site.
      parameters:
      - $ref: '#/components/parameters/Site'
      - $ref: '#/components/parameters/Filters'
      responses:
        '200':
          description: Journey data.
components:
  parameters:
    Site:
      name: site
      in: path
      required: true
      description: The site ID (string or number) scoping the query.
      schema:
        type: string
    Filters:
      name: filters
      in: query
      required: false
      description: JSON-encoded array of filter objects to narrow results by browser, device, location, page data, UTM parameters, or user/event properties.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'User-scoped API key with organization-level access. Keys begin with "rb_" and are 35 characters long. Send as `Authorization: Bearer rb_...`. A `?api_key=` query parameter is also accepted for quick testing only. API keys and rate limits apply to the Stats API on Rybbit Cloud; self-hosted instances have no rate limits.'