v1Ressourcen/Posts/postBeitrag erstellen
Beitrag erstellen
Erstellt einen Beitrag für einen Standort oder Kunden und übermittelt ihn an die ausgewählten Plattformen. Dies veröffentlicht echten Inhalt: Sofern nicht scheduledFor gesetzt oder draft true ist, geht der Beitrag sofort auf seinen Zielplattformen live. Eine angeforderte Plattform ohne aktive Verbindung, oder ein Beitrag, dem ein für die Veröffentlichung erforderliches Feld fehlt, lässt den Aufruf nie fehlschlagen — der Inhalt wird stattdessen als Entwurf gespeichert; siehe das Antwortschema dafür, wie das gemeldet wird.
post
posts:write/api/v1/postsAnfragetext
locationIdstringoptional
Der Standort, an den gepostet werden soll. Geben Sie diesen oder clientId an.
clientIdstringoptional
Der Kunde, für den auf Markenebene gepostet werden soll. Geben Sie diesen oder locationId an.
namestringerforderlich
Interner Name/Bezeichnung des Beitrags. Erforderlich, nicht leer.
postTypestring (announcement | event | offer)optional
Beitragstyp. event und offer sind Google-exklusiv.
platformsarray of string (google | facebook | instagram | x | linkedin | pinterest | mastodon | bluesky | threads | tiktok | youtube | reddit | medium | substack | vimeo | dailymotion)optional
Zielplattformen. Senden Sie dies oder connectionIds. Jede Plattform veröffentlicht über die Verbindung des Standorts dafür (bzw. des Kunden bei einem markenweiten Beitrag).
connectionIdsarray of stringoptional
Genaue Ziele: die Verbindungs-IDs, an die veröffentlicht wird, aus GET /api/v1/locations/{id}/publish-targets. Verwenden Sie die Verbindung des Standorts selbst oder die markenweite Seite seines Kunden; eine Google-Verbindung auf Kontoebene, eine archivierte oder eine eines anderen Standorts oder Kunden wird mit 422 abgelehnt. Wenn gesendet, geht der Beitrag genau dorthin und platforms wird daraus abgeleitet. Beim Aktualisieren ersetzt die Liste die Ziele des Beitrags.
linkUrlstringoptional
Der Hauptlink des Beitrags, verwendet von jeder Plattform, die einen anzeigt.
linkCtaKeystringoptional
Die Schaltfläche, die mit linkUrl angezeigt wird, z. B. learn_more, book oder shop.
utmobjectoptional
UTM-Parameter (source, medium, campaign, term), die an linkUrl angehängt werden.
sourcestringoptional
mediumstringoptional
campaignstringoptional
termstringoptional
linkOverrideobjectoptional
Link-Einstellungen pro Plattform, nach Plattform geschlüsselt: eine andere url, Schaltfläche, title, description oder utm für diese Plattform.
linkAppendobjectoptional
Ob linkUrl bei X und Mastodon, die kein Linkfeld haben, ans Ende der Bildunterschrift angehängt wird.
xbooleanoptional
mastodonbooleanoptional
ctaUrlFacebookstringoptional
Schaltflächen-URL nur für Facebook, wenn sie von ctaUrl abweichen soll.
xThreadbooleanoptional
Bei X eine Bildunterschrift, die länger als ein Beitrag ist, in einen Thread aufteilen.
scheduleLocalTimestringoptional
Nach lokaler Uhrzeit planen, "YYYY-MM-DDTHH:mm" ohne Zeitzone. Statt scheduledFor für zeitzonenbewusste Planung verwenden.
scheduleZoneModestring (target_local | fixed_zone)optional
Wie scheduleLocalTime gelesen wird: target_local veröffentlicht zu dieser Uhrzeit in der Zeitzone jedes Ziels; fixed_zone verwendet scheduleTimeZone für alle Ziele.
scheduleTimeZonestringoptional
IANA-Zeitzone für die Planung mit fixed_zone, z. B. "America/New_York".
timeZoneModestring (target_local | fixed_zone)optional
Wie scheduleZoneMode.
articleTitlestringoptional
Artikelfelder für Medium und Substack: Titel, Untertitel und HTML-Text.
articleSubtitlestringoptional
Artikelfelder für Medium und Substack: Titel, Untertitel und HTML-Text.
articleBodyHtmlstringoptional
Artikelfelder für Medium und Substack: Titel, Untertitel und HTML-Text.
canonicalUrlstringoptional
Ursprüngliche URL eines anderswo veröffentlichten Artikels, damit die Plattform die Quelle nennt.
videoCoverUrlstringoptional
Videooptionen: eine URL für das Titelbild sowie eine URL für die Untertiteldatei mit deren Sprache.
videoCaptionsUrlstringoptional
Videooptionen: eine URL für das Titelbild sowie eine URL für die Untertiteldatei mit deren Sprache.
videoCaptionsLanguagestringoptional
Videooptionen: eine URL für das Titelbild sowie eine URL für die Untertiteldatei mit deren Sprache.
facebookCaptionstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookCtaTypestringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookFirstCommentstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookPublishAsstring (default | reel | carousel | suppress_link)optional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookCarouselCardsarray of objectoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
headlinestringoptional
descriptionstringoptional
linkstringoptional
facebookTargetCountrystringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookTargetGenderstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookTargetAgeMinstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookTargetAgeMaxstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
facebookTargetRelationshipstringoptional
Eine Option nur für Facebook: abweichende Bildunterschrift, Schaltflächentyp, erster Kommentar, Veröffentlichungsformat (default, reel, carousel, suppress_link), Karussellkarten oder Zielgruppen-Targeting.
instagramFirstCommentstringoptional
Eine Option nur für Instagram: erster Kommentar oder Alternativtext des Bildes.
instagramAltTextstringoptional
Eine Option nur für Instagram: erster Kommentar oder Alternativtext des Bildes.
xReplySettingsstring (everyone | following | mentioned)optional
Eine Option nur für X: wer antworten darf.
linkedinVisibilitystring (anyone | connections | followers)optional
Eine Option nur für LinkedIn: Sichtbarkeit oder erster Kommentar.
linkedinFirstCommentstringoptional
Eine Option nur für LinkedIn: Sichtbarkeit oder erster Kommentar.
pinterestTitlestringoptional
Eine Option nur für Pinterest: Pin-Titel, Pinnwand, Ziellink oder Alternativtext.
pinterestBoardIdstringoptional
Eine Option nur für Pinterest: Pin-Titel, Pinnwand, Ziellink oder Alternativtext.
pinterestBoardNamestringoptional
Eine Option nur für Pinterest: Pin-Titel, Pinnwand, Ziellink oder Alternativtext.
pinterestLinkstringoptional
Eine Option nur für Pinterest: Pin-Titel, Pinnwand, Ziellink oder Alternativtext.
pinterestAltTextstringoptional
Eine Option nur für Pinterest: Pin-Titel, Pinnwand, Ziellink oder Alternativtext.
tiktokPrivacyLevelstring (PUBLIC_TO_EVERYONE | MUTUAL_FOLLOW_FRIENDS | SELF_ONLY)optional
Eine Option nur für TikTok: Datenschutzstufe, ob Duette, Stitches und Kommentare erlaubt sind, oder Markeninhalte.
tiktokDisableDuetbooleanoptional
Eine Option nur für TikTok: Datenschutzstufe, ob Duette, Stitches und Kommentare erlaubt sind, oder Markeninhalte.
tiktokDisableStitchbooleanoptional
Eine Option nur für TikTok: Datenschutzstufe, ob Duette, Stitches und Kommentare erlaubt sind, oder Markeninhalte.
tiktokDisableCommentbooleanoptional
Eine Option nur für TikTok: Datenschutzstufe, ob Duette, Stitches und Kommentare erlaubt sind, oder Markeninhalte.
tiktokBrandContentbooleanoptional
Eine Option nur für TikTok: Datenschutzstufe, ob Duette, Stitches und Kommentare erlaubt sind, oder Markeninhalte.
mastodonVisibilitystring (public | unlisted | private | direct)optional
Eine Option nur für Mastodon: Sichtbarkeit, Inhaltswarnung oder sensible Medien.
mastodonSpoilerTextstringoptional
Eine Option nur für Mastodon: Sichtbarkeit, Inhaltswarnung oder sensible Medien.
mastodonSensitivebooleanoptional
Eine Option nur für Mastodon: Sichtbarkeit, Inhaltswarnung oder sensible Medien.
blueskyLanguagestringoptional
Eine Option nur für Bluesky: Sprache des Beitrags oder wer antworten darf.
blueskyReplyGatingstring (everyone | mentioned | following | nobody)optional
Eine Option nur für Bluesky: Sprache des Beitrags oder wer antworten darf.
threadsReplyControlstring (everyone | accounts_you_follow | mentioned_only)optional
Eine Option nur für Threads: wer antworten darf.
redditSubredditstringoptional
Eine Option nur für Reddit: Subreddit, Titel, Beitragstyp, Link oder Flair.
redditTitlestringoptional
Eine Option nur für Reddit: Subreddit, Titel, Beitragstyp, Link oder Flair.
redditPostTypestring (text | link | image | video)optional
Eine Option nur für Reddit: Subreddit, Titel, Beitragstyp, Link oder Flair.
redditUrlstringoptional
Eine Option nur für Reddit: Subreddit, Titel, Beitragstyp, Link oder Flair.
redditFlairstringoptional
Eine Option nur für Reddit: Subreddit, Titel, Beitragstyp, Link oder Flair.
mediumTagsstringoptional
Eine Option nur für Medium: Tags oder Veröffentlichungsstatus.
mediumPublishStatusstring (public | unlisted | draft)optional
Eine Option nur für Medium: Tags oder Veröffentlichungsstatus.
substackSendEmailbooleanoptional
Eine Option nur für Substack: ob Abonnenten per E-Mail benachrichtigt werden.
vimeoTitlestringoptional
Eine Option nur für Vimeo: Titel, Beschreibung, Vorschaubild oder Datenschutz.
vimeoDescriptionstringoptional
Eine Option nur für Vimeo: Titel, Beschreibung, Vorschaubild oder Datenschutz.
vimeoThumbnailUrlstringoptional
Eine Option nur für Vimeo: Titel, Beschreibung, Vorschaubild oder Datenschutz.
vimeoPrivacystring (anybody | unlisted)optional
Eine Option nur für Vimeo: Titel, Beschreibung, Vorschaubild oder Datenschutz.
dailymotionTitlestringoptional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
dailymotionDescriptionstringoptional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
dailymotionThumbnailUrlstringoptional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
dailymotionCategorystringoptional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
dailymotionIsForKidsbooleanoptional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
dailymotionPrivacystring (public | private)optional
Eine Option nur für Dailymotion: Titel, Beschreibung, Vorschaubild, Kategorie, Kennzeichnung für Kinder oder Datenschutz.
messageGooglestringoptional
Text für Google. Erforderlich, wenn google ausgewählt ist, außer bei draft.
messageFacebookstringoptional
Gemeinsame Bildunterschrift für die sozialen Plattformen (Facebook, Instagram, X, LinkedIn und die anderen). Erforderlich, wenn eine davon ausgewählt ist, außer bei einer reinen TikTok- oder YouTube-Auswahl, sofern der Beitrag kein Entwurf ist. Google verwendet sie nicht, sondern messageGoogle.
captionOverridesobjectoptional
Captions that replace the shared caption on one network only, keyed by network: facebook, instagram, linkedin, x, bluesky, mastodon, threads, pinterest (the pin description), tiktok and youtube (the video description). Each is checked against its own network's limit. On update, only the networks you name change; send null or an empty string for one to go back to the shared caption, or null for the whole field to clear them all. Other networks are refused, because they publish the shared caption.
facebookstringoptional
instagramstringoptional
linkedinstringoptional
xstringoptional
blueskystringoptional
mastodonstringoptional
threadsstringoptional
pintereststringoptional
tiktokstringoptional
youtubestringoptional
ctaTypestring (learn_more | sign_up | order_online | book | buy | call_now)optional
Call-to-Action-Typ.
ctaUrlstringoptional
Ziel-URL des Call-to-Action.
mediaUrlsarray of objectoptional
Anzuhängende Medien, ein Eintrag je Plattform-Anhang.
urlstringoptional
platformstringoptional
typestring (image | video)optional
eventTitlestringoptional
Titel des Events oder Angebots. Erforderlich für ein Google-Event/-Angebot, außer bei draft.
eventStartAtstringoptional
Start des Events oder Angebots, als ISO-8601-Zeitstempel. Erforderlich für ein Google-Event/-Angebot, außer bei draft.
eventEndAtstringoptional
Ende des Events oder Angebots, als ISO-8601-Zeitstempel. Muss nach dem Start liegen.
offerTermsstringoptional
Bedingungen des Angebots.
offerCouponCodestringoptional
Gutscheincode des Angebots.
offerRedeemUrlstringoptional
Einlöse-URL des Angebots.
scheduledForstringoptional
Zu diesem zukünftigen ISO-8601-Zeitstempel veröffentlichen, anstatt sofort.
draftbooleanoptional
Ohne Veröffentlichung speichern. Überspringt Pflichtfeld-Prüfungen; strukturelle Prüfungen (Limits, Medienregeln) gelten weiterhin.
Antwort
dataobjectoptional
Eine angeforderte Plattform ohne aktive Verbindung, oder ein Pflichtfeld, das der Beitrag benötigt, bevor er live gehen kann, lässt diesen Aufruf nie fehlschlagen — der Beitrag wird trotzdem gespeichert. Liegt eine dieser Lücken vor, ist status "no_connection" oder "incomplete", und der Beitrag liegt darunter als post.{id,status}; bei einer sauberen Veröffentlichung beschreiben id/status auf oberster Ebene den Beitrag direkt.
idstringoptional
Eindeutige Kennung des Beitrags.
statusstringoptional
Lebenszyklusstatus des Beitrags: draft, scheduled, paused, publishing, active, partial (auf einigen Plattformen live, auf anderen fehlgeschlagen), error, deleted oder expired.
missingFieldsarray of stringoptional
Felder, die vor der Veröffentlichung dieses Beitrags noch benötigt werden, falls vorhanden.
missingPlatformsarray of stringoptional
Angeforderte Plattformen ohne aktive Verbindung, falls vorhanden.
scopestring (location | client)optional
Ob die Verbindungs-/Feld-Lücke auf Standort- oder Kundenebene gilt.
postobjectoptional
Der erstellte oder aktualisierte Beitrag.
idstringoptional
Eindeutige Kennung des Beitrags.
statusstringoptional
Lebenszyklusstatus des Beitrags: draft, scheduled, paused, publishing, active, partial (auf einigen Plattformen live, auf anderen fehlgeschlagen), error, deleted oder expired.
targetsarray of objectoptional
Ein Eintrag pro Ziel des Beitrags, mit eigenem Status.
connectionIdstringoptional
Die Verbindung, über die dieses Ziel veröffentlicht.
platformstringoptional
Die Plattform des Ziels.
statusstringoptional
Status dieser Plattform-Übermittlung: pending, publishing, action_required (die Plattform verlangt eine Aktion des Nutzers), active, error, deleted oder expired.
errorobjectoptional
Vorhanden, wenn dieses Ziel fehlgeschlagen ist: Fehlercode und Meldung von Synup.
codestringoptional
messagestringoptional
Fehler
400Der Anfrage fehlt ein erforderlicher Parameter, oder sie ist anderweitig fehlerhaft.
401API-Schlüssel fehlt, ist ungültig, abgelaufen oder widerrufen.
403Dem Schlüssel fehlt die erforderliche Berechtigung, oder er ist für diesen Kunden/Standort nicht autorisiert.
422Der Anfrage fehlt ein erforderlicher Parameter, oder sie ist anderweitig fehlerhaft.
429Zu viele Anfragen. Versuchen Sie es nach der im Retry-After-Header angegebenen Anzahl Sekunden erneut.
post/api/v1/posts
Ihr API-Schlüssel
Anfragetext*
{
"data": {
"id": "cm_post_abc123",
"status": "scheduled"
}
}Anleitungen, die diesen Endpunkt verwenden
- How to Add Local Marketing Features to Your SaaSAdd listings management, reviews, Google posts, profile analytics, rank tracking and AI visibility to a SaaS product with the Synup API, tenant by tenant.
- How to Add Local Marketing Functionality to Vertical SaaSAdd local marketing to a vertical SaaS by mapping existing customers to clients and locations, and shipping only the features your niche needs.
- How to Publish Google Business Profile Posts ProgrammaticallyPublish announcements, offers and events to Google Business Profile via API, schedule them, handle the missing-connection draft, and measure post performance.
- Publish a Google Business Profile Post via APIPublish an announcement, offer or event to a location's connected platforms, and handle the draft returned when a platform is not connected.