🏠 Documentação > Introdução

API de Publicação em Redes Sociais da Upload Norventa

Bem-vindo à Upload Norventa

Esta é a documentação oficial da API da Upload Norventa. Aqui você encontra tudo que precisa pra conectar suas redes sociais e publicar por conta própria — pelo painel ou por chamadas de API.

O que é a Upload Norventa?

A Upload Norventa é uma API REST que abstrai a complexidade de publicar em várias redes sociais ao mesmo tempo: autenticação OAuth de cada plataforma, formatos de mídia diferentes, confirmação assíncrona e reconciliação de falhas — tudo isso fica do nosso lado, pra você focar em criar conteúdo, não em manter integração de API.

Somos um produto da família NORVENTA, a mesma empresa brasileira por trás do NORVENTA BPO financeiro — CNPJ nacional, cobrança em reais (cartão pelo site, PIX ou boleto), com nota fiscal para assinaturas pagas, e suporte em português falado por quem escreveu o código, não por um chatbot em outro fuso horário.

Se você já usa (ou considerou) uma API estrangeira equivalente: a diferença não é só o idioma — é não depender de fatura em dólar sujeita a IOF e variação cambial, ter uma empresa brasileira responsável pelos seus dados (relevante pra LGPD) e ter alguém pra responder em português quando algo quebra às 2h de uma sexta-feira.

Primeiros passos

  1. Crie sua conta gratuita e conecte pelo menos uma rede na tela Usuários.
  2. Gere uma chave de API na tela Chaves de API — o valor só aparece uma vez, guarde com cuidado.
  3. Faça sua primeira chamada a POST /api/v1/publish (veja a Referência da API abaixo).

Autenticação

Toda chamada precisa do header Authorization, em um destes dois formatos (aceitamos os dois de propósito, pra reduzir atrito de quem já integrou com outra API parecida):

Authorization: Bearer un_xxxxxxxxxxxxxxxxxxxx
Authorization: Apikey un_xxxxxxxxxxxxxxxxxxxx

Só o hash SHA-256 da sua chave fica salvo no nosso banco — nunca o valor puro. Por isso não existe “revelar chave” depois de criada: se perder o valor, revogue e gere uma nova.

Referência da API

POST /api/v1/publish — cria um post e dispara a publicação nas redes conectadas do perfil informado.

CampoTipoObrigatórioDescrição
userstringSimSlug do perfil de destino (o mesmo da tela Usuários), não um e-mail de login.
titlestringSimLegenda padrão da publicação. Vale para todas as redes de platform, e no YouTube vira a descrição do vídeo.
mediaUrlstring (URL)SimURL pública do arquivo de mídia. Upload direto de arquivo (multipart) ainda não existe — hospede antes e mande o link.
platformstring[]SimLista de redes de destino entre as contas já conectadas ao perfil. Disponíveis hoje: "youtube", "tiktok", "linkedin" ("instagram" e "facebook" são recusadas com 400 até a aprovação da Meta).
videoTitlestringNãoTítulo do vídeo no YouTube (máx. 100 caracteres). Em branco, o YouTube recebe o começo da legenda.
captionsobjectNãoLegenda diferente por rede. Só as exceções; rede que não estiver aqui usa title. Rede que não esteja em platform é recusada com 400.
youtubeobjectNão{ privacy }: “private”, “unlisted” ou “public”. Ausente, usa o padrão do serviço. Público é irreversível na prática.
tiktokobjectNãoObrigatório quando platform inclui “tiktok”: privacidade, comentários, dueto, costura e divulgação de conteúdo comercial. Os valores válidos de privacidade são os que a conta oferece (consulte na tela Publicar).

Respostas

201Post criado e publicação disparada. { id, status: "queued" }
400Corpo inválido ou campo obrigatório ausente. { error }
401Chave de API ausente, inválida ou revogada. { error }
404O “user” informado não corresponde a um perfil desta conta. { error }
402Limite mensal de publicações do plano atingido. { error }
429Teto de segurança de 24h daquela rede atingido. { error }
500Falha ao criar o post no nosso banco. { error }
502O post foi criado, mas a rede recusou a publicação (motivo em error). { id, status: "failed", error }

Redes sociais suportadas

