Guia

Como programar publicaciones en redes sociales con una API

Las herramientas de programacion estan bien hasta que necesitas automatizar cientos de posts, integrar con tus propios sistemas, o incorporar la programacion en un producto que estas construyendo. Esta guia te lleva paso a paso por la programacion de contenido via API, incluyendo fechas fijas, sistemas de cola y manejo de zonas horarias.

Las dos formas de programar contenido

Upload-Post te ofrece dos enfoques para programar. Puedes establecer una fecha y hora exacta con el parametro scheduled_date, o dejar que el sistema decida el mejor momento usando el sistema de cola. Ambos funcionan en cualquier endpoint: subida de videos, subida de fotos y publicaciones de texto.

Opción A: Programar para una fecha y hora específica

Agrega el parametro scheduled_date a cualquier peticion de subida. El formato es ISO-8601 y puedes programar hasta 365 dias de anticipacion.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorización: Apikey tu-clave-api-aquí" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Coming soon... stay tuned!" \
  -F "platform[]=tiktok" \
  -F "platform[]=instagram" \
  -F "scheduled_date=2025-09-22T10:00:00Z" \
  -F "timezone=Europe/Madrid"

Un par de detalles importantes aqui. La fecha esta en UTC por defecto, pero puedes pasar un parametro timezone usando el formato IANA (como America/New_York, Europe/London, Asia/Tokio) para que la publicacion se haga a la hora local correcta. Esto te ahorra hacer calculos de zonas horarias por tu cuenta.

Cuando una publicacion se programa correctamente, la API responde con un estado 202 e incluye un job_id:

{
  "success": true,
  "job_id": "scheduler_job_abc123",
  "scheduled_date": "2025-09-22T10:00:00Z"
}

Guarda ese job_id porque lo necesitaras si quieres editar o cancelar la publicacion despues.

Opción B: Usar el sistema de cola

La cola es perfecta cuando quieres publicar de forma consistente sin elegir horarios exactos. En lugar de elegir una fecha, configuras add_to_queue=true y Upload-Post asigna el siguiente horario disponible segun tu programacion configurada.

Configura tu queue

Primero, configura los ajustes de tu cola. Defines que dias y que franjas horarias quieres:

curl -X POST https://api.upload-post.com/api/uploadposts/queue/settings \
  -H "Autorización: Apikey tu-clave-api-aquí" \
  -H "Tipo de Contenido: application/json" \
  -d '{
    "timezone": "America/New_York",
    "slots": [
      { "hour": 9, "minute": 0 },
      { "hour": 12, "minute": 30 },
      { "hour": 17, "minute": 0 }
    ],
    "days": [0, 1, 2, 3, 4]
  }'

Este ejemplo publica a las 9:00 AM, 12:30 PM y 5:00 PM (hora de Nueva York), de lunes a viernes. Puedes definir hasta 24 franjas horarias por dia.

Agregar contenido a la cola

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorización: Apikey tu-clave-api-aquí" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Monday motivation" \
  -F "platform[]=tiktok" \
  -F "platform[]=instagram" \
  -F "add_to_queue=true"

Upload-Post asignara automaticamente esta publicacion al siguiente horario disponible. Si es miercoles a las 2 PM, la publicacion se programara para las 5:00 PM ese mismo dia. Si todas las franjas del miercoles estan llenas, se mueve al jueves a las 9:00 AM.

Previsualizar los horarios de la cola

Quieres ver que horarios estan disponibles antes de agregar contenido a la cola? Usa el endpoint de preview:

curl https://api.upload-post.com/api/uploadposts/queue/preview?count=10 \
  -H "Autorización: Apikey tu-clave-api-aquí"

Esto devuelve las proximas 10 franjas disponibles con sus fechas y horas exactas. Puedes solicitar hasta 50 a la vez.

Gestionar publicaciones programadas

Una vez que el contenido esta programado, tienes control total sobre el a traves de la API.

Listar todas las publicaciones programadas

curl https://api.upload-post.com/api/uploadposts/schedule \
  -H "Autorización: Apikey tu-clave-api-aquí"

