> ## Documentation Index
> Fetch the complete documentation index at: https://docs.junojourney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

> Juno's REST API — authentication, endpoints, and developer access.

## Juno API

Juno provides a REST API for programmatic access to your organization's data. Use it to connect BI tools, HR systems, and custom workflows to Juno.

Every endpoint below has a reference page with request and response examples. Most reference pages also let you send a test request with your token.

***

## Authentication

Every request needs a **personal access token** in the `Authorization` header:

```
Authorization: Bearer <your_token>
```

To create a token, go to **Admin → Security → Developer Settings** and select **Generate Personal Access Token**. You need the **IT Admin** role to generate a token. Each token carries scopes that limit what it can do. To check completions or sync learner progress, select **Read learning activities**: it covers progress, completion and scores without quiz answers or budget data. Leave **Connect AI assistants (MCP)** unselected — that option creates an [MCP access token](https://docs.junojourney.com/mcp/access-tokens.md), which works only with the Juno MCP server and is rejected by this API.

> [!WARNING]
>
> Treat tokens like passwords. Never share them or put them in client-side code. REST API tokens don't expire, and you can't revoke them yourself. If an API token is exposed, contact Juno support to replace it. MCP access tokens are different: an Admin with the IT Admin role can [revoke them](https://docs.junojourney.com/mcp/access-tokens.md#revoke-a-token) directly in Developer Settings.

***

## Available endpoints

All endpoints live under `https://api.the-juno.com/api/v1/public-api`.

| Endpoint | What it does | Scope |
| - | - | - |
| [`POST /users/.search`](https://docs.junojourney.com/api/users/list-users) | Search users in your organization | `users:read` |
| [`POST /units/.search`](https://docs.junojourney.com/api/units/list-units) | Search learning units (Preview) | `units:read` |
| [`POST /units/:unitId/assign-by-email`](https://docs.junojourney.com/api/units/assign-unit-by-email) | Assign a unit to learners by email | `units:write` |
| [`POST /learning-activities/.search-cursor`](https://docs.junojourney.com/api/learning-activities/list-learning-activities) | Check a learner's completion, or page through learning activity (Preview) | `learning_activities:read` |
| [`POST /xapi/.search-cursor`](https://docs.junojourney.com/api/xapi/list-statements) | Page through xAPI statements with a cursor | `xapi:read` |
| [`POST /xapi/.scan`](https://docs.junojourney.com/api/xapi/export-statements) | Export all xAPI statements, 1,000 at a time | `xapi:read` |
| [`POST /xapi/.search`](https://docs.junojourney.com/api/xapi/search-statements) | Search xAPI statements. Deprecated: use `/xapi/.search-cursor` | `xapi:read` |
| `POST /events/.search` | Search activity events. Deprecated: new tokens can't get `events:read`; use [learning activities](https://docs.junojourney.com/api/learning-activities/overview.md) | `events:read` |

The `.search` endpoints accept a common query body: `filters`, `limit`, `skip`, `sort`, and `select`. The cursor endpoints (`.search-cursor` and `.scan`) page with `cursor` instead of `skip` and don't support `sort`. Each endpoint's reference page lists its filters and examples.

The SCIM endpoints are for identity providers, which use them out of the box, so you rarely need to call them yourself. They use your organization's SCIM URL and SCIM token, not a personal access token. See the [SCIM overview](https://docs.junojourney.com/api/scim/overview.md).

***

## Rate limits

The API enforces rate limits to keep the platform stable. Limits are the same on every plan: a request returns at most 1,000 records, except `POST /xapi/.search`, which returns up to 10,000. `POST /learning-activities/.search-cursor` also allows 60 requests per minute per token.

***

## Related

* [Webhooks](https://docs.junojourney.com/integrations/webhooks.md) — push data from Juno to your systems when an Automation runs.
* [xAPI](https://docs.junojourney.com/integrations/xapi.md) — how Juno records learning activity as xAPI statements.
* [Learning Activities API](https://docs.junojourney.com/api/learning-activities/overview.md) — check completions and sync learner progress.
* [Juno MCP server](https://docs.junojourney.com/mcp/overview.md) — connect AI assistants to Juno.

> [!NOTE]
>
> The Juno API is primarily designed for integration partners and enterprise customers. API access is included on all plans.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.