Posts
Cree, lea y publique publicaciones sociales y de Google Business Profile.
Devuelve las publicaciones de una ubicación, empezando por las creadas más recientemente, con el estado de envío por plataforma y estadísticas agregadas.
Listar publicaciones
/api/v1/posts{
"data": {
"rows": [
{
"id": "cm_post_abc123",
"name": "Fall Special Announcement",
"type": "announcement",
"status": "scheduled",
"postDate": "2026-02-10T15:00:00.000Z",
"platforms": [
"google",
"facebook"
],
"firstMediaUrl": "https://cdn.synup.com/uploads/a1/promo.jpg",
"firstMediaType": "image",
"submissions": [
{
"platform": "google",
"status": "pending",
"postLink": null,
"reviewState": null,
"errorMessage": null
},
{
"platform": "facebook",
"status": "pending",
"postLink": null,
"reviewState": null,
"errorMessage": null
}
],
"messagePreview": "Join us this weekend for our fall special — 20% off all services!",
"views": null,
"clicks": null,
"errorMsg": null,
"deletedOn": null
}
],
"total": 1,
"stats": {
"totalPosts": 12,
"totalViews": 4300,
"totalClicks": 210,
"totalEngagement": 96
}
}
}Crea una publicación para una ubicación o cliente y la envía a las plataformas seleccionadas. Esto publica contenido real: a menos que se indique scheduledFor o draft sea true, la publicación se activa de inmediato en sus plataformas de destino. Una plataforma solicitada sin conexión activa, o una publicación a la que le falte un campo obligatorio para publicarse, nunca hace fallar la llamada — el contenido se guarda como borrador en su lugar; consulte el esquema de la respuesta para ver cómo se informa esto.
Crear una publicación
/api/v1/posts{
"data": {
"id": "cm_post_abc123",
"status": "scheduled"
}
}Devuelve un resumen de analíticas de interacción — totales generales, un desglose por plataforma, series de tendencia y las publicaciones destacadas — a través de las conexiones de plataforma a nivel de marca de un cliente.
Obtener analíticas de publicaciones
/api/v1/posts/analytics{
"data": {
"summary": {
"totalPosts": 18,
"totalViews": 5400,
"totalReactions": 320,
"totalShares": 44,
"totalComments": 61,
"periodDays": 30
},
"prevSummary": {
"totalPosts": 14,
"totalViews": 4100,
"totalReactions": 260,
"totalShares": 30,
"totalComments": 48
},
"byPlatform": [
{
"platform": "facebook",
"label": "Facebook",
"totalPosts": 10,
"totalViews": 3200,
"totalReactions": 210,
"totalShares": 30,
"totalComments": 40
},
{
"platform": "instagram",
"label": "Instagram",
"totalPosts": 8,
"totalViews": 2200,
"totalReactions": 110,
"totalShares": 14,
"totalComments": 21
}
],
"prevByPlatform": [
{
"platform": "facebook",
"label": "Facebook",
"totalPosts": 8,
"totalViews": 2500,
"totalReactions": 170,
"totalShares": 20,
"totalComments": 32
}
],
"trend": {
"dates": [
"2026-01-15",
"2026-01-16"
],
"series": [
{
"platform": "facebook",
"label": "Facebook",
"values": [
4,
6
]
}
]
},
"engagementTrend": {
"dates": [
"2026-01-15",
"2026-01-16"
],
"series": [
{
"platform": "facebook",
"label": "Facebook",
"views": [
180,
210
],
"reactions": [
12,
15
],
"shares": [
2,
3
],
"comments": [
4,
5
],
"reach": [
900,
1100
]
}
]
},
"postsTrend": {
"dates": [
"2026-01-15",
"2026-01-16"
],
"series": [
{
"platform": "facebook",
"label": "Facebook",
"values": [
1,
2
]
}
]
},
"allPosts": [
{
"submissionId": "cm_sub_xyz789",
"platform": "facebook",
"platformPostId": "1234567890",
"postLink": "https://www.facebook.com/1234567890",
"publishedAt": "2026-01-16T14:00:00.000Z",
"contentPreview": "Join us this weekend for our fall special — 20% off all services!",
"totalViews": 890,
"totalReactions": 42,
"totalShares": 6,
"totalComments": 9,
"totalReach": 1450,
"engRate": 0.064
}
]
}
}Devuelve una sola publicación, incluido su rendimiento de envío por plataforma.
Obtener una publicación
/api/v1/posts/{id}{
"data": {
"id": "cm_post_abc123",
"name": "Fall Special Announcement",
"type": "announcement",
"status": "scheduled",
"postType": "announcement",
"clientId": "cm_client_1",
"locationId": "cm_loc_1",
"locationName": "Acme Dental — Downtown",
"clientName": "Acme Dental",
"platforms": [
"google",
"facebook"
],
"messageGoogle": "Join us this weekend for our fall special — 20% off all services!",
"messageFacebook": "Join us this weekend for our fall special — 20% off all services!",
"ctaType": "learn_more",
"ctaUrl": "https://acmedental.example.com/fall-special",
"ctaUrlFacebook": null,
"xThread": false,
"ctaJson": {
"ctaType": "learn_more",
"ctaUrl": "https://acmedental.example.com/fall-special",
"ctaUrlFacebook": null,
"xThread": false
},
"mediaUrls": [
{
"url": "https://cdn.synup.com/uploads/a1/promo.jpg",
"platform": "facebook",
"type": "image"
}
],
"eventTitle": null,
"eventStartAt": null,
"eventEndAt": null,
"offerTerms": null,
"offerCouponCode": null,
"offerRedeemUrl": null,
"scheduledFor": "2026-02-10T15:00:00.000Z",
"createdAt": "2026-01-20T09:12:00.000Z",
"performance": [
{
"submissionId": "cm_sub_xyz789",
"connectionId": "cm_conn_1",
"site": "facebook",
"views": 890,
"clicks": null,
"reactions": 42,
"shares": 6,
"comments": 9,
"status": "active",
"platformPostId": "1234567890",
"postLink": "https://www.facebook.com/1234567890",
"reviewState": null,
"errorMessage": null
}
]
}
}Actualiza una publicación editable (draft, scheduled, error o active) y reconcilia sus envíos por plataforma para que coincidan. Si la publicación no está programada ni guardada como borrador, esto puede publicar o cambiar lo que ya está activo en sus plataformas.
Actualizar una publicación
/api/v1/posts/{id}{
"data": {
"id": "cm_post_abc123",
"name": "Fall Special Announcement (updated)",
"type": "announcement",
"status": "scheduled",
"postType": "announcement",
"clientId": "cm_client_1",
"locationId": "cm_loc_1",
"platforms": [
"google",
"facebook"
],
"messageGoogle": "Join us this weekend — now 25% off all services!",
"messageFacebook": "Join us this weekend — now 25% off all services!",
"ctaType": "learn_more",
"ctaUrl": "https://acmedental.example.com/fall-special",
"ctaUrlFacebook": null,
"xThread": false,
"ctaJson": {
"ctaType": "learn_more",
"ctaUrl": "https://acmedental.example.com/fall-special",
"ctaUrlFacebook": null,
"xThread": false
},
"mediaUrls": [
{
"url": "https://cdn.synup.com/uploads/a1/promo.jpg",
"platform": "facebook",
"type": "image"
}
],
"eventTitle": null,
"eventStartAt": null,
"eventEndAt": null,
"offerTerms": null,
"offerCouponCode": null,
"offerRedeemUrl": null,
"scheduledFor": "2026-02-10T15:00:00.000Z",
"createdAt": "2026-01-20T09:12:00.000Z",
"performance": []
}
}Retira una publicación de todas las plataformas a las que se envió — una acción real e inmediata que no se puede deshacer. Solo cuando la retirada tiene éxito en todas las plataformas, la publicación también desaparece de esta API; si alguna plataforma falla, no se archiva nada y la publicación permanece visible para poder reintentar el fallo. Esta API nunca elimina permanentemente el registro de la publicación.
Retirar y eliminar una publicación
/api/v1/posts/{id}{
"data": {
"id": "cm_post_abc123",
"ok": true,
"deleted": 2,
"failed": []
}
}Fuerza el envío inmediato de una publicación en borrador o con error, reintentando cualquier envío por plataforma pendiente o fallido. Esto envía contenido real a las plataformas conectadas de la publicación en este momento.
Publicar una publicación ahora
/api/v1/posts/{id}/publish{
"data": {
"retrying": 2
}
}