Devuelve un array de trabajos pendientes con su job_id, scheduled_date, detalles de la plataforma y una URL de previsualizacion del contenido.

Editar una publicación programada

Necesitas cambiar la fecha de publicacion o actualizar el caption? Usa una peticion PATCH:

curl -X PATCH https://api.upload-post.com/api/uploadposts/schedule/scheduler_job_abc123 \
  -H "Autorización: Apikey tu-clave-api-aquí" \
  -H "Tipo de Contenido: application/json" \
  -d '{
    "scheduled_date": "2025-09-25T14:00:00Z",
    "title": "Título actualizado con mejores hashtags"
  }'

Cancelar una publicación programada

curl -X DELETE https://api.upload-post.com/api/uploadposts/schedule/scheduler_job_abc123 \
  -H "Autorización: Apikey tu-clave-api-aquí"

La publicacion y sus archivos subidos se eliminan inmediatamente.

Construir un calendario de contenido con la cola

Este es un flujo de trabajo practico que usan muchas agencias. Produces contenido en lote los lunes, subes todo a la cola, y el sistema lo distribuye a lo largo de la semana automaticamente. No necesitas estar conectado a las 9 AM del miercoles para darle al boton de publicar.

Esto es especialmente potente cuando se combina con herramientas como n8n o Make.com. Por ejemplo, puedes configurar un workflow donde los nuevos archivos en una carpeta de Google Drive se agregan automaticamente a la cola. Mira nuestra plantilla de programacion con Google Sheets para n8n para una configuracion lista para usar.

Nuestro calendario de fechas importantes para redes sociales tambien es util para planificar contenido alrededor de fechas clave durante todo el ano.

Programar con Python

from upload_post import UploadPostClient
from datetime import datetime, timedelta

client = UploadPostClient(api_key="your-api-key-here")

# Schedule a video for tomorrow at 10 AM Madrid time
publish_date = (datetime.now() + timedelta(days=1)).replace(
    hour=10, minute=0, second=0
)

response = client.upload_video(
    video_path="/path/to/video.mp4",
    title="Programado desde Python",
    user="mybrand",
    platforms=["tiktok", "instagram", "youtube"],
    scheduled_date=publish_date.isoformat(),
    timezone="Europe/Madrid"
)

print(f"¡Programado! ID de trabajo: {response['job_id']}")

Límites diarios de subida por plataforma

Cuando programas mucho contenido, ten en cuenta que cada plataforma impone limites diarios. Son ventanas rodantes de 24 horas por cuenta conectada:

Platform Límite diario
TikTok15 subidas
YouTube10 subidas
Pinterest20 subidas
Facebook25 subidas
Reddit40 subidas
Instagram50 subidas
X (Twitter)50 subidas
Threads50 subidas
Bluesky50 subidas
LinkedIn150 subidas

El sistema de cola respeta estos limites automaticamente y no sobreprogramara para ninguna plataforma.

Preguntas frecuentes

¿Puedo programar el mismo contenido en horarios diferentes para distintas plataformas?

No en una sola peticion, pero puedes enviar peticiones separadas para cada plataforma con valores de scheduled_date diferentes. O usar el sistema de cola, que distribuye automaticamente.

¿Qué pasa si una publicación programada falla?

Recibiras una notificacion a traves de webhooks (si los tienes configurados) con los detalles del error. Tambien puedes consultar el estado con el endpoint GET /api/uploadposts/status?job_id=your_job_id.

¿Puedo combinar la programación con herramientas sin código?

Por supuesto. Tanto n8n como Make.com pueden enviar los parametros scheduled_date o add_to_queue a traves del modulo de peticiones HTTP. Esto significa que puedes crear un workflow visual que lea desde una hoja de calculo y programe todo automaticamente.

Construye tu calendario de contenido con la API

Programa semanas de contenido en minutos. Configuralo una vez y tus publicaciones saldran a la hora correcta, en cada plataforma, sin que tengas que mover un dedo.

Sin tarjeta de crédito. 10 subidas gratuitas incluidas.