API
Todo lo que haces en el panel lo puedes hacer desde tu programa. La API es REST y habla JSON.
Autenticación
Crea tu clave en tu panel (sección «API») y mándala en cada petición:
Authorization: Bearer im_…
Máximo 120 peticiones por hora. Generar una clave nueva anula la anterior.
Pedir una migración
curl -X POST https://inmigra.com.es/api/v1/migraciones \
-H "Authorization: Bearer im_…" -H "Content-Type: application/json" \
-d '{
"dominio": "miweb.es",
"origen": "Hostinger",
"origen_detalle": "Plan Premium, el dominio también está allí",
"destino": "ctmd",
"partes": ["web", "bd", "correo", "dns"],
"fecha_deseada": "antes del 15 de noviembre",
"notas": "Tiene tienda: mejor un domingo"
}'
destino: ctmd (nuestro alojamiento) o externo (en ese caso, destino_detalle es obligatorio). partes: web, bd, correo, dns, dominio. Responde 201 con la migración y su referencia (IM-0001). Como en el panel, una persona la revisa antes de que Martín empiece.
Consultar
GET https://inmigra.com.es/api/v1/migraciones lista (sin mensajes) GET https://inmigra.com.es/api/v1/migraciones/IM-0001 detalle con el hilo de mensajes GET https://inmigra.com.es/api/v1/yo tu cuenta
Estados: pendiente (en revisión), validada (en cola), en_curso, esperando (Martín necesita algo de ti), completada, rechazada, cancelada. Cuando Martín te pida los accesos, el detalle trae entregar_accesos con el enlace seguro.
Escribir a Martín o cancelar
POST https://inmigra.com.es/api/v1/migraciones/IM-0001/mensajes {"texto": "El cambio, mejor el sábado"}
POST https://inmigra.com.es/api/v1/migraciones/IM-0001/cancelar (solo antes de que empiece)
Nunca mandes contraseñas por la API ni en los mensajes: los accesos solo se entregan en el enlace seguro.
Errores
Siempre JSON con ok: false y error (o errores por campo): 401 sin clave válida, 404 no existe, 409 no se puede en ese estado, 422 datos que faltan, 429 demasiadas peticiones.