Autenticación
La API de Docmind usa dos métodos de autenticación según el tipo de endpoint:
Métodos de autenticación
- API Key — Para la API pública (
/v1/*). Se envía en el headerx-api-key. - JWT Token — Para la API interna (
/api/*). Se obtiene vía login y se envía en el headerAuthorization: Bearer <token>.
API Key (API Pública)
Crear un API Key
- Inicia sesión en el Dashboard de Docmind.
- Ve a la sección API Keys en el menú lateral.
- Haz clic en Crear nueva API Key.
- Asigna un nombre descriptivo y selecciona el tipo (
liveotest). - Copia la clave generada. Solo se muestra una vez.
Usar el API Key
Incluye tu API Key en el header x-api-key de cada petición:
cURL
curl -X GET https://api-docmind.devol.es/v1/extractions \
-H "x-api-key: pk_live_tu_api_key_aqui" Python
import requests
url = "https://api-docmind.devol.es/v1/extractions"
headers = {
"x-api-key": "pk_live_tu_api_key_aqui"
}
response = requests.get(url, headers=headers)
print(response.json()) JavaScript (fetch)
const response = await fetch("https://api-docmind.devol.es/v1/extractions", {
headers: {
"x-api-key": "pk_live_tu_api_key_aqui"
}
});
const data = await response.json();
console.log(data); JWT Token (API Interna)
Para los endpoints internos (/api/*), necesitas obtener un JWT Token mediante login:
Obtener el token
curl -X POST https://api-docmind.devol.es/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "tu_email@ejemplo.com",
"password": "tu_password"
}' La respuesta incluirá el access_token:
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"is_admin": false,
"user": {
"id": "uuid",
"nombre": "Tu Nombre",
"email": "tu_email@ejemplo.com",
"role_name": "admin"
}
} Usar el token
El JWT se envía automáticamente como cookie HTTP-only, o puedes incluirlo manualmente en el header Authorization:
curl -X GET https://api-docmind.devol.es/api/habilidad/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." Errores de autenticación
Respuestas comunes
401 Unauthorized— API Key inválida, JWT expirado o no proporcionado.{"error": "Token inválido o expirado"}403 Forbidden— No tienes permisos para este recurso.{"message": "No tienes permisos para acceder a esta información"}415 Unsupported Media Type— Content-Type incorrecto (se requiere JSON).{"msg": "La solicitud debe tener formato JSON"}