<commit_before>---
url: /apis
toc: true
title: APIs Overview
description: Learn the basics of APIs, their role in OAuth and how to configure an API in Auth0 Dashboard.
crews: crew-2
---
# APIs

<%= include('../_includes/_pipeline2') %>

## Overview

An API is an entity that represents an external resource, capable of accepting and responding to protected resource requests made by clients. At the [OAuth2 spec](https://tools.ietf.org/html/rfc6749) an API maps to the **Resource Server**.

When a client wants to access an API's protected resources it must provide an access token. The same access token can be used to access the API's resources without having to authenticate again, until it expires.

Each API has a set of defined permissions. Clients can request a subset of those defined permissions when they execute the authorization flow, and include them in the access token as part of the **scope** request parameter.

For example, an API that holds a user's appointments, may accept two different levels of authorization: read only (scope `read:appointments`) or write (scope `write:appointments`). When a client asks the API to list a user's appointments, then the access token should contain the `read:appointments` scope. In order to edit an existing appointment or create a new one, the access token should contain the `write:appointments` scope.

::: note
For more information on tokens please refer to: [Tokens used by Auth0](/tokens).
:::

## How to configure an API in Auth0

Click on the [APIs menu option](${manage_url}/#/apis) on the left.

::: note
The API tab will already have one API created automatically, the **Auth0 Management API**. For more details on the features of the Management API and its available endpoints, refer to: [Management API](/api/management/v2).
:::

Click the **+ Create API** button.

![Create a new API](/media/articles/api/overview/create-api.png)

You need to provide the following information for your API:<commit_msg>Add link to access tokens doc<commit_after>---
url: /apis
toc: true
title: APIs Overview
description: Learn the basics of APIs, their role in OAuth and how to configure an API in Auth0 Dashboard.
crews: crew-2
---
# APIs

<%= include('../_includes/_pipeline2') %>

## Overview

An API is an entity that represents an external resource, capable of accepting and responding to protected resource requests made by clients. At the [OAuth2 spec](https://tools.ietf.org/html/rfc6749) an API maps to the **Resource Server**.

When a client wants to access an API's protected resources it must provide an [access token](/tokens/access-token). The same access token can be used to access the API's resources without having to authenticate again, until it expires.

Each API has a set of defined permissions. Clients can request a subset of those defined permissions when they execute the authorization flow, and include them in the access token as part of the **scope** request parameter.

For example, an API that holds a user's appointments, may accept two different levels of authorization: read only (scope `read:appointments`) or write (scope `write:appointments`). When a client asks the API to list a user's appointments, then the access token should contain the `read:appointments` scope. In order to edit an existing appointment or create a new one, the access token should contain the `write:appointments` scope.

::: note
For more information on tokens please refer to: [Tokens used by Auth0](/tokens).
:::

## How to configure an API in Auth0

Click on the [APIs menu option](${manage_url}/#/apis) on the left.

::: note
The API tab will already have one API created automatically, the **Auth0 Management API**. For more details on the features of the Management API and its available endpoints, refer to: [Management API](/api/management/v2).
:::

Click the **+ Create API** button.

![Create a new API](/media/articles/api/overview/create-api.png)

You need to provide the following information for your API:
{'fraction_non_alphanumeric': 0.08053186151530356, 'fraction_numerical': 0.006021073758153537, 'mean_word_length': 4.5918653576437585, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1747828', 'n_tokens_mistral': 1050, 'n_tokens_neox': 1001, 'n_words': 570}