CLI
Gestionar publicaciones
Crea, programa, lista, edita y borra publicaciones desde el terminal: borradores, varias redes, medios, simulaciones y un cuerpo JSON completo.
Cada publicación pertenece a un establecimiento, así que pasas su id con -e. Lo encuentras con sofia establishments:list (ver cuentas).
Crear publicaciones
Publicar una publicación
Sin fecha, la publicación sale de inmediato.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"Opciones
| Opción | Función |
|---|---|
-e, --establishment | El id del establecimiento (obligatorio, salvo con --json). |
-p, --platforms | Las redes, separadas por comas (instagram,facebook,x,linkedin,tiktok); obligatorio, salvo con --json. |
-c, --content | El texto de la publicación. |
-s, --date | La fecha de programación (ISO 8601); sin ella, la publicación sale enseguida. |
-m, --media | Ids de medios o direcciones https, separados por comas. |
-f, --format | El formato: post, reel, story, carousel… |
-a, --account | La cuenta conectada desde la que publicar. |
--draft | Guarda un borrador que nada envía. |
--dry-run | Comprueba la publicación sin escribir nada. |
--idempotency-key | Repite la misma petición como una sola. |
-j, --json | Un archivo con el cuerpo completo; sustituye a las opciones de contenido. |
Programar una publicación
Pasa una fecha ISO 8601 con -s, --date.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" -s 2026-11-07T09:00:00ZGuardar un borrador
--draft guarda la publicación sin publicarla ni programarla.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" --draftAñadir medios
-m, --media acepta ids de medios de tu biblioteca o direcciones https, separados por comas.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
-m $MEDIA_ID,https://images.example.com/tarte-tatin.jpgPara una dirección, el tipo se deduce de la extensión: vídeo para mp4, mov, webm y m4v, imagen en los demás casos. Para subirlo antes, ver medios.
Varias redes a la vez
Indica las redes separadas por comas en -p, --platforms. Cada una recibe el mismo texto.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram,facebook,linkedin -c "Tarte tatin du jour"Simulación
--dry-run comprueba la publicación con las reglas de cada red y no publica nada. Ver Simulación.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" --dry-runIdempotencia
Repite un comando sin riesgo con --idempotency-key: la misma clave da la misma publicación, nunca dos. Ver Idempotencia.
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
--idempotency-key brunch-2026-11-07Cuerpo completo desde un archivo
Para un texto por red, varios medios o una programación de una vez, escribe todo el cuerpo en un archivo y pásalo con -j, --json. Sustituye a las opciones de contenido.
sofia posts:create --json post.json{
"establishmentId": "$ESTABLISHMENT_ID",
"targets": [
{
"platform": "instagram",
"text": "Tarte tatin du jour",
"media": [{ "id": "$MEDIA_ID" }],
"format": "post"
},
{
"platform": "tiktok",
"text": "Tarte tatin du jour",
"media": [{ "url": "https://images.example.com/tarte-tatin.mp4", "type": "video" }]
}
],
"scheduledAt": "2026-11-07T09:00:00Z",
"status": "scheduled"
}Listar publicaciones
Filtra la lista con estas opciones. La respuesta está paginada: ver Paginación.
-e, --establishment: solo este establecimiento.--status: solo las publicaciones con este estado.--limity--cursor: el tamaño de página y desde dónde continuar.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20Filtrar por periodo
--from y --to: un rango de fechas.
sofia posts:list -e $ESTABLISHMENT_ID --from 2026-11-01 --to 2026-11-30Filtrar por autor
--created-by me|app: las que escribiste tú o las creadas por la API.
sofia posts:list -e $ESTABLISHMENT_ID --created-by appLeer y modificar una publicación
posts:update cambia la fecha (-s), el estado (draft o scheduled) o todo el cuerpo con -j.
sofia posts:get $POST_ID
sofia posts:update $POST_ID -s 2026-11-08T09:00:00Z
sofia posts:update $POST_ID --json post.jsonCambiar el estado de una publicación
posts:update --status pasa una publicación de borrador a programada, y al revés.
sofia posts:update $POST_ID --status draft
sofia posts:update $POST_ID --status scheduled -s 2026-11-08T09:00:00Z--status scheduled -s <fecha>programa un borrador en esa fecha.--status draftvuelve a convertir una publicación programada en borrador: conserva su contenido, pierde su fecha y ya no saldrá.
Eliminar una publicación
sofia posts:delete $POST_IDAutomatizar con jq
Como la salida es JSON, jq extrae lo que necesitas: ids, estados, el cursor de la página siguiente.
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled | jq '.data[] | {id, status}'
sofia posts:list -e $ESTABLISHMENT_ID | jq -r '.nextCursor'