> For the complete documentation index, see [llms.txt](https://docs.qapilot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qapilot.io/detailed-documentation/partner-integrations.md).

# Partner Integrations

## Single Sign-On (SSO) Integration

SSO lets your users open QAPilot directly from your platform without having to log in separately.

***

### Before You Begin

Your users must already be onboarded on QAPilot. Contact your QAPilot account manager to get this set up.

***

### Step 1 - Enable SSO

1. In QAPilot, go to **Settings → Single Sign-On**
2. Toggle **Enable Single Sign-On** to **Yes**
3. Copy the **Access Key** shown and save it securely in your backend

> **Note:** If you click **Refresh**, a new Access Key is generated and the old one is deactivated immediately. Update your integration before refreshing.

***

### Step 2 - Generate an SSO Token

When a user wants to access QAPilot, your backend need to call this API to get a login URL.

**Endpoint**

```
POST https://api.qapilot.io/patapi/access/sso/v1/generate-sso-token
```

**Request body**

```json
{
  "login_id": "user@example.com",
  "accesskey": "your-access-key-here"
}
```

| Field       | Description                            |
| ----------- | -------------------------------------- |
| `login_id`  | The user's registered email on QAPilot |
| `accesskey` | The Access Key from your SSO Settings  |

Reach out to support team for assistance with hashing of the payload. On success, you will receive a signed URL. Redirect the user's browser to this URL - QAPilot will log them in automatically.

> The token in this URL is valid for **5 minutes** and can only be used once.

***

### Important

* Always make this API call from your backend, never from the browser
* Generate a fresh token each time - do not reuse or cache tokens
* The `login_id` must belong to a user already onboarded on QAPilot

***

*For help, contact your QAPilot account manager or write to* [*support@qapilot.io*](mailto:support@qapilot.io)
