Saltar al contenido principal

Referencia de la API

Todo lo que hacen los paneles, pueden hacerlo sus propios sistemas. Es la misma API sobre la que está construido el producto: no hay una segunda API menor para los clientes.

Llegan los datos, la plantilla se rellena y se comprueba, el clip se renderiza con su marca y en cada formato, y se entrega cuando vence la publicación

  • URL base: https://app.reelwire.io. Los ejemplos de este manual se ejecutaron contra una copia de desarrollo en http://localhost:4000; las rutas son las mismas, solo cambia el host.
  • Autenticación: un token bearer en cada solicitud. Consulte Autenticación.
  • Límites: cada solicitud que lleva una clave o una sesión cuenta contra esa única credencial, 600 por minuto sea cual sea la ruta a la que llame, y algunas rutas, entre ellas el inicio de sesión, tienen un límite propio más estricto. Un 429 indica cuánto esperar. Consulte Límites de frecuencia.
  • Formato: JSON de entrada, JSON de salida, UTF-8. Los fallos son envoltorios de problema.
  • Versionado: todas las rutas están bajo /v1/.
  • ID de solicitud: cada respuesta lleva x-request-id. Regístrelo. Envíe su propio ULID en ese encabezado y Reelwire lo usa, de modo que sus logs y los nuestros comparten un id.

Su primera solicitud​

Quién soy: la única llamada que puede hacer toda clave, sean cuales sean sus permisos.

curl http://localhost:4000/v1/whoami \
-H "Authorization: Bearer rw_your_key_here"
{
"accountId": "01M1VFRWE3A35H892VAAEKKDA6",
"accountName": "Enterprise 2",
"scopes": ["ingest:write", "posts:read", "media:write"],
"permissions": [
{ "scope": "ingest:write", "label": "Custom feeds - Send raw data: write" },
{ "scope": "posts:read", "label": "Posts: read" },
{ "scope": "media:write", "label": "Media: write" }
],
"kind": "apikey",
"resource": null
}

permissions nombra lo que puede hacer la clave con las palabras que usan el selector de claves y todos los rechazos. Qué versión de Reelwire respondió lo indica GET /v1/version, que no necesita clave.

Enviar un evento​

La integración más habitual. Su sistema introduce algo que ocurrió; Reelwire lo renderiza como un clip para cada canal suscrito a ese stream y entrega cada publicación por las vías que su canal tiene activadas: por correo electrónico, por webhook o a través del conector de plataforma del canal, que la publica por sí mismo.

curl http://localhost:4000/v1/stream \
-H "Authorization: Bearer rw_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"streamId": "st_30472168d941",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB92",
"occurredAt": "2026-09-18T07:55:00Z",
"locale": "en",
"data": {
"clipData": {
"headline": "Bund yields close at a three-week high",
"subline": "The ten-year settled at 2.41 per cent"
},
"metaData": { "title": "Bund yields close at a three-week high" }
}
}'

Cuatro cosas que conviene saber sobre ese cuerpo:

  • eventId es un ULID y es la clave de idempotencia. Enviar el mismo dos veces no crea una segunda publicación, y eso es lo que hace seguro un reintento.
  • Lo que va en data es lo que acepta la plantilla del stream, publicado como esquema en /v1/formats/template/{templateId}. Envíe ese formato y se renderiza; envíe otra cosa y recibirá un rechazo que nombra el campo. Un stream con un mapa de campos acepta en su lugar su propio formato y lo asigna al de la plantilla.
  • occurredAt es cuándo ocurrió el hecho, no cuándo lo envió.
  • Una imagen es un archivo de su biblioteca multimedia, escrito como media:// y su id o nombre. Una dirección web se rechaza.

Antes de enviar nada real, POST /v1/stream/validate acepta el mismo cuerpo y responde si habría funcionado, sin crear nada.

El ejemplo completo, con las respuestas reales, está en Enviar eventos.

Adónde ir después​

Si ustedLea
Introduce datos desde un productorEnviar eventos, y después Streams y feeds
Recibe publicaciones terminadas e informa de lo que ha sido de ellasWebhooks
Transmite sus publicaciones a sus propios participantes (Enterprise)Sindicación
Gestiona colegas o lee el planEquipo y plan
Observa lo que ocurrió y pide una actualización, un reenvío o una eliminaciónPublicaciones y trabajos
Demuestra lo que salió y quién lo aprobó, para una auditoría (Enterprise)Cumplimiento
Retiene todos los canales a la vez, o durante un período programadoCanales: Detener todo
Programa publicaciones que alguien escribióListas de publicaciones
Configura un espacio de trabajo mediante una máquinaMarcas, Canales, Biblioteca multimedia
Crea imágenes, videos, música, fuentes o textos con IAAsistente de IA
Renderiza un clip por sí soloRenders y exportación directa
Genera un clientePlantillas y formatos
Busca una ruta concretaTodos los endpoints
Elige lo que puede hacer una clavePermisos
Crea una clave, la muestra de nuevo o comprueba un límite de frecuenciaAutenticación
Gestiona un rechazoErrores
Lee una lista larga página a páginaListas y paginación

Dos convenciones que conviene conocer de antemano​

Una modificación es un POST a un verbo, no un DELETE. Eliminar una marca es POST /v1/brands/{id}/delete. Así cada acción sigue siendo direccionable mediante un prefijo de permiso y los cuerpos siguen disponibles en las acciones que necesitan uno, como el moveTo que admite la eliminación de una marca.

Las listas son de dos clases. Los registros los pagina el servidor; la configuración vuelve completa. Consulte Listas y paginación.