API pública de Magic Chords

Una API REST versionada para reconocimiento de acordes, transcripción de letras y exportación de partituras. Todos los endpoints están bajo /api/v1/, aceptan y devuelven JSON (excepto subidas y archivos generados) y están abiertos a desarrolladores anónimos dentro de cuotas de uso razonable.

Cada endpoint está documentado de forma interactiva en la referencia integrada de abajo, generada directamente a partir de la implementación y siempre actualizada.

Cómo funciona

El análisis y la transcripción se ejecutan de forma asíncrona: envías un trabajo, recibes un job_id, consultas el estado y obtienes el resultado completo cuando el procesamiento termina.

Inicio rápido

Envía el análisis de acordes de una URL:

curl -X POST https://magic-chords.dev/api/v1/analyze/url \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=VIDEO_ID"}'

La respuesta contiene el identificador de tu trabajo:

{"job_id": "bBm3Zx8kQ7...", "status": "processing"}

Consulta el estado hasta que sea complete:

curl https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7...

Obtén acordes, tempo, tonalidad y estructura:

curl https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7.../result

O descarga un artefacto exportado directamente (pdf, midi, musicxml, txt, csv, json):

curl -o chords.pdf \
  "https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7.../export?format=pdf"

Para analizar un archivo de audio local en lugar de una URL:

curl -X POST https://magic-chords.dev/api/v1/analyze \
  -F "file=@song.mp3"

Endpoints

Método y rutaPropósito
POST /api/v1/analyzeEnviar audio subido para análisis de acordes (formulario multipart)
POST /api/v1/analyze/urlEnviar una URL de medios para análisis de acordes
POST /api/v1/transcribeEnviar audio subido para transcripción de letras
POST /api/v1/transcribe/urlEnviar una URL de medios para transcripción de letras
GET /api/v1/jobs/{job_id}Estado compacto para sondear
GET /api/v1/jobs/{job_id}/resultResultado completo (acordes, palabras, tempo, tonalidad…)
GET /api/v1/jobs/{job_id}/export?format=…Exportar un análisis completado como pdf/midi/musicxml/txt/csv/json
GET /api/v1/limitsPolítica de cuotas actual (sin límite de peticiones)

Límites de uso

Los clientes anónimos tienen límites por dirección IP. Valores actuales (también disponibles en vivo en /api/v1/limits):

CategoríaLímite
Envíos de trabajos (heavy)20 por hora por cliente
Lecturas de estado/resultado/export (light)60 por minuto por cliente
Trabajos simultáneos2 por cliente

Cada respuesta medida incluye las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset. Al alcanzar un límite recibirás un 429 con la cabecera Retry-After: respétala.

Errores

EstadoSignificado
400Solicitud no válida (URL errónea, formato desconocido)
404job_id desconocido
409El trabajo existe pero no ha terminado o no se puede exportar
413La subida supera el tamaño máximo
415El archivo no se reconoce como audio
429Límite de peticiones o de concurrencia alcanzado
503No disponible temporalmente (backend de cuotas caído)

Notas y buen uso

Referencia interactiva de la API

La referencia completa se carga abajo — explore cada endpoint y pruebe las peticiones directamente desde esta página.

Cargando la referencia interactiva…