Documentación de la API
API REST para aprovisionar y operar instancias Odoo de forma programática.
Autenticación
Todos los endpoints usan HTTP Basic con el email y la contraseña de un usuario del servicio.
curl -u usuario@blueorange.com.ar:clave http://hub.service.blueorange.com.ar/api/v1/instancesCrear (aprovisionar) una instancia
POST
http://hub.service.blueorange.com.ar/api/v1/instances
Crea la instancia y la encola para su despliegue. Si el proyecto no existe, se crea automáticamente.
curl -u usuario:clave -X POST http://hub.service.blueorange.com.ar/api/v1/instances \
-H "Content-Type: application/json" \
-d '{
"name": "demo",
"project": "Acme S.A.",
"stage": "development",
"odoo_version": "19.0",
"edition": "enterprise",
"modules": ["l10n_ar_bo", "l10n_ar_bo_account"],
"git_repo": "https://bitbucket.org/blueorange/acme.git",
"branch": "19.0"
}'Listar instancias
GET
http://hub.service.blueorange.com.ar/api/v1/instances?stage=&status_filter=
Detalle de una instancia
GET
http://hub.service.blueorange.com.ar/api/v1/instances/<slug>
Operar una instancia
POST
http://hub.service.blueorange.com.ar/api/v1/instances/<slug>/action
Acciones válidas: start, restart, stop, rebuild, destroy.
curl -u usuario:clave -X POST http://hub.service.blueorange.com.ar/api/v1/instances/acme-demo/action \
-H "Content-Type: application/json" -d '{"action": "rebuild"}'Valores válidos
Etapas: development, staging, production
Estados: queued, provisioning, running, stopped, failed, destroyed
Versiones de Odoo: 19.0, 18.0, 17.0, 16.0
Códigos de respuesta
200— OK (listar, detalle, acción).201— Instancia creada y encolada para despliegue.401— Credenciales inválidas o ausentes.404— Instancia no encontrada.409— La acción no se puede ejecutar en el estado actual de la instancia.422— Cuerpo inválido (stage,odoo_version,editionoactionfuera de los valores válidos).429— Límite de creación alcanzado (rate limit enPOST /api/v1/instances). Reintentá más tarde.
Esquema OpenAPI
La especificación interactiva está disponible en /docs y el JSON en /openapi.json.