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

# Authentication

> Use an enterprise API key to authenticate with the team v2 APIs

<sup>Questions or issues? Contact us at [api-support@manus.ai](mailto:api-support@manus.ai).</sup>

All team v2 APIs use an **enterprise API key** issued from Compliance settings, sent in the `X-API-Key` header. Only Tenant Owners can issue these keys.

## Get an enterprise API key

<Steps>
  <Step title="Open Compliance settings">
    Sign in as a Tenant Owner and go to [Compliance settings](https://manus.im/app#settings/compliance-api).
  </Step>

  <Step title="Select a key type">
    Choose the key type that matches the product you want to use. Each key type is scoped to a specific surface and cannot be used outside it.

    | Key type                     | Purpose                                                                                                                                                                                                                                                                                       | Expiry                 |
    | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
    | **e-Discovery & legal hold** | [Enterprise Data Export](/enterprise/v2/data-export-overview)                                                                                                                                                                                                                                 | optional               |
    | **SIEM**                     | [Enterprise SIEM Integrations](/enterprise/v2/siem-integrations-overview) — export audit events (Tier 1 metadata; Tier 2 payloads)                                                                                                                                                            | optional               |
    | **Team User Management**     | [Team User Management](/enterprise/v2/user-management-overview) (provision / update / offboard members from your IDP)                                                                                                                                                                         | optional, max 365 days |
    | **Team Asset Audit**         | [Shared Team Asset Governance](/enterprise/v2/asset-governance-overview) — read-only DSPM enumeration ([team.asset.list](/enterprise/v2/team.asset.list))                                                                                                                                     | optional               |
    | **Team Asset Management**    | [Shared Team Asset Governance](/enterprise/v2/asset-governance-overview) — admin override of share scope ([team.asset.update\_scope](/enterprise/v2/team.asset.update_scope)); also accepted on [team.asset.list](/enterprise/v2/team.asset.list) since write access implicitly includes read | optional               |
  </Step>

  <Step title="Create and copy the key">
    Generate a new key with a descriptive label (e.g. "sailpoint-prod-2026-q2"). Copy it immediately — it is shown only once. Store it in a secrets manager.
  </Step>
</Steps>

<Warning>
  Enterprise API keys grant access to **all users' data** within your enterprise (and, for Team User Management keys, the ability to add / remove members). Treat them as highly sensitive credentials. Rotate keys periodically and revoke any key that may have been exposed.
</Warning>

## Use the API key

Include the key in the `X-API-Key` header on every request:

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl --location --request POST 'https://api.manus.im/v2/enterprise.export.create' \
      --header 'X-API-Key: <your-api-key>' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "user_id": "114504",
        "scope": "ENTERPRISE_EXPORT_SCOPE_FULL",
        "include_files": true,
        "reason": "compliance audit"
      }'
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import os
    import requests

    response = requests.post(
        "https://api.manus.im/v2/enterprise.export.create",
        headers={
            "X-API-Key": os.environ["MANUS_ENTERPRISE_API_KEY"],
            "Content-Type": "application/json",
        },
        json={
            "user_id": "114504",
            "scope": "ENTERPRISE_EXPORT_SCOPE_FULL",
            "include_files": True,
            "reason": "compliance audit",
        },
    )
    print(response.json())
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={null}
    const response = await fetch("https://api.manus.im/v2/enterprise.export.create", {
      method: "POST",
      headers: {
        "X-API-Key": process.env.MANUS_ENTERPRISE_API_KEY!,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        user_id: "114504",
        scope: "ENTERPRISE_EXPORT_SCOPE_FULL",
        include_files: true,
        reason: "compliance audit",
      }),
    });

    const data = await response.json();
    console.log(data);
    ```
  </Tab>
</Tabs>

## Authentication errors

If the key is missing, invalid, or its key type does not match the endpoint being called, the API returns:

```json theme={null}
{
  "ok": false,
  "request_id": "req_abc123",
  "error": {
    "code": "unauthenticated",
    "message": "Invalid or missing enterprise API key"
  }
}
```
