White Label Social Media Tool für Agenturen und SaaS
Schicken Sie jedem Kunden einen Link zu einer Verbindungsseite mit Ihrem Logo, Ihren Texten und Ihrem Theme. Der Kunde verbindet TikTok, Instagram, YouTube oder LinkedIn einmal. Ab dann veröffentlichen und planen Sie für ihn über die API, n8n oder Make.
Kostenlos starten, ohne Kreditkarte. White Label ist ab dem Professional-Tarif enthalten.
import { UploadPost } from 'upload-post';
const api = new UploadPost('YOUR_API_KEY');
// Ein Profil pro Kunde
const client = 'client-harbor';
await api.createUser(client);
// Verbindungslink mit Ihrem Branding, 48 Stunden gültig
const { access_url } = await api.generateJwt(client, {
logoImage: 'https://ihreagentur.de/logo.png',
connectTitle: 'Verbinden Sie Ihre Konten',
redirectUrl: 'https://ihreagentur.de/fertig',
platforms: ['instagram', 'tiktok', 'linkedin']
});
// access_url an den Kunden schicken Echte Screenshots
Das sehen Ihre Kunden
Das ist die echte Verbindungsseite, die Ihr Kunde öffnet, dargestellt mit einer Beispielmarke. Northwind Studio ist eine erfundene Agentur und "Harbor Demo Cafe" ein erfundener Kunde; Seite, Layout und Optionen sind echt.
platforms auf sechs Netzwerke begrenzt.
connect_theme: "dark". Ein erzwungenes Theme blendet den Hell/Dunkel-Schalter aus, also sieht jeder Kunde Ihre Wahl.
ui_labels: Oberzeile, Abschnittstitel, Datenschutztext und jeder Connect-Button sagen jetzt, was die Agentur möchte.
platforms sieht der Kunde alle Netzwerke, die selteneren hinter "Show 9 more networks". Reddit war am Tag der Aufnahme als nicht verfügbar markiert.
Was der Kunde auf dieser Seite tun kann
- TikTok, Instagram, YouTube, LinkedIn und die anderen OAuth-Netzwerke auf dem Anmeldebildschirm des jeweiligen Netzwerks verbinden. Sein Passwort erreicht also weder Sie noch Upload-Post. Bluesky, Telegram, Discord und ein paar andere nutzen stattdessen ein App-Passwort, einen Bot-Token oder einen Webhook.
- Auswählen, auf welcher Facebook-Seite, LinkedIn-Unternehmensseite oder welchem Google-Business-Standort Sie posten.
- Ein Konto mit abgelaufenem Zugriff neu verbinden oder jederzeit eines trennen.
- Den Kalender mit den geplanten Beiträgen ansehen, wenn Sie ihn eingeschaltet lassen. Mit der Nur-lesen-Option ist das alles, was er tun kann.
- Mit dem Button, den Sie beschriftet haben, zu Ihrer Website zurückkehren.
Der Link hängt an genau einem Profil. Ein Kunde sieht und ändert immer nur seine eigenen Konten, nie Ihre anderen Kunden und nie Ihren API-Key.
So funktioniert es für eine Agentur
Fünf Schritte vom neuen Kunden bis zum ersten geplanten Beitrag. Jeder Schritt geht im Dashboard oder über die API.
- 1
Ein Profil pro Kunde anlegen
Gehen Sie im Dashboard auf Manage Users und fügen Sie ein Profil hinzu, oder rufen Sie
POST /api/uploadposts/usersmit einem Benutzernamen wieclient-harborauf. Ein Profil fasst ein Konto pro Netzwerk. - 2
Den Verbindungslink mit Ihrem Branding erzeugen
Klicken Sie neben dem Profil auf Share und tragen Sie Logo, Titel, Beschreibung, Sprache, Weiterleitungs-URL, Button-Text und Netzwerke ein. Oder senden Sie dieselben Felder an
POST /api/uploadposts/users/generate-jwt. Sie erhalten eineaccess_url, die 48 Stunden gilt. - 3
An den Kunden schicken
Per E-Mail, Chat oder in Ihrem eigenen Onboarding. Der Kunde braucht kein Upload-Post-Konto und sieht Ihr Dashboard nie.
- 4
Der Kunde verbindet seine Konten
Er meldet sich bei TikTok, Instagram, YouTube oder LinkedIn an und erteilt den Zugriff. Die Tokens werden verschlüsselt gespeichert und für Sie erneuert. Wenn Sie einen Webhook eingerichtet haben, bekommen Sie im selben Moment ein Event
social_account_connected. - 5
Für ihn veröffentlichen und planen
Posten Sie mit
user=client-harborund ergänzen Siescheduled_date, um den Beitrag zu planen. Das geht im Dashboard, aus Ihrem Code, mit n8n-Vorlagen, einem Make-Szenario oder einem KI-Assistenten über den MCP-Server. Die Zahlen pro Kunde holen Sie sich über den Analytics-Endpunkt.
Alle Branding-Optionen
Alle sind Felder des Aufrufs generate-jwt und werden im Profil des Kunden gespeichert. Die letzte Spalte zeigt, ob Sie die Option auch im Dashboard setzen können.
| Option | Parameter | Was sie bewirkt | Beispiel | Dashboard |
|---|---|---|---|---|
| Logo | logo_image | Zeigt Ihr Logo oben auf der Seite. Jede öffentliche http(s)-Bild-URL. | "https://ihreagentur.de/logo.png" | Ja |
| Seitentitel | connect_title | Ersetzt die Hauptüberschrift, die standardmäßig "Connect your social accounts" lautet. | "Verbinden Sie Ihre Konten mit Northwind Studio" | Ja |
| Beschreibung | connect_description | Ersetzt die Textzeile unter der Überschrift. | "Verknüpfen Sie die Kanäle, die wir für Sie betreuen." | Ja |
| Angezeigte Netzwerke | platforms | Nur die aufgeführten Netzwerke erscheinen. Ohne den Parameter sieht der Kunde alle Netzwerke. | ["instagram", "tiktok", "linkedin"] | Ja |
| Weiterleitungs-URL | redirect_url | Wohin der Zurück-Button den Kunden bringt, wenn er fertig ist. | "https://ihreagentur.de/onboarding/fertig" | Ja |
| Text des Zurück-Buttons | redirect_button_text | Die Beschriftung dieses Zurück-Buttons. | "Zurück zu Northwind Studio" | Ja |
| Sprache | language | Erzwingt Englisch, Spanisch, Deutsch, Französisch, Portugiesisch, Polnisch oder Türkisch. Ohne den Parameter folgt die Seite der Browsersprache, mit Englisch als Fallback. | "de" | Ja |
| Jeder Text der Seite | ui_labels | Überschreibt einzelne Texte der Seite über ihren Schlüssel: Buttons, Abschnittstitel, den Datenschutztext. Bis zu 100 Schlüssel mit je 300 Zeichen. | {"connect.card.connect": "Konto verknüpfen"} | Nur API |
| Theme | connect_theme | Erzwingt hell oder dunkel und blendet den Theme-Schalter aus. "auto" gibt die Wahl an den Besucher zurück. | "dark" | Nur API |
| Kalender-Tab | show_calendar | Blendet einen Kalender-Tab mit den geplanten Beiträgen dieses Profils ein oder aus. Standardmäßig an. | false | Ja |
| Kalender nur lesen | readonly_calendar | Der Kunde sieht nur den Kalender. Er kann keine Beiträge bearbeiten oder löschen und keine Konten verbinden oder trennen. | true | Ja |
Alle Optionen in einer Anfrage
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "client-harbor",
"logo_image": "https://ihreagentur.de/logo.png",
"connect_title": "Verbinden Sie Ihre Konten mit Northwind Studio",
"connect_description": "Verknüpfen Sie die Kanäle, die wir für Sie betreuen.",
"platforms": ["instagram", "tiktok", "linkedin"],
"redirect_url": "https://ihreagentur.de/onboarding/fertig",
"redirect_button_text": "Zurück zu Northwind Studio",
"language": "de",
"connect_theme": "light",
"ui_labels": { "connect.card.connect": "Konto verknüpfen" },
"show_calendar": false
}' Gut zu wissen
- Senden Sie bei jedem neuen Link das komplette Branding mit. Logo, Titel, Beschreibung, Button-Text, Weiterleitungs-URL, Netzwerke und Sprache werden im Profil geleert, wenn Sie sie weglassen.
-
ui_labels,connect_themeund die beiden Kalender-Schalter ändern sich nur, wenn Sie sie senden. Mitnulloder{}setzen Sie die Texte zurück. - Die Labels ersetzen Texte in der Sprache, in der die Seite gerade angezeigt wird. Sind Ihre Labels auf Deutsch und der Browser eines Kunden auf Französisch, bleibt der Rest der Seite französisch. Setzen Sie deshalb auch
language. - Die Schlüssel der Labels und die vollständige Parameterreferenz finden Sie in der Doku der User Profiles API.
Was nicht White Label ist
Besser, Sie lesen es hier, als dass ein Kunde Sie darauf hinweist. Diese Teile des Ablaufs zeigen weiterhin Upload-Post oder das soziale Netzwerk.
Die Adresse
Die gehostete Seite liegt unter app.upload-post.com/connect. Eine eigene Domain oder einen CNAME gibt es nicht. Wenn Sie Ihre eigene Domain brauchen, bauen Sie Ihre Seite mit der Connect API; der OAuth-Callback läuft trotzdem kurz über app.upload-post.com.
Die Zustimmungsseiten der Netzwerke
Bei der Anmeldung zeigen TikTok, Meta, Google, LinkedIn und die anderen ihre eigene Seite mit der dort registrierten App, also der genehmigten App von Upload-Post. Genau deshalb sparen Sie sich auch deren App-Prüfungen.
Der Datenschutzkasten
Ein kurzer Hinweis "How your data is used" steht immer auf der Seite, mit Links zur Datenschutzerklärung von Upload-Post und zu [email protected]. Standardmäßig nennt er TONVI TECH SL, das Unternehmen hinter Upload-Post, als Auftragsverarbeiter. Den Wortlaut können Sie mit ui_labels ändern, der Kasten und diese Links bleiben aber.
Farben, Tab-Titel und Ihr Dashboard
Sie wählen hell oder dunkel, keine Markenfarbe: Die Buttons behalten das Indigo von Upload-Post. Titel und Icon im Browser-Tab sind die von Upload-Post. Das Dashboard, in das sich Ihr Team einloggt, ist Upload-Post und keine umgebrandete App.
Warum die Integrationen nicht selbst bauen?
Direkte Integrationen bedeuten App-Prüfungen bei Meta und TikTok, Logik zum Erneuern von Tokens und API-Änderungen, die etwas kaputt machen, und das für jedes Netzwerk einzeln. Mit einer API haben Sie alle Netzwerke hinter einem Endpunkt und die Verbindungsseite obendrauf.
Agenturen
Ein Profil pro Kunde, Ihre Marke auf dem Verbindungslink, Beiträge und Planung an einem Ort
SaaS-Plattformen
Social-Media-Veröffentlichung in Ihr Produkt einbauen, ohne für jedes Netzwerk eine eigene Integration zu entwickeln
Content-Tools
Nutzer teilen, was sie erstellen, direkt auf ihren eigenen Social-Media-Konten
Die API-Aufrufe dahinter
Für Entwickler, die das in ein SaaS oder ein Agentur-Tool einbauen. Keine OAuth-Abläufe zu entwickeln und keine Plattform-Zugangsdaten zu verwalten.
Ein Profil für jeden Kunden oder Nutzer anlegen
Ein Profil ist der Container für die Social-Media-Konten eines Kunden (oder eines Nutzers Ihrer App). Verwenden Sie Ihre eigene interne ID als Benutzernamen, dann ist die Zuordnung trivial.
curl -X POST https://api.upload-post.com/api/uploadposts/users \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "your-internal-user-id-123"}' Die Verbindungs-URL mit Branding erzeugen
Hier kommt das Branding hinein: Logo, Titel, Weiterleitungs-URL, Netzwerke und die übrigen Optionen aus der Tabelle oben. Die Antwort enthält access_url, gültig für 48 Stunden.
curl -X POST https://api.upload-post.com/api/uploadposts/users/generate-jwt \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "your-internal-user-id-123",
"redirect_url": "https://yourapp.com/social-connected",
"logo_image": "https://yourapp.com/logo.png",
"platforms": ["tiktok", "instagram", "youtube"]
}' Der Kunde verbindet seine Konten
Schicken Sie den Kunden oder Nutzer auf die access_url. Bei OAuth-Netzwerken wie TikTok, Instagram und YouTube meldet er sich direkt beim Netzwerk an, Upload-Post sieht sein Passwort also nie, und die erhaltenen Tokens werden verschlüsselt gespeichert.
Das übernimmt Upload-Post für Sie
OAuth-2.0-Abläufe
Token-Erneuerung
Verschlüsselte Speicherung
In seinem Namen veröffentlichen oder planen
Geben Sie in jeder Upload-Anfrage den Benutzernamen des Profils als user mit. Mit scheduled_date wird später statt sofort veröffentlicht.
curl -X POST https://api.upload-post.com/api/upload \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "user=your-internal-user-id-123" \
-F "video=@/path/to/video.mp4" \
-F "title=Neue Herbstkarte" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2026-10-02T09:00:00Z" Ein API-Key, ein Profil pro Kunde
Alle Ihre Kunden laufen unter einem Konto und einem API-Key, jeder in seinem eigenen Profil mit seinen eigenen Social-Media-Konten.
So funktionieren Profile
Jedes Profil verbindet ein Konto pro Netzwerk. Ihr Tarif legt fest, wie viele Profile Sie haben, und Profile sind keine Obergrenze für Social-Media-Konten: Mit Professional können Sie gleichzeitig 25 TikTok-Konten, 25 Instagram-Konten und 25 LinkedIn-Konten verbunden haben.
- Getrennte Zugangsdaten: Die Social-Media-Tokens jedes Kunden gehören nur zu seinem Profil
- Webhook pro Kunde: Jedes Profil bekommt eine eigene URL für Verbindungs- und Upload-Events
- Eine Rechnung: Ein einziges Abo deckt alle Kunden ab
Beispiel-Setup
| Tarif | Enthaltene Profile | Monatliche Zahlung | Jährliche Zahlung |
|---|---|---|---|
| Professional | 25 | 50 $/Monat | 33 $/Monat (400 $/Jahr) |
| Advanced | 75 | 147 $/Monat | 118 $/Monat (1.411 $/Jahr) |
| Business | 225, danach 1 $/Monat pro weiterem Profil | 438 $/Monat | 350 $/Monat (4.205 $/Jahr) |
Preise in US-Dollar, Stand September 2026. Euro-Preise und Zusatzpakete mit Profilen für Professional und Advanced stehen im Preisbereich, der immer die aktuelle Quelle ist.
Wer nutzt eine White-Label-Social-Media-Integration?
SaaS-Plattformen
Content-Management-Systeme, Marketing-Automation-Plattformen und Business-Software.
Marketingagenturen
Digitalagenturen und Dienstleister für Social-Media-Management.
Content-Plattformen
Blog-Plattformen, Video-Hosting-Seiten und Tools zur Content-Erstellung.
Bildungsplattformen
Lernmanagementsysteme und Plattformen für Bildungsinhalte.
E-Commerce-Plattformen
Online-Marktplätze und E-Commerce-Lösungen.
Videoplattformen
Video-Hosting-Plattformen und Streamingdienste.
Technische Daten & Sicherheit
Unterstützte Plattformen
Dazu 11 weitere, darunter Google Business, Slack, Mastodon und WordPress. Alle 22 Plattformen ansehen
Sicherheitsfunktionen
Die Social-Media-Tokens werden verschlüsselt gespeichert.
Bei OAuth-Netzwerken melden sich Kunden auf der Seite des Netzwerks selbst an. Ihr Passwort läuft nie über Sie oder Upload-Post.
Jeder Verbindungslink öffnet nur ein Profil und läuft nach 48 Stunden ab.
Ihre Marke im Kunden-Onboarding
Profil anlegen, auf Share klicken, Link verschicken. Ihre erste Verbindungsseite mit eigenem Branding steht in wenigen Minuten.
Kostenlos starten, ohne Kreditkarte. White Label ab dem Professional-Tarif.
White Label Social Media Management: FAQ
Fragen, die Agenturen und SaaS-Teams stellen, bevor sie ihren ersten Verbindungslink mit eigenem Branding verschicken
Brauchen meine Kunden ein Upload-Post-Konto?
Nein. Der Verbindungslink enthält ein Token für genau dieses eine Kundenprofil. Ihr Kunde öffnet ihn, meldet sich bei jedem sozialen Netzwerk an und ist fertig. Der Link gilt 48 Stunden; danach erzeugen Sie einen neuen.
Kann die Verbindungsseite unter meiner eigenen Domain laufen?
Die gehostete Seite nicht: Sie liegt immer unter app.upload-post.com/connect, eigene Domains gibt es nicht. Wenn Ihnen die Adresse wichtig ist, bauen Sie die Seite mit der Connect API auf Ihrer eigenen Website. Auch dann schickt das Netzwerk den Kunden kurz über app.upload-post.com zurück, weil das der OAuth-Callback ist, der bei jeder Plattform registriert ist.
Welche Tarife enthalten White Label?
Professional, Advanced und Business. Free und Basic enthalten es nicht. Professional hat 25 Profile, Advanced 75 und Business 225; bei Business kostet jedes weitere Profil 1 $ pro Monat. Kein Verkaufsgespräch nötig: Sie wählen den Tarif auf der Preisseite.
Wie viele Kundenkonten passen in ein Profil?
Ein Profil fasst ein Konto pro Netzwerk. Ein Profil kann also ein Kunde mit verbundenem Instagram, TikTok, LinkedIn und YouTube sein. 25 Profile bedeuten bis zu 25 Konten in jedem Netzwerk, nicht 25 Konten insgesamt. Ein Kunde mit zwei Instagram-Konten braucht zwei Profile.
Muss ich das Branding bei jedem neuen Link mitschicken?
Ja, für Logo, Titel, Beschreibung, Button-Text, Weiterleitungs-URL, Netzwerke und Sprache. Jeder Aufruf von generate-jwt speichert genau das, was Sie senden; ein weggelassenes Feld wird in diesem Profil geleert. Bei ui_labels, connect_theme, show_calendar und readonly_calendar ist es anders: Sie ändern sich nur, wenn Sie sie senden.
Können meine Kunden sehen, was geplant ist?
Ja. Der Kalender-Tab ist standardmäßig an und zeigt die geplanten Beiträge dieses Profils. Mit readonly_calendar wird der Link zu einem reinen Redaktionskalender zum Ansehen: Der Kunde kann schauen, aber nichts bearbeiten, löschen oder an den Verbindungen ändern. Schicken Sie ihn mit demselben Token auf /connect/calendar, um den Kalender direkt zu öffnen.
Welche Sprachen unterstützt die Verbindungsseite?
Englisch, Spanisch, Deutsch, Französisch, Portugiesisch, Polnisch und Türkisch. Sie können pro Profil eine Sprache mit dem Parameter language erzwingen oder die Seite der Browsersprache folgen lassen. Für jede andere Formulierung schreiben Sie die Texte mit ui_labels selbst.
Woher weiß ich, dass ein Kunde ein Konto verbunden hat?
Über Webhooks. Upload-Post sendet die Events social_account_connected, social_account_disconnected, social_account_reauth_required und upload_completed. Jedes Profil kann eine eigene Webhook-URL haben, sodass jeder Kunde an einen anderen Endpunkt in Ihrem System meldet.
Kann ich Statistiken pro Kunde abrufen?
Ja. Der Analytics-Endpunkt nimmt den Benutzernamen des Profils entgegen. So bekommen Sie die Zahlen eines Kunden nach dem anderen und können darauf Ihre eigenen Reports bauen.
Gibt es SDKs?
Es gibt offizielle SDKs für Python (pip install upload-post) und JavaScript/Node (npm install upload-post). Alles andere ist eine normale REST-API mit API-Key, also funktioniert jede Sprache und jedes No-Code-Tool, das HTTP-Anfragen senden kann.
Wie lange dauert die Einrichtung?
Ohne Code: Legen Sie unter Manage Users ein Profil an, klicken Sie auf Share, tragen Sie Ihr Branding ein und verschicken Sie den Link. Per API sind es zwei Aufrufe, einer zum Anlegen des Profils und einer für den Link, plus die Upload-Aufrufe, die Sie zum Posten ohnehin brauchen.
Welchen Support bekomme ich?
Eine Dokumentation mit Codebeispielen für jeden Endpunkt und E-Mail-Support über [email protected]. Advanced und Business enthalten priorisierten Support.
Mehr Details: User Profiles API, Connect API, Webhooks und SDKs.