B BAIMEC

API Documentation

Integra BAIMEC en tus proyectos. Busca y descarga imágenes y videos por API.

Quick Start

  1. 1. Crea una cuenta en BAIMEC
  2. 2. Espera la aprobación del administrador (recibirás un email)
  3. 3. Ve a tu dashboard y copia tu API Key
  4. 4. Usa tu API Key en el header Authorization: Bearer TU_API_KEY

Base URL

https://baimec.com/api/v1

Autenticación

Todas las peticiones requieren una API Key válida. Puedes enviarla de dos formas:

# Opción 1: Header (recomendado)
Authorization: Bearer tu_api_key_aqui
# Opción 2: Query parameter
GET /api/v1/search?query=quito&api_key=tu_api_key_aqui

Rate Limits

200 peticiones por hora por API Key. Headers de respuesta:

X-RateLimit-Limit: 200
X-RateLimit-Remaining: 195

Endpoints

GET /api/v1/search Buscar imágenes y videos

PARÁMETROS

querystringTexto de búsqueda
categorystringSlug de categoría (ej: "paisajes")
typestring"image" o "video"
orientationstring"landscape", "portrait" o "square"
pageintPágina (default: 1)
per_pageintResultados por página (default: 20, max: 80)

EJEMPLO

curl -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/search?query=quito&per_page=5"

RESPUESTA

{
  "total_results": 42,
  "page": 1,
  "per_page": 5,
  "media": [
    {
      "id": "abc123-uuid",
      "type": "image",
      "width": 4000,
      "height": 2667,
      "url": "https://baimec.com/media/abc123-uuid",
      "photographer": "Juan Pérez",
      "avg_color": "#2d4a1e",
      "alt": "Vista panorámica de Quito",
      "tags": ["quito", "panorámica", "ciudad"],
      "category": "Ciudades",
      "src": {
        "original": "https://images.baimec.com/photos/.../original.jpg",
        "large": "https://images.baimec.com/photos/.../large.jpg",
        "medium": "https://images.baimec.com/photos/.../medium.jpg",
        "small": "https://images.baimec.com/photos/.../thumbnail.jpg",
        "thumbnail": "https://images.baimec.com/photos/.../thumbnail.jpg"
      }
    }
  ],
  "next_page": "https://baimec.com/api/v1/search?query=quito&page=2&per_page=5"
}
GET /api/v1/media/:uuid Obtener un archivo específico
curl -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/media/abc123-uuid"
GET /api/v1/random Archivo aleatorio

Devuelve un archivo aleatorio. Usa ?type=image o ?type=video para filtrar.

curl -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/random?type=image"
GET /api/v1/categories Listar categorías
curl -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/categories"
GET /api/v1/curated Contenido curado/reciente

Retorna los archivos más recientes. Soporta paginación con page y per_page.

POST /api/v1/download/:uuid Registrar descarga

Registra una descarga y devuelve la URL del archivo. Usa ?size=original|large|medium|thumbnail.

Ejemplos de código

Node.js

const API_KEY = 'tu_api_key';

// Buscar imágenes de Ecuador
const res = await fetch('https://baimec.com/api/v1/search?query=ecuador&type=image', {
  headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await res.json();

console.log(`${data.total_results} resultados`);
data.media.forEach(img => {
  console.log(img.src.medium); // URL de la imagen mediana
});

Python

import requests

API_KEY = 'tu_api_key'
headers = {'Authorization': f'Bearer {API_KEY}'}

# Buscar videos de Galápagos
res = requests.get('https://baimec.com/api/v1/search',
    params={'query': 'galapagos', 'type': 'video'},
    headers=headers)

data = res.json()
for video in data['media']:
    print(video['video_files'][0]['link'])

cURL

# Imagen aleatoria
curl -s -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/random?type=image" | jq '.src.large'

# Buscar por categoría
curl -s -H "Authorization: Bearer TU_API_KEY" \
  "https://baimec.com/api/v1/search?category=editorial&per_page=10"