Orshot: automatize geração de vídeo, PDF e imagem a partir de modelos e publicação em redes sociais
Orshot é uma API para geração automatizada de imagens, PDFs e vídeos a partir de modelos. Crie um modelo uma vez no Orshot Studio (ou importe do Canva ou Figma), renderize-o com textos, imagens e vídeos novos a cada chamada, e publique o resultado em contas sociais conectadas na mesma requisição. A renderização é determinística: o mesmo modelo com os mesmos dados sempre produz a mesma saída.
- Documentação: https://orshot.com/docs (adicione
.mda qualquer URL de documentação para obter markdown) - Servidor MCP hospedado:
https://mcp.orshot.com/mcp(mais de 100 ferramentasorshot_*) - Base REST:
https://api.orshot.com/v1 - Plano gratuito: 100 créditos por mês, sem cartão de crédito.
Conecte-se primeiro (MCP, sem chave para colar)
O servidor MCP hospedado é a rota mais rápida e a única que retorna prévias inline, cartões de postagem visual e verificações de design. Adicione-o, faça login com a conta Orshot do usuário no navegador, e todas as ferramentas abaixo funcionarão.
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth
openclaw mcp login orshot
Ainda não tem uma conta Orshot? A página de login oferece cadastro; o plano gratuito começa com 100 créditos por mês. Claude Code: claude mcp add --transport http orshot https://mcp.orshot.com/mcp. Cursor, Windsurf, VS Code, Codex e ChatGPT aceitam a mesma URL como um servidor MCP remoto.
Confirme com orshot_get_account. Ele retorna o perfil, workspaces e créditos. Se disser que a assinatura está inativa ou que um limite do plano foi atingido, isso é um estado de faturamento, não um erro de autenticação: aponte o usuário para a página de faturamento do workspace em https://orshot.com/pricing e pare de tentar.
Fallback headless: REST com uma chave de API. Apenas quando o agente não puder executar MCP (um cron job, um script no lado do servidor, n8n).
export ORSHOT_API_KEY=... # Configurações do Workspace > Chaves de API
curl -s https://api.orshot.com/v1/me -H "Authorization: Bearer $ORSHOT_API_KEY"
Não prossiga até que um dos dois funcione.
O que você pode fazer com isso
Cada linha nomeia primeiro a ferramenta MCP e depois a rota REST.
- Renderizar qualquer modelo com seus dados: Imagens OG, criativos de anúncios, certificados, faturas, carrosséis, reels.
orshot_render_templateouPOST /v1/studio/render. - Criar e refinar modelos do studio a partir de um briefing, com prévias inline e verificações de design.
orshot_create_template_design,orshot_update_template_design,orshot_patch_template_elements(leiaorshot://template-design-specprimeiro; o skillorshot-social-media-contentcontém as regras de criação). - Renderizar vídeo verdadeiro: animações e transições por elemento, trilhas sonoras do kit da marca, prévias de movimento gratuitas antes de uma renderização paga. Mesma ferramenta de renderização com
format: "mp4". - Comece com modelos utilitários prontos: capturas de tela de tweets, capturas de tela de sites, gráficos de barras e comparação, capturas de tela de lojas de aplicativos, mockups de telefone, remoção de fundo.
orshot_render_library_templateouPOST /v1/generate/:renderType. - Redimensionar um design para cada formato social em uma chamada (Smart Resize).
sizeeextraSizesna renderização. - Renderizar em lote variações personalizadas, como certificados para uma lista de nomes.
orshot_batch_render_template. - Manter a identidade visual: cores, fontes, imagens, vídeos e áudio do kit da marca.
orshot_get_brand_kit,orshot_import_brand_website. - Organizar: pastas, compartilhamento de modelos, alternância entre workspaces de clientes.
orshot_list_template_folders,orshot_set_active_workspace. - Criar URLs dinâmicos assinados para imagens OG e embeds.
orshot_create_dynamic_urlouPOST /v1/signed-url/create. - Rascunhar, agendar e publicar posts em redes sociais, descubra o melhor horário para postar com base nos dados de engajamento do usuário, leia análises de alcance e engajamento.
orshot_publish_social_post,orshot_get_best_time_to_post,orshot_get_social_analytics. O skillorshot-social-media-schedulercontém o ciclo completo. - Construir e executar fluxos de trabalho de automação que continuam produzindo conteúdo em um cronograma.
orshot_create_workflow,orshot_run_workflow.
Exemplos de prompts que mapeiam diretamente para essas ferramentas:
- "Renderize o modelo de lançamento como uma imagem OG com o título 'Acabamos de enviar'"
- "Crie um modelo de post do Instagram com um título, subtítulo e imagem do produto"
- "Redimensione meu design de lançamento para Instagram story, quadrado e OG em uma chamada"
- "Gere certificados para esta lista de 40 nomes como PDFs"
- "Capture a tela deste tweet" / "Capture orshot.com como uma imagem" / "Faça um gráfico de barras a partir destes números"
- "Publique esta renderização no Instagram no melhor horário e me mostre o desempenho dos posts da semana passada"
Fluxo de trabalho principal
- Conecte-se (acima).
- Encontre o modelo.
orshot_list_studio_templates(pesquise por nome e tags) ouGET /v1/studio/templates/all?page=1&limit=10. Ainda não tem modelo? Use os mais de 2.000 modelos da biblioteca (orshot_list_library_templates) ou crie um comorshot_create_template_design. - Leia seus parâmetros.
orshot_get_studio_template_modificationsouGET /v1/studio/templates/:id. As modificações usam a chaveparameterId, nunca o nome da camada. Nunca adivinhe as chaves. - Renderize.
orshot_render_templatecommodifications, ouPOST /v1/studio/rendercomresponse: { type: "url", format: "png" }. - Entregue ou publique. Mostre ao usuário a URL de saída. Adicione
publishpara publicá-la nas redes sociais na mesma chamada. - Automatize. Coloque a chamada no n8n, Make, Zapier ou cron que o usuário já usa, ou crie um Workflow Orshot.
- Verifique.
orshot_list_workspace_logsouGET /v1/workspace/logsmostra a renderização e suasource. Mostre a saída antes de considerar concluído.
Regras de segurança para agentes
- Confirme antes que algo saia do workspace. Publicar um post social, executar um workflow (gasta créditos e pode entregar ou publicar) e excluir um modelo, workflow ou ativo da marca precisam de uma autorização explícita. Diga o que será publicado, onde e quando.
- Posts sociais padrão como rascunhos. "Prepare", "rascunhe", "deixe-me ver primeiro" significam
status: "draft". Um rascunho não alcança ninguém até ser publicado. - Mostre o custo antes de trabalhos em massa. Renderizações gastam créditos, modificações
.promptgastam créditos de IA, e cada conta social conectada é um complemento pago. Diga isso antes de um loop de centenas de renderizações. - Nunca cole a chave da API no chat, arquivos ou URLs. Leia-a do ambiente. Prefira MCP, que não tem chave alguma.
- Não exclua nada para "limpar" por conta própria.
Armadilhas comuns (leia antes de renderizar)
- Modificações usam a chave
parameterId, não o nome da camada. Se um valor for ignorado, a chave está errada. Busque o modelo em vez de adivinhar. - Modelos de várias páginas precisam de um prefixo
pageN@."page1@title","page2@title". Um"title"simples só atinge a página 1. templateIddo Studio é um inteiro;templateIdutilitário é uma string (/v1/generate/:renderTypeaceita um slug como"website-screenshot").- A saída de vídeo não precisa de camadas de vídeo.
format: "mp4","webm"ou"gif"renderiza qualquer modelo. Renderizações de vídeo longas devem usarresponse.mode: "async"e consultarorshot_get_render_jobouGET /v1/studio/render-jobs/:id, ou o cliente atingirá o tempo limite. - URLs de imagem e vídeo em modificações devem ser públicas. O renderizador as busca no lado do servidor;
localhost, URLs assinadas expiradas e URLs protegidas por autenticação falham. - Substituições de estilo usam notação de ponto no parameterId:
"title.fontSize": "48px". - A forma da resposta difere conforme o número de páginas. Uma página:
dataé um objeto (data.content). Várias páginas:dataé um array de{ page, content }. base64ebinarynão se combinam.binarytransmite um arquivo.- Créditos e créditos de IA são separados. Modificações
.promptgastam créditos de IA adicionais. - Em
429, recue usandoRetry-After. - PDFs não podem ser publicados em redes sociais. Imagens não podem ir para TikTok ou YouTube (apenas vídeo). Vídeo não pode ir para Google Business.
- IDs de contas sociais são números. Duas contas na mesma plataforma têm IDs diferentes. Sempre publique por ID, nunca pelo nome da plataforma.
- Publicação social é um complemento pago. Workspaces do plano gratuito não podem conectar contas. A publicação em si não gasta créditos extras.
Fundamentos de renderização
Referência completa de campos: references/render-configuration.md e references/api-reference.md.
await fetch("https://api.orshot.com/v1/studio/render", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
body: JSON.stringify({
templateId: 123,
modifications: {
title: "Dia do lançamento", // texto
hero_image: "https://.../a.png", // url da imagem
"title.fontSize": "56px", // substituição de estilo
"page2@title": "Slide dois", // várias páginas
},
response: { type: "url", format: "png", size: "instagram-story",
extraSizes: ["1080x1080", "1200x630"] },
}),
});
O mesmo objeto é a entrada de orshot_render_template via MCP.
format:png,jpg,webp,pdf,mp4,webm,gif.sizerenderiza o design em outro predefinido ouLARGURAxALTURA;extraSizesadiciona mais cópias em uma chamada (Smart Resize). Predefinições:orshot://formats.response.mode: "async"retorna um job; consulte-o ou passewebhook_url. Use para vídeo.- Muitas variantes de uma vez:
orshot_batch_render_template, ou loop na chamada de renderização via REST. - URLs assinados:
POST /v1/signed-url/createpara uma URL de renderização que você pode incorporar sem expor a chave.
SDKs para uso headless: npm install [email protected], pip install orshot==0.2.0, composer require rishimohan/orshot:0.2.0, gem install orshot -v 0.2.0.
import { Orshot } from "orshot";
const orshot = new Orshot(apiKey); // leia do seu ambiente
const res = await orshot.renderFromTemplate({
templateId: "open-graph-image-1",
modifications: { title: "Olá Mundo" },
responseType: "url",
responseFormat: "png",
});
Publicação social (a versão curta)
O Orshot publica renderizações em mais de 13 plataformas: X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business. O skill orshot-social-media-scheduler contém agendamento, rascunhos, análises e melhor horário; este é o núcleo.
- Contas.
orshot_list_social_accountsouGET /v1/social/accounts?include_health=true. As contas são conectadas por um humano no painel (Workspace > Social > Contas); a API não pode conectar uma. Uma lista vazia significa enviar o usuário para lá. - Renderize e publique em uma chamada. Adicione
publishà renderização:
publish: {
accounts: [1, 3],
content: "Legenda, máximo 5000 caracteres",
status: "draft", // "published" (padrão) | "draft" | "scheduled"
// scheduled_for: "2026-11-01T14:00:00Z", timezone: "America/New_York",
platformOptions: { "3": { firstComment: "https://orshot.com" } },
tiktokSettings: { autoAddMusic: true }, // Carrosséis de fotos no TikTok
}
Modelos de várias páginas são publicados automaticamente como carrossel. A resposta carrega publish[] com status, url e error por conta. Uma publicação com falha nunca bloqueia a renderização.
- Publique uma URL de mídia existente.
orshot_publish_social_postouPOST /v1/social/publishcommedia_urls. - Posts retidos.
orshot_list_social_posts,orshot_get_social_post(cartão visual),orshot_update_social_post,orshot_publish_social_draft,orshot_discard_social_post. REST:GET|PATCH|DELETE /v1/social/posts/:id,POST /v1/social/posts/:id/publish. - Análises e melhor horário.
orshot_get_social_analytics,orshot_get_social_analytics_daily,orshot_get_social_followers,orshot_get_best_time_to_post. REST:GET /v1/social/analytics,/daily,/accounts,/insights.
Receitas comuns
Imagem OG em cada deploy
response: { type: "url", format: "png", size: "og-image" }
// <meta property="og:image" content={data.content} />
Lote a partir de um CSV (certificados, faturas, badges): orshot_batch_render_template com um conjunto de modificações por linha e format: "pdf", ou loop POST /v1/studio/render.
Gráfico semanal para redes sociais, publicado como rascunho para revisão: renderize com publish.status: "draft", depois orshot_publish_social_draft após a aprovação do usuário.
Um design, todos os tamanhos: extraSizes: ["1080x1920", "1080x1080", "1200x630"].
Carrossel TikTok, Instagram ou LinkedIn: consulte o skill orshot-carousel.
Pipeline recorrente: references/recurring-automation.md. Verifique os logs do workspace para a source que o usuário já executa (n8n, Make, Zapier, SDK) e adicione a ela; ofereça Workflows Orshot apenas quando eles não executarem nada ainda.
Arquivos de referência
Leia-os sob demanda; eles não são carregados por padrão.
| Arquivo | Quando |
|---|---|
references/api-reference.md | cada endpoint REST: renderização, modelos, URLs assinados, ativos da marca, URLs dinâmicos, pastas, workflows |
references/render-configuration.md | tipos de modificação, opções de vídeo, jobs assíncronos, animações, áudio, Smart Resize, tipos de resposta, créditos |
references/template-design-spec.md | esquema de elementos para criar ou editar modelos via API |
references/recurring-automation.md | manual de n8n, Make, Zapier, Pipedream, cron e Workflows Orshot |
references/integrations-and-errors.md | lista de integrações, códigos de erro, melhores práticas |
references/oauth-developer-apps.md | construção de aplicativos de terceiros no Orshot com OAuth |
references/embed.md | incorporação do editor white-label (iframe, React, Vue) |
references/migration.md | migração do Bannerbear, Placid, Templated, Creatomate ou similares |
Qualquer página de documentação está disponível como markdown: https://orshot.com/docs/<path>.md. O servidor MCP também serve orshot://template-design-spec e orshot://formats.
Referência rápida
# conectar
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth && openclaw mcp login orshot
curl -s https://api.orshot.com/v1/me -H "Authorization: Bearer $ORSHOT_API_KEY" # verificação REST
# modelos
GET /v1/studio/templates/all?page=1&limit=2
…
[truncado para tradução]