# Management API (GraphQL)

For any other CRUD operations, a **GraphQL** API is provided.

The **GraphQL** API endpoint is `https://{tenant_id}.api.quasr.io/graphql`

The Management API allows to create, read, update, delete the following entities:

* accounts
* controls
* consents
* permissions
* rules
* factors
* enrollments
* extensions
* tenants
* events

{% hint style="info" %}
You can find our interactive **GraphQL Explorer** here: <https://quasr-io.github.io/graphql/>
{% endhint %}

<figure><img src="/files/y2trNusMjKwN4gRIINF1" alt=""><figcaption><p>GraphQL Explorer</p></figcaption></figure>

## **Postman Collection**

{% hint style="info" %}
**Postman collection** here: <https://documenter.getpostman.com/view/18129777/UVXgMHEv>
{% endhint %}

## API Authorization

The Management API requires an **access token (JWT)** with scope `https://api.quasr.io/scopes/admin` or `https://api.quasr.io/scopes/account` (then limited to own resources only) in the **Authorization header**. You can either use your own **personal access token** or create a **dedicated** [**API Client**](/quasr/getting-started/setup-your-tenant/setting-up-an-api-client-m2m.md) for it, if you prefer.&#x20;

You can grab your **personal access token** from the [Tenant Administration](broken://pages/xT9DB1eLOv3hNxZlVxGT) > APIs, as shown in the screenshot below. Do not share the personal access token with anyone.

<figure><img src="/files/edUsXnlzanUxn45noTFk" alt=""><figcaption><p>Personal access token under APIs in the Quasr Tenant Admin UI</p></figcaption></figure>

### Mutation Scopes

<table><thead><tr><th width="165.291015625">Mutation</th><th width="445.0096435546875">Scopes</th><th>Notes</th></tr></thead><tbody><tr><td>createTenant</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/tenants https://api.quasr.io/scopes/account/tenants/create</td><td>Root user</td></tr><tr><td>updateTenant</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/tenants https://api.quasr.io/scopes/account/tenants/update</td><td>Root user</td></tr><tr><td>updateTenant</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/tenants https://api.quasr.io/scopes/admin/tenants/update</td><td>Tenant admin</td></tr><tr><td>deleteTenant</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/tenants https://api.quasr.io/scopes/account/tenants/delete</td><td>Root user</td></tr><tr><td>createFactor</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/factors https://api.quasr.io/scopes/admin/factors/create</td><td>Tenant admin</td></tr><tr><td>updateFactor</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/factors https://api.quasr.io/scopes/admin/factors/update</td><td>Tenant admin</td></tr><tr><td>deleteFactor</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/factors https://api.quasr.io/scopes/admin/factors/delete</td><td>Tenant admin</td></tr><tr><td>createAttribute</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/attributes https://api.quasr.io/scopes/admin/attributes/create</td><td>Tenant admin</td></tr><tr><td>updateAttribute</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/attributes https://api.quasr.io/scopes/admin/attributes/update</td><td>Tenant admin</td></tr><tr><td>deleteAttribute</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/attributes https://api.quasr.io/scopes/admin/attributes/delete</td><td>Tenant admin</td></tr><tr><td>createControl</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/controls https://api.quasr.io/scopes/admin/controls/create</td><td>Tenant admin</td></tr><tr><td>updateControl</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/controls https://api.quasr.io/scopes/admin/controls/update</td><td>Tenant admin</td></tr><tr><td>deleteControl</td><td>ttps://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/controls https://api.quasr.io/scopes/admin/controls/delete</td><td>Tenant admin</td></tr><tr><td>createAccount</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/accounts https://api.quasr.io/scopes/admin/accounts/create</td><td>Tenant admin</td></tr><tr><td>updateAccount</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/accounts https://api.quasr.io/scopes/admin/accounts/update</td><td>Tenant admin</td></tr><tr><td>deleteAccount</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/accounts https://api.quasr.io/scopes/admin/accounts/delete</td><td>Tenant admin</td></tr><tr><td>createExtension</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/extensions https://api.quasr.io/scopes/admin/extensions/create</td><td>Tenant admin</td></tr><tr><td>updateExtension</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/extensions https://api.quasr.io/scopes/admin/extensions/update</td><td>Tenant admin</td></tr><tr><td>deleteExtension</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/extensions https://api.quasr.io/scopes/admin/extensions/delete</td><td>Tenant admin</td></tr><tr><td>createClaim</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/create</td><td>Tenant admin</td></tr><tr><td>createClaim</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/claims https://api.quasr.io/scopes/account/claims/create</td><td>Account</td></tr><tr><td>updateClaim</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/update</td><td>Tenant admin</td></tr><tr><td>updateClaim</td><td>ttps://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/claims https://api.quasr.io/scopes/account/claims/update</td><td>Account</td></tr><tr><td>deleteClaim</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/delete</td><td>Tenant admin</td></tr><tr><td>deleteClaim</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/claims https://api.quasr.io/scopes/account/claims/delete</td><td>Account</td></tr><tr><td>createEnrollment</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/enrollments https://api.quasr.io/scopes/admin/enrollments/create</td><td>Tenant admin (only internal accounts)</td></tr><tr><td>createEnrollment</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/enrollments https://api.quasr.io/scopes/account/enrollments/create</td><td>Account</td></tr><tr><td>updateEnrollment</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/enrollments https://api.quasr.io/scopes/admin/enrollments/update</td><td>Tenant admin (only disable for internal accounts)</td></tr><tr><td>updateEnrollment</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/enrollments https://api.quasr.io/scopes/account/enrollments/update</td><td>Account</td></tr><tr><td>deleteEnrollment</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/enrollments https://api.quasr.io/scopes/admin/enrollments/delete</td><td>Tenant admin (only internal accounts)</td></tr><tr><td>deleteEnrollment</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/enrollments https://api.quasr.io/scopes/account/enrollments/delete</td><td>Account</td></tr><tr><td>updateConsent</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/consents https://api.quasr.io/scopes/admin/consents/update</td><td>Tenant admin</td></tr><tr><td>updateConsent</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/consents https://api.quasr.io/scopes/admin/consents/update</td><td>Account</td></tr><tr><td>createPermission</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/permissions https://api.quasr.io/scopes/admin/permissions/create</td><td>Tenant admin</td></tr><tr><td>updatePermission</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/permissions https://api.quasr.io/scopes/admin/permissions/update</td><td>Tenant admin</td></tr><tr><td>deletePermission</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/permissions https://api.quasr.io/scopes/admin/permissions/delete</td><td>Tenant admin</td></tr><tr><td>createRule</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/rules https://api.quasr.io/scopes/admin/rules/create</td><td>Tenant admin</td></tr><tr><td>updateRule</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/rules https://api.quasr.io/scopes/admin/rules/update</td><td>Tenant admin</td></tr><tr><td>deleteRule</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/rules https://api.quasr.io/scopes/admin/rules/delete</td><td>Tenant admin</td></tr><tr><td>createSource</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/sources https://api.quasr.io/scopes/admin/sources/create</td><td>Tenant admin</td></tr><tr><td>updateSource</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/sources https://api.quasr.io/scopes/admin/sources/update</td><td>Tenant admin</td></tr><tr><td>deleteSource</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/sources https://api.quasr.io/scopes/admin/sources/delete</td><td>Tenant admin</td></tr></tbody></table>

### Query Scopes

<table><thead><tr><th width="167.35662841796875">Query</th><th width="433.35223388671875">Scopes</th><th>Notes</th></tr></thead><tbody><tr><td>getTenant</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/tenants https://api.quasr.io/scopes/account/tenants/get</td><td>Root user</td></tr><tr><td>getTenant</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/tenants https://api.quasr.io/scopes/admin/tenants/get</td><td>Tenant admin</td></tr><tr><td>listTenants</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/tenants https://api.quasr.io/scopes/account/tenants/list</td><td>Root user</td></tr><tr><td>getFactor</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/factors https://api.quasr.io/scopes/admin/factors/get</td><td>Tenant admin</td></tr><tr><td>listFactors</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/factors https://api.quasr.io/scopes/admin/factors/list</td><td>Tenant admin</td></tr><tr><td>getAttribute</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/attributes https://api.quasr.io/scopes/admin/attributes/get</td><td>Tenant admin</td></tr><tr><td>listAttributes</td><td>ps://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/attributes https://api.quasr.io/scopes/admin/attributes/list</td><td>Tenant admin</td></tr><tr><td>getControl</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/controls https://api.quasr.io/scopes/admin/controls/get</td><td>Tenant admin</td></tr><tr><td>listControls</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/controls https://api.quasr.io/scopes/admin/controls/list</td><td>Tenant admin</td></tr><tr><td>getAccount</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/accounts https://api.quasr.io/scopes/admin/accounts/get</td><td>Tenant admin</td></tr><tr><td>getAccount</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/get</td><td>Account</td></tr><tr><td>listAccounts</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/accounts https://api.quasr.io/scopes/admin/accounts/list</td><td>Tenant admin</td></tr><tr><td>getExtension</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/extensions https://api.quasr.io/scopes/admin/extensions/get</td><td>Tenant admin</td></tr><tr><td>listExtensions</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/extensions https://api.quasr.io/scopes/admin/extensions/list</td><td>Tenant admin</td></tr><tr><td>getClaim</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/get</td><td>Tenant admin</td></tr><tr><td>getClaim</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/claims https://api.quasr.io/scopes/account/claims/get</td><td>Account</td></tr><tr><td>listClaims</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/list</td><td>Tenant admin (only per account)</td></tr><tr><td>listClaims</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/claims https://api.quasr.io/scopes/account/claims/list</td><td>Account</td></tr><tr><td>searchClaims</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/claims https://api.quasr.io/scopes/admin/claims/search</td><td>Tenant admin (only min. 2 characters)</td></tr><tr><td>getEnrollment</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/enrollments https://api.quasr.io/scopes/admin/enrollments/get</td><td>Tenant admin</td></tr><tr><td>getEnrollment</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/enrollments https://api.quasr.io/scopes/account/enrollments/get</td><td>Account</td></tr><tr><td>listEnrollments</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/enrollments https://api.quasr.io/scopes/admin/enrollments/list</td><td>Tenant admin</td></tr><tr><td>listEnrollments</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/enrollments https://api.quasr.io/scopes/account/enrollments/list</td><td>Account</td></tr><tr><td>getConsent</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/consents https://api.quasr.io/scopes/admin/consents/get</td><td>Tenant admin</td></tr><tr><td>getConsent</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/consents https://api.quasr.io/scopes/account/consents/get</td><td>Account</td></tr><tr><td>listConsents</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/consents https://api.quasr.io/scopes/admin/consents/list</td><td>Tenant admin</td></tr><tr><td>listConsents</td><td><p>https://api.quasr.io/scopes/account</p><p>https://api.quasr.io/scopes/account/consents https://api.quasr.io/scopes/account/consents/list</p></td><td>Account</td></tr><tr><td>getPermission</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/permissions https://api.quasr.io/scopes/admin/permissions/get</td><td>Tenant admin</td></tr><tr><td>getPermission</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/permissions https://api.quasr.io/scopes/account/permissions/get</td><td>Account</td></tr><tr><td>listPermissions</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/permissions https://api.quasr.io/scopes/admin/permissions/list</td><td>Tenant admin</td></tr><tr><td>listPermissions</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/permissions https://api.quasr.io/scopes/account/permissions/list</td><td>Account</td></tr><tr><td>getRule</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/rules https://api.quasr.io/scopes/admin/rules/get</td><td>Tenant admin</td></tr><tr><td>listRules</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/rules https://api.quasr.io/scopes/admin/rules/list</td><td>Tenant admin</td></tr><tr><td>getSource</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/sources https://api.quasr.io/scopes/admin/sources/get</td><td>Tenant admin</td></tr><tr><td>listSources</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/sources https://api.quasr.io/scopes/admin/sources/list</td><td>Tenant admin</td></tr><tr><td>getLink</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/links https://api.quasr.io/scopes/admin/links/get</td><td>Tenant admin</td></tr><tr><td>getLink</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/links https://api.quasr.io/scopes/account/links/get</td><td>Account</td></tr><tr><td>listLinks</td><td>https://api.quasr.io/scopes/admin https://api.quasr.io/scopes/admin/links https://api.quasr.io/scopes/admin/links/list</td><td>Tenant admin</td></tr><tr><td>listLinks</td><td>https://api.quasr.io/scopes/account https://api.quasr.io/scopes/account/links https://api.quasr.io/scopes/account/links/list</td><td>Account</td></tr></tbody></table>

## Rate Limits

The GraphQL API has a limit of 2000 request tokens per second. As your requests could consume one or more tokens per request it's hard to estimate the expected max RPS but if we'd assume an average of 2 tokens per request it means the API should be able to support \~1000 RPS. The burst limit is 40 requests.

{% hint style="danger" %}
If you exceed 300 requests in 5 min from a single IP address it will be temporarily blocked until you reduce your rate (this can sometimes take a couple minutes). **This limitation can be relevant for large shared networks or back-end integrations that operate via fixed IP.**
{% endhint %}

{% hint style="danger" %}
We block IPs that are listed as either malicious or actively engaged in reconnaissance or DDOS activities (AWS IP reputation list).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.quasr.io/quasr/tenant-administration/apis/management-api-graphql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
