Está viendo la documentación de la API v1 (versión anterior). v1 sigue funcionando sin cambios hasta el 31 de enero de 2027, fecha en la que se apagará. Las integraciones nuevas deben usar la API v2, que cubre todo lo de v1 con nombres limpios y paginación por cursor. Si ya integró con v1, la guía de migración lista las equivalencias campo por campo.
Guía
Programar publicaciones (UTC)
Mismo flujo que el botón “Programar publicación” del dashboard, vía API: en lugar de publicar al toque, el job queda en estado scheduled y se dispara a la hora indicada.
El campo scheduled_for va en el body del POST /v1/products (o del atajo POST /v1/products/test/promote). El formato es estricto:
json
{
"items": [{ "sku": "B003H03SDQ", "auto_categorize": true }],
"scheduled_for": "2026-06-10T15:00"
}🕒 Toda la programación es UTC.
"2026-06-10T15:00" significa "10 de junio a las 15:00 UTC" — que en hora Colombia (UTC-5) son las 10:00 AM. Si su sistema trabaja en hora local, convertilo a UTC antes de mandar. No le pongas Z ni offset al string, la API ya sabe que es UTC.Todos devuelven 422 E_PRODUCT_INVALID_BODY:
Lo que mandanPor qué falla
"2026-06-10T15:00:00"Tiene segundos. El formato es sin segundos."2026-06-10T15:00Z"No le pongas la Z, ya es UTC implícito."2026-06-10T15:00-05:00"No le pongas offset, todo es UTC."2026-06-10 15:00"Tiene espacio en vez de T."2026-06-10"Falta la hora (date-only no se acepta).1717000000Tiene que ser string, no número.- →Mínimo 5 minutos en el futuro respecto al UTC actual del servidor.
- →Máximo 30 días en el futuro.
¿Cómo convierto mi hora local a UTC del lado cliente?
Snippets de los lenguajes más comunes (convertir "10 jun 10:00 AM Colombia" → string UTC para la API):
javascript
// JavaScript / Node
const local = new Date('2026-06-10T10:00:00-05:00');
const scheduled_for = local.toISOString().slice(0, 16);
// → "2026-06-10T15:00"python
# Python
from datetime import datetime, timezone, timedelta
local = datetime(2026, 6, 10, 10, 0, tzinfo=timezone(timedelta(hours=-5)))
scheduled_for = local.astimezone(timezone.utc).strftime('%Y-%m-%dT%H:%M')
# → "2026-06-10T15:00"