POST /api/start

Crea una actividad y obtén su botón de lanzamiento. La tarjeta aparece cuando un celular abre el botón.

Envía la clave en el encabezado x-api-key en cada llamada. Todas las solicitudes son Content-Type: application/json, y los nombres de campo son camelCase exacto (accentColorHex, nunca accent_color_hex). Los errores están en errores y límites.

Cuerpo

CampoTipoInstrucciones
stateobjectObligatorio. Lo que muestra la tarjeta. Consulta diseños y el objeto state.
widgetContainerIdstringObligatorio. Cualquier texto que identifique el widget, por ejemplo “pizza-tracker”. Envía el mismo valor en cada llamada posterior para este widget. Un celular conserva una actividad por contenedor.
groupstringUna etiqueta, para que una sola llamada pueda actualizar o finalizar muchas actividades.
brandobjectEl nombre y la marca de la actividad. Consulta el objeto brand.
reusebooleantrue permite que un botón de lanzamiento sirva a muchos celulares. Consulta un botón, muchos celulares.
keepAlivebooleantrue reinicia la tarjeta cada 7 horas, antes de que iOS la cierre. Cada reinicio genera una alerta. Úsalo en una cuenta regresiva o en cualquier cosa que dure más de 8 horas. Consulta actividades de larga duración.
webhookIdentifierstringEnvía los eventos de webhook de esta actividad al endpoint con este identificador. Consulta webhooks.

Inicio básico

El inicio más simple: una barra de progreso con un titular y un logo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "acme-orders",
  "brand": {
    "title": "Order #1234"
  },
  "state": {
    "layout": "progress",
    "primaryText": "Order received",
    "progress": 0.1,
    "accentColorHex": "#0A84FF",
    "headerIconUrl": "https://acme.example/logo.png"
  }
}'

Inicio con todas las opciones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
curl -X POST https://api.webliveactivity.com/api/start \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: wla_your_key' \
  -d '{
  "widgetContainerId": "acme-orders",
  "group": "order-tracker",
  "keepAlive": true,
  "webhookIdentifier": "staging",
  "brand": {
    "title": "Order #1234",
    "name": "Acme",
    "logo": "https://acme.example/logo.png",
    "description": "Track your Acme order from kitchen to door",
    "color": "#06C167"
  },
  "state": {
    "layout": "progress",
    "primaryText": "Order received",
    "secondaryText": "We will start soon",
    "progress": 0.1
  }
}'

Respuesta

Responde 201. Guarda el activityId para las actualizaciones y los finales. userId es el mismo id, con el nombre que usan las apps del celular. group está vacío si no se envió ninguno.

1
2
3
4
5
6
7
8
9
10
{
  "ok": true,
  "activityId": "act-8f2cqa4mx7rd",
  "userId": "act-8f2cqa4mx7rd",
  "group": "order-tracker",
  "widgetContainerId": "acme-orders",
  "links": {
    "iframe": "<iframe src=\"https://api.webliveactivity.com/embed/button?type=track&userId=act-8f2cqa4mx7rd\" width=\"340\" height=\"95\" style=\"border:0;color-scheme:light\"></iframe>"
  }
}

El botón de lanzamiento

Pon links.iframe en una página web. En un celular, un toque abre la actividad. En una computadora, un clic muestra un código QR para escanear con el celular.

El src del iframe acepta tres ajustes opcionales:

AjusteValoresInstrucciones
colorUn color hexadecimal de 6 dígitos, sin #El color del botón. Ejemplo: &color=06C167. Un color claro lleva texto oscuro. Predeterminado: el color de type.
themelight (predeterminado), darkEl color del texto “Powered By” bajo el botón. En una página oscura, agrega &theme=dark y cambia color-scheme:light por color-scheme:dark en el style del iframe.
typetrack (predeterminado), launch, addEl ícono, el texto y el color predeterminado del botón. Los grupos de push usan notify, subscribe o follow.

El fondo es transparente. Solo se puede cambiar el color: el ícono y el texto vienen de type, y una línea “Powered By” aparece bajo el botón en todos los planes.

La página que aloja el botón pasa a ser el sitio que se muestra con la actividad en el celular. La API no puede definirlo. El botón no carga en una página que oculta su referrer (Referrer-Policy: no-referrer o same-origin, o referrerpolicy="no-referrer" en el iframe).

¿Quieres crear actividades en vivo sin “desarrollarlas”?

¿Quieres empezar a crear hoy?

Sin enviar nada al App Store y sin código nativo que mantener. Un enlace lleva tu actividad a las pantallas de tus usuarios, y una API fácil de usar la mantiene en vivo.

Incluye: 7,000 envíos push gratis al mes

Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaLimpiar pisoComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
En vivo
Ver en vivoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer en vivo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
AbordajeEn vueloLlegó
Abordaje
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaLimpiar pisoComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
En vivo
Ver en vivoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer en vivo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
AbordajeEn vueloLlegó
Abordaje
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaLimpiar pisoComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer en vivo
En vivo
Ver en vivoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer en vivo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
AbordajeEn vueloLlegó
Abordaje
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min