White label social media management voor bureaus en SaaS
Stuur elke klant een link naar een koppelpagina met jouw logo, jouw teksten en jouw thema. De klant koppelt TikTok, Instagram, YouTube of LinkedIn één keer. Daarna publiceer en plan jij voor hen via de API, n8n of Make.
Gratis beginnen, zonder creditcard. White label zit erin vanaf het Professional-abonnement.
import { UploadPost } from 'upload-post';
const api = new UploadPost('YOUR_API_KEY');
// Eén profiel per klant
const client = 'client-harbor';
await api.createUser(client);
// Koppellink met jouw branding, 48 uur geldig
const { access_url } = await api.generateJwt(client, {
logoImage: 'https://jouwbureau.nl/logo.png',
connectTitle: 'Koppel je accounts',
redirectUrl: 'https://jouwbureau.nl/klaar',
platforms: ['instagram', 'tiktok', 'linkedin']
});
// Stuur access_url naar je klant Echte screenshots
Dit ziet je klant
Dit is de echte koppelpagina die je klant opent, weergegeven met een voorbeeldmerk. Northwind Studio is een verzonnen bureau en "Harbor Demo Cafe" een verzonnen klant; de pagina, de opmaak en de opties zijn echt.
platforms.
connect_theme: "dark". Een geforceerd thema verbergt de schakelaar voor licht/donker, dus elke klant ziet jouw keuze.
ui_labels: de bovenregel, de sectietitels, de privacytekst en elke Connect-knop zeggen nu wat het bureau wil.
platforms ziet de klant alle netwerken, met de minder gebruikte achter "Show 9 more networks". Reddit stond op de dag van de screenshot als niet beschikbaar.
Wat de klant op die pagina kan doen
- TikTok, Instagram, YouTube, LinkedIn en de andere OAuth-netwerken koppelen op het inlogscherm van het netwerk zelf, zodat het wachtwoord nooit bij jou of bij Upload-Post komt. Bluesky, Telegram, Discord en een paar andere werken met een app-wachtwoord, een bottoken of een webhook.
- Kiezen op welke Facebook-pagina, LinkedIn-bedrijfspagina of Google Business-locatie je gaat posten.
- Een account opnieuw koppelen als de toegang is verlopen, of er op elk moment een ontkoppelen.
- De kalender met ingeplande posts bekijken, als je die aan laat staan. Met de alleen-lezen optie is dat het enige wat de klant kan.
- Terug naar jouw site met de knop die jij een naam hebt gegeven.
De link hoort bij één profiel. Een klant kan alleen de eigen accounts zien en wijzigen, nooit je andere klanten of je API-key.
Zo werkt het voor een bureau
Vijf stappen van een nieuwe klant tot de eerste ingeplande post. Elke stap werkt vanuit het dashboard of via de API.
- 1
Maak één profiel per klant
Ga in het dashboard naar Manage Users en voeg een profiel toe, of roep
POST /api/uploadposts/usersaan met een gebruikersnaam zoalsclient-harbor. Een profiel bevat één account per netwerk. - 2
Genereer de koppellink met jouw branding
Klik op Share naast het profiel en vul je logo, titel, beschrijving, taal, terugkeer-URL, knoptekst en netwerken in. Of stuur dezelfde velden naar
POST /api/uploadposts/users/generate-jwt. Je krijgt eenaccess_urlterug die 48 uur werkt. - 3
Stuur de link naar je klant
Per e-mail, via chat of in je eigen onboardingflow. De klant heeft geen Upload-Post-account nodig en ziet jouw dashboard nooit.
- 4
De klant koppelt de eigen accounts
De klant logt in bij TikTok, Instagram, YouTube of LinkedIn en geeft toegang. Tokens worden versleuteld opgeslagen en voor je vernieuwd. Heb je een webhook ingesteld, dan krijg je meteen een event
social_account_connected. - 5
Publiceer en plan voor de klant
Post met
user=client-harboren voegscheduled_datetoe om de post in te plannen. Dat kan vanuit het dashboard, vanuit je eigen code, met n8n-templates, een Make-scenario of een AI-assistent via de MCP-server. Haal cijfers per klant op via het analytics-endpoint.
Alle brandingopties
Het zijn allemaal velden van de aanroep generate-jwt en ze worden op het profiel van de klant opgeslagen. De laatste kolom laat zien of je de optie ook vanuit het dashboard kunt instellen.
| Optie | Parameter | Wat het doet | Voorbeeld | Dashboard |
|---|---|---|---|---|
| Logo | logo_image | Toont je logo bovenaan de pagina. Elke openbare http(s)-URL van een afbeelding werkt. | "https://jouwbureau.nl/logo.png" | Ja |
| Paginatitel | connect_title | Vervangt de hoofdtitel, die standaard "Connect your social accounts" luidt. | "Koppel je accounts aan Northwind Studio" | Ja |
| Beschrijving | connect_description | Vervangt de regel tekst onder de titel. | "Koppel de kanalen die wij voor je beheren." | Ja |
| Zichtbare netwerken | platforms | Alleen de netwerken die je opgeeft verschijnen. Laat je het weg, dan ziet de klant alle netwerken. | ["instagram", "tiktok", "linkedin"] | Ja |
| Terugkeer-URL | redirect_url | Waar de terugknop de klant naartoe brengt als die klaar is. | "https://jouwbureau.nl/onboarding/klaar" | Ja |
| Tekst van de terugknop | redirect_button_text | Het label van die terugknop. | "Terug naar Northwind Studio" | Ja |
| Taal | language | Forceert Engels, Spaans, Duits, Frans, Portugees, Pools of Turks. Zonder deze optie volgt de pagina de taal van de browser en valt terug op Engels. | "en" | Ja |
| Elke tekst op de pagina | ui_labels | Herschrijft losse teksten van de pagina via hun sleutel: knoppen, sectietitels, de privacytekst. Tot 100 sleutels van elk 300 tekens. | {"connect.card.connect": "Account koppelen"} | Alleen API |
| Thema | connect_theme | Forceert licht of donker en verbergt de themaschakelaar. Met "auto" kiest de bezoeker weer zelf. | "dark" | Alleen API |
| Kalendertabblad | show_calendar | Toont of verbergt een kalendertabblad met de ingeplande posts van dat profiel. Staat standaard aan. | false | Ja |
| Alleen-lezen kalender | readonly_calendar | De klant ziet alleen de kalender. Posts bewerken of verwijderen en accounts koppelen of ontkoppelen kan niet. | true | Ja |
Alle opties in één request
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://jouwbureau.nl/logo.png",
"connect_title": "Koppel je accounts aan Northwind Studio",
"connect_description": "Koppel de kanalen die wij voor je beheren.",
"platforms": ["instagram", "tiktok", "linkedin"],
"redirect_url": "https://jouwbureau.nl/onboarding/klaar",
"redirect_button_text": "Terug naar Northwind Studio",
"language": "en",
"connect_theme": "light",
"ui_labels": { "connect.card.connect": "Account koppelen" },
"show_calendar": false
}' Goed om te weten
- Stuur elke keer dat je een link genereert de volledige branding mee. Logo, titel, beschrijving, knoptekst, terugkeer-URL, netwerken en taal worden op het profiel gewist als je ze weglaat.
-
ui_labels,connect_themeen de twee kalenderschakelaars veranderen alleen als je ze meestuurt. Stuurnullof{}om de labels te resetten. - Labels vervangen tekst in de taal die de pagina op dat moment toont. De pagina zelf bestaat niet in het Nederlands: schrijf je je labels in het Nederlands, zet dan ook
languagevast (bijvoorbeeld op"en"), anders ziet een klant met een Franse browser de rest van de pagina in het Frans. - De sleutels van de labels en de volledige parameterreferentie staan in de documentatie van de User Profiles API.
Wat niet white label is
Beter dat je het hier leest dan dat een klant het je vertelt. Deze delen van de flow tonen nog steeds Upload-Post of het social netwerk.
Het adres
De gehoste pagina staat op app.upload-post.com/connect. Een eigen domein of CNAME is niet mogelijk. Wil je je eigen domein, bouw dan een eigen pagina met de Connect API; de OAuth-callback loopt dan nog heel even via app.upload-post.com.
De toestemmingsschermen van de netwerken
Als de klant inlogt, tonen TikTok, Meta, Google, LinkedIn en de rest hun eigen scherm met de app die daar geregistreerd is, en dat is de goedgekeurde app van Upload-Post. Daarom hoef jij ook niet door hun app-reviews.
Het privacyblok
Er staat altijd een korte tekst "How your data is used" op de pagina, met links naar het privacybeleid van Upload-Post en naar [email protected]. Standaard noemt die TONVI TECH SL, het bedrijf achter Upload-Post, als verwerker van de gegevens. Met ui_labels kun je de tekst herschrijven, maar het blok en die links blijven staan.
Kleuren, tabtitel en je dashboard
Je kiest licht of donker, geen merkkleur: de knoppen blijven in het indigo van Upload-Post. De titel en het icoon in het browsertabblad zijn van Upload-Post. Het dashboard waar je team op inlogt is Upload-Post, geen app met jouw merk.
Waarom bouw je de integraties niet zelf?
Directe integraties betekenen app-reviews bij Meta en TikTok, logica om tokens te vernieuwen en API-wijzigingen die dingen breken, en dat per netwerk. Met één API krijg je alle netwerken achter één endpoint en de koppelpagina erbovenop.
Bureaus
Eén profiel per klant, jouw merk op de koppellink, posten en inplannen vanaf één plek
SaaS-platforms
Voeg publiceren op social media toe aan je product zonder per netwerk een integratie te bouwen
Contenttools
Laat gebruikers wat ze maken direct delen op hun eigen social accounts
De API-aanroepen erachter
Voor developers die dit inbouwen in een SaaS of een tool voor bureaus. Geen OAuth-flows om te bouwen en geen platformcredentials om te beheren.
Maak een profiel per klant of gebruiker
Een profiel is de container voor de social accounts van één klant (of één gebruiker van je app). Gebruik je eigen interne ID als gebruikersnaam, dan is terugkoppelen naar je eigen data simpel.
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"}' Genereer de koppel-URL met jouw branding
Hier gaat de branding in: logo, titel, terugkeer-URL, netwerken en de rest van de opties uit de tabel hierboven. Het antwoord bevat access_url, 48 uur geldig.
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://jouwapp.nl/social-gekoppeld",
"logo_image": "https://jouwapp.nl/logo.png",
"platforms": ["tiktok", "instagram", "youtube"]
}' De klant koppelt de eigen accounts
Stuur de klant of gebruiker naar access_url. Op OAuth-netwerken zoals TikTok, Instagram en YouTube logt die direct in bij het netwerk, zodat Upload-Post het wachtwoord nooit ziet, en de tokens die dat oplevert worden versleuteld opgeslagen.
Wat Upload-Post voor je regelt
OAuth 2.0-flows
Tokens vernieuwen
Versleutelde opslag
Publiceer of plan namens de klant
Zet de gebruikersnaam van het profiel als user in elk upload-request. Voeg scheduled_date toe om later te publiceren in plaats van nu.
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=Nieuwe herfstkaart" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2026-10-02T09:00:00Z" Eén API-key, één profiel per klant
Al je klanten zitten onder één account en één API-key, elk in een eigen profiel met eigen social accounts.
Zo werken profielen
Elk profiel koppelt één account per netwerk. Je abonnement bepaalt hoeveel profielen je krijgt, en profielen zijn geen limiet op social accounts: met Professional kun je tegelijk 25 TikTok-accounts, 25 Instagram-accounts en 25 LinkedIn-accounts gekoppeld hebben.
- Gescheiden credentials: de social tokens van elke klant horen alleen bij het eigen profiel
- Webhook per klant: geef elk profiel een eigen URL voor koppel- en upload-events
- Eén factuur: één abonnement dekt al je klanten
Voorbeeldopzet
| Abonnement | Inbegrepen profielen | Maandelijks betalen | Jaarlijks betalen |
|---|---|---|---|
| Professional | 25 | $ 50/mnd | $ 33/mnd ($ 400/jaar) |
| Advanced | 75 | $ 147/mnd | $ 118/mnd ($ 1.411/jaar) |
| Business | 225, daarna $ 1/mnd per extra profiel | $ 438/mnd | $ 350/mnd ($ 4.205/jaar) |
Prijzen in USD per september 2026. Prijzen in euro en pakketten met extra profielen voor Professional en Advanced staan in het prijzenoverzicht, dat altijd de actuele bron is.
Wie gebruikt een white label social media integratie?
SaaS-platforms
Contentmanagementsystemen, marketingautomatisering en zakelijke software.
Marketingbureaus
Online marketingbureaus en bedrijven die social media voor klanten beheren.
Contentplatforms
Blogplatforms, videohostingsites en tools om content te maken.
Onderwijsplatforms
Leeromgevingen (LMS) en platforms met educatieve content.
E-commerceplatforms
Online marktplaatsen en e-commerceoplossingen.
Videoplatforms
Videohostingplatforms en streamingdiensten.
Technische specificaties en compliance
Ondersteunde platforms
Plus nog 11, waaronder Google Business, Slack, Mastodon en WordPress. Bekijk alle 22 platforms
Beveiliging
Social media tokens worden versleuteld opgeslagen.
Op OAuth-netwerken loggen klanten in op het scherm van het netwerk zelf. Hun wachtwoord gaat nooit via jou of via Upload-Post.
Elke koppellink opent maar één profiel en verloopt na 48 uur.
Zet jouw merk op de onboarding van je klanten
Maak een profiel, klik op Share, stuur de link. Je eerste koppelpagina met jouw branding staat er binnen een paar minuten.
Gratis beginnen, zonder creditcard. White label vanaf het Professional-abonnement.
White label social media management: veelgestelde vragen
Vragen die bureaus en SaaS-teams stellen voordat ze hun eerste koppellink met eigen branding versturen
Hebben mijn klanten een Upload-Post-account nodig?
Nee. De koppellink bevat een token voor alleen dat ene klantprofiel. Je klant opent de link, logt in bij elk social netwerk en is klaar. De link is 48 uur geldig; daarna maak je een nieuwe aan.
Kan ik de koppelpagina op mijn eigen domein zetten?
De gehoste pagina niet: die staat altijd op app.upload-post.com/connect en een eigen domein is niet mogelijk. Is het adres belangrijk voor je, dan bouw je met de Connect API de pagina op je eigen site. Ook dan stuurt het netwerk de klant heel even via app.upload-post.com terug, omdat dat de OAuth-callback is die bij elk platform geregistreerd staat.
Welke abonnementen bevatten white label?
Professional, Advanced en Business. Free en Basic hebben het niet. Professional heeft 25 profielen, Advanced 75 en Business 225, en bij Business kost elk extra profiel $ 1 per maand. Geen salesgesprek nodig: je kiest het abonnement op de prijzenpagina.
Hoeveel klantaccounts passen er in een profiel?
Een profiel bevat één account per netwerk, dus één profiel kan een klant zijn met Instagram, TikTok, LinkedIn en YouTube gekoppeld. 25 profielen betekent tot 25 accounts op elk netwerk, niet 25 accounts in totaal. Een klant met twee Instagram-accounts heeft twee profielen nodig.
Moet ik de branding elke keer meesturen als ik een link maak?
Ja, voor het logo, de titel, de beschrijving, de knoptekst, de terugkeer-URL, de netwerken en de taal. Elke aanroep van generate-jwt slaat precies op wat je meestuurt, dus een veld dat je weglaat wordt op dat profiel gewist. ui_labels, connect_theme, show_calendar en readonly_calendar werken anders: die veranderen alleen als je ze meestuurt.
Kunnen mijn klanten zien wat er ingepland staat?
Ja. Het kalendertabblad staat standaard aan en toont de ingeplande posts van dat profiel. Zet je readonly_calendar aan, dan wordt de link een contentkalender die alleen bekeken kan worden: de klant kan kijken, maar niets bewerken, verwijderen of ontkoppelen. Stuur de klant naar /connect/calendar met hetzelfde token om de kalender direct te openen.
Welke talen ondersteunt de koppelpagina?
Engels, Spaans, Duits, Frans, Portugees, Pools en Turks. Nederlands zit daar niet bij. Je kunt per profiel een taal forceren met de parameter language of de pagina de browser laten volgen. Met ui_labels schrijf je de teksten zelf, dus ook in het Nederlands.
Hoe weet ik wanneer een klant een account heeft gekoppeld?
Met webhooks. Upload-Post stuurt de events social_account_connected, social_account_disconnected, social_account_reauth_required en upload_completed. Elk profiel kan een eigen webhook-URL hebben, zodat elke klant naar een ander endpoint in jouw systeem kan melden.
Kan ik statistieken per klant ophalen?
Ja. Het analytics-endpoint neemt de gebruikersnaam van het profiel, zodat je de cijfers van één klant tegelijk krijgt en daar je eigen rapportages op kunt bouwen.
Zijn er SDK's?
Er zijn officiële SDK's voor Python (pip install upload-post) en JavaScript/Node (npm install upload-post). De rest is een gewone REST API met een API-key, dus elke programmeertaal of no-code tool die HTTP-verzoeken kan sturen werkt.
Hoe lang duurt het instellen?
Zonder code: maak een profiel aan in Manage Users, klik op Share, vul je branding in en stuur de link. Met de API zijn het twee aanroepen, één om het profiel aan te maken en één om de link te genereren, plus de upload-aanroepen die je toch al nodig hebt om te posten.
Welke support krijg ik?
Documentatie met codevoorbeelden voor elk endpoint en support per e-mail via [email protected]. Advanced en Business hebben prioriteitssupport.
Meer details: User Profiles API, Connect API, Webhooks en SDK's.