# Overview

#### Throttling mechanisms are commonly used by cloud service providers to prevent API overloads. In the context of data protection, throttling can lead to task interruptions or significantly extended execution times. GitProtect minimizes this risk through an advanced system of credential rotation and dynamic exchange.

***

## Throttling prevention mechanism <a href="#preparing_personal_access_token" id="preparing_personal_access_token"></a>

**GitProtect** implements a credential management system that optimizes API limit usage by distributing requests across multiple accounts or access tokens. This process occurs automatically on two levels.

### <mark style="background-color:blue;">Credential rotation</mark>

Every task (backup or restore) launched in the system is assigned credentials from an available pool. The system applies a rotation principle, meaning that subsequent tasks use different authentication data (e.g., **task A** uses credential **a**, **task B** uses credential **b**, and so on). This ensures that API limits are used evenly, significantly reducing the likelihood of being blocked.

### <mark style="background-color:blue;">Dynamic credential exchange</mark>

If throttling occurs during an active task, the **Management Service** takes the following steps:

* **Available additional credentials** — if other credentials are available in the pool, **Management Service** sends new credentials to the worker. The task continues without interrupting the operation.
* **No additional credentials available** — if the credential pool is exhausted, **Management Service** informs the worker that no more credentials are available. The task is then suspended and marked as **Throttled**, **waiting for the limits to reset**.

{% hint style="success" %}
In the task summary within the **GitProtect** panel, you can review the list of all credentials used to perform the operation and check the specific time periods when throttling occurred.
{% endhint %}

***

## Important recovery requirements

For the credential exchange mechanism to function correctly during operations, specific permission requirements must be met:

* [x] **Location access** — additional credentials must have write permissions for the target recovery location.
* [x] **Restoring to an organization** — for platforms such as **GitHub**, **GitLab**, or **Bitbucket**, additional credentials function only when data is being restored to an organization that those accounts have access to.
* [x] **Restoring to a user account** — if you are restoring data directly to a specific user's account (rather than an organization), additional credentials will be ignored. This is due to security policies — other users typically cannot create resources under another user’s personal profile.


---

# 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://helpcenter.gitprotect.io/compliance-and-risk-management/throttling-prevention/overview.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.