YouTube, TikTok, LinkedIn publicam de verdade hoje. Instagram e Facebook dependem da aprovação do nosso aplicativo pela Meta e, até lá, são recusados pela API (não existe modo simulado: nada é registrado como publicado sem ter chegado à rede):

YouTube

Vídeos, Shorts e metadados

  • Upload de vídeo a partir de uma mediaUrl pública: o NOSSO servidor baixa o arquivo e envia ao YouTube. A URL precisa ser pública e é verificada antes do download
  • videoTitle define o título do vídeo (até 100 caracteres). Em branco, o YouTube recebe o começo da legenda
  • title vira a DESCRIÇÃO do vídeo (até 5.000 caracteres)
  • A visibilidade é sua escolha, post a post, no campo youtube.privacy: private, unlisted ou public
  • Confirmação em duas etapas: a publicação entra como sent_pending_confirmation até o YouTube terminar de processar
  • Teto de 20 envios por dia, por conta — proteção contra bloqueio do canal, não cobrança

Instagram

Em breve

  • Aguardando a aprovação do aplicativo pela Meta — hoje a API recusa “instagram” em platform com 400
  • Quando liberar: imagem (mediaType: image) ou vídeo (mediaType: video, como Reels), com title usado como legenda

TikTok

Publicação direta de vídeo

  • ATENÇÃO: enquanto nosso aplicativo aguarda a auditoria do TikTok, ele só publica em conta PRIVADA. Conta pública é recusada pelo próprio TikTok. A auditoria foi pedida em 18/09/2026
  • Upload de vídeo a partir da mediaUrl — hoje só vídeo, foto/carrossel ainda não está na integração
  • title vira a legenda pública, limitada a 90 caracteres
  • O objeto “tiktok” no corpo é obrigatório: privacidade, comentários/dueto/costura e divulgação de conteúdo comercial são escolhas do criador, não nossas
  • Publicação sujeita à revisão do TikTok antes da confirmação final

Facebook

Em breve

  • Aguardando a aprovação do aplicativo pela Meta — hoje a API recusa “facebook” em platform com 400
  • Quando liberar: imagem ou vídeo na Página conectada (não no perfil pessoal)

LinkedIn

Publicação no perfil pessoal

  • Publica no PERFIL PESSOAL de quem conectou. Página de empresa ainda não — depende de uma liberação do LinkedIn que está em análise
  • Vídeo (mediaType: video) ou só texto (mediaType: text); title vira o texto do post, até 3000 caracteres
  • O LinkedIn não devolve renovação automática de acesso para o nosso aplicativo: a conexão vale 60 dias e depois precisa ser refeita. O painel avisa antes de vencer
  • Confirmação imediata — diferente do YouTube e do Instagram, o LinkedIn responde na hora se publicou

Em desenvolvimento

Estas redes estão no plano de produto, mas ainda NÃO têm conector construído — não é questão de aprovação, é código que ainda não existe:

  • Threadsplanejado; conector ainda não construído
  • X (Twitter)planejado; conector ainda não construído
  • Pinterestplanejado; conector ainda não construído

Limites por plano

O limite de perfis conectados (contas de rede social) varia por plano — preço em reais, sem fatura em outra moeda:

PlanoPerfis conectadosPublicações/mêsPreço mensal
Grátisaté 110/mêsGrátis
Essencialaté 1ilimitadas*R$ 29,90/mês
Estúdioaté 5ilimitadas*R$ 99,90/mês
Agênciaaté 25ilimitadas*R$ 249,90/mês

* “Ilimitadas” é sobre o teto mensal do plano — todo plano, incluindo os ilimitados, ainda respeita o teto de segurança por rede social abaixo.

Teto de segurança por rede social (24h)

Independente do plano, cada rede social tem um teto de publicações a cada 24 horas (janela móvel). Isso não é sobre cobrança — é para não deixar a própria rede bloquear a conta social conectada por excesso de publicações em pouco tempo. Se a chamada ultrapassar o teto, a API responde 429.

RedePublicações / 24h
YouTube20
Instagram50
TikTok15
Facebook25
LinkedIn10

Limite de caracteres da legenda

Cada rede é conferida contra o texto que ELA vai receber: o de captions, quando você escreveu um para ela, ou o title. Uma legenda longa no Instagram não é recusada por causa do limite do TikTok.

RedeCaracteres (máx.)
YouTube5000
TikTok90
Instagram2200
Facebook255
LinkedIn3000

Recursos