Gestão de Redes Sociais White Label para Agências e SaaS
Mande a cada cliente o link de uma página de conexão com seu logo, seus textos e seu tema. Ele conecta o TikTok, o Instagram, o YouTube ou o LinkedIn uma única vez. A partir daí, você publica e agenda por ele via API, n8n ou Make.
Comece grátis, sem cartão de crédito. O white label vem incluído a partir do plano Professional.
import { UploadPost } from 'upload-post';
const api = new UploadPost('YOUR_API_KEY');
// Um perfil por cliente
const client = 'client-harbor';
await api.createUser(client);
// Link de conexão com sua marca, válido por 48 horas
const { access_url } = await api.generateJwt(client, {
logoImage: 'https://suaagencia.com.br/logo.png',
connectTitle: 'Conecte suas contas',
redirectUrl: 'https://suaagencia.com.br/pronto',
platforms: ['instagram', 'tiktok', 'linkedin']
});
// Envie o access_url para o seu cliente Capturas de tela reais
O Que Seus Clientes Veem
Esta é a página de conexão que o seu cliente abre de verdade, montada com uma marca de exemplo. Northwind Studio é uma agência inventada e "Harbor Demo Cafe" um cliente inventado; a página, o layout e as opções são os reais.
platforms.
connect_theme: "dark". Um tema forçado esconde o seletor claro/escuro, então todo cliente vê a sua escolha.
ui_labels: o sobretítulo, os títulos de seção, o texto de privacidade e todos os botões de conectar agora dizem o que a agência quer.
platforms, o cliente vê todas as redes, com as menos comuns atrás de "Show 9 more networks". No dia da captura, o Reddit aparecia como indisponível.
O que o cliente pode fazer nessa página
- Conectar TikTok, Instagram, YouTube, LinkedIn e as outras redes com OAuth na tela de login da própria rede, então a senha dele nunca chega até você nem até a Upload-Post. Bluesky, Telegram, Discord e algumas outras usam senha de app, token de bot ou webhook.
- Escolher em qual Página do Facebook, página de empresa do LinkedIn ou local do Google Business você vai publicar.
- Reconectar uma conta cujo acesso expirou ou desconectar uma conta a qualquer momento.
- Ver o calendário de posts agendados, se você deixar essa opção ativa. Com a opção somente leitura, é só isso que ele pode fazer.
- Voltar ao seu site pelo botão com o texto que você definiu.
O link fica preso a um único perfil. O cliente só consegue ver e alterar as próprias contas, nunca os seus outros clientes nem a sua chave de API.
Como Funciona para uma Agência
Cinco passos entre um cliente novo e o primeiro post agendado. Cada passo funciona pelo painel ou pela API.
- 1
Crie um perfil por cliente
No painel, vá em Manage Users e adicione um perfil, ou chame
POST /api/uploadposts/userscom um username comoclient-harbor. Um perfil guarda uma conta por rede. - 2
Gere o link de conexão com a sua marca
Clique em Share ao lado do perfil e preencha logo, título, descrição, idioma, URL de retorno, texto do botão e redes. Ou envie os mesmos campos para
POST /api/uploadposts/users/generate-jwt. Você recebe umaccess_urlque funciona por 48 horas. - 3
Envie o link para o cliente
Por e-mail, WhatsApp ou dentro do seu próprio fluxo de onboarding. O cliente não precisa de conta na Upload-Post e nunca vê o seu painel.
- 4
O cliente conecta as contas
Ele entra no TikTok, Instagram, YouTube ou LinkedIn e autoriza o acesso. Os tokens ficam armazenados com criptografia e são renovados automaticamente. Se você configurar um webhook, recebe um evento
social_account_connectedno mesmo instante. - 5
Publique e agende por ele
Publique com
user=client-harbore adicionescheduled_datepara agendar. Faça isso pelo painel, pelo seu código, com templates de n8n, com um cenário no Make ou com um assistente de IA pelo servidor MCP. Puxe os números de cada cliente pelo endpoint de analytics.
Todas as Opções de Personalização
Todas são campos da chamada generate-jwt e ficam salvas no perfil do cliente. A última coluna diz se você também pode configurar a opção pelo painel.
| Opção | Parâmetro | O que faz | Exemplo | Painel |
|---|---|---|---|---|
| Logo | logo_image | Mostra seu logo no topo da página. Qualquer URL pública de imagem http(s). | "https://suaagencia.com.br/logo.png" | Sim |
| Título da página | connect_title | Substitui o título principal, que por padrão diz "Conecte suas contas sociais". | "Conecte suas contas à Northwind Studio" | Sim |
| Descrição | connect_description | Substitui a linha de texto abaixo do título. | "Vincule os canais que vamos gerenciar para você." | Sim |
| Redes exibidas | platforms | Só aparecem as redes que você listar. Se omitir, o cliente vê todas as redes. | ["instagram", "tiktok", "linkedin"] | Sim |
| URL de retorno | redirect_url | Para onde o botão de voltar leva o cliente quando ele termina. | "https://suaagencia.com.br/onboarding/pronto" | Sim |
| Texto do botão de voltar | redirect_button_text | O texto desse botão de voltar. | "Voltar para a Northwind Studio" | Sim |
| Idioma | language | Força inglês, espanhol, alemão, francês, português, polonês ou turco. Sem ele, a página segue o idioma do navegador e, se não houver tradução, usa inglês. | "pt" | Sim |
| Qualquer texto da página | ui_labels | Reescreve textos avulsos da página pela chave: botões, títulos de seção, o aviso de privacidade. Até 100 chaves, com 300 caracteres cada. | {"connect.card.connect": "Vincular conta"} | Só pela API |
| Tema | connect_theme | Força o tema claro ou escuro e esconde o seletor de tema. "auto" devolve a escolha ao visitante. | "dark" | Só pela API |
| Aba de calendário | show_calendar | Mostra ou esconde uma aba de calendário com os posts agendados daquele perfil. Vem ativada por padrão. | false | Sim |
| Calendário somente leitura | readonly_calendar | O cliente só vê o calendário. Não pode editar nem apagar posts, nem conectar ou desconectar contas. | true | Sim |
Todas as opções em uma requisição
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://suaagencia.com.br/logo.png",
"connect_title": "Conecte suas contas à Northwind Studio",
"connect_description": "Vincule os canais que vamos gerenciar para você.",
"platforms": ["instagram", "tiktok", "linkedin"],
"redirect_url": "https://suaagencia.com.br/onboarding/pronto",
"redirect_button_text": "Voltar para a Northwind Studio",
"language": "pt",
"connect_theme": "light",
"ui_labels": { "connect.card.connect": "Vincular conta" },
"show_calendar": false
}' Bom saber
- Envie a identidade visual completa toda vez que gerar um link. Logo, título, descrição, texto do botão, URL de retorno, redes e idioma são apagados do perfil quando você os deixa de fora.
-
ui_labels,connect_themee as duas opções de calendário só mudam quando você os envia. Envienullou{}para zerar os textos. - Os textos substituem o conteúdo no idioma que a página estiver mostrando. Se seus textos estão em português e o navegador de um cliente está em francês, o resto da página fica em francês; por isso, defina também o
language. - As chaves de texto e a referência completa dos parâmetros estão na documentação da User Profiles API.
O Que Não Fica com a Sua Marca
Melhor você ler aqui do que descobrir por um cliente. Estas partes do fluxo continuam mostrando a Upload-Post ou a rede social.
O endereço
A página hospedada fica em app.upload-post.com/connect. Não há opção de domínio próprio nem de CNAME. Se você precisa do seu domínio, monte a sua página com a Connect API; o callback OAuth continua passando por app.upload-post.com por um instante.
As telas de autorização das redes
Quando o cliente faz login, TikTok, Meta, Google, LinkedIn e as demais mostram a própria tela com o app registrado lá, que é o app aprovado da Upload-Post. É também por isso que você não passa pelas revisões de app delas.
O aviso de privacidade
Uma nota curta sobre como os dados são usados ("How your data is used") aparece sempre na página, com links para a política de privacidade da Upload-Post e para [email protected]. Por padrão, ela cita a TONVI TECH SL, a empresa por trás da Upload-Post, como operadora dos dados. Você pode reescrever o texto com ui_labels, mas o quadro e esses links continuam lá.
Cores, título da aba e o seu painel
Você escolhe claro ou escuro, não uma cor de marca: os botões mantêm o índigo da Upload-Post. O título e o ícone da aba do navegador são da Upload-Post. O painel que a sua equipe usa é o da Upload-Post, não um app com outra marca.
Por Que Não Construir as Integrações Você Mesmo?
Integrações diretas significam revisões de app na Meta e no TikTok, lógica de renovação de tokens e mudanças de API que quebram tudo, uma vez para cada rede. Com uma API só, você tem todas as redes atrás de um endpoint e a página de conexão por cima.
Agências
Um perfil por cliente, sua marca no link de conexão, posts e agendamentos num só lugar
Plataformas SaaS
Adicione publicação em redes sociais ao seu produto sem construir uma integração por rede
Ferramentas de conteúdo
Deixe seus usuários compartilharem o que criam direto nas próprias redes sociais
As Chamadas de API por Trás
Para devs que vão embutir isso num SaaS ou numa ferramenta de agência. Sem fluxos OAuth para construir e sem credenciais de plataforma para gerenciar.
Crie um Perfil para Cada Cliente ou Usuário
Um perfil é o contêiner das contas sociais de um cliente (ou de um usuário do seu app). Use o seu próprio ID interno como username, assim fica fácil relacionar os dados depois.
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"}' Gere a URL de Conexão com a Sua Marca
É aqui que entra a identidade visual: logo, título, URL de retorno, redes e as demais opções da tabela acima. A resposta traz o access_url, válido por 48 horas.
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"]
}' O Cliente Conecta as Contas
Mande o cliente ou usuário para o access_url. Nas redes com OAuth, como TikTok, Instagram e YouTube, ele se autentica direto na rede, então a Upload-Post nunca vê a senha, e os tokens gerados ficam armazenados com criptografia.
O Que a Upload-Post Resolve por Você
Fluxos OAuth 2.0
Renovação de tokens
Armazenamento criptografado
Publique ou Agende em Nome Dele
Inclua o username do perfil como user em qualquer requisição de upload. Adicione scheduled_date para publicar mais tarde em vez de agora.
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=Novo cardápio de outono" \
-F "platform[]=tiktok" \
-F "platform[]=instagram" \
-F "scheduled_date=2026-10-02T09:00:00Z" Uma Chave de API, Um Perfil por Cliente
Todos os seus clientes ficam numa única conta e numa única chave de API, cada um no próprio perfil com as próprias contas sociais.
Como os perfis funcionam
Cada perfil conecta uma conta por rede. O seu plano define quantos perfis você tem, e os perfis não são um teto de contas sociais: no Professional você pode ter 25 contas de TikTok, 25 de Instagram e 25 de LinkedIn conectadas ao mesmo tempo.
- Credenciais separadas: os tokens sociais de cada cliente pertencem só ao perfil dele
- Webhook por cliente: dê a cada perfil a sua própria URL para eventos de conexão e de upload
- Uma fatura só: uma única assinatura cobre todos os clientes
Exemplo de configuração
| Plano | Perfis incluídos | Cobrança mensal | Cobrança anual |
|---|---|---|---|
| Professional | 25 | US$ 50/mês | US$ 33/mês (US$ 400/ano) |
| Advanced | 75 | US$ 147/mês | US$ 118/mês (US$ 1.411/ano) |
| Business | 225, depois US$ 1/mês por perfil extra | US$ 438/mês | US$ 350/mês (US$ 4.205/ano) |
Preços em dólar (USD) de setembro de 2026. Os preços em euro e os pacotes de perfis extras do Professional e do Advanced estão na seção de preços, que é sempre a fonte atualizada.
Quem Usa Integração White Label de Redes Sociais?
Plataformas SaaS
Sistemas de gestão de conteúdo, plataformas de automação de marketing e softwares de gestão.
Agências de marketing
Agências de marketing digital e empresas de gestão de redes sociais.
Plataformas de conteúdo
Plataformas de blog, sites de hospedagem de vídeo e ferramentas de criação de conteúdo.
Plataformas de educação
Ambientes virtuais de aprendizagem (LMS) e plataformas de conteúdo educacional.
Plataformas de e-commerce
Marketplaces e soluções de e-commerce.
Plataformas de vídeo
Plataformas de hospedagem de vídeo e serviços de streaming.
Especificações Técnicas e Segurança
Redes suportadas
E mais 11, incluindo Google Business, Slack, Mastodon e WordPress. Ver as 22 plataformas
Segurança
Os tokens das redes sociais ficam criptografados em repouso.
Nas redes com OAuth, os clientes fazem login na tela da própria rede. A senha deles nunca passa por você nem pela Upload-Post.
Cada link de conexão abre um único perfil e expira depois de 48 horas.
Coloque a Sua Marca no Onboarding dos Clientes
Crie um perfil, clique em Share e envie o link. A sua primeira página de conexão com marca própria fica pronta em poucos minutos.
Comece grátis, sem cartão de crédito. White label a partir do plano Professional.
White Label de Redes Sociais: Perguntas Frequentes
O que agências e times de SaaS perguntam antes de enviar o primeiro link de conexão com a própria marca
Meus clientes precisam de uma conta na Upload-Post?
Não. O link de conexão leva um token só daquele perfil de cliente. O cliente abre o link, entra em cada rede social e pronto. O link vale por 48 horas; depois disso, você gera um novo.
Posso colocar a página de conexão no meu próprio domínio?
A página hospedada, não: ela sempre fica em app.upload-post.com/connect e não há opção de domínio próprio. Se o endereço importa, a Connect API permite montar a página no seu site. Mesmo assim, a rede devolve o cliente por app.upload-post.com por um instante, porque esse é o callback OAuth registrado em cada plataforma.
Quais planos incluem white label?
Professional, Advanced e Business. Free e Basic não incluem. O Professional vem com 25 perfis, o Advanced com 75 e o Business com 225, e no Business cada perfil extra custa US$ 1 por mês. Sem ligação de vendas: você escolhe o plano na página de preços.
Quantas contas de cliente cabem em um perfil?
Um perfil guarda uma conta por rede, então um perfil pode ser um cliente com Instagram, TikTok, LinkedIn e YouTube conectados. 25 perfis significa até 25 contas em cada rede, não 25 contas no total. Um cliente com duas contas de Instagram precisa de dois perfis.
Tenho que enviar a identidade visual toda vez que crio um link?
Sim, para logo, título, descrição, texto do botão, URL de retorno, redes e idioma. Cada chamada ao generate-jwt salva exatamente o que você envia, então um campo que você deixa de fora é apagado naquele perfil. ui_labels, connect_theme, show_calendar e readonly_calendar são diferentes: só mudam quando você os envia.
Meus clientes conseguem ver o que está agendado?
Sim. A aba de calendário vem ativada por padrão e mostra os posts agendados daquele perfil. Ative readonly_calendar e o link vira um calendário de conteúdo só para consulta: o cliente vê, mas não pode editar, apagar nem mexer nas conexões. Mande o cliente para /connect/calendar com o mesmo token para abrir o calendário direto.
Em quais idiomas a página de conexão funciona?
Inglês, espanhol, alemão, francês, português, polonês e turco. Você pode fixar um idioma por perfil com o parâmetro language ou deixar a página seguir o navegador. Para qualquer outro texto, ui_labels permite que você mesmo escreva as frases.
Como fico sabendo quando um cliente conectou uma conta?
Com webhooks. A Upload-Post envia os eventos social_account_connected, social_account_disconnected, social_account_reauth_required e upload_completed. Cada perfil pode ter sua própria URL de webhook, então cada cliente pode avisar um endpoint diferente do seu sistema.
Consigo puxar as métricas de cada cliente?
Sim. O endpoint de analytics recebe o username do perfil, então você obtém os números de um cliente por vez e pode montar seus próprios relatórios em cima disso.
Vocês têm SDKs?
Há SDKs oficiais para Python (pip install upload-post) e JavaScript/Node (npm install upload-post). O resto é uma API REST comum com chave de API, então qualquer linguagem ou ferramenta no-code que faça requisições HTTP funciona.
Quanto tempo leva para configurar?
Sem código: crie um perfil em Manage Users, clique em Share, preencha sua identidade visual e envie o link. Pela API são duas chamadas, uma para criar o perfil e outra para gerar o link, além das chamadas de upload que você já precisa para publicar.
Que suporte eu recebo?
Documentação com exemplos de código para cada endpoint e suporte por e-mail em [email protected]. Os planos Advanced e Business incluem suporte prioritário.
Mais detalhes: User Profiles API, Connect API, Webhooks e SDKs.