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

# Roller

## Overview

<CardGroup cols={3}>
  <Card title="Pre-built tooling" icon="screwdriver-wrench" href="#pre-built-tooling" />

  <Card title="Pre-built integrations" icon="square-check" href="#pre-built-integrations" />

  <Card title="Access requirements" icon="triangle-exclamation" href="#access-requirements" />

  <Card title="Setup guide" icon="rocket" href="#setup-guide" />

  <Card title="Useful links" icon="circle-info" href="#useful-links" />

  <Card title="API gotchas" icon="biohazard" href="#api-gotchas" />
</CardGroup>

## Pre-built tooling

<AccordionGroup>
  <Accordion title="✅ Authorization">
    | Tools                           | Status |
    | ------------------------------- | ------ |
    | Pre-built authorization (OAuth) | ✅      |
    | Credentials auto-refresh        | ✅      |
    | Pre-built authorization UI      | ✅      |
    | Custom authorization UI         | ✅      |
    | Expired credentials detection   | ✅      |
  </Accordion>

  <Accordion title="✅ Read & write data">
    | Tools                                     | Status                         |
    | ----------------------------------------- | ------------------------------ |
    | Pre-built integrations                    | 🚫 (time to contribute: \<48h) |
    | API unification                           | ✅                              |
    | 2-way sync                                | ✅                              |
    | Webhooks from Nango on data modifications | ✅                              |
    | Real-time webhooks from 3rd-party API     | 🚫 (time to contribute: \<48h) |
    | Proxy requests                            | ✅                              |
  </Accordion>

  <Accordion title="✅ Observability & data quality">
    | Tools                   | Status |
    | ----------------------- | ------ |
    | HTTP request logging    | ✅      |
    | End-to-end type safety  | ✅      |
    | Data runtime validation | ✅      |
    | OpenTelemetry export    | ✅      |
    | Slack alerts on errors  | ✅      |
    | Integration status API  | ✅      |
  </Accordion>

  <Accordion title="✅ Customization">
    | Tools                              | Status                         |
    | ---------------------------------- | ------------------------------ |
    | Create or customize use-cases      | ✅                              |
    | Pre-configured pagination          | 🚫 (time to contribute: \<48h) |
    | Pre-configured rate-limit handling | 🚫 (time to contribute: \<48h) |
    | Per-customer configurations        | ✅                              |
  </Accordion>
</AccordionGroup>

*No pre-built syncs or actions available yet.*

<Tip>Not seeing the integration you need? [Build your own](/guides/functions/functions-guide) independently.</Tip>

<Tip>
  Roller uses the <strong>OAuth 2.0 Client Credentials</strong> flow via <strong>Nango Connect UI</strong> (no end‑user login).
</Tip>

# Roller API

This page documents how to connect to **Roller** using **Nango Connect UI** with the **OAuth 2.0 Client Credentials** grant.

> **Why this page?** Roller is a machine‑to‑machine integration (no end‑user login). Following the Connect UI pattern keeps it consistent with other CC integrations.

## Setup guide

1. **Create API credentials in Roller**
   * Obtain a **Client ID** and **Client Secret** for your Roller account (these may be scoped per venue/account depending on your setup).

2. **Create a Connect Session on your backend**
   * Your server should create a short‑lived **Connect Session** and return its token to the frontend.
   * Use your preferred backend language; follow the standard Connect Session flow used by other CC integrations.

3. **Launch Connect UI in your frontend**
   * Instantiate the Nango Frontend SDK with the session token and open the UI. The user will select **Roller** and enter **Client ID / Client Secret**.

```js theme={null}
import Nango from '@nangohq/frontend';

// 1) Fetch a session token from your backend
const connectSessionToken = await fetch('/api/connect-session').then(r => r.text());

// 2) Open Connect UI
const nango = new Nango({ connectSessionToken });
await nango.openConnectUI({ sessionToken: connectSessionToken });
// The Connect UI handles collecting Client ID/Secret and creating the connection
```

4. **Use the connection in your backend**
   * Call Roller endpoints through your backend using Nango’s Proxy. Re‑use the connection you created in step 3.

***

## Useful links

* **Auth0 (Client Credentials) — example**: /integrations/all/auth0-cc
* **Frontend SDK (Connect UI API)**: /reference/sdks/frontend
* **Quickstart: Embed in your app (connect session token)**: /guides/primitives/auth
* **Authorize in your app (default UI)**: /guides/api-authorization/authorize-in-your-app-default-ui
* **Proxy requests** (server-side calls through Nango): /guides/proxy-requests

***

## API gotchas

* **Client Credentials (no end‑user login):** there is no consent screen; the UI only collects **Client ID/Secret**.
* **Credential scope:** if your Roller credentials are scoped (e.g., per venue), create separate connections per scope.
* **Timestamps:** many APIs return timestamps in **UTC**; format for your users’ locale/timezone in the client.

***

## Troubleshooting

* **401/403 when calling Roller:** double‑check the Client ID/Secret entered during Connect UI and that you’re using the intended connection ID.
* **Multiple accounts/instances:** create one connection per account/instance so credentials don’t conflict.

***

## Going further

* Use metadata on the connection (or your own mapping) to track which venue/tenant a given connection refers to.
* Add prefill values to Connect UI if you already know the Client ID (leaving only the secret for the user to paste).
