Skip to main content
Programas

Crear un programa

Crea un programa en borrador. Puedes crearlo sin contenido, pero para publicarlo necesita al menos un módulo con lecciones, un program_type y una miniatura. El body no acepta URLs de imagen: la miniatura se sube después con POST /programs/{id}/images.

POST
/programs

Crea el borrador; luego sube la miniatura y publica. Guarda el id de la respuesta (o usa tu external_ref para encontrarlo después).

curl -X POST https://hub.grou.com/api/ext/programs \
  -H "Authorization: Bearer $GROU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "mi-plataforma-diplomado-42",
    "program_type": "diploma",
    "general": { "name": "Diplomado en Marketing Digital" },
    "content": {
      "modules": [
        {
          "name": "Módulo 1 — Fundamentos",
          "lessons": [
            { "name": "Bienvenida", "provider": "vimeo", "video_url": "https://vimeo.com/123" }
          ]
        }
      ]
    },
    "commercial": {
      "base_currency": "USD",
      "pricing": [{ "currency": "USD", "value": 99 }]
    }
  }'
Authorizationstringheaderrequired

Tu API Key del Hub (Configuración → API Keys), que empieza por sk_. Solo se muestra una vez al generarla.

Body

application/json
commercialobject

Configuración comercial. Un producto vende o un pago único (precio y cuotas opcionales) o planes de suscripción, no ambos. La tasa de interés de las cuotas se configura en el Hub y se conserva al editar.

contentobject
coproductionobject[]

Reparto de la coproducción. Incluye tu propio owner_user_id (de GET /me); los porcentajes deben sumar 100.

external_refstring

Tu identificador para este producto.

Minimum string length: 1
generalobjectrequired

Datos generales. No acepta URLs de imagen: la miniatura se sube aparte. Un campo desconocido devuelve 400.

program_typeenum<string>

Diplomado o curso. Requerido para publicar.

Available options: diploma, course

Response

application/json

Borrador creado, con el id de cada módulo y lección.

checkout_urlstring | nullrequired

Link de pago. Solo cuando el recurso está published.

contentobject

El contenido con el id de cada elemento, para enviarlo de vuelta al editar.

created_atstringrequired
external_refstring | null

Tu identificador, si lo enviaste al crear.

idstringrequired
stateenum<string>required

draft: borrador, no visible para compradores. published: a la venta, con checkout_url. unpublished: retirado de la venta, se puede volver a publicar.

Available options: draft, published, unpublished
typeenum<string>required
Available options: program, external, workshop, checkout
updated_atstringrequired
version_idstring | null

Versión actual. Siempre null en checkouts.