> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Authentication

> Learn about options for authenticating and making API calls with the Docusign Agreement Manager API.

All calls to the Docusign Agreement Manager API are authenticated using an access token that your app obtains using one of the standard OAuth 2.0 grants supported by Docusign:

* [Authenticate with Public Authorization Code Grant](/platform/auth/public-authcode-get-token)
* [How to get an access token with Confidential Authorization Code Grant](/platform/auth/confidential-authcode-get-token)
* [Implicit Grant](/platform/auth/implicit-get-token)
* [JWT Grant](/platform/auth/jwt-get-token)

**Note:** See [Choose an OAuth type](/platform/auth/choose) for details on when to use each authentication type.

The only difference between authenticating with the Agreement Manager API and the eSignature API is that, when requesting the access token in your OAuth2 scenario, you must request a special Docusign Agreement Manager scope in addition to your other Docusign eSignature [Authentication scopes](/platform/auth/reference/scopes).

|                                |                                                                                                                         |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **Scope**                      | **Description**                                                                                                         |
| `adm_store_unified_repo_read`  | Required to read agreement data from the Agreement Manager API.                                                         |
| `adm_store_unified_repo_write` | Required to write agreement data to the Agreement Manager API.                                                          |
| `document_uploader_read`       | Required for the `getBulkUploadJob()` endpoint.                                                                         |
| `document_uploader_write`      | Required for the `createBulkUploadJob()` and UploadComplete                                                             |
| `public_dms_document_read`     | Required to call the `download_url` property of an agreement object so you can download the agreement                   |
| `search_read`                  | Required when filtering the list of agreements returned by the API using text-based search with the `$search` parameter |

**Important:** If the required Docusign Agreement Manager API scopes were not explicitly requested, calls to the Docusign Agreement Manager API will fail.

## Next steps

* See [How-to guides](/docs/agreement-manager-api/how-to) that provide walkthroughs for common Agreement Manager API scenarios.
* Learn how to get an access token with any authentication flow by viewing these guides:

  * [Authenticate with Public Authorization Code Grant](/platform/auth/public-authcode-get-token)
  * [Authenticate with the Confidential Authorization Code Grant](/platform/auth/confidential-authcode-get-token)
  * [Implicit Grant](/platform/auth/implicit-get-token)
  * [JWT Grant](/platform/auth/jwt-get-token)