---
title: "Cambiar una API key por un bearer OAuth 2.0"
method: POST
path: "/oauth/token"
tags: ["OAuth"]
---

# Cambiar una API key por un bearer OAuth 2.0

`POST /oauth/token`

## Request

- Base URL: `https://api.dapperglobal.com`
- URL: `https://api.dapperglobal.com/oauth/token`
- Auth: none declared

Grant `client_credentials` (RFC 6749 §4.4) para clientes que integran el endpoint MCP server-side y no pueden abrir un browser.

- `client_id`: el id (UUID) de tu API key, visible en el dashboard.
- `client_secret`: la API key (`dpr_live_...`).

Devuelve un bearer de corta vida que sirve en `Authorization: Bearer ...` contra `/mcp`. El token hereda el scope de paises, los rate limits y la facturacion de la llave que lo emitio; revocar la llave lo invalida.

## Response `200`

Successful Response

- TokenResponse: RFC 6749 §5.1. Sin `refresh_token`: §4.4.3 lo prohibe para este grant.
  - `access_token` string, required: Bearer para el header Authorization.
  - `token_type` string: Siempre `Bearer`.
  - `expires_in` integer, required: Segundos de vida del access token.
  - `scope` string, required: Scopes concedidos, separados por espacio.

## Other responses

- `400`: Pedido mal formado.
- `401`: Credenciales invalidas.
- `429`: Demasiados intentos.

---

[API](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api.md) · [All operations](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dapperglobal/apis/dapper-political-intelligence-api/revisions/f34d9e6a2b0e?raw)
