Ir para o conteúdo principal

Visão Geral

O AdGuard DNS fornece uma API REST que você pode usar para integrar seus aplicativos a ele.

Authentication

Gerar token de acesso

Make a POST request for the following URL with the given params to generate the access_token:

https://api.adguard-dns.io/oapi/v1/oauth_token

ParâmetroDescrição
usernameConta de e-mail
passwordSenha da conta
mfa_tokenToken de autenticação de dois fatores (se ativado nas configurações da conta)

Na resposta, você obterá access_token e refresh_token.

  • O access_token expirará após alguns segundos especificados (representado pelo parâmetro expires_in na resposta). Você pode gerar um novo access_token usando o refresh_token (Consulte: Gerar Token de Acesso a partir do Token de Atualização).

  • O refresh_token é permanente. Para revogar um refresh_token, consulte: Revogando um Token de Atualização.

Exemplo de solicitação

$ curl 'https://api.adguard-dns.io/oapi/v1/oauth_token' -i -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=user%40adguard.com' \
-d 'password=********' \
-d 'mfa_token=727810'

Exemplo de resposta

{
"access_token": "jTFho_aymtN20pZR5RRSQAzd81I",
"token_type": "bearer",
"refresh_token": "H3SW6YFJ-tOPe0FQCM1Jd6VnMiA",
"expires_in": 2620978
}

Gerar Token de Acesso a partir do Token de Atualização

Os tokens de acesso têm validade limitada. Once it expires, your app will have to use the refresh token to request for a new access token.

Faça a seguinte solicitação POST com os parâmetros fornecidos para obter um novo token de acesso:

https://api.adguard-dns.io/oapi/v1/oauth_token

ParâmetroDescrição
refresh_tokenTOKEN DE ATUALIZAÇÃO com o qual um novo token de acesso deve ser gerado.

Exemplo de solicitação

$ curl 'https://api.adguard-dns.io/oapi/v1/oauth_token' -i -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'refresh_token=H3SW6YFJ-tOPe0FQCM1Jd6VnMiA'

Exemplo de resposta

{
"access_token": "xQnT7GYT6Ag--3oY_EcOOdXe-I0",
"token_type": "bearer",
"refresh_token": "H3SW6YFJ-tOPe0FQCM1Jd6VnMiA",
"expires_in": 2627999
}

Revogando um Token de Atualização

Para revogar um token de atualização, faça a seguinte solicitação POST com os parâmetros fornecidos:

https://api.adguard-dns.io/oapi/v1/revoke_token

Exemplo de Solicitação

$ curl 'https://api.adguard-dns.io/oapi/v1/revoke_token' -i -X POST \
-d 'token=H3SW6YFJ-tOPe0FQCM1Jd6VnMiA'
ParâmetroDescrição
refresh_tokenTOKEN DE ATUALIZAÇÃO que deve ser revogado

Authorization endpoint

To access this endpoint, you need to contact us at devteam@adguard.com. Please describe the reason and use cases for this endpoint, as well as provide the redirect URI. Upon approval, you will receive a unique client identifier, which should be used for the client_id parameter.

The /oapi/v1/oauth_authorize endpoint is used to interact with the resource owner and get the authorization to access the protected resource.

The service redirects you to AdGuard to authenticate (if you are not already logged in) and then back to your application.

The request parameters of the /oapi/v1/oauth_authorize endpoint are:

ParâmetroDescrição
response_typeTells the authorization server which grant to execute
client_idThe ID of the OAuth client that asks for authorization
redirect_uriContains a URL. A successful response from this endpoint results in a redirect to this URL
stateAn opaque value used for security purposes. If this request parameter is set in the request, it is returned to the application as part of the redirect_uri
aidAffiliate identifier

For example:

https://api.adguard-dns.io/oapi/v1/oauth_authorize?response_type=token&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&state=1jbmuc0m9WTr1T6dOO82

To inform the authorization server which grant type to use, the response_type request parameter is used as follows:

  • For the Implicit grant, use response_type=token to include an access token.

A successful response is 302 Found, which triggers a redirect to redirect_uri (which is a request parameter). The response parameters are embedded in the fragment component (the part after #) of the redirect_uri parameter in the Location header.

For example:

HTTP/1.1 302 Found
Location: REDIRECT_URI#access_token=...&token_type=Bearer&expires_in=3600&state=1jbmuc0m9WTr1T6dOO82

Acessando a API

Once the access and the refresh tokens are generated, API calls can be made by passing the access token in the header.

  • O nome do cabeçalho deve ser Authorization
  • O valor do cabeçalho deve ser Bearer {access_token}

API

Referência

Please see the methods reference here.

OpenAPI spec

A especificação OpenAPI está disponível em https://api.adguard-dns.io/static/swagger/openapi.json.

Você pode usar diferentes ferramentas para visualizar a lista de métodos de API disponíveis. For instance, you can open this file in https://editor.swagger.io/.

Changelog

The complete AdGuard DNS API changelog is available on this page.

Feedback

If you would like this API to be extended with new methods, please email us to devteam@adguard.com and let us know what you would like to be added.