Gestión de API Keys

Esta guía te explica cómo gestionar las API keys de tu cuenta usando los endpoints de la API de Trebol.

Endpoints Disponibles

1. Listar API Keys

Obtiene la lista de todas las API keys asociadas a tu cuenta. Endpoint: GET /api-keys Headers requeridos:
x-api-key: tu_api_key_aqui
Respuesta exitosa (200):
{
  "api_keys": [
    {
      "id": "ak_1234567890abcdef",
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "id": "ak_0987654321fedcba", 
      "created_at": "2024-01-10T14:20:00Z"
    }
  ]
}

2. Crear Nueva API Key

Crea una nueva API key para tu cuenta. Endpoint: POST /api-keys Headers requeridos:
x-api-key: tu_api_key_aqui
Content-Type: application/json
Body:
{
  "id": "mi-api-key-1"
}
Respuesta exitosa (201):
{
  "id": "ak_1234567890abcdef",
  "api_key": "treb_sk_live_1234567890abcdef1234567890abcdef1234567890abcdef",
  "created_at": "2024-01-15T10:30:00Z"
}
⚠️ Importante: La API key solo se muestra una vez en la respuesta. Guárdala en un lugar seguro inmediatamente.

3. Eliminar API Key

Elimina una API key específica de tu cuenta. Endpoint: DELETE /api-keys/{apiKeyId} Headers requeridos:
x-api-key: tu_api_key_aqui
Respuesta exitosa (200):
{
  "message": "API key eliminada exitosamente"
}

Ejemplos de Uso

Ejemplo con cURL

Listar API Keys

curl -X GET "https://api.gotrebol.com/api-keys" \
  -H "x-api-key: tu_api_key_aqui"

Crear Nueva API Key

curl -X POST "https://api.gotrebol.com/api-keys" \
  -H "x-api-key: tu_api_key_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "mi-api-key-1"
  }'

Eliminar API Key

curl -X DELETE "https://api.gotrebol.com/api-keys/ak_1234567890abcdef" \
  -H "x-api-key: tu_api_key_aqui"

Ejemplo con JavaScript

const API_BASE_URL = 'https://api.gotrebol.com';
const API_KEY = 'tu_api_key_aqui';

// Listar API keys
async function listApiKeys() {
  const response = await fetch(`${API_BASE_URL}/api-keys`, {
    method: 'GET',
    headers: {
      'x-api-key': API_KEY
    }
  });
  
  const data = await response.json();
  console.log('API Keys:', data.api_keys);
}

// Crear nueva API key
async function createApiKey(id) {
  const response = await fetch(`${API_BASE_URL}/api-keys`, {
    method: 'POST',
    headers: {
      'x-api-key': API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ id })
  });
  
  const data = await response.json();
  console.log('Nueva API Key:', data.api_key);
  return data;
}

// Eliminar API key
async function deleteApiKey(apiKeyId) {
  const response = await fetch(`${API_BASE_URL}/api-keys/${apiKeyId}`, {
    method: 'DELETE',
    headers: {
      'x-api-key': API_KEY
    }
  });
  
  const data = await response.json();
  console.log('Resultado:', data.message);
}

Ejemplo con Python

import requests

API_BASE_URL = 'https://api.gotrebol.com'
API_KEY = 'tu_api_key_aqui'

headers = {
    'x-api-key': API_KEY
}

# Listar API keys
def list_api_keys():
    response = requests.get(f'{API_BASE_URL}/api-keys', headers=headers)
    return response.json()

# Crear nueva API key
def create_api_key(key_id):
    data = {'id': key_id}
    response = requests.post(
        f'{API_BASE_URL}/api-keys', 
        headers={**headers, 'Content-Type': 'application/json'},
        json=data
    )
    return response.json()

# Eliminar API key
def delete_api_key(api_key_id):
    response = requests.delete(
        f'{API_BASE_URL}/api-keys/{api_key_id}', 
        headers=headers
    )
    return response.json()

Códigos de Error

CódigoDescripción
400Datos de entrada inválidos
401API key inválida o no autorizada
404API key no encontrada (solo para DELETE)
409ID de API key ya existe (solo para POST)
500Error interno del servidor

Mejores Prácticas

Seguridad

  • Guarda las API keys de forma segura: Una vez creada, la API key solo se muestra una vez
  • Usa nombres descriptivos: Asigna IDs que te ayuden a identificar el propósito de cada API key
  • Rota las API keys regularmente: Elimina las que ya no uses
  • No compartas las API keys: Nunca las incluyas en código público o repositorios

Gestión

  • Mantén un inventario: Documenta para qué se usa cada API key
  • Monitorea el uso: Revisa regularmente qué API keys están activas
  • Planifica la rotación: Establece un proceso para renovar las API keys periódicamente

Ejemplos de IDs Descriptivos

api-key-produccion-2024
api-key-desarrollo-test
api-key-webhook-notificaciones
api-key-integración-crm

Casos de Uso Comunes

Rotación de API Keys

  1. Crea una nueva API key
  2. Actualiza tu aplicación con la nueva key
  3. Verifica que todo funcione correctamente
  4. Elimina la API key antigua

Gestión de Entornos

  • Usa diferentes API keys para desarrollo, staging y producción
  • Elimina las API keys de desarrollo cuando ya no las necesites

Seguridad Post-Compromiso

Si sospechas que una API key ha sido comprometida:
  1. Crea inmediatamente una nueva API key
  2. Actualiza todas las aplicaciones que usan la key comprometida
  3. Elimina la API key comprometida
  4. Monitorea el uso para detectar actividad sospechosa