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

# Índice de referência da API OAuth

> Índice de referência dos endpoints de autenticação do X para OAuth 1.0a e OAuth 2.0, incluindo request tokens, authorize, access tokens e revogação de tokens.

### OAuth 1.0a

|                                                                                                                                                                     |                                                                                                                  |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------- |
| **Finalidade**                                                                                                                                                      | Método                                                                                                           |
| Passo 1 do fluxo 3-legged OAuth e do Sign in with X  <br />Permite que uma aplicação Consumer obtenha um OAuth Request Token para solicitar autorização do usuário. | [POST oauth/request\_token](/resources/fundamentals/authentication/api-reference#post-oauth-request-token)       |
| Passo 2 do fluxo 3-legged OAuth e do Sign in with X  <br />Permite que uma aplicação Consumer use um OAuth Request Token para solicitar autorização do usuário.     | [GET oauth/authenticate](/resources/fundamentals/authentication/api-reference#get-oauth-authenticate)            |
| Passo 2 do fluxo 3-legged OAuth e do Sign in with X  <br />Permite que uma aplicação Consumer use um OAuth Request Token para solicitar autorização do usuário.     | [GET oauth/authorize](/resources/fundamentals/authentication/api-reference#get-oauth-authorize)                  |
| Passo 3 do fluxo 3-legged OAuth e do Sign in with X  <br />Permite que uma aplicação Consumer troque o OAuth Request Token por um OAuth Access Token.               | [POST oauth/access\_token](/resources/fundamentals/authentication/api-reference#post-oauth-access-token)         |
| Permite que uma aplicação registrada revogue um OAuth Access Token emitido.                                                                                         | [POST oauth/invalidate\_token](/resources/fundamentals/authentication/api-reference#post-oauth-invalidate-token) |

### OAuth 2.0 Bearer Token

|                                                                                                                                                                   |                                                                                                                    |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |
| **Finalidade**                                                                                                                                                    | Método                                                                                                             |
| Permite que um App registrado gere um Bearer Token app-only OAuth 2, que pode ser usado para fazer solicitações à API em nome de um App, sem contexto de usuário. | [POST oauth2/token](/resources/fundamentals/authentication/api-reference#post-oauth2-token)                        |
| Permite que um App registrado revogue um Bearer Token app-only OAuth 2 emitido.                                                                                   | [POST oauth2/invalidate\_token](/resources/fundamentals/authentication/api-reference#post-oauth2-invalidate-token) |

### POST oauth/request\_token

Permite que uma aplicação Consumer obtenha um OAuth Request Token para solicitar autorização do usuário. Este método cumpre a [Seção 6.1](https://oauth.net/core/1.0/#auth_step1) do [fluxo de autenticação OAuth 1.0](http://oauth.net/core/1.0/#anchor9).

**Exigimos que você use HTTPS em todos os passos de autorização OAuth.**

**Nota de uso:** somente valores ASCII são aceitos para o `oauth_nonce`.

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth/request_token`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |      |
| :-------------------- | :--- |
| Formatos de resposta  | JSON |
| Requer autenticação?  | Não  |
| Sujeito a rate limit? | Sim  |

**Parâmetros[](#parameters "Permalink to this headline")**

| Nome                  | Obrigatório | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Exemplo                                                          |
| :-------------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- |
| oauth\_callback       | obrigatório | Para conformidade com OAuth 1.0a, este parâmetro é **obrigatório**. O valor especificado aqui será usado como a URL para a qual o usuário é redirecionado caso aprove o acesso da sua aplicação à conta dele. Defina como `oob` para o modo out-of-band pin. É também assim que você especifica callbacks personalizados para uso em aplicações desktop/móveis. Sempre envie um `oauth_callback` neste passo, independentemente de um callback pré-registrado.<br /><br />Exigimos que qualquer callback URL usada com este endpoint seja configurada nas configurações do App em developer.x.com\* | `http://themattharris.local/auth.php` `twitterclient://callback` |
| x\_auth\_access\_type | opcional    | Substitui o nível de acesso que uma aplicação solicita à conta de um usuário. Os valores suportados são `read` ou `write`. Este parâmetro tem o objetivo de permitir que um desenvolvedor registre uma aplicação de leitura/escrita, mas também solicite acesso somente leitura quando apropriado.                                                                                                                                                                                                                                                                                                  |                                                                  |

Saiba mais sobre como aprovar suas URLs de callback [nesta página](/resources/fundamentals/developer-apps#callback-urls).

**Observação** — você pode visualizar e editar seus [X apps](/resources/fundamentals/developer-apps) existentes pelo [painel de X apps](https://developer.x.com/en/apps) se estiver logado na sua conta do X em developer.x.com.

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

Request URL: `POST https://api.x.com/oauth/request_token`

Request POST Body: *N/A*

Authorization Header: `OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0"`

Response: `oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik&oauth_token_secret=Kd75W4OQfb2oJTV0vzGzeXftVAwgMnEK9MumzYcM&oauth_callback_confirmed=true`

### GET oauth/authorize

Permite que uma aplicação Consumer use um OAuth Request Token para solicitar autorização do usuário. Este método cumpre a [Seção 6.2](http://oauth.net/core/1.0/#auth_step2) do [fluxo de autenticação OAuth 1.0](http://oauth.net/core/1.0/#anchor9). Aplicações desktop devem usar este método (e não podem usar [GET oauth / authenticate](/resources/fundamentals/authentication/api-reference#get-oauth-authenticate)).

**Nota de uso:** um `oauth_callback` nunca é enviado a este método; envie-o para [POST oauth / request\_token](/resources/fundamentals/authentication/api-reference#post-oauth-request-token).

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth/authorize`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |      |
| :-------------------- | :--- |
| Formatos de resposta  | JSON |
| Requer autenticação?  | Sim  |
| Sujeito a rate limit? | Sim  |

**Parâmetros[](#parameters "Permalink to this headline")**

|              |             |                                                                                               |              |         |
| :----------- | :---------- | :-------------------------------------------------------------------------------------------- | :----------- | :------ |
| Nome         | Obrigatório | Descrição                                                                                     | Valor padrão | Exemplo |
| force\_login | opcional    | Força o usuário a inserir suas credenciais para garantir que a conta correta seja autorizada. |              |         |
| screen\_name | opcional    | Pré-preenche o campo de nome de usuário da tela de login OAuth com o valor informado.         |              |         |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

Envie o usuário para o passo `oauth/authorize` em um navegador, incluindo o parâmetro oauth\_token:
`https://api.x.com/oauth/authorize?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik`

### GET oauth/authenticate

Permite que uma aplicação Consumer use um OAuth `request_token` para solicitar autorização do usuário.

Este método substitui a [Seção 6.2](http://oauth.net/core/1.0/#auth_step2) do [fluxo de autenticação OAuth 1.0](http://oauth.net/core/1.0/#anchor9) para aplicações que usam o fluxo de autenticação por callback. O método usará o usuário atualmente logado como a conta para autorização de acesso, a menos que o parâmetro `force_login` seja definido como `true`.

Este método difere de [GET oauth / authorize](/resources/fundamentals/authentication/api-reference#get-oauth-authorize) porque, se o usuário já tiver concedido permissão à aplicação, o redirect ocorrerá sem que o usuário precise reaprovar a aplicação. Para obter esse comportamento, você deve habilitar a configuração *Use Sign in with X* no [registro da sua aplicação](https://developer.x.com/apps).

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth/authenticate`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |      |
| :-------------------- | :--- |
| Formatos de resposta  | JSON |
| Requer autenticação?  | Sim  |
| Sujeito a rate limit? | Sim  |

**Parâmetros[](#parameters "Permalink to this headline")**

|              |             |                                                                                               |              |         |
| :----------- | :---------- | :-------------------------------------------------------------------------------------------- | :----------- | :------ |
| Nome         | Obrigatório | Descrição                                                                                     | Valor padrão | Exemplo |
| force\_login | opcional    | Força o usuário a inserir suas credenciais para garantir que a conta correta seja autorizada. |              | *true*  |
| screen\_name | opcional    | Pré-preenche o campo de nome de usuário da tela de login OAuth com o valor informado.         |              |         |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

Envie o usuário para o passo `oauth/authenticate` em um navegador, incluindo o parâmetro oauth\_token:
`https://api.x.com/oauth/authenticate?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik`

### POST oauth/access\_token

Permite que uma aplicação Consumer troque o OAuth Request Token por um OAuth Access Token. Este método cumpre a [Seção 6.3](http://oauth.net/core/1.0/#auth_step3) do [fluxo de autenticação OAuth 1.0](http://oauth.net/core/1.0/#anchor9).

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth/access_token`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |      |
| :-------------------- | :--- |
| Formatos de resposta  | JSON |
| Requer autenticação?  | Sim  |
| Sujeito a rate limit? | Sim  |

**Parâmetros[](#parameters "Permalink to this headline")**

|                 |             |                                                                                                                                                                                                                                                                                                                                                                                                   |              |         |
| :-------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------- | :------ |
| Nome            | Obrigatório | Descrição                                                                                                                                                                                                                                                                                                                                                                                         | Valor padrão | Exemplo |
| oauth\_token    | obrigatório | O oauth\_token aqui deve ser o mesmo oauth\_token retornado no passo request\_token.                                                                                                                                                                                                                                                                                                              |              |         |
| oauth\_verifier | obrigatório | Se estiver usando o fluxo web OAuth, defina este parâmetro como o valor do *oauth\_verifier* retornado na URL de callback. Se estiver usando OAuth out-of-band, defina este valor como o pin-code. Para conformidade com OAuth 1.0a, este parâmetro é **obrigatório**. O OAuth 1.0a é aplicado estritamente e aplicações que não usam o *oauth\_verifier* não conseguirão concluir o fluxo OAuth. |              |         |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

`POST https://api.x.com/oauth/access_token?oauth_token=qLBVyoAAAAAAx72QAAATZxQWU6P&oauth_verifier=ghLM8lYmAxDbaqL912RZSRjCCEXKDIzx`

Baseado em PIN: `POST https://api.x.com/oauth/access_token?oauth_token=9Npq8AAAAAAAx72QBRABZ4DAfY9&oauth_verifier=4868795`

**Exemplo de resposta[](#example-response "Permalink to this headline")**

`oauth_token=6253282-eWudHldSbIaelX7swmsiHImEL4KinwaGloHANdrY&oauth_token_secret=2EEfA6BG5ly3sR3XjE0IBSnlQu4ZrUzPiYTmrkVU&user_id=6253282&screen_name=xapi`

### POST oauth/invalidate\_token

Permite que uma aplicação registrada revogue um access\_token OAuth emitido apresentando as credenciais do cliente. Uma vez que um access\_token é invalidado, novas tentativas de criação retornarão um Access Token diferente e o uso do token invalidado não será mais permitido.

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/1.1/oauth/invalidate_token`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |                                                                          |
| :-------------------- | :----------------------------------------------------------------------- |
| Formatos de resposta  | JSON                                                                     |
| Requer autenticação?  | Sim — contexto de usuário com os access tokens que você deseja invalidar |
| Sujeito a rate limit? | Sim                                                                      |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

```bash theme={null}
        curl --request POST
          --url 'https://api.x.com/1.1/oauth/invalidate_token.json'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
```

**Exemplo de resposta[](#example-response "Permalink to this headline")**

```bash theme={null}
        HTTP/1.1 200 OK
        Content-Type: application/json; charset=utf-8
        Content-Length: 127
        ...

        {"access_token":"ACCESS_TOKEN"}
```

**Exemplo de resposta de erro após o token ter sido invalidado[](#example-error-response-after-token-has-been-invalidated "Permalink to this headline")**

```bash theme={null}
        HTTP/1.1 401 Authorization Required
        ...

        {"errors": [{
          "code": 89,
          "message": "Invalid or expired token."}
        ]}
```

### POST oauth2/token

Permite que uma aplicação registrada obtenha um Bearer Token OAuth 2, que pode ser usado para fazer solicitações à API em nome da própria aplicação, sem um contexto de usuário. Isso é chamado de [autenticação Application-only](/resources/fundamentals/authentication/oauth-2-0/application-only).

Um Bearer Token pode ser invalidado usando oauth2/invalidate\_token. Uma vez que um Bearer Token é invalidado, novas tentativas de criação retornarão um Bearer Token diferente e o uso do token anterior não será mais permitido.

Apenas um bearer token pode existir ativo para uma aplicação, e solicitações repetidas a este método retornarão o mesmo token já existente até que ele seja invalidado.

Respostas bem-sucedidas incluem uma estrutura JSON descrevendo o Bearer Token concedido.

Tokens recebidos por este método devem ser armazenados em cache. Se solicitados com muita frequência, as requisições serão rejeitadas com um HTTP 403 e código 99.

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth2/token`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |                                                                               |
| :-------------------- | :---------------------------------------------------------------------------- |
| Formatos de resposta  | JSON                                                                          |
| Requer autenticação?  | Sim — Basic auth com sua API key como username e API key secret como password |
| Sujeito a rate limit? | Sim                                                                           |

**Parâmetros[](#parameters "Permalink to this headline")**

|             |             |                                                                                                                                                                                                                                                       |              |                       |
| :---------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | :-------------------- |
| Nome        | Obrigatório | Descrição                                                                                                                                                                                                                                             | Valor padrão | Exemplo               |
| grant\_type | obrigatório | Especifica o tipo de grant sendo solicitado pela aplicação. Neste momento, apenas *client\_credentials* é permitido. Veja [Application-Only Authentication](/resources/fundamentals/authentication/oauth-2-0/application-only) para mais informações. |              | *client\_credentials* |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

```bash theme={null}
    POST /oauth2/token HTTP/1.1
    Host: api.x.com
    User-Agent: My X App v1.0.23
    Authorization: Basic eHZ6MWV2R ... o4OERSZHlPZw==
    Content-Type: application/x-www-form-urlencoded;charset=UTF-8
    Content-Length: 29
    Accept-Encoding: gzip

    grant_type=client_credentials
```

**Exemplo de resposta:**

```bash theme={null}
    HTTP/1.1 200 OK
    Status: 200 OK
    Content-Type: application/json; charset=utf-8
    ...
    Content-Encoding: gzip
    Content-Length: 140

    {"token_type":"bearer","access_token":"AAAA%2FAAA%3DAAAAAAAA"}
```

### POST oauth2/invalidate\_token

Permite que uma aplicação registrada revogue um Bearer Token OAuth 2.0 emitido apresentando as credenciais do cliente. Uma vez que um Bearer Token é invalidado, novas tentativas de criação retornarão um Bearer Token diferente e o uso do token invalidado não será mais permitido.

Respostas bem-sucedidas incluem uma estrutura JSON descrevendo o Bearer Token revogado.

**Resource URL[](#resource-url "Permalink to this headline")**

`https://api.x.com/oauth2/invalidate_token`

**Informações do recurso[](#resource-information "Permalink to this headline")**

|                       |                                                                                                                                                                                 |
| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Formatos de resposta  | JSON                                                                                                                                                                            |
| Requer autenticação?  | Sim — [oAuth 1.0a](/resources/fundamentals/authentication/oauth-1-0a) com as consumer API keys da aplicação e o access token e access token secret do proprietário da aplicação |
| Sujeito a rate limit? | Sim                                                                                                                                                                             |

**Parâmetros[](#parameters "Permalink to this headline")**

| Nome          | Obrigatório | Descrição                                         |
| :------------ | :---------- | :------------------------------------------------ |
| access\_token | obrigatório | O valor do bearer token que você deseja invalidar |

**Exemplo de solicitação[](#example-request "Permalink to this headline")**

```
        curl --request POST
          --url 'https://api.x.com/oauth2/invalidate_token?access_token=AAAA%2FAAA%3DAAAAAAAA'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
```

**Exemplo de resposta[](#example-response "Permalink to this headline")**

```
         Status: 200 OK
         Content-Type: application/json; charset=utf-8
         Content-Length: 135
         ...
       {
        "access_token": "AAAA%2FAAA%3DAAAAAAAA"
        }
```
