# Orshot – Agent-first Creative Automation Platform > Automate ad creatives, videos and branded PDFs from templates via API, Workflows & AI Agents. Creative automation suite for agencies, brands and startups. > See also: /llms.txt (links only) ## Traction & Trust - Founded: March 2025 by Rishi Mohan (Berlin, Germany) - Bootstrapped and profitable - 9.3k+ users, 100+ paying customers - 1.1M+ renders processed with 0.1% error rate - 17k+ templates across library and user-created designs - 99.98% uptime, average render time ~3.1s - 80+ product updates shipped in 12 months - Used by teams at Elgato, Plex, Incubeta, CentroBill, CreatorCore, Cotera, Kortix AI, and more - About: https://orshot.com/about - G2 reviews: https://www.g2.com/products/orshot/reviews - Open startup metrics: https://orshot.com/open - Founder's note: https://orshot.com/founders-note ### Integrations & Ecosystem - Zapier: https://zapier.com/apps/orshot/integrations - Make: https://www.make.com/en/integrations/orshot - Pipedream: https://pipedream.com/apps/orshot - WordPress plugin: https://wordpress.org/plugins/orshot - Agent Skill (skills.sh): https://skills.sh/orshot-hq/orshot-agent-skills/orshot - Remote MCP server: https://mcp.orshot.com/mcp - n8n: https://n8n.io/integrations/orshot/ - Figma plugin: https://www.figma.com/community/plugin/1521226770376707744/orshot - Airtable, Google Sheets, Slack, Shopify, Dropbox, Google Drive, S3 ### SDKs & Open Source - Node.js SDK: https://github.com/rishimohan/orshot-nodejs-sdk (npm: orshot) - Python SDK: https://github.com/rishimohan/orshot-python-sdk (pip: orshot) - PHP SDK: https://github.com/rishimohan/orshot-php-sdk (composer: rishimohan/orshot) - Ruby SDK: https://github.com/rishimohan/orshot-ruby-gem (gem: orshot) - Embed SDK (React & Vue): https://github.com/rishimohan/orshot-embed-sdk - CLI: https://www.npmjs.com/package/orshot-cli - Agent Skills: https://github.com/orshot-hq/orshot-agent-skills - REST API documentation: https://orshot.com/docs ### Social & Community - Twitter: https://x.com/orshotapp - LinkedIn: https://linkedin.com/company/orshot - Reddit: https://www.reddit.com/r/orshot - GitHub: https://github.com/orshot-hq ## Pricing - [Pricing – Orshot](https://orshot.com/pricing): Start with Image and PDF generation. Start free, scale up to automate more All plans include: Image + PDF generation, REST API, SDKs, Integrations (Zapier, Make, n8n, Pipedream), Dynamic URLs, Signed URLs, Webhooks, Orshot Studio Editor. Video generation and pay-as-you-go overages are available on supported plans. Annual billing gives 2 months free. ### Free – First 30 credits free - Price: Free - 30 credits (one-time), 50 AI Credits (one-time) - 1 Workspace, 1 Team Member ### #Launch39 – For early products and side projects - Monthly: $39/mo | Annual: $390/yr - 1,500 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.036/credit if enabled - AI Credits: 100/month - 1 Workspace, 2 Team Members - Video: max 3 min per video ### #Launch99 – For early products and side projects - Monthly: $99/mo | Annual: $990/yr - 5,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.036/credit if enabled - AI Credits: 200/month - 2 Workspaces, 4 Team Members - Video: max 3 min per video ### #Grow160 – For growing teams and products - Monthly: $160/mo | Annual: $1600/yr - 20,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.03/credit if enabled - AI Credits: 400/month - 4 Workspaces, 6 Team Members - Video: max 5 min per video ### #Grow280 – For growing teams and products - Monthly: $280/mo | Annual: $2800/yr - 40,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.03/credit if enabled - AI Credits: 800/month - 5 Workspaces, 8 Team Members - Video: max 5 min per video ### #Scale349 – For teams and pipelines at scale - Monthly: $349/mo | Annual: $3490/yr - 75,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.024/credit if enabled - AI Credits: 1,200/month - 10 Workspaces, 14 Team Members - Video: max 10 min per video ### #Scale480 – For teams and pipelines at scale - Monthly: $480/mo | Annual: $4800/yr - 150,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.024/credit if enabled - AI Credits: 2,000/month - 15 Workspaces, 18 Team Members - Video: max 10 min per video ### #Scale600 – For teams and pipelines at scale - Monthly: $600/mo | Annual: $6000/yr - 300,000 credits/month (1 credit = 1 image, 1 PDF page, or 1 video second) - Overage: $0.024/credit if enabled - AI Credits: 3,000/month - 18 Workspaces, 24 Team Members - Video: max 10 min per video Enterprise plans with custom volume and dedicated support are also available. Contact sales at https://orshot.com/enterprise ## Features - [Orshot Features – Image, PDF & Video Automation](https://orshot.com/features): Every Orshot feature for creative automation: the studio editor, image, PDF and video generation APIs, workflows, integrations, signed URLs and team controls. - [Orshot – AI Template Generator for Visual Content Creation](https://orshot.com/features/ai-template-generator): Generate dynamic visuals using AI-generated customizable templates for free. Use API and Integrations to automate image generation from those templates - [Brand Assets Library – Orshot](https://orshot.com/features/brand-assets-library): Generate Branded Images at Scale with Orshot. Store, manage and use your brand assets for consistent and on-brand renders - [Bring your own Storage – Orshot](https://orshot.com/features/bring-your-own-storage): Generate dynamic images from customizable templates and store them in your own Cloud Storage like Amazon S3 or Cloudflare R2 - [White-label Video, Image & PDF Editor SDK](https://orshot.com/features/orshot-embed): Embed a full design and video editor in your product. White-label, domain-locked, multi-tenant — with React and Vue SDKs. - [Orshot Studio – Design and Automate Marketing Images](https://orshot.com/features/orshot-studio): Design and generate marketing images from templates at scale. Make it dynamic and use it via Rest API and integrations and automate your marketing - [Generate Dynamic Images using Signed URLs – Orshot](https://orshot.com/features/signed-url): Generate dynamic images from customizable templates on the fly using Orshot's Signed URLs - [Smart Resize – design once, render any size](https://orshot.com/features/smart-resize): Take one Orshot template and render it at any size — Story, Square, OG image, thumbnail. The layout adapts automatically; reuse sizes as pages or render any size on demand from the API. - [Agent-first Social Media Analytics with API](https://orshot.com/features/social-analytics): Impressions, engagement and follower growth for every account in one social media analytics dashboard. Find your best time to post, your top posts, and get yesterday's numbers in your inbox each morning. - [Social Publishing – post to 15+ platforms via API](https://orshot.com/features/social-publishing): Add a publish object to your render call and Orshot posts to Twitter, Instagram, LinkedIn, TikTok and more. Schedule or draft. - [Team Collaboration – Orshot](https://orshot.com/features/team-collaboration): Invite designers to design custom templates and engineers to collaborate on API or SDK integrations. Orshot is built for teams of all sizes - [Workflow Automation Builder for Creatives & Social Media](https://orshot.com/features/workflow-automation-builder): Build automations in a no-code workflow builder. Connect a Google Sheet, Airtable, or webhook, render on-brand images, PDFs and videos, then deliver them. ## Solutions - [Creative Automation Solutions for Teams & Agencies](https://orshot.com/solutions): Browse every Orshot solution: image, PDF, video and banner generation APIs, social media content automation, and creative automation platforms for marketing teams and agencies. - [AI-driven Marketing Automation Platform for Agencies](https://orshot.com/solutions/ai-marketing-automation-for-agencies): AI-enabled content generation, social publishing and marketing automation, all in one platform. Manage multiple clients, give them an editor, collaborate seamlessly - [Banner Generation API for Ads & Social Creative](https://orshot.com/solutions/banner-generation-api): Turn one design into every banner your campaign runs — Instagram, LinkedIn, Facebook and display — on-brand, in one click. The banner generation API that scales ad creative. - [Get REST API for your Canva Templates & Designs](https://orshot.com/solutions/canva-template-to-api): Import any Canva design into Orshot to get a dynamic template with API for automated image generation. Parameterize layers, render images and PDFs at scale via API - [Automate Figma Designs via REST API](https://orshot.com/solutions/figma-automation-via-rest-api): Import your Figma Designs as Templates in Orshot using Figma Plugin and automate it with powerful Rest API and No-code Integrations - [Image Generation API for Templates & Designs](https://orshot.com/solutions/image-generation-api): Rest API, SDKs and No-Code Integrations for Auto-Generating Images for Social Media, Marketing, eCommerce and more from Templates - [PDF Generation API for Invoices & Reports](https://orshot.com/solutions/pdf-generation-api): Auto-generate PDF using Rest API, n8n, Zapier etc. for invoices, certificates and more with customizable templates and custom designs using dynamic data - [Video Generation API for Templated Videos](https://orshot.com/solutions/video-generation-api): The video generation API for developers — render MP4, WebM and GIF from animated templates with one REST call. Auto-subtitles, transitions, audio tracks. ## Tools - [Free Design Tools & Template Generators](https://orshot.com/tools): Free online tools to generate certificates, App Store screenshots, Twitter carousels, and more. Use 100+ template generators powered by Orshot's image and PDF generation API. - [Free Tool to Generate App Store Screenshots](https://orshot.com/tools/app-store-screenshot-generator): Bulk generate customizable App Store Screenshots from pre-designed templates for free. Add text, emojis and add your screenshot to get started - [Free Certificate Generator – No Sign-Up Needed](https://orshot.com/tools/certificate-generator): Generate professional certificates online for free. No sign-up required. Download as PDF, PNG, JPG or WebP. Perfect for courses, awards, training and recognition. Bulk generate via API. - [Free HTML to PDF Converter – No Sign-Up Needed](https://orshot.com/tools/html-to-pdf): Convert HTML to PDF free. Paste code, upload a file, or fetch a URL, and download instantly. Real browser rendering keeps fonts, layout, and styling exact. - [Twitter Carousel Generator for Instagram, LinkedIn, Tiktok](https://orshot.com/tools/twitter-carousel-generator): Free tool to generate carousel post images and PDF from Twitter threads, ready to be posted on social media platforms like Instagram, LinkedIn, and Tiktok - [Free Webpage to PDF Converter – From Any URL](https://orshot.com/tools/webpage-to-pdf): Turn any website into a PDF. Paste a URL and download instantly, with the page's real layout, fonts, and styling intact. No browser extension, no sign-up. ## Integrations - [Integrations – Orshot](https://orshot.com/integrations): Connect Orshot with Zapier, Make, n8n, Airtable, Google Sheets, Slack, MCP for Claude/Cursor, and every stack you ship in. Render images, PDFs and videos from any tool. ## Studio - [Orshot – Free Canva Alternative with Rest API](https://orshot.com/studio): Create Images and PDF from templates using Canva like editor. Customize with custom text, fonts, colors and automate using Rest API and integrations ## Enterprise - [Creative Automation Platform for Enterprises – Orshot](https://orshot.com/enterprise): Creative automation at enterprise volume. Custom plans, dedicated support, priority infrastructure and white-glove onboarding for teams rendering at scale. ## Agencies - [Creative Automation for Agencies – Orshot](https://orshot.com/agencies): Run creative production for 10 or 100 clients the same way. Isolated workspaces, white-label embed, partner pricing. ## Customers - [Customers – Orshot](https://orshot.com/customers): See how teams and companies use Orshot to automate marketing visuals at scale. Read customer stories and testimonials ## Affiliate-Program - [Affiliate Program – Orshot](https://orshot.com/affiliate-program): Earn 30% commission for every sale you refer to Orshot. Join our affiliate program and start earning today! ## Partner-Program - [Apply for Agency Partner Program – Orshot](https://orshot.com/partner-program): Join Orshot's Agency Partner Program to scale your agency's visual content creation with automated solutions, dedicated workspaces, and exclusive benefits ## Open - [Open Startup – Orshot](https://orshot.com/open): Track Orshot's growth metrics including users, conversions, and renders over time with our transparent Open Startup dashboard ## Brand - [Brand Assets – Orshot logos, icons and favicons](https://orshot.com/brand): Download or copy the official Orshot brand assets — logos, icons and favicons — for press, partnerships and integrations. ## Founders-Note - [Founder's Note – Orshot](https://orshot.com/founders-note): The who, what and why of Orshot from the founder, Rishi Mohan ## Contact - [Contact – Orshot](https://orshot.com/contact) ## Signup - [Signup – Orshot](https://orshot.com/signup): Create an account to start using Orshot for free and start automating your marketing visuals ## About - [About Orshot](https://orshot.com/about): Orshot is a bootstrapped, profitable creative automation platform founded in March 2025. 8,000+ users, 1M+ renders, 99.98% uptime. Built for agencies, brands and startups. ## Agents - [AI Agent for Automating Creative Marketing Content](https://orshot.com/agents): Connect Claude or Cursor to Orshot and let one agent design, render, schedule and publish your content. On-brand every time, for agencies, startups and brands. - [Orshot Agent Skill & MCP Server for AI Coding Agents](https://orshot.com/agents/orshot-skills): Install the Orshot agent skill and connect the hosted MCP server so Claude Code, Cursor, Codex and 30+ agents write correct Orshot calls and render images, PDFs and video from your templates. ## Use-Cases - [Use Cases & Guides – Orshot](https://orshot.com/use-cases): Guides on automating image and pdf generation from social media, certificate, marketing and more templates with REST API, Zapier, Make, n8n ## Workflows - [Automation Workflows to turn data into images, PDFs, videos](https://orshot.com/workflows): Ready-made automation workflows. Connect Google Sheets, Airtable or a webhook to auto-generate on-brand certificates, invoices, social graphics and OG images. ## Terms - [Terms and Conditions – Orshot](https://orshot.com/terms): The terms and conditions for using the Orshot visual automation API, Orshot Studio, Orshot Embed, and the wider platform. ## Privacy - [Privacy Policy – Orshot](https://orshot.com/privacy): How Orshot collects, uses and protects your data. Full privacy policy for the visual automation API and Orshot Studio. ## Refund-Policy - [Refund Policy – Orshot](https://orshot.com/refund-policy): Orshot refund and cancellation policy. Get a refund within 2 days of subscription, cancel any time from your account settings. ## Dpa - [Data Processing Agreement – Orshot](https://orshot.com/dpa): The Orshot Data Processing Agreement (DPA) for enterprise customers. GDPR-compatible, available on request. ## Accessibility - [Accessibility Statement – Orshot](https://orshot.com/accessibility): Orshot's commitment to digital accessibility, conformance status, and how to report accessibility issues. ## Blog > 92 blog posts ### [1 Year of Orshot! 350k+ Renders and 100+ Customers Later](https://orshot.com/blog/1-year-orshot) > Been 1 year since I'm building Orshot! What started as a project, has now turned into a infrastructure platform for automating visual content Hi 👋 ! I'm [Rishi](https://orshot.com/founders-note), founder of Orshot It's been 1 year now that I've been solo building this platform and within one year, not only the product has been validated, but with the help of customers it has grown from just a product, to a mature platform Here's a quick recap: - Grew from 0 to **4,000+ users** and **100+ customers** - **Rendered over 3,50,000+ visuals**, each taking less than **3.5 seconds** on average - Users collectively have designed **7,000+ templates** across all workspaces - Less than 1% of error rate - **98%+ service uptime** The business is running profitable at **$5,000+ in monthly recurring revenue**, and I want to thank all of the customers for giving Orshot a try and using it, and sharing their feedback. Without the feedback, it wouldn't have been possible to build and grow Orshot All of these metrics are open at our [Open Startup page](https://orshot.com/open) ## Learnings so far - **You have the right to your deeds, but never the fruits of outcome** - I couldn't have come this far if I wasn't **passionate about solving the problem** - **Talking to customers** and solving their issues grows your business - **Learn to say no** when you get customers whose use case don't align with your vision - **Experiment** at all levels, product, marketing etc. - **Use AI** to empower and outsource boring tasks - **Be close with family, friends**, they'll indirectly help you being grounded and be sane - Give yourself chances, **take risks** while you can - **Think big**, no limits, universe meets you at the audacity of your thoughts I'll also take this time to reflect on my vision for the product ## Orshot Studio It started as a very basic design editor, which now has grown to a multi-format full-fledged design platform. Orshot's Studio has most features from modern day design tools we use like Figma and Canva, and can help design beautiful marketing visuals to be rendered in Image, PDF or Video format As a designer myself, I have moved designing from Figma to Orshot and use it primarily now. This switch helped building the Studio a lot because not only I implemented all the features from Figma, but I have made upgrades for improving UX specially because the Studio's main use to design for scale via API Features like auto-scaling text, multiple styles in same text layer, animations etc. are tricky on the API side, but to give the control and creative freedom to the users, it was important to build these, and in a way that they get exactly what they design I'm very happy with the growth of Studio The goal now is to make it work really well with AI Agents. We already have Orshot's Design Agent which can be used to offload design work, it works really well already. I want to extend this and make it more useful, with a goal that for users it can design very personalized designs in seconds or minutes, ready to be integrated I've already started working on it and might get it ready very soon :) ## Posting to Socials Connecting social accounts and directly posting to them from Orshot's API was an inevitable feature. It fit naturally I want to grow this more and have more integrated solution. It already handles posting, scheduling and managing posts in a calendar format, but there's more control to give to users This feature completes the full circle of creating and presenting, and hence very important ## Scaling the API Orshot's already handling thousands of requests every day and doing pretty fine. The infrastructure is setup for easy scaling, we're also already serving enterprise customers The API is mostly in good place, I've recently improved the Orshot documentation pages for easy navigation, readability and organization of different areas The next step for the API would be to be more faster, at least sub 2 second on average for Image and PDF formats, and specially for video generation which has lots of improvement areas ## Business ![Orshot customers after one year in business](https://orshot.com/blog/orshot-1-year-customers.webp) From the start, Orshot is planned to be a long-term platform. It started small, still is small, but it has always been profitable I've focussed mainly on talking with customers to help their use cases, and learn more from them so I could simplify their use case. It has worked well, and so I'll keep doing it Will be expanding marketing efforts in other formats as well in coming months and see what works. The goal is to reach the ideal customers, provide them with a solution that works well for them, and help them growing their business ## Thank you! It's been a pleasure building Orshot so far! The whole of last year I have been very content and passionate with the direction of the platform. Have worked on it days and nights, weekdays and more on weekends, and out of passion and interest, and that's all I want from it --- ### [10 Best AI Tools for Graphic Design with MCP(2026)](https://orshot.com/blog/ai-tools-for-graphic-design-with-mcp) > The best AI graphic design tools that support MCP and work with AI agents like Claude and Cursor for templates, banners, and content at scale. Most AI tools for graphic design stop at image generation — you type a prompt, get a one-off output, and still have to manually adjust layouts, fonts, and brand colors every time. That works for quick mockups, but not when you need consistent visuals at scale. The AI design tools that actually save time in 2026 are the ones that connect to AI agents through MCP (Model Context Protocol). MCP is an open standard that lets agents like Claude or Cursor talk directly to design tools — pull your templates, swap in real data, [generate hundreds of on-brand graphics](https://orshot.com/solutions/image-generation-api), and export them, all from a single conversation. No browser, no manual tweaking, and every output follows your design system. Here are 10 AI tools for graphic design that support MCP, ranked by how well they handle templates, automation, and agent-driven creative work. For the broader marketing stack, see the [AI marketing platforms guide](https://orshot.com/blog/best-ai-marketing-platforms). | Tool | Best For | MCP Support | | :------------------------------------------------------------------------ | :--------------------------------------------------- | :----------------- | | [**Wonder**](#1-wonder--ai-native-design-canvas-that-ships-code) | AI-native design canvas | Yes (Built-in) | | [**Orshot**](#2-orshot--automated-graphic-design-from-templates-at-scale) | Template-based image, PDF, video generation at scale | Yes (Official) | | [**Pencil**](#3-pencil--design-canvas-inside-your-ide) | Design-to-code on canvas | Yes (Claude Code) | | [**Figma**](#4-figma--the-industry-standard-now-with-mcp) | Collaborative UI/UX design | Yes (Official) | | [**Canva**](#5-canva--ai-powered-design-with-mcp-connector) | Quick social graphics | Yes (AI Connector) | | [**Scenario**](#6-scenario--ai-creative-generation-for-agents) | Game art and creative assets | Yes (Official) | | [**AIDesigner**](#7-aidesigner--lightweight-ui-design-via-mcp) | UI generation in IDE | Yes (MCP Server) | | [**Adobe Creative Cloud + Firefly**](#8-adobe-creative-cloud--firefly) | Professional creative suite | Community MCP | | [**Kittl**](#9-kittl--ai-first-graphic-design-for-print-and-branding) | Print, logos, merchandise | No (API only) | | [**Recraft**](#10-recraft--ai-native-vector-graphics) | Vector and SVG generation | No (API only) | --- ## 1. Wonder — AI-Native Design Canvas That Ships Code _Best for: product designers, frontend developers, and design engineers_ ![Wonder](https://orshot.com/blog/ai-tools-graphic-design/wonder.webp) [Wonder](https://wonder.design "target=_blank nofollow") is an AI-native design tool where you describe what you need, generate it on the canvas, and ship the React + Tailwind code directly. It has a built-in MCP server, so AI agents can read the canvas, create artboards, update elements, and take screenshots — all from your coding environment. ### What makes it stand out - **Built-in MCP server**: agents can create and modify designs, read element trees, and take screenshots - **Design-to-code**: everything on the canvas exports as React + Tailwind — no handoff needed - **AI-first workflow**: chat with the AI, describe what you want, and it generates layouts and flows right on the canvas - **Design system aware**: can match your existing design patterns and components - **Canvas + Code connected**: start from what's already built, iterate freely, and ship straight back to production ### MCP setup **MCP URL**: `https://mcp.wonder.so/mcp` ```bash # Claude Code claude mcp add --transport http wonder https://mcp.wonder.so/mcp ``` ### Where it falls short Wonder is focused on UI/product design rather than marketing graphics or template-based content. It's a design tool, not an automation platform — so it's great for building interfaces, less so for generating 500 banner variations. --- ## 2. Orshot — Automated Graphic Design from Templates at Scale _Best for: agencies, developers, and automation engineers_ ![Orshot](https://orshot.com/blog/ai-tools-graphic-design/orshot.webp) [Orshot](https://orshot.com) sits in a different category from the others on this list. It's not just a design canvas — it's a **visual content automation platform**. You design a template once (or generate one with AI), mark elements as dynamic, and then render thousands of on-brand variations via API, Zapier, n8n, or directly from an AI agent. This is the tool for when you need 500 product banners, 2,000 personalized certificates, or daily social posts across 12 client accounts — and you need it done without a designer touching each one. [Orshot MCP Server Tutorial](https://www.youtube.com/watch?v=OhgdZtqEQK0) ### What makes it stand out - **MCP server for AI agents** — go from a text prompt to a finished graphic via Claude Code, Cursor, or ChatGPT - **Design once, render thousands** — parameterize any element and generate variations via API, Zapier, or n8n - **8 output formats** — PNG, JPEG, WebP, AVIF, PDF, MP4, WebM, GIF from one template - **AI Design Agent** — describe a template in plain English and it gets built with your brand kit - **Batch rendering** — thousands of variants in a single API call, no queuing headaches - **Publish to 15+ social platforms** — push graphics directly to Instagram, TikTok, LinkedIn, X, and more - **Multi-tenant workspaces** — sealed brand kit per client with scoped OAuth for agencies - **Import from Canva and Figma** — bring existing templates and make them API-callable - **50+ template categories** — social media, ads, e-commerce, certificates, invoices, and more ### MCP setup **MCP URL**: `https://mcp.orshot.com/mcp` ```bash # Claude Code claude mcp add orshot --transport http https://mcp.orshot.com/mcp ``` That one command is the whole setup for [Orshot in Claude](https://orshot.com/agents/claude) — it works the same in Claude Code, Claude Desktop and claude.ai, and auth happens over OAuth so there's no key to paste. Cursor, VS Code, Copilot, Windsurf and ChatGPT take the same MCP URL in their own settings. See the full list of [AI agents that work with Orshot](https://orshot.com/agents). **Try the MCP with your own templates** — Connect Claude or Cursor and render your first graphic. 30 credits, no card. [Start free](https://orshot.com/signup?via=blog-ai-mcp-orshot) ### Where it falls short Orshot isn't a freeform design canvas. If you need to design a one-off poster from scratch with full creative control, you'd start in Figma or Canva and then import the template into Orshot for automation. --- ## 3. Pencil — Design Canvas Inside Your IDE _Best for: developers, vibe coders, and indie hackers_ ![Pencil.dev](https://orshot.com/blog/ai-tools-graphic-design/pencil.webp) [Pencil](https://pencil.dev "target=_blank nofollow") is a design canvas that lives inside VS Code or Cursor. You describe a UI, and an AI agent builds it visually on an infinite canvas — component by component. Then you copy the React + Tailwind code and ship it. The key differentiator: designs are stored as `.pen` files (JSON) in your `/design` folder. They're version-controlled with Git, readable by AI agents, and exported as pixel-perfect code via MCP. ### What makes it stand out - **Design-as-code**: no cloud lock-in, designs live in your repo - **MCP integration**: Claude Code can read your visual layout and generate matching code - **Familiar canvas**: layers panel, properties, padding controls — like Figma, but inside your IDE - **Early access and free** (requires Claude Code subscription) ### MCP setup Pencil integrates directly as a VS Code / Cursor extension with built-in MCP support. Install the Pencil extension, and Claude Code can read `.pen` design files and generate matching code automatically. ### Where it falls short Pencil generates fixed-dimension designs, so responsive behavior needs to be added manually. It's also focused on UI design rather than marketing graphics or templates. --- ## 4. Figma — The Industry Standard, Now With MCP _Best for: product teams, UI/UX designers, and design systems engineers_ ![Figma](https://orshot.com/blog/ai-tools-graphic-design/figma.webp) [Figma](https://figma.com "target=_blank nofollow") needs no introduction. It's the default tool for UI/UX design, and in 2026 it's also one of the first major design tools to ship an official MCP server. With the Figma MCP server, AI agents can pull design context, extract variables and components, and even write back to the canvas — creating frames, components, and auto layouts using your design system as the source of truth. ### What makes it stand out - **Official MCP server**: works with Claude Code, Cursor, VS Code Copilot, Windsurf, and more - **Write access**: agents can build and update frames, components, and variables directly on canvas - **Figma Make**: text-to-design generation for rapid prototyping - **Ecosystem**: plugins, community files, and dev mode for handoff ### MCP setup **MCP URL**: `https://mcp.figma.com/mcp` ```bash # Claude Code claude mcp add --transport http figma https://mcp.figma.com/mcp ``` Free during beta. Works with Claude Code, Cursor, VS Code Copilot, Windsurf, and other MCP clients. ### Where it falls short Figma is an interactive design tool — it's not built for automated, high-volume image generation. You can design a template in Figma, but you can't call an API to render 10,000 variations of it. For that, you'd pair it with a tool like [Orshot](https://orshot.com) (which supports Figma template imports). --- ## 5. Canva — AI-Powered Design With MCP Connector _Best for: marketers, solo creators, and small business owners_ ![Canva](https://orshot.com/blog/ai-tools-graphic-design/canva.webp) [Canva](https://canva.com "target=_blank nofollow") is the go-to for non-designers who need to create social posts, presentations, and marketing materials quickly. In 2026, Canva shipped an MCP-compatible AI Connector that lets agents create and edit designs, manage brand assets, search the template library, and export in multiple formats. ### What makes it stand out - **MCP AI Connector**: agents can create designs, edit them, manage brand kits, and export — all via MCP - **250,000+ templates**: the largest template library of any design tool - **Magic Studio**: text-to-design, background remover, Magic Write for copy, one-click resize - **Bulk Create**: generate variations from CSV data (limited compared to API-first tools) ### MCP setup **MCP URL**: `https://mcp.canva.com/mcp` ```bash # Claude Code (via mcp-remote) claude mcp add canva -- npx -y mcp-remote@latest https://mcp.canva.com/mcp ``` Also configurable in Cursor and other MCP clients using the URL directly. ### Where it falls short Canva's MCP integration is relatively new and focused on interactive editing via agents, not high-volume automated rendering. Bulk Create works for small batches, but it's not designed for generating 10,000+ images programmatically. The API is also less developer-friendly compared to tools built API-first. --- ## 6. Scenario — AI Creative Generation for Agents _Best for: game studios, creative teams, and concept artists_ ![Scenario](https://orshot.com/blog/ai-tools-graphic-design/scenario.webp) [Scenario](https://scenario.com "target=_blank nofollow") connects AI agents to 500+ models for image, video, 3D, and audio generation via an MCP server. It's aimed at game studios and creative teams who need consistent character art, environment designs, and asset variations. ### What makes it stand out - **Official MCP server**: 19 tools accessible from Claude, Cursor, VS Code - **500+ AI models**: image, video, 3D, and audio generation - **Custom model training**: train on your own art style for consistent outputs - **Game-ready assets**: focused on production-quality creative work ### MCP setup **MCP URL**: `https://mcp.scenario.com/mcp` ```bash # Claude Code claude mcp add --transport http scenario https://mcp.scenario.com/mcp ``` Supports OAuth (browser-based login) or API key authentication. Works with 11 AI coding platforms. ### Where it falls short Overkill for simple social media graphics or template-based content. Pricing can get steep for high-volume generation. --- ## 7. AIDesigner — Lightweight UI Design via MCP _Best for: developers, full-stack engineers, and rapid prototypers_ ![AIDesigner](https://orshot.com/blog/ai-tools-graphic-design/aidesigner.webp) [AIDesigner](https://aidesigner.ai "target=_blank nofollow") is a lightweight MCP server that lets coding agents generate and refine production-ready UI designs inside your IDE. It outputs Tailwind CSS with proper hierarchy and real typography. ### What makes it stand out - **MCP-native**: works directly with Claude Code, Cursor, Copilot, and Windsurf - **Tailwind output**: designs come out as usable Tailwind components - **Fast iteration**: generate, refine, and adopt designs without leaving the IDE ### MCP setup **MCP URL**: `https://api.aidesigner.ai/api/v1/mcp` ```bash # Quick setup npx -y @aidesigner/agent-skills init ``` Or add the URL directly to your MCP client config. ### Where it falls short UI-focused only — no template rendering, no image export, no marketing graphics. --- ## 8. Adobe Creative Cloud + Firefly _Best for: professional designers, photographers, and creative agencies_ ![Adobe](https://orshot.com/blog/ai-tools-graphic-design/adobe.webp) [Adobe Firefly](https://firefly.adobe.com "target=_blank nofollow") is the AI engine powering Photoshop, Illustrator, and the rest of Creative Cloud. Generative Fill, text-to-image, and vector generation are baked into the tools professionals already use. MCP support is available through a community-maintained server ([adb-mcp](https://github.com/mikechambers/adb-mcp "target=_blank nofollow")) that exposes Photoshop, Premiere Pro, and InDesign functionality to AI agents. ### What makes it stand out - **Integrated into pro tools**: Generative Fill in Photoshop, vector generation in Illustrator - **IP-safe training data**: trained on Adobe Stock and licensed content - **Community MCP server**: agents can control Photoshop, Premiere, InDesign (unofficial) ### MCP setup No official MCP server. Community server available at [adb-mcp on GitHub](https://github.com/mikechambers/adb-mcp "target=_blank nofollow") — requires local Adobe apps running. ### Where it falls short No official MCP server yet. The community server requires local Adobe apps running. Pricing is steep ($23+/month per app or $60+/month for the full suite). --- ## 9. Kittl — AI-First Graphic Design for Print and Branding _Best for: graphic designers, merch creators, and brand studios_ ![Kittl](https://orshot.com/blog/ai-tools-graphic-design/kittl.webp) [Kittl](https://kittl.com "target=_blank nofollow") is a browser-based design platform that leans heavily into typography, logo creation, and print-ready graphics. It ships with multiple AI models (OpenAI, Flux, Ideogram, Google) and supports vector generation, which most AI tools don't. ### What makes it stand out - **Multiple AI models**: choose between different generators for different styles - **Vector generation**: AI-generated vectors for logos and illustrations - **10,000+ templates**: focused on print, merchandise, and branding - **Creative Flows**: workflow automation for repetitive design tasks ### MCP setup No MCP server available. Kittl works as a standalone browser-based tool. ### Where it falls short No MCP server — you can't connect it to an AI agent. Automation is limited to in-app workflows rather than API-driven pipelines. --- ## 10. Recraft — AI-Native Vector Graphics _Best for: icon designers, brand designers, and illustrators_ ![Recraft](https://orshot.com/blog/ai-tools-graphic-design/recraft.webp) [Recraft](https://recraft.ai "target=_blank nofollow") generates native SVG vectors, not raster images — which makes it unique among AI design tools. You get editable paths, not bitmaps. It also handles raster images, 3D generation, and style training. ### What makes it stand out - **Native SVG output**: AI-generated vectors you can actually edit in Illustrator or Figma - **Custom styles**: create and reuse styles without model training - **Background removal and upscaling**: built-in post-processing - **Generous free tier**: 30 daily credits on free plan ### MCP setup No MCP server available. API access is offered for automation, but no native agent integration. ### Where it falls short No MCP support. API is available for automation, but there's no way for an AI agent to connect natively. Limited template or batch capabilities. --- ## How to Choose the Right AI Graphic Design Tool The right tool depends on what you're actually trying to do: **If you're designing UIs and want AI to speed up the process**, Wonder or Pencil gives you AI-native canvases with design-to-code workflows. Figma with MCP brings the same agent power to the tool your team already uses. **If you need to generate hundreds or thousands of on-brand graphics automatically**, [Orshot](https://orshot.com/signup?via=blog-ai-mcp-choose) is the clear pick. It's the only tool on this list that combines template design, API rendering, AI agent integration, and social publishing in one platform. **If you're a solo creator making social posts and presentations**, Canva's Magic Studio and MCP connector will get you there fastest. **If you need AI-generated art or game assets**, Scenario's MCP server gives agents access to 500+ models. The bigger trend here is that [design tools](https://orshot.com/blog/free-canva-alternatives) are becoming agent-accessible. The days of switching between your IDE, a browser-based editor, and an export pipeline are numbered. The best AI tools for graphic design in 2026 aren't just the ones with the best AI models — they're the ones that let your AI agent do the work for you. Add mcp.orshot.com/mcp to Claude or Cursor. 30 credits, no card. [Try Orshot free](https://orshot.com/signup?via=blog-ai-mcp-footer) --- ### [10 Best Free Canva Alternatives for 2026](https://orshot.com/blog/free-canva-alternatives) > Tired of Canva's price hikes? Here are 10 free Canva alternatives, including GIMP, Orshot, Figma, sorted by what each one does best, with the free-plan catches Canva is great until it isn't. After the last round of price increases, a lot of people (myself included) started asking whether they really need to pay for a tool they open a few times a month. If that's you, the good news is there are plenty of free Canva alternatives that handle most of what people actually use Canva for, from quick social graphics to logos, presentations, and print. This is a hands-on rundown of the 10 best free Canva alternatives in 2026. Some are full Canva-style editors, some are open-source tools the design crowd swears by, and one (Orshot) adds an API so you can generate designs in bulk instead of one at a time. I've sorted them by what each one is genuinely good at, so you can skip straight to the job you're trying to get done. ## Quick Comparison | Tool | Starting Price | API / Automation | Open Source | AI Agent | Best For | | :-- | :-: | :-: | :-: | :-: | :-: | | [GIMP](#1-gimp---the-powerhouse-open-source-alternative-but-also-old-school) | Free | No | Yes | No | Photo editing | | [Orshot](#2-orshot---canva-like-editor-with-api-automation) | Free / $9 | Yes | No | Yes | Canva + Canva Autofill API Alternative | | [Figma](#3-figma---collaborative-design-platform) | Free / $12 | No | No | Yes | UI/UX & teams | | [Inkscape](#4-inkscape---vector-graphics-specialist) | Free | No | Yes | No | Vector graphics | | [Adobe Express](#5-adobe-express) | Free / $10 | No | No | No | Adobe ecosystem | | [Pixlr](#6-pixlr---budget-friendly-alternative) | Free / $2.49 | No | No | No | Budget all-in-one | | [Snappa](#7-snappa---simplicity-first) | Free / $15 | No | No | No | Social media | | [VistaCreate](#8-vistacreate---print-focused-design) | Free | No | No | No | Print materials | | [BeFunky](#9-befunky---photo-centric-design) | Free | No | No | No | Photo & collage | | [Piktochart](#10-piktochart---data-visualization-expert) | Free | No | No | No | Infographics | ## Why Users Are Switching from Canva Most people don't quit Canva because they dislike it. They quit because something specific pushed them out. The same handful of complaints come up again and again in r/canva and r/freesoftware threads: ### What's actually pushing people off Canva: 1. **The price hikes.** This is the number one trigger. Folks who open Canva two or three times a month don't want to pay roughly double for the privilege. One long-time Pro user summed it up: they only use it a few times a month and aren't about to pay double for a tool they barely touch, [[ref]](https://www.reddit.com/r/content_marketing/comments/1fl6adl/best_alternative_for_canva/ "target=\_blank nofollow") ↗ 2. **Forced per-seat Teams billing.** The Teams plan that used to cover a small group for a flat fee now bills per person, and people report surprise charges and a confusing Pro-versus-Teams upgrade path, [[ref]](https://www.reddit.com/r/freesoftware/comments/1djzr45/free_canva_alternatives/ "target=\_blank nofollow") ↗ 3. **Lock-in and access worries.** Sharing links, downloading finished work, even getting at your own files can hit a paywall right when you need them. A recurring fear in these threads is simple: "can I actually get my designs out if I leave?", [[ref]](https://www.reddit.com/r/graphic_design/comments/zwn9vf/hello_everyone_just_wanted_to_ask_is_there_any/ "target=\_blank nofollow") ↗ 4. **No real API or automation.** If you need to generate hundreds of designs from a spreadsheet, Canva's manual "Bulk Create" isn't built for it, and there's no proper REST API, [[ref]](https://www.reddit.com/r/canva/comments/1m6qc63/has_anyone_successfully_used_canvas_api_to/ "target=\_blank nofollow") ↗ or native hook into n8n, Zapier, or Make, [[ref]](https://www.reddit.com/r/zapier/comments/1o2ejt5/how_to_create_a_zapier_automation_that_updates_an/ "target=\_blank nofollow") ↗ 5. **Features creeping behind Pro.** Handy things like the background remover are now Pro-only, so free users get nudged toward point tools like remove.bg instead. So where do you go instead? Here are the ten free Canva alternatives I'd actually recommend, grouped loosely by the kind of work you're doing. ## 1. GIMP - The Powerhouse Open Source Alternative, but also old-school ![GIMP](https://orshot.com/blog/canva-alternative-tools/gimp.webp) [Link to GIMP ↗](https://www.gimp.org/ "target=_blank") ### Best for: - Advanced users comfortable with complex interfaces - Professional photo editing and retouching - Users transitioning from expensive software - Complex graphic design projects GIMP (GNU Image Manipulation Program) has been the go-to free Photoshop substitute for over two decades. To be clear, it's a photo editor, not a Canva-style template tool, and nobody will tell you the interface is friendly. But if you need serious image editing without a subscription, nothing free gets closer. - **Professional photo editing**: Advanced tools for retouching, color correction, and manipulation - **Layer-based editing**: Complex compositions with full layer support - **Plugin ecosystem**: Extensive third-party plugins and scripts - **Format support**: Works with virtually every image format including PSD files - **Customizable interface**: Tailor the workspace to your workflow - Completely free and open source - Professional-grade features - Active community and extensive tutorials - Cross-platform compatibility (Windows, Mac, Linux) - No subscription fees ever Cons: - Steep learning curve for beginners - Interface can feel dated compared to modern tools - Limited template selection - More complex than needed for simple tasks ### AI Features: GIMP has limited built-in AI features, though community plugins offer some AI-powered filters and enhancement tools for basic image processing tasks. --- ## 2. Orshot - Canva-like Editor with API Automation This [LinkedIn carousel](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels) was designed and generated in Orshot. Flip through it, or copy the template and make it your own: [Document Design in Orshot Studio](https://orshot.com/templates/shared/kt8j29wx/embed?view=play) Orshot is what you get when you combine Canva's editor with Canva's Autofill API, minus the Enterprise plan and the approval queue. You design a template in a familiar drag-and-drop editor, mark any element as dynamic, then autofill it with data and render unlimited variations through a single REST API. That covers both jobs at once: a Canva alternative when you just want to design, and a Canva Autofill API alternative when you need to generate designs at scale. **And you don't have to start from scratch. Bring your existing Canva designs with you.** Paste a public Canva share link below and see your design as an API-ready Orshot template, right here: Read more about [how the Canva import works](https://orshot.com/solutions/canva-template-to-api), and once your designs are in, you can even [automate publishing to your social accounts](https://orshot.com/blog/social-media-automation-tools) via Orshot - **Visual Drag-and-Drop Editor**: Canva-like interface with text, images, shapes, and rich formatting options - **Template Parameterization**: Make any element dynamic: text, images, colors, and styling properties - **REST API Generation**: Generate thousands of design variations with simple API calls - **Multi-format Output**: Export as PNG, JPG, AVIF, PDF, MP4, WebM, or GIF - **Video Generation**: Create videos with per-layer trim, mute, and loop controls via API - **Integration-Ready**: Works with n8n, Zapier, Make, and custom applications - **Works With AI Agents**: A hosted MCP server lets Claude, Cursor, ChatGPT and 7 more render your templates on request - **Publish to 10+ Socials Sites**: Supports posting to Instagram, LinkedIn etc. via API ### How Orshot Works: 1. **Design in Studio:** Use the visual editor to create your template with text, images, and shapes 2. **Set Parameters:** Mark elements as dynamic (e.g., `{{name}}`, `{{company}}` 3. **Generate via API:** Send data through REST API to create personalized versions ```javascript // Example: Generate a certificate with custom data await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: 12345, modifications: { recipientName: "John Smith", courseName: "Advanced JavaScript", completionDate: "October 2025", certificateColor: "#4F46E5", }, response: { type: "base64", format: "png", }, }), }); ``` **Pricing:** Free tier available with API access, paid plans start at $9/month ### AI Features: The AI here isn't a text-to-image button. It's two separate things: an agent that builds templates for you, and an MCP server that lets your own AI agent drive Orshot. - **AI Design Agent** — describe the template you want and it builds an API-ready one in Studio, with the dynamic fields already parameterized - **Remote MCP server** — connect Orshot to [Claude, Cursor, ChatGPT, Codex and six more clients](https://orshot.com/agents), then have them generate templates and set up your workflows for you. No local install, OAuth per workspace - **Agent skill** — a skill file teaches your agent the API, the `page1@` prefix for carousels, and Smart Resize, so it stops guessing at the request shape Here's the MCP setup and a template being generated from a prompt, end to end: [Orshot MCP Server Tutorial](https://www.youtube.com/watch?v=OhgdZtqEQK0) This is the part none of the other tools on this list really do. Figma ships an MCP server, but it's aimed at design-to-code handoff, not at generating finished assets. If you want to say "make me 200 branded certificates from this spreadsheet" and get files back, that's the gap Orshot fills. --- ## 3. Figma - Collaborative Design Platform ![GIMP](https://orshot.com/blog/canva-alternative-tools/figma.webp) [Link to Figma ↗](https://www.figma.com/ "target=_blank") ### Best for: - UI/UX designers and product teams - Teams requiring real-time collaboration - Web and app design projects - Design system creation and management Figma is where most product teams design these days, and its free tier is genuinely generous. Fair warning, redditors will tell you it's overkill for a quick Instagram post (one called it "using a screwdriver to hammer a nail"). But for UI, web work, and anything collaborative, it's hard to beat for free. - **Real-time collaboration**: Multiple designers can work simultaneously - **Component systems**: Reusable design elements and design systems - **Prototyping tools**: Interactive mockups and user flow testing - **Version control**: Track changes and revert to previous versions - **Plugin marketplace**: Thousands of community-created plugins ### What sets it apart: - **Browser-based**: No software installation required - **Team features**: Comments, feedback, and approval workflows - **Developer handoff**: Generate code snippets and design specs automatically - **Free tier**: Robust functionality without cost for small teams ### AI Features: Figma offers AI-powered features like auto-layout suggestions, design system recommendations, and smart component detection through various plugins and beta features. **Pricing:** Free for up to 3 projects, paid plans from $12/month per editor --- ## 4. Inkscape - Vector Graphics Specialist [Link to Inkscape ↗](https://inkscape.org/ "target=_blank") ### Best for: - Logo design and brand identity work - Vector illustrations and artwork - Scalable graphics for web and print - SVG graphics for websites Inkscape is the free, open-source answer to Illustrator. If you're making logos or anything that needs to scale cleanly, this is the one. It works nothing like Canva and takes some getting used to, but you'll own clean SVGs at the end of it. - **SVG-native**: Built around the SVG standard for web-compatible graphics - **Bezier tools**: Professional path editing and manipulation - **Text support**: Advanced typography tools and text-along-path features - **Object manipulation**: Clone, align, and distribute tools for precise layouts - **Extensions**: Python-based plugins for specialized functions - Free and open source with no limitations - Excellent for logos and scalable graphics - Professional vector editing tools - Strong community support - Regular updates and improvements Cons: - Limited bitmap editing capabilities - Smaller template ecosystem - Learning curve for vector graphics newcomers ### AI Features: Inkscape currently has minimal AI integration, though some community extensions provide basic automated tracing and path optimization features. --- ## 5. Adobe Express ![GIMP](https://orshot.com/blog/canva-alternative-tools/adobe-express.webp) [Link to Adobe Express ↗](https://www.adobe.com/express/ "target=_blank") ### Best for: - Users already in the Adobe ecosystem - Quick design creation with premium assets - Professional brand consistency - Teams needing Adobe integration Adobe Express (formerly Adobe Spark) is probably the closest free Canva-like on this list, and it's the tool redditors name most often when they want a near drop-in swap. The free plan leans on Adobe Stock assets and Firefly AI. - **Adobe integration**: Seamless access to Adobe Stock and Creative Cloud assets - **AI-powered tools**: Firefly integration for AI-generated content - **Brand management**: Upload logos, fonts, and maintain brand consistency - **Quick actions**: One-click background removal and image enhancement - **Multi-format export**: Optimized exports for different platforms ### Why consider it: - **Quality templates**: Professionally designed starting points - **Adobe ecosystem**: If you use other Adobe tools, integration is seamless - **AI features**: Latest generative AI capabilities built-in - **Mobile apps**: Full-featured iOS and Android applications ### AI Features: Adobe Express integrates Adobe Firefly for AI image generation, text effects, and background removal, plus smart resize and auto-animation features. **Pricing:** Free plan available, premium plans from $9.99/month --- ## 6. Pixlr - Budget-Friendly Alternative ![Pixlr](https://orshot.com/blog/canva-alternative-tools/pixlr.webp) [Link to Pixlr ↗](https://pixlr.com/ "target=_blank") ### Best for: - Casual designers on a budget - Users needing both photo editing and templates - Small businesses with limited design resources - Beginners looking for an all-in-one solution Pixlr quietly does a lot: photo editing, a Canva-style template editor, and AI tools, all with a genuinely usable free tier. It comes up often when people want one cheap app that covers both photos and graphics instead of juggling two. - **Multiple apps**: Photo Editor, Designer, and Express for different needs - **AI-powered features**: Background removal, image enhancement, and filters - **Template library**: Thousands of templates for various purposes - **Batch processing**: Edit multiple images simultaneously - **Cloud storage**: Access your work from anywhere ### Value proposition: - **Affordable pricing**: Starting at just $2.49/month - **All-in-one solution**: Photo editing plus design templates - **User-friendly**: Intuitive interface for beginners - **Mobile compatibility**: Work on desktop or mobile devices ### AI Features: Pixlr includes AI-powered background removal, image enhancement, style transfer filters, and an AI image generator with monthly credit limits. --- ## 7. Snappa - Simplicity First ![Snappa](https://orshot.com/blog/canva-alternative-tools/snappa.webp) [Link to Snappa ↗](https://snappa.com/ "target=_blank") ### Best for: - Occasional designers with infrequent needs - Users who prefer transparent pricing - Social media content creators - Simple design tasks without complexity Snappa keeps things refreshingly simple. Every feature is available on the free plan; you're just capped on how many downloads you get per month. If your design needs are occasional, that trade is easy to live with. - **No feature restrictions**: All tools available on free plan - **Social media focus**: Pre-sized templates for every platform - **Background removal**: One-click AI-powered background removal - **Graphics library**: Thousands of photos, graphics, and fonts - **Simple workflow**: Streamlined design process ### Unique approach: - **Transparent freemium**: No locked features, only usage limits - **Quick results**: Optimized for fast design creation - **Platform-specific**: Templates designed for specific social media dimensions ### AI Features: Snappa offers basic AI-powered background removal but lacks advanced AI features like image generation or smart design suggestions. **Pricing:** Free with 3 downloads/month, Pro at $15/month for unlimited usage --- ## 8. VistaCreate - Print-Focused Design ![VistaCreate](https://orshot.com/blog/canva-alternative-tools/vista-create.png) [Link to VistaCreate ↗](https://create.vista.com/ "target=_blank") ### Best for: - Small businesses needing print materials - Users requiring seamless printing integration - Marketing teams creating offline campaigns - Companies wanting design-to-print workflow VistaCreate (formerly Crello) is backed by VistaPrint, so it really shines when your design needs to end up on actual paper: business cards, flyers, posters, and the like. - **Print integration**: Direct connection to VistaPrint's printing services - **Animation tools**: Create animated social media posts and ads - **Brand kit**: Maintain consistent branding across materials - **Video templates**: Short video creation for social media - **Collaboration tools**: Team features for feedback and approval ### Print advantage: - **Print-ready templates**: Designs optimized for physical printing - **Material variety**: Business cards, flyers, posters, and merchandise - **Quality assurance**: Professional printing standards built-in ### AI Features: VistaCreate includes AI background removal, image upscaling, and basic AI-powered design suggestions for layout optimization. --- ## 9. BeFunky - Photo-Centric Design ![BeFunky](https://orshot.com/blog/canva-alternative-tools/befunky.webp) [Link to BeFunky ↗](https://www.befunky.com/ "target=_blank") ### Best for: - Photography enthusiasts and professionals - Users needing advanced photo editing - Collage creators and scrapbook designers - Social media content with heavy photo focus BeFunky sits somewhere between a photo editor and a design tool. If your work is photo-heavy (collages, photo-led social posts), it handles that better than most template-first apps. - **Photo editor**: Professional-grade photo editing tools - **Collage maker**: Advanced collage creation with smart layouts - **Artistic effects**: AI-powered filters and style transfers - **Background replacement**: Sophisticated background editing - **Batch processing**: Apply effects to multiple photos ### Photo focus: - **Advanced editing**: More powerful photo tools than typical design platforms - **Creative filters**: Unique artistic effects and enhancements - **Collage specialist**: Industry-leading collage creation tools ### AI Features: BeFunky provides AI-powered artistic filters, style transfers, background removal, and smart photo enhancement tools for automatic image improvement. --- ## 10. Piktochart - Data Visualization Expert ![Piktochart](https://orshot.com/blog/canva-alternative-tools/piktochart.webp) [Link to Piktochart ↗](https://piktochart.com/ "target=_blank") ### Best for: - Data analysts and researchers - Professionals creating infographics - Educational content creators - Business presentation designers Piktochart is the one to reach for when you're turning data into something people will actually read: infographics, reports, and charts. One redditor mentioned switching from Canva to Piktochart purely for its AI. - **Infographic templates**: Professionally designed data visualization layouts - **Chart tools**: Interactive charts and graphs - **Map visualizations**: Geographic data representation - **Presentation mode**: Create slide-based presentations - **Data import**: Direct integration with spreadsheets and databases ### Data strength: - **Visualization focus**: Purpose-built for data storytelling - **Professional templates**: Business-ready infographic designs - **Interactive elements**: Engaging data presentations ### AI Features: Piktochart offers limited AI capabilities, primarily focusing on smart chart recommendations based on data types and automated color scheme suggestions. --- ## How to Choose the Right Canva Alternative ### For Marketers, Agencies & Small Teams: **Choose Orshot** if you need to generate high volumes of personalized images and [PDFs from templates](https://orshot.com/solutions/pdf-generation-api). Perfect for marketing teams creating hundreds of social media posts with client branding, agencies producing custom certificates for multiple clients, or small teams generating personalized product mockups at scale, all without manual work. ### For Professional Design Work: **Choose GIMP or Inkscape** if you need powerful editing capabilities without subscription costs. GIMP for photo manipulation, Inkscape for vector graphics. ### For Team Collaboration: **Choose Figma** if your team needs to work together on designs in real-time, especially for web and app interfaces. ### For Budget-Conscious Users: **Choose Pixlr or Snappa** for cheap, capable options that still cover the basics without a subscription. ### For Specific Use Cases: - **Print materials**: VistaCreate - **Photo-heavy designs**: BeFunky - **Data visualization**: Piktochart - **Adobe ecosystem users**: Adobe Express ## Frequently Asked Questions **Q: Is there a completely free alternative to Canva?** Plenty. GIMP, Inkscape, Photopea, and Krita are 100% free and open-source, with no plan and no catch. Among the Canva-style editors, Adobe Express, Pixlr, VistaCreate, and [Orshot's](https://orshot.com/studio) free tier all let you design and export without paying, though each caps something (downloads, AI credits, or premium assets), so check the free-tier limits before you commit. **Q: Is there a Canva Autofill API alternative?** If you want to populate a template with data and render it at scale, that job points you at Canva's Autofill API, and it's where most people get stuck: it only works with brand templates on Canva Enterprise, and the Connect API needs app review before you can ship. [Orshot is the self-serve alternative to both Canva and its Autofill API](https://orshot.com/solutions/canva-template-to-api): design a template in a Canva-style editor, mark any element dynamic, then hit one REST endpoint to autofill it and render hundreds of variations as PNG, PDF, or video. No Enterprise plan, no approval queue, and a free tier with API access to get started. **Q: What's the best free Canva alternative?** It depends on the job, which is exactly why this list is sorted that way. For a near drop-in Canva feel, try Adobe Express. For photo editing, Photopea or GIMP. For logos and vector work, Inkscape. For designs you want to automate or generate in bulk, [Orshot](https://orshot.com/studio). There's no single winner here, and anyone who insists otherwise is usually selling one of them. **Q: Is there an open-source Canva alternative?** A few good ones. GIMP for photo editing, Inkscape for vector, Krita for illustration, Scribus for print and page layout, and Penpot for UI design (it's closer to Figma than Canva). None are a pixel-perfect Canva clone, but they're free forever and you genuinely own your files. **Q: What about Affinity now that Canva owns it?** Worth knowing about. Canva acquired Affinity, and Affinity Photo, Designer, and Publisher are now free with no subscription. They're more powerful (and steeper to learn) than Canva, and they've quietly become a favorite for people who want out of the subscription model without giving up capability. **Q: Will I get a watermark on the free plan?** On most tools here, no. GIMP, Inkscape, Photopea, Krita, and Adobe Express all export clean on their free plans. Snappa gives you every feature free but caps how many downloads you get each month. As always, confirm a tool's current free-tier terms before you rely on it for client work. **Q: Is there an AI alternative to Canva?** Yes. Adobe Express (via Firefly), Pixlr, Piktochart, and Orshot all bake in AI, from background removal to layout suggestions to full generation. A few redditors mentioned getting more usable results out of these than out of Canva's own AI. **Q: Is Canva still worth paying for?** Honestly, for a lot of people, yes. Canva's whole advantage is ease of use, and just about every alternatives thread has someone pointing out that the free tools come with a learning curve. If you live in Canva every day, paying may still be the rational call. If you open it a few times a month and the price jump stung, one of the free options above will almost certainly do the job. ## Conclusion Look, [Canva](https://canva.com "target=_blank") is genuinely great. There's a reason millions of people use it, and for sheer ease of use it's hard to beat. But if the price jump pushed you out, or you've hit one paywall too many, you've got real options. Maybe you want API automation like [BannerBear](https://orshot.com/blog/bannerbear-api-alternative) offers, or you're tired of subscription fees and prefer free tools like GIMP The truth is, there's no single "best" design tool. It all depends on what you're actually trying to do and how much you want to spend. Try a couple from this list and see what clicks for you --- ### [10 Best Programmatic SEO Tools for Scaling Content](https://orshot.com/blog/programmatic-seo-tools) > Discover the top programmatic SEO tools for creating thousands of pages at scale. From dynamic image generation to bulk content creation, find the perfect tool for your pSEO strategy Programmatic SEO is how sites like TripAdvisor, Zillow, and Yelp created millions of pages without hiring an army of writers. The concept is simple: build one template, connect it to a database, and generate thousands of unique pages automatically. But here's the thing—most programmatic SEO guides focus heavily on text content while completely ignoring a critical element that makes or breaks user engagement: **images**. Think about it. When you land on a programmatic page about "best restaurants in Seattle," you expect to see relevant imagery, not just walls of text. The same goes for location pages, product comparisons, or any other programmatic content. Through building and analyzing successful pSEO projects that generate tens of thousands of pages each month, certain tools have proven essential. Here are the 10 best programmatic SEO tools you actually need, starting with the one most people overlook. ## 1. Orshot - Dynamic Image Generation for pSEO Pages [Orshot](https://orshot.com/) combines a visual editor with powerful automation for generating dynamic images at scale through URLs and APIs. ![The Orshot homepage](https://orshot.com/blog/orshot-home.webp) Most programmatic SEO tools focus on text. Orshot solves the visual problem. Here's the reality: you can't manually create unique images for 10,000 pages. Using generic stock photos makes every page look identical. But with Orshot's dynamic URLs, you can generate personalized images automatically for each programmatic page. ### How Orshot Works for Programmatic SEO Design a template once in Orshot Studio ([think Canva but with API access](https://orshot.com/blog/free-canva-alternatives)). Then generate unlimited variations by passing parameters through a URL. No API calls needed. Here's a real example from how we use it on this very site: ```html Hotels in Seattle ``` This generates a unique image for every city and category combination. Change the URL parameters, and you get a different image—perfect for programmatic pages. ### Why This Matters for pSEO Every programmatic page needs: - Unique featured images (for social shares and thumbnails) - Location-specific visuals (maps, city names, local imagery) - Data visualization (pricing tables, comparison charts, rating badges) - Branded graphics (consistent look across thousands of pages) Orshot handles all of this through URL parameters. The image generates on-the-fly when the page loads. ### Real pSEO Use Cases **Location-based pages**: Generate unique city images for "best restaurants in [city]" ```text https://api.orshot.com/v1/studio/dynamic-url/city-hero.jpg? templateId=123& city=Seattle& restaurantCount=847& topRated=Pike%20Place%20Chowder& sign=abc123 ``` **Product comparison pages**: Auto-generate comparison charts for "product A vs product B" ```text https://api.orshot.com/v1/studio/dynamic-url/comparison.png? templateId=456& product1=iPhone%2015& product2=Samsung%20S24& price1=$799& price2=$749& winner=Samsung%20S24& sign=def456 ``` [**Real estate listings**](https://orshot.com/use-cases/t/auto-generate-real-estate-banners): Create property cards for "homes in [neighborhood]" [**Event pages**](https://orshot.com/use-cases/t/auto-generate-events-banners): Generate event graphics for "concerts in [city] in [month]" **Job listings**: Auto-create job post images for "[job_title] in [location]" ### What makes it different from stock images - **Zero design work per page**: Design once, generate thousands of variants - **Truly unique images**: Every page gets personalized visuals, not repeated stock photos - **SEO-friendly**: Unique images help with Google's uniqueness signals - **Instant generation**: Images generate when the URL is accessed, no pre-rendering needed - **Brand consistency**: All images follow your design system automatically ### Dynamic URLs vs API Calls Most image tools require an API request for each image. Orshot's dynamic URLs don't: ```html POST /api/generate-image { "template": 123, "city": "Seattle" } → Wait for response → Save image → Reference in HTML → Image generates on-demand ``` ![Generating images with Orshot dynamic URLs](https://orshot.com/blog/dynamic-urls.webp) And here's a preview of the template: [Open the embed](https://orshot.com/templates/shared/6h1w0nmj/embed?view=view) You can embed these URLs directly in your programmatic templates (WordPress, Webflow, Next.js, wherever). The image generates automatically when someone visits the page. ### How We Use It On our own [use case pages](https://orshot.com/use-cases) (like `/use-cases/t/social-media-images`), we generate category-specific hero images using dynamic URLs. Same template, different parameters, thousands of unique visuals. **Pricing**: Free tier with 100 renders, paid plans from $29/month **Best for**: Anyone doing location-based pSEO, product comparison sites, real estate, events, jobs, or any pSEO project that needs unique imagery at scale **Useful links:** - [Dynamic URLs Documentation](https://orshot.com/docs/integrations/dynamic-urls) - Complete guide to generating images via URLs --- ## 2. WP All Import - WordPress Bulk Page Creation ![The WP All Import WordPress plugin](https://orshot.com/blog/wp-all-import.webp) [Link to WP All Import ↗](https://www.wpallimport.com/ "target=_blank") If you're building on WordPress (and let's be honest, most pSEO sites are), WP All Import is the OG tool everyone uses. You upload a CSV or connect to an XML feed, map your columns to WordPress fields, and it creates pages in bulk. Simple, reliable, battle-tested. ### What it does well - **Proven track record**: Been around forever, everyone knows how to use it - **Direct WordPress integration**: Creates actual WordPress pages/posts, not external content - **Flexible mapping**: Map any data field to any WordPress field - **Scheduling**: Auto-update content when your data source changes - **Custom fields**: Works with ACF and other custom field plugins ### Where it falls short - **No AI content generation**: You need to write all text content beforehand or use another tool - **Clunky interface**: The editor hasn't evolved much in years - **Slow imports**: Large datasets take forever to process - **Limited image handling**: Can't generate custom images per page - **No conditional logic**: Hard to display different content based on data ### Who should use it Teams already on WordPress who have clean data and just need to bulk-import pages without fancy requirements. **Pricing**: Free version available, Pro version $99/year --- ## 3. Create Pages - Modern No-Code pSEO Platform ![The Create Pages no-code pSEO platform](https://orshot.com/blog/create-pages.webp) [Link to Create Pages ↗](https://createpages.com/ "target=_blank") Full disclosure: Ian Nuttall (the creator) is one of the most respected voices in programmatic SEO. He built Create Pages based on years of running successful pSEO campaigns. ### Why it's worth considering - **AI-powered content**: Built-in AI for generating unique text per page - **Google Sheets sync**: Your content updates when your sheet changes - **Better templates**: More control over page structure than WP All Import - **Faster generation**: Significantly quicker than older tools - **Conditional logic**: Show/hide elements based on data ### The catch It's newer than tools like WP All Import, so the ecosystem is smaller. But the modern approach and AI integration make content creation much faster. **Pricing**: Starts at $19/month **Best for**: Teams wanting a modern approach with AI content generation built-in --- ## 4. Webflow + Airtable - The Designer's Choice ![Webflow paired with Airtable for programmatic SEO](https://orshot.com/blog/webflow.webp) [Link to Webflow ↗](https://webflow.com/ "target=_blank") | [Link to Airtable ↗](https://www.airtable.com/ "target=_blank") Webflow's CMS Collections are basically built for programmatic SEO, even if they don't market it that way. Connect it to Airtable (via tools like Whalesync), and you've got a powerful pSEO setup. ### Why designers love it - **Beautiful by default**: Webflow sites just look better than WordPress - **CMS Collections**: Purpose-built for template + database approach - **Design control**: Pixel-perfect control over every element - **Fast performance**: Sites load quickly without optimization gymnastics ### The downsides - **Steep learning curve**: Webflow takes time to master - **Expensive**: Can get pricey at scale - **Requires middleware**: Need Whalesync or similar to connect Airtable - **10,000 item limit**: CMS has a cap on the free/basic plans **Best for**: Agencies and designers who want beautiful programmatic sites and have the budget --- ## 5. Typemat - Quick WordPress Import ![The Typemat WordPress import tool](https://orshot.com/blog/typemat.webp) [Link to Typemat ↗](https://typemat.com/ "target=_blank") Typemat is designed to be the fastest way to get programmatic pages into WordPress. Paste a Google Sheets URL, map columns, generate pages. That's it. ### What makes it different - **Completely free**: No upsells, just import and go - **No login required**: Try it instantly without signing up - **Multi-platform**: Works with WordPress, Wix, Squarespace - **Simple UI**: Less overwhelming than WP All Import for beginners ### Limitations - **Basic features**: No AI, no advanced templating, no image generation - **Manual imports**: Not automated like some competitors **Best for**: Quick one-off imports when you don't need fancy features --- ## 6. Ahrefs - Keyword Research for pSEO ![Ahrefs keyword research for programmatic SEO](https://orshot.com/blog/ahrefs.webp) [Link to Ahrefs ↗](https://ahrefs.com/ "target=_blank") You can't do programmatic SEO without finding the right keywords first. Ahrefs is still the gold standard for this. ### How to use it for pSEO 1. Find your head term (e.g., "best restaurants") 2. Use Keywords Explorer to find modifiers (cities, cuisines, occasions) 3. Check search volume and difficulty for longtail combinations 4. Export the data to build your database ### Keyword structure for pSEO - **Head term**: "best restaurants" - **Primary modifier**: "in [city]" - **Secondary modifier**: "for [occasion]" or "with [feature]" - **Final keyword**: "best restaurants in Seattle for date night" The longer the tail, the easier to rank—which is perfect for programmatic pages. **Pricing**: Starts at $99/month (expensive but worth it if you're serious about SEO) --- ## 7. Octoparse - Web Scraping for Data Collection ![The Octoparse web scraping tool](https://orshot.com/blog/octoparse.webp) [Link to Octoparse ↗](https://www.octoparse.com/ "target=_blank") If you don't have a product database already, you'll need to scrape data. Octoparse makes this possible without coding. ### What you can scrape - Competitor websites for product data - Public databases for location information - Review sites for ratings and feedback - Pricing information from multiple sources ### The no-code advantage Point and click to select data on a webpage. Octoparse figures out the pattern and extracts it across multiple pages. Export to CSV or Google Sheets. **Warning**: Always check a website's terms of service before scraping. Many sites prohibit it. **Best for**: Teams without developers who need to collect data at scale --- ## 8. Whalesync - Database Sync for Webflow & WordPress ![Whalesync database sync for Webflow and WordPress](https://orshot.com/blog/whalesync.webp) [Link to Whalesync ↗](https://www.whalesync.com/ "target=_blank") If you're using Webflow or need to keep your CMS synced with Airtable or Google Sheets, Whalesync is the bridge that makes it work seamlessly. ### What it does Whalesync connects your database (Airtable, Google Sheets, Notion) to your CMS (Webflow, WordPress, Framer) and keeps them in sync automatically. Update your spreadsheet, and your pages update automatically. ### Why it matters for pSEO - **Real-time updates**: Change data in your sheet, pages update instantly - **Two-way sync**: Changes in either direction stay synced - **Automation-friendly**: Trigger updates via API or webhooks - **No code required**: Visual interface for mapping fields ### Common use cases **Webflow pSEO sites**: Sync Airtable collections to Webflow CMS **WordPress updates**: Keep product data fresh from Google Sheets **Multi-platform**: Manage one database, publish to multiple sites ### The setup 1. Connect your data source (Airtable/Sheets) 2. Connect your CMS (Webflow/WordPress) 3. Map fields between source and destination 4. Set sync frequency (real-time, hourly, daily) **Pricing**: Free plan available, paid plans from $29/month **Best for**: Teams using Webflow for pSEO or anyone needing automated database-to-CMS sync --- ## 9. ChatGPT / Claude - AI Content Writing ![Using ChatGPT or Claude for pSEO content writing](https://orshot.com/blog/claude.webp) [Link to ChatGPT ↗](https://chat.openai.com/ "target=_blank") | [Link to Claude ↗](https://claude.ai/ "target=_blank") Let's be real: you need AI for writing unique content at scale. Writing 10,000 unique descriptions manually isn't happening. ### How to use AI for pSEO **Don't**: Prompt ChatGPT once and copy-paste the same text 10,000 times **Do**: Create dynamic prompts that pull from your database: ``` Write a unique 150-word description about [city] focusing on: - Population: [population] - Top attraction: [top_attraction] - Known for: [known_for] - Best time to visit: [season] Write in a helpful, conversational tone. Avoid clichés. ``` Each page gets different data, so the AI generates unique content every time. ### Tools that integrate AI - Create Pages (built-in) - Google Sheets extensions (like GPT for Sheets) - Custom scripts (if you're technical) **Pricing**: ChatGPT free tier works, Plus is $20/month for faster responses --- ## 10. Google Sheets - The Database ![Google Sheets used as a programmatic SEO database](https://orshot.com/blog/sheets.webp) [Link to Google Sheets ↗](https://docs.google.com/spreadsheets "target=_blank") Almost every pSEO project starts and ends with Google Sheets. It's free, collaborative, and connects to everything. ### Your pSEO database structure | city | state | population | top_restaurant | rating | image_url | | -------- | ----- | ---------- | ------------------ | ------ | ----------- | | Seattle | WA | 737,015 | Pike Place Chowder | 4.8 | https://... | | Portland | OR | 652,503 | Pok Pok | 4.7 | https://... | Each row = one page. Each column = data that populates your template. ### Why Sheets beats Airtable - **Free**: No limits on basic plans - **Formulas**: Use `CONCATENATE`, `IF`, and other functions to create dynamic content - **Universal integration**: Everything connects to Google Sheets - **Familiar**: Everyone knows how to use it Airtable is more powerful for complex relational databases, but 90% of pSEO projects don't need that complexity. --- ## How to Build a Programmatic SEO Site (The Full Stack) Here's a realistic tech stack for a pSEO project: 1. **Keyword research**: Ahrefs ($99/mo) or free alternatives like Keyword Surfer 2. **Data collection**: Octoparse or manual spreadsheet work 3. **Database**: Google Sheets (free) or Airtable ($20/mo) 4. **AI content**: ChatGPT API ($0.002/1K tokens) 5. **Dynamic images**: Orshot ($29/mo) - for both page images and OG images 6. **Page generation**: WP All Import (free) or Create Pages ($19/mo) 7. **Database sync**: Whalesync ($29/mo) - if using Webflow or need auto-sync 8. **CMS**: WordPress (free) or Webflow ($29/mo) 9. **Indexing**: Google Search Console (free) **Total cost to start**: $0-$50/month, depending on your choices --- ## Common pSEO Mistakes to Avoid ### 1. Generating pure AI content with no unique data Google's not stupid. If your pages are just AI-written fluff with no real data, they won't rank. Your competitive advantage is the **data you provide**, not the AI-written descriptions. ### 2. Ignoring image uniqueness Using the same stock photo across 1,000 pages hurts user experience and uniqueness signals. Dynamic images (via Orshot or similar) solve this. ### 3. No internal linking strategy Your programmatic pages need to link to each other logically. "Best restaurants in Seattle" should link to "Best Italian restaurants in Seattle" and "Best restaurants in Portland." ### 4. Thin content Each page needs enough substance to be useful. 100 words of AI fluff isn't enough. Aim for 500+ words with real data, comparisons, and helpful information. ### 5. Ignoring page speed 10,000 pages mean nothing if they take 8 seconds to load. Optimize images, use a CDN, and test performance before launching at scale. --- ## Real pSEO Examples for Inspiration - **Nomad List**: Location data for digital nomads (cost of living, weather, wifi speed) - **Zapier**: Integration pages for "Tool A + Tool B" - **G2**: Software comparison pages - **Yelp**: Business listings by location and category - **TripAdvisor**: Hotels, restaurants, attractions by destination Notice the pattern? They all combine a template with a massive database to create unique, useful pages at scale. --- ## Programmatic SEO in 2025: What's Changing ### AI Detection is Real Google's gotten better at detecting pure AI content. Your competitive moat isn't AI-written descriptions—it's the unique data you provide. Use AI to enhance human-written templates, not replace original research entirely. ### Visual Differentiation Matters More As more sites use pSEO, visual uniqueness becomes a differentiator. Sites with generic stock photos lose to sites with custom, data-driven visuals. ### User Experience Beats Quantity Ranking 10,000 terrible pages won't work anymore. Better to have 1,000 genuinely useful pages than 10,000 thin ones. Google's algorithms prioritize helpful content, even at scale. --- ## Should You Do Programmatic SEO? Programmatic SEO works incredibly well **if** you have: - ✅ A large dataset (hundreds or thousands of data points) - ✅ A clear keyword pattern (head term + modifiers) - ✅ Unique data or perspective that competitors don't have - ✅ Technical ability (or budget) to set up the systems It doesn't work well if: - ❌ You have limited data (just create pages manually) - ❌ Your content would be 95% identical across pages - ❌ You're just trying to game Google with thin content --- ## Conclusion: Start Simple, Scale Smart You don't need all 10 tools on day one. Here's how to start: - **Week 1**: Keyword research + build your database in Google Sheets - **Week 2**: Choose a CMS and create your first template - **Week 3**: Set up dynamic images with Orshot for visual uniqueness - **Week 4**: Generate 100 test pages and monitor performance If those 100 pages rank and drive traffic, scale to 1,000. Then 10,000. Programmatic SEO isn't about gaming Google—it's about providing useful information at scale. The tools above help you do that efficiently, but the content quality is still on you. The biggest advantage of tools like Orshot? They let you scale the visual component as easily as the text. Because at the end of the day, a page about "best beaches in Hawaii" should look different from one about "best beaches in California"—even if the template is the same. --- ### [10 Best Tools to Automate Content Creation](https://orshot.com/blog/automated-content-creation-tools) > The best automated content creation tools in 2026 to help you produce visuals, copy, and publish content at scale. Every marketer, eCommerce owner, and content creator hits the same wall eventually: there's too much content to make and not enough hours to make it. You need product banners, social posts, certificates, ad creatives, invoices, carousels — and you needed them yesterday. Manually creating each one in Canva or Figma doesn't scale. Hiring a designer for every variation gets expensive fast. That's where [automated content creation](https://orshot.com/solutions/image-generation-api) comes in. Not the "let AI write a soulless blog post" kind. The kind where you set up systems that produce on-brand, ready-to-publish content — images, PDFs, videos, copy — with minimal manual effort. Here are 10 tools that actually help you automate content creation in 2026, broken down by what they're best at. | Tool | Category | Best For | | :---------------------------------------------------------------------- | :---------------------------- | :---------------------------------------------------- | | [**Orshot**](#1-orshot--automated-visual-content-from-templates) | Content Creation + Automation | Automating images, PDFs, videos from templates | | [**Make**](#2-make-formerly-integromat--visual-workflow-automation) | No-Code Automation | Connecting apps to build automated workflows | | [**n8n**](#3-n8n--open-source-workflow-automation) | Technical Automation | Complex, self-hosted automation workflows for devs | | [**Canva**](#4-canva-bulk-create--batch-visual-design) | Design | Batch creating simple social graphics via CSV | | [**Buffer**](#5-buffer--ai-assisted-social-media-scheduling) | Social Media | Scheduling and distributing content across channels | | [**Scribe**](#6-scribe--automated-step-by-step-guides) | Documentation | Automatically capturing screen recordings into guides | | [**Notion**](#7-notion--ai-powered-content-planning-and-drafting) | Planning | Planning content and managing team workflows | | [**Jasper**](#8-jasper--ai-copywriting-at-scale) | AI Copywriting | Generating marketing copy and blog drafts at scale | | [**Repurpose.io**](#9-repurposeio--cross-platform-content-distribution) | Video Repurposing | Republishing video content across multiple platforms | | [**Typefully**](#10-typefully--automated-twitterlinkedin-content) | Social Media (Text) | Scheduling and auto-posting for X and LinkedIn | --- ## 1. Orshot — Automated Visual Content from Templates ![Orshot automated content creation](https://orshot.com/blog/automated-content-creation/orshot.webp) **Best for:** Generating images, PDFs, and visual content at scale from reusable templates If you're creating the same types of visuals over and over — product banners, social media graphics, certificates, invoices, ad creatives — [Orshot](https://orshot.com/) is built exactly for this. It generates the visuals and can **post them directly to 15+ social platforms** like Instagram, LinkedIn, Twitter, TikTok, and more — **all in a single API call**. The workflow is simple: design a template once in Orshot Studio (or optionally let the [Orshot Design Agent](https://orshot.com/blog/introducing-design-agent) build it via text prompt), mark the parts that change as dynamic parameters, then generate hundreds of variations by feeding in data through a spreadsheet, the [REST API](https://orshot.com/solutions/image-generation-api), or no-code tools like Zapier and Make. You can publish instantly, schedule posts for later, or save them as drafts. **What makes it different from standard AI image generators:** Every output is pixel-perfect and on-brand because it's based on your actual design logic — not static AI image generation. Even if you use the [Design Agent](https://orshot.com/blog/introducing-design-agent) to help structure your canvas, the final render uses real editable layers with [animation support](https://orshot.com/blog/introducing-animations-in-studio) for video outputs. No hallucinated text or weird layouts. Just your template + your data = done. **Use cases people actually run on Orshot:** - Auto-generating Shopify product banners when new products are added - Bulk generating PDF certificates for online courses - [Creating branded retail ads](https://orshot.com/blog/no-code-retail-ad-generation) without a designer - Automating invoice and receipt generation via API - [Generating unique images for programmatic SEO](https://orshot.com/blog/programmatic-seo-tools) pages - [Creating animated video content](https://orshot.com/blog/introducing-animations-in-studio) at scale with per-layer animations, choreography, and staggered effects - Automate repetitive visuals like product banners, certificates, and social posts - Turn a single design into thousands of personalized variations instantly - Free up design time by connecting directly to your data or CMS - Launch programmatic SEO campaigns with unique images for every page - Maintain 100% brand consistency across all marketing channels without manual review **Pricing:** 30 free credits to start, no credit card required. Paid plans from $39/mo. > Orshot's [Social Publishing](https://orshot.com/docs/publish/introduction) means you don't need a separate tool like Buffer to get content out the door. Generate and publish from one place — no extra steps. [Try Orshot free](https://orshot.com/signup?via=blog-automated-content-orshot) --- ## 2. Make (formerly Integromat) — Visual Workflow Automation ![Make visual workflow builder](https://orshot.com/blog/automated-content-creation/make.webp) **Best for:** Connecting apps and automating multi-step content workflows without code [Make](https://www.make.com/ "target=_blank nofollow") lets you build automated workflows visually. You drag and drop modules — think "when a new row is added to Google Sheets, generate an image in Orshot, post it to Instagram via Buffer, and log it in Notion." It's not a content creation tool by itself, but it's the glue that connects your content tools into an automated pipeline. If you're serious about content creation automation, you'll probably end up using Make (or n8n) to orchestrate everything. - Visual drag-and-drop workflow builder - Thousands of app integrations - Generous free plan for getting started - Handles complex multi-step automations **Pricing:** Free plan available. Paid plans from $9/mo. --- ## 3. n8n — Open-Source Workflow Automation ![n8n workflow automation](https://orshot.com/blog/automated-content-creation/n8n.webp) **Best for:** Developers and technical teams who want full control over their automation workflows Similar to Make, but open-source and self-hostable. [n8n](https://n8n.io/ "target=_blank nofollow") is popular with technical teams who want to build complex content creation automation workflows without vendor lock-in. You can set up flows that pull data from your CMS, generate visuals via an API, post to social platforms, and track performance — all in one workflow. If you're comfortable with a bit of JSON and want maximum flexibility, n8n is hard to beat — especially for complex workflows like [automating social media posts and videos](https://orshot.com/blog/n8n-marketing-automation-tutorial), document processing, and internal tools. - Open-source and self-hostable - No vendor lock-in - Highly customizable workflows - Active community and marketplace --- ## 4. Canva (Bulk Create) — Batch Visual Design ![Canva Bulk Create feature](https://orshot.com/blog/automated-content-creation/canva.webp) **Best for:** Non-designers who need to create visual content for social media and marketing Everyone knows [Canva](https://www.canva.com/ "target=_blank nofollow"). But a lot of people miss the **Bulk Create** feature — you upload a CSV of data and [Canva generates multiple designs](https://orshot.com/solutions/canva-template-to-api) from a single template. It's a lightweight version of automated content creation, and it works well for simple use cases like social media quote graphics or event invitations. **Where it falls short:** No API access on most plans, limited programmatic control, and Bulk Create doesn't support complex layouts or conditional logic. If you need to automate content creation beyond manually uploading a CSV, you'll outgrow it quickly. - Easiest design tool for non-designers - Massive template library - Bulk Create feature for batch generation - Generous free tier **Pricing:** Free plan available. Pro from $13/mo. **Relevant →** [Canva Bulk Create Alternative](https://orshot.com/blog/canva-bulk-create-alternative) --- ## 5. Buffer — AI-Assisted Social Media Scheduling ![Buffer social media scheduling](https://orshot.com/blog/automated-content-creation/buffer.webp) **Best for:** Scheduling and auto-publishing social media posts across platforms [Buffer](https://buffer.com/ "target=_blank nofollow") handles the distribution side of content creation automation. Write or generate your posts, set up a publishing schedule, and Buffer pushes them out across Instagram, X, LinkedIn, Facebook, and more. Their AI assistant helps generate post ideas and captions, but the real value is in the scheduling automation — set it and forget it. Pairs well with visual content tools like Orshot for a full pipeline: generate the image automatically, then schedule it via Buffer. - Clean, simple scheduling interface - AI assistant for caption ideas - Supports all major social platforms - Free plan covers 3 channels **Pricing:** Free plan for 3 channels. Paid from $6/mo per channel. --- ## 6. Scribe — Automated Step-by-Step Guides ![Scribe automated guide creation](https://orshot.com/blog/automated-content-creation/scribe.webp) **Best for:** Automatically creating how-to guides, tutorials, and SOPs by recording your screen If you spend hours taking screenshots, cropping them, and writing out instructions for help articles or team documentation, [Scribe](https://scribehow.com/ "target=_blank nofollow") will feel like magic. You just hit "Record," do the process once in your browser or desktop app, and Scribe automatically generates a step-by-step guide with screenshots, clicks, and text instructions. It's automated content creation for educational and support content. Instead of writing a "how-to" blog post from scratch, you can record the process and embed the Scribe guide (or export it to PDF/Markdown). - Automatically generates guides from screen recordings - Highlights clicks and keystrokes perfectly - Edits are easy — change text, redact sensitive info - Export to PDF, Markdown, or embed directly - massive time saver for documentation **Pricing:** Free plan available. Pro from $23/mo. --- ## 7. Notion — AI-Powered Content Planning and Drafting ![Notion AI content planning](https://orshot.com/blog/automated-content-creation/notion.webp) **Best for:** Content teams who need to plan, draft, and manage content workflows in one place [Notion](https://www.notion.com/ "target=_blank nofollow") isn't just a docs tool anymore. With Notion AI and their database-driven workflow, it's become a legitimate content creation automation hub. You can build content calendars, use AI to draft posts from outlines, auto-assign tasks when content moves through stages, and template everything. The real power is in combining databases with automation. Create a content pipeline where moving a card to "Ready to Publish" triggers downstream actions via Make or n8n — generate the social image in Orshot, schedule in Buffer, update your tracker. All from one Notion board. - All-in-one workspace for planning, writing, and tracking - Notion AI for drafts, summaries, and brainstorming - Database templates for repeatable content workflows - Great for team collaboration and approvals --- ## 8. Jasper — AI Copywriting at Scale ![Jasper AI copywriting](https://orshot.com/blog/automated-content-creation/jasper.webp) **Best for:** Generating marketing copy, blog drafts, and ad variations [Jasper](https://www.jasper.ai/ "target=_blank nofollow") is the go-to ai tool for content creation on the copywriting side. It generates blog posts, email sequences, ad copy, product descriptions, and landing page content. The brand voice feature lets you train it on your existing content so outputs match your tone. It won't replace a good writer, but it's excellent for first drafts and generating variations — especially for ad copy A/B testing where you need 20 versions of the same headline. - Brand voice training for consistent tone - Templates for every content type — ads, emails, blogs, social - Team collaboration and campaign workflows - Good for generating content variations at scale **Pricing:** From $49/mo per seat. --- ## 9. Repurpose.io — Cross-Platform Content Distribution ![Repurpose.io content distribution](https://orshot.com/blog/automated-content-creation/repurpose.webp) **Best for:** Automatically republishing content across multiple platforms Record once, publish everywhere. [Repurpose.io](https://repurpose.io/ "target=_blank nofollow") takes your content from one platform (YouTube, TikTok, podcast) and automatically reformats and publishes it to others. It handles aspect ratio changes, platform-specific formatting, and scheduling. This is content creation automation in the truest sense — you do the creative work once, and the tool handles every downstream distribution channel automatically. - True set-and-forget automation - Handles reformatting for each platform automatically - Supports all major content platforms - Great for repurposing podcasts and video content --- ## 10. Typefully — Automated Twitter/LinkedIn Content ![Typefully Twitter and LinkedIn automation](https://orshot.com/blog/automated-content-creation/typefully.webp) **Best for:** Scheduling, writing, and auto-publishing threads and posts on Twitter and LinkedIn [Typefully](https://typefully.com/ "target=_blank nofollow") is a focused tool that does one thing well — helps you write, schedule, and auto-publish content on Twitter/X and LinkedIn. It has an AI writing assistant for drafts, a queue system for consistent posting, and analytics to see what's landing. What makes it stand out in content creation automation is the auto-repost feature — your best-performing posts get automatically reshared at optimal times. Write once, let it keep working. Simple, no bloat. - Focused and distraction-free writing experience - Auto-repost of best-performing content - AI writing assistant built in - Analytics to see what resonates --- ## 3 Automated Content Creation Workflows You Can Build Today The real magic happens when you connect these tools together. Here are three practical content creation automation workflows you can set up right now: ### 1. The "Idea-to-Instagram" Pipeline **Tools:** Notion + Orshot + Buffer (connected via Make/n8n) ![Automated content workflow for Instagram](https://orshot.com/blog/automated-content-creation/workflow-1.webp) Instead of manually designing every Instagram story or LinkedIn post, set up a database in **Notion** for your content calendar. When you move a card to "Ready," an automation triggers **Orshot** to generate the visual asset using your pre-designed template and the text from your Notion card. The final image is then automatically scheduled in **Buffer**. **Result:** You just write the text; the design and scheduling happen automatically. ### 2. The Video Repurposing Engine **Tools:** YouTube + Repurpose.io + TikTok/Shorts ![Automated video repurposing workflow](https://orshot.com/blog/automated-content-creation/workflow-2.webp) If you create long-form video or podcasts, never upload manually to social channels again. Connect your YouTube or podcast feed to **Repurpose.io**. Set up a workflow where every new standardized clip is automatically reformatted (vertical for TikTok, square for LinkedIn) and published or scheduled. **Result:** One video upload turns into 10+ pieces of content across platforms without extra effort. ### 3. Automated Certificates & Documents ![Automated certificate generation workflow](https://orshot.com/blog/automated-content-creation/workflow-3.webp) **Tools:** Google Sheets/Typeform + Orshot + Email Perfect for course creators or event organizers. When someone completes a **Typeform** survey or a new row is added to **Google Sheets** (e.g., "Student Name," "Course Completed"), use **Orshot** to generate a personalized PDF certificate or report. Ensure the automation emails it directly to the user. **Result:** Instant, personalized follow-ups that look manually designed but run on autopilot. --- ## How to Pick the Right Tool The best approach to automated content creation is usually a combination of tools, not a single platform: - **For visual content** (images, PDFs, banners, certificates) → [Orshot](https://orshot.com/) - **For copy and text** (blogs, captions, ad copy) → Jasper or your LLM of choice - **For tutorials and guides** → Scribe - **For distribution** (scheduling, cross-posting) → Buffer, Repurpose.io, or Typefully - **For content planning and drafting** → Notion - **For connecting everything together** → Make or n8n The tools that save the most time are the ones that automate the **repetitive production work** — not the creative decisions. Design your template once, write your brand guidelines once, set up your workflow once. Then let the tools handle every variation, every platform, every new product launch. You don't need a massive budget or a dev team to start automating content creation. Pick one workflow — like auto-generating social graphics from a spreadsheet — and expand from there. --- ### [11 Best Social Media Automation Tools for 2026](https://orshot.com/blog/social-media-automation-tools) > Looking for the best social media automation tools? Compare 11 platforms for automated social media posting, visual content generation, and scheduling — from free tools to enterprise solutions. You're running a brand, an eCommerce store, or a growing startup. You know you need to be on Instagram, X, LinkedIn, TikTok, Facebook, Pinterest — probably all of them. The problem isn't knowing what to post. It's the sheer volume of work: designing visuals, resizing for each platform, writing captions, scheduling, tracking what worked, and doing it all over again tomorrow. That's where [social media automation](https://orshot.com/solutions/ai-marketing-automation-for-agencies) comes in. Not just scheduling posts (every tool does that). The real bottleneck is **creating the content itself** — the banners, carousels, product shots, and promo graphics that actually get engagement. Then getting them published without opening six different tabs. After testing dozens of social media automation tools, here are 11 that actually save time in 2026 — starting with the one that handles both creation and posting. ### What Can You Automate on Social Media? - **Post scheduling** — Queue posts days or weeks in advance and publish at optimal times - **Cross-platform publishing** — Post to multiple social networks simultaneously - **Visual content generation** — Create branded graphics, banners, and carousels from templates [at scale](https://orshot.com/solutions/image-generation-api) - **Analytics and reporting** — Track engagement, reach, and follower growth automatically - **Social inbox management** — Centralize comments, DMs, and mentions from all platforms - **Content recycling** — Automatically reshare evergreen posts that performed well - **Chatbot responses** — Set up auto-replies for common questions and comments ### Benefits of Social Media Automation - **Save time** — Batch your content creation and scheduling instead of posting manually every day — for most teams that's hours back every week. - **Stay consistent** — Automation ensures your accounts are active even during weekends, holidays, or busy periods. - **Post at peak times** — Tools analyze when your audience is most active and schedule posts automatically for maximum reach. - **Scale your output** — Go from posting once a day to multiple times across platforms without adding headcount. - **Make data-driven decisions** — Built-in analytics show what's working so you can double down on high-performing content. - **Maintain brand consistency** — Templates and approval workflows keep every post on-brand across all channels. | Tool | Category | Best For | | :------------------------------------------------------------------------ | :------------------------------- | :----------------------------------------------------------------- | | [**Orshot**](#1-orshot--automate-visual-creation--social-posting) | Visual Creation + Social Posting | Generating marketing visuals at scale and posting to 15+ platforms | | [**Buffer**](#2-buffer--simple-social-media-scheduling) | Scheduling | Clean, no-fuss scheduling across platforms | | [**Hootsuite**](#3-hootsuite--enterprise-social-media-management) | Social Management | Large teams managing multiple brand accounts | | [**Later**](#4-later--visual-first-social-media-scheduler) | Visual Scheduling | Instagram-focused visual content planning | | [**Sprout Social**](#5-sprout-social--social-media-analytics--engagement) | Analytics + Engagement | Brands that need detailed reporting and social listening | | [**SocialBee**](#6-socialbee--content-category-based-scheduling) | Category Scheduling | Recycling evergreen content automatically | | [**Publer**](#7-publer--bulk-scheduling-and-automation) | Bulk Automation | Scheduling hundreds of posts via CSV upload | | [**Pallyy**](#8-pallyy--affordable-social-media-scheduler) | Budget Scheduling | Small businesses and creators on a budget | | [**Loomly**](#9-loomly--collaborative-social-media-calendar) | Team Collaboration | Teams with approval workflows for social content | | [**Sendible**](#10-sendible--agency-focused-social-media-tool) | Agency Management | Agencies managing multiple client accounts | | [**Metricool**](#11-metricool--social-media-analytics-and-scheduling) | Analytics + Scheduling | Data-driven marketers who want scheduling plus deep analytics | --- ## 1. Orshot — Automate Visual Creation + Social Posting ![Orshot social media automation](https://orshot.com/blog/social-media-automation-tools/orshot.webp) **Best for:** Generating on-brand marketing visuals at scale and publishing them to 15+ social platforms — all in one workflow Here's the thing most social media automation tools get wrong: they assume you already have your content ready. They'll schedule your posts, sure. But who's creating the 15 different banner sizes, the product promo graphics, the quote cards, and the carousel slides? That's the actual time sink. [Orshot](https://orshot.com/solutions/ai-marketing-automation-for-agencies) solves both problems. Design your templates once in Orshot Studio, then generate hundreds of variations automatically by swapping in different data — product names, prices, images, headlines, whatever changes. Then publish those renders directly to your social accounts. No exporting, no uploading, no switching tools. ### How It Works for Social Media Automation 1. **Design once** — Build a template in [Orshot Studio](https://orshot.com/studio) (or let the [Design Agent](https://orshot.com/blog/introducing-design-agent) create one from a text prompt). Set dynamic parameters for anything that changes between posts. 2. **Generate at scale** — Feed in your data via spreadsheet, [REST API](https://orshot.com/solutions/image-generation-api), or no-code tools like Make and n8n. Orshot renders every variation instantly. 3. **Publish everywhere** — Use [Orshot Publish](https://orshot.com/blog/introducing-orshot-publish) to post directly to 15+ platforms. Publish now, schedule for later, or save as draft. 30 credits, no card needed. Design, generate and post from one place. [Try Orshot free](https://orshot.com/signup?via=blog-smat-orshot) ### Supported Platforms for Automated Social Media Posting Orshot Publish connects to **15 platforms** out of the box: Twitter/X, Instagram, Facebook, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Discord, WhatsApp, and Google Business. Connect your accounts ($12/mo per account, unlimited posts), generate a render, and it goes straight to your audience. No Buffer subscription on top. No Zapier glue. Just one tool. ### Automate the Full Pipeline via API If you're already generating visuals programmatically, you can publish them in the same API call: ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: "your-template-id", modifications: { productName: "Summer Collection 2026", price: "$49.99", productImage: "https://your-cdn.com/product.jpg", }, response: { type: "url", format: "png" }, publish: { accounts: [1, 2], // your connected account ids content: "New drop 🔥 Summer Collection is here. Shop now →", schedule: { scheduledFor: "2026-08-15T10:00:00Z" }, }, }), }); ``` One API call. Generates the visual, schedules it across every account you listed. That's automated social media posting done right — the [publish API docs](https://orshot.com/docs/publish/publish-from-api) cover drafts, per-platform settings, and carousels. - **Visual Template Editor**: Design social media graphics with a drag-and-drop editor. Set dynamic parameters for text, images, colors, and sizing. - **Bulk Visual Generation**: Generate hundreds of on-brand social media graphics from a single template — via spreadsheet, API, or no-code integrations. - **Built-in Social Publishing**: Post to 15+ platforms directly from Orshot. Schedule, draft, or publish instantly — no third-party scheduler required. - **Platform-Aware Publishing**: One publish action posts to every selected account, with per-platform settings (first comment, board, visibility) handled per network. - **API-First Automation**: Generate and publish visuals in a single API call. Build end-to-end social media automation pipelines. - **Multi-Format Output**: Export as PNG, JPG, PDF, MP4, WebM, or GIF — optimized for every social platform. Video outputs support per-layer animations for professional motion graphics. - Create and publish social media visuals from a single platform — no tool juggling - Generate hundreds of design variations from one template automatically - Post to 15+ social platforms with scheduling, drafts, and per-platform settings - API-first: build fully automated social media posting pipelines - 100% brand consistency across every visual and every platform **Pricing:** 30 free credits to start, no credit card required. Paid plans from $39/mo; connecting a social account is a flat $12/mo per account with unlimited posts. --- ## 2. Buffer — Simple Social Media Scheduling ![Buffer social media scheduling](https://orshot.com/blog/social-media-automation-tools/buffer.webp) **Best for:** Solo creators and small teams who want clean, straightforward social scheduling [Buffer](https://buffer.com/ "target=_blank nofollow") has been around since the early days of social media automation, and it's stayed relevant by keeping things simple. You queue up your posts, set a schedule, and Buffer sends them out to Instagram, X, LinkedIn, Facebook, Pinterest, and TikTok. The AI assistant helps with caption ideas, and the analytics dashboard shows you what's performing. No steep learning curve, no feature bloat. If you already have your visuals ready and just need to schedule them, Buffer gets the job done. **Where it falls short:** Buffer is a scheduler, not a content creation tool. You still need to design every graphic somewhere else before uploading it. If you're producing visual content at scale, that's a separate workflow entirely. Here's our full [Buffer alternative breakdown](https://orshot.com/blog/buffer-alternative) if that's the wall you're hitting. - Extremely clean and simple interface - AI assistant for caption suggestions - Supports all major social platforms - Generous free plan for up to 3 channels **Pricing:** Free for 3 channels. Paid plans from $5/mo per channel (Essentials). --- ## 3. Hootsuite — Enterprise Social Media Management ![Hootsuite social media management](https://orshot.com/blog/social-media-automation-tools/hootsuite.webp) **Best for:** Large teams and enterprises managing multiple brand accounts across social platforms [Hootsuite](https://www.hootsuite.com/ "target=_blank nofollow") is the heavyweight of social media management tools. It handles scheduling, monitoring, social listening, team collaboration, and reporting — all from one dashboard. If you're an enterprise managing 20+ social accounts across multiple brands, Hootsuite has the infrastructure for it. The OwlyWriter AI generates captions and content ideas, and the social listening tools track brand mentions, competitor activity, and trending topics in real time. It's powerful, but it's also complex and expensive. **Where it falls short:** Overkill for small teams. The pricing starts high and ramps up quickly. And like Buffer, it doesn't create your visuals — you bring those yourself. - Comprehensive social media management for large teams - Social listening and brand monitoring built in - Advanced analytics and custom reporting - Handles dozens of accounts across platforms **Pricing:** From $99/mo (Standard plan); Professional is $199/mo. Enterprise pricing on request. --- ## 4. Later — Visual-First Social Media Scheduler ![Later social media scheduler](https://orshot.com/blog/social-media-automation-tools/later.webp) **Best for:** Instagram-first brands and creators who plan content visually [Later](https://later.com/ "target=_blank nofollow") is built around a visual calendar — you drag and drop your images onto the schedule and see exactly how your Instagram grid will look before anything goes live. It supports other platforms too (TikTok, Facebook, LinkedIn, Pinterest, X), but Instagram is its home turf. The Linkin.bio feature creates a mini landing page from your Instagram posts, turning your feed into a shoppable storefront. For brands and creators where Instagram is the primary channel, Later's visual-first approach makes planning way more intuitive than spreadsheet-style schedulers. - Visual drag-and-drop calendar with Instagram grid preview - Linkin.bio for shoppable Instagram feeds - Best-time-to-post suggestions based on your audience - Supports all major platforms beyond Instagram **Pricing:** No free plan — 14-day trial. Paid plans from $18.75/mo billed yearly ($25 month-to-month). --- ## 5. Sprout Social — Social Media Analytics + Engagement ![Sprout Social analytics](https://orshot.com/blog/social-media-automation-tools/sprout-social.webp) **Best for:** Brands that prioritize social listening, analytics, and customer engagement alongside scheduling [Sprout Social](https://sproutsocial.com/ "target=_blank nofollow") goes deeper on the analytics and engagement side than most social media automation tools. The Smart Inbox unifies all your messages, comments, and mentions across platforms into one stream. The reporting is thorough — competitor analysis, sentiment tracking, audience demographics, and custom report builders. If your social media strategy is data-driven and you need to prove ROI to stakeholders, Sprout Social gives you the data to back it up. The scheduling and publishing features are solid, but the real value is in the insights and engagement tools. - Unified Smart Inbox for all social engagement - Deep analytics with competitor benchmarking - Social listening and sentiment analysis - Professional reporting for stakeholder presentations **Pricing:** From $79/seat/mo billed annually ($99 monthly) on Essentials; Standard is $199. 30-day free trial available. --- ## 6. SocialBee — Content Category-Based Scheduling ![SocialBee content scheduling](https://orshot.com/blog/social-media-automation-tools/socialbee.webp) **Best for:** Marketers who want to recycle evergreen content and maintain a balanced content mix [SocialBee](https://socialbee.com/ "target=_blank nofollow") takes a different approach to automated social media posting. Instead of scheduling individual posts, you organize content into categories — promotional posts, educational content, testimonials, behind-the-scenes, etc. Then SocialBee rotates through them automatically, maintaining the content mix you set. The evergreen recycling feature is the standout: your best-performing posts get reshared automatically so they don't just disappear after one publish. For anyone struggling to keep their feed active consistently, this category-based system takes the guesswork out of what to post next. - Category-based posting for a balanced content mix - Evergreen content recycling — set and forget - AI content generation for captions and hashtags - Canva integration for quick visual edits **Pricing:** From $29/mo. 14-day free trial. **Still making every graphic by hand?** — Every scheduler on this list assumes the content already exists. Orshot generates it from a template and posts it — 30 free credits to try. [Start free](https://orshot.com/signup?via=blog-smat-mid) --- ## 7. Publer — Bulk Scheduling and Automation ![Publer bulk social scheduling](https://orshot.com/blog/social-media-automation-tools/publer.webp) **Best for:** Marketers who need to schedule hundreds of posts at once via bulk upload [Publer](https://publer.io/ "target=_blank nofollow") is built for volume. If you have a month's worth of social content sitting in a spreadsheet and want to schedule it all in one go, Publer's bulk scheduling via CSV upload handles it cleanly. You can also set up recurring posts, auto-schedule based on best times, and use the browser extension to share content as you browse. The watermark feature is handy for agencies — auto-add brand watermarks to visuals before they're posted. And the workspace system keeps multiple brands organized without switching between accounts. - Bulk schedule via CSV for high-volume posting - Recurring posts and auto-scheduling - Built-in link shortening and UTM tracking - Multi-workspace support for managing multiple brands **Pricing:** Free plan for 3 accounts. Paid plans start around $5/mo per account. --- ## 8. Pallyy — Affordable Social Media Scheduler ![Pallyy social media scheduler](https://orshot.com/blog/social-media-automation-tools/pallyy.webp) **Best for:** Small businesses and solo creators who want premium scheduling features at a fraction of the cost [Pallyy](https://pallyy.com/ "target=_blank nofollow") offers most of what the expensive tools do — visual calendar, Instagram grid preview, auto-posting, analytics, bio link page — but at a price that doesn't hurt. If you're a creator or small business that doesn't need enterprise-grade social listening or team workflows, Pallyy covers the essentials without the bloated pricing. The interface is clean and modern, and it supports Instagram, Facebook, X, LinkedIn, TikTok, Pinterest, and Google Business. For budget-conscious social media automation, it's hard to beat the value. - Very affordable for what you get - Visual planning calendar with grid preview - Bio link page builder included - Supports all major social platforms **Pricing:** Free plan for 1 social set (15 posts/mo). Starter from $15/mo; Pro at $25/mo is unlimited posts on 1 set, +$10/mo per extra set. --- ## 9. Loomly — Collaborative Social Media Calendar ![Loomly social media calendar](https://orshot.com/blog/social-media-automation-tools/loomly.webp) **Best for:** Marketing teams that need approval workflows and structured collaboration for social content [Loomly](https://www.loomly.com/ "target=_blank nofollow") is designed around team workflows. Every post goes through a structured flow — idea, draft, pending approval, scheduled, published. Managers can review, comment, and approve before anything goes live. Post ideas and trending topic suggestions keep your calendar full. If you have multiple people touching social content and need guardrails so nothing goes out without sign-off, Loomly's approval system is one of the best. It also includes basic asset management, so your team's images and brand files live alongside the content calendar. - Built-in approval workflows with comments and review - Post idea suggestions based on trends and events - Asset library for team brand files - Clean calendar view with status tracking **Pricing:** From $65/mo month-to-month ($49/mo billed yearly), includes 3 users. --- ## 10. Sendible — Agency-Focused Social Media Tool ![Sendible agency social media tool](https://orshot.com/blog/social-media-automation-tools/sendible.webp) **Best for:** Agencies managing social media for multiple clients from a single dashboard [Sendible](https://www.sendible.com/ "target=_blank nofollow") is built specifically for agencies. Each client gets their own dashboard with custom branding, separate reporting, and dedicated content queues. The bulk import, content suggestions, and a unified inbox for client engagement make managing 10+ clients more manageable than juggling separate logins. The reporting is presentation-ready — automated reports go out to clients on a schedule, so you're not manually pulling data every month. If you're an agency doing social media management at scale, Sendible's multi-client architecture saves a lot of administrative overhead. - White-label dashboards for each client - Automated reporting sent directly to clients - Unified inbox for managing all client engagement - Content suggestion engine for filling gaps in the calendar **Pricing:** 14-day free trial; pricing is gated behind signup (third-party sources commonly quote around $29/mo). --- ## 11. Metricool — Social Media Analytics and Scheduling ![Metricool social media analytics](https://orshot.com/blog/social-media-automation-tools/metricool.webp) **Best for:** Data-driven marketers who want scheduling, analytics, and competitor tracking in one tool [Metricool](https://metricool.com/ "target=_blank nofollow") combines scheduling with surprisingly deep analytics. Beyond the standard engagement metrics, it tracks competitor performance, hashtag analytics, and best posting times for your specific audience. The SmartLinks feature (similar to Later's Linkin.bio) gives you a link-in-bio page with analytics baked in. What sets Metricool apart is the ad analytics — it pulls in performance data from your Google Ads and Meta Ads alongside your organic social metrics. If you're running both paid and organic social, having everything in one dashboard saves a lot of tab-switching. - Combined organic and paid social analytics - Competitor tracking and benchmarking - SmartLinks for link-in-bio with built-in analytics - Very generous free plan for individuals **Pricing:** Free plan for 1 brand (20 posts/mo). Paid from around $18/mo. --- ## Free Social Media Automation Tools for Content Creators (2026) If you're a content creator testing the waters — or you just don't have budget yet — several of the tools above have genuinely usable free tiers. Here's exactly what each free plan includes, verified against the vendors' pricing pages in July 2026: | Tool | Free plan | The catch | | :------------ | :----------------------------------------------------------------- | :---------------------------------------------------- | | **Buffer** | 3 channels, 10 scheduled posts per channel | Fine for one brand; multi-brand needs paid | | **Metricool** | 1 brand, 20 posts/month, analytics included | Post cap arrives fast if you post daily | | **Pallyy** | 1 social set, 15 posts/month | One set = one group of connected accounts | | **Publer** | 3 accounts | Bulk CSV scheduling is paid | | **Postiz** | Open source and self-hostable — free forever, 30+ platforms | You run the server; cloud plans start at $29/mo | | **Orshot** | 30 credits, full design studio + API, no card | Credits are one-time; publishing accounts are paid | Two things worth knowing before you pick a free plan. First, **Later no longer has one** — it's a 14-day trial now, despite what most 2025-era listicles still say. Second, if you want a fully **open source social media automation** setup, Postiz is the one to look at: self-host it and the scheduling side costs nothing, then pair it with whatever creates your content. The free-plan trap for content creators is that every one of these caps the *scheduling*, but none of them help with the part that actually eats your week — making the graphics. That's the workflow Orshot's free tier covers: generate the visuals from a template, then post them wherever your scheduler (or ours) lives. ## What to Look For in Social Media Automation Software Not all automation software is built the same. Here's what actually matters when choosing a platform for automating social media: ### Multi-Platform Support Make sure the tool supports every platform you're active on — Instagram, Facebook, X, LinkedIn, TikTok, YouTube, Pinterest, and emerging networks like Threads and Bluesky. Managing everything from one dashboard is the whole point. **Tools that support this:** [Orshot](#1-orshot--automate-visual-creation--social-posting) (15+ platforms), [Hootsuite](#3-hootsuite--enterprise-social-media-management), [Buffer](#2-buffer--simple-social-media-scheduling), [Later](#4-later--visual-first-social-media-scheduler), [Sprout Social](#5-sprout-social--social-media-analytics--engagement), [Metricool](#11-metricool--social-media-analytics-and-scheduling) ### Content Creation, Not Just Scheduling Most tools handle scheduling well. The differentiator is whether the tool helps you **create** the content too. Look for built-in design tools, template systems, or AI-powered content generation that reduces the time between idea and published post. If creation is the bottleneck, our roundup of [tools to automate content creation](https://orshot.com/blog/automated-content-creation-tools) goes deeper. AI generators like Predis.ai sit at the other extreme — they write and design the post for you, but you give up control of the layout and end up hand-fixing every batch. Our [Predis.ai alternative breakdown](https://orshot.com/blog/predis-ai-alternative) covers that trade-off. **Tools that support this:** [Orshot](#1-orshot--automate-visual-creation--social-posting) (template-based visual generation + API), [SocialBee](#6-socialbee--content-category-based-scheduling) (AI captions + Canva integration), [Buffer](#2-buffer--simple-social-media-scheduling) (AI assistant), [Hootsuite](#3-hootsuite--enterprise-social-media-management) (OwlyWriter AI) ### Analytics and Reporting You need to know what's working. Look for engagement metrics, best-time-to-post suggestions, competitor benchmarking, and exportable reports you can share with clients or stakeholders. **Tools that support this:** [Sprout Social](#5-sprout-social--social-media-analytics--engagement), [Hootsuite](#3-hootsuite--enterprise-social-media-management), [Metricool](#11-metricool--social-media-analytics-and-scheduling), [Sendible](#10-sendible--agency-focused-social-media-tool), [Later](#4-later--visual-first-social-media-scheduler) ### Team Collaboration and Approvals If multiple people touch your social content, you need approval workflows, role-based permissions, and shared content calendars. This prevents off-brand posts from going live and keeps everyone aligned. **Tools that support this:** [Loomly](#9-loomly--collaborative-social-media-calendar), [Sprout Social](#5-sprout-social--social-media-analytics--engagement), [Hootsuite](#3-hootsuite--enterprise-social-media-management), [Sendible](#10-sendible--agency-focused-social-media-tool), [Publer](#7-publer--bulk-scheduling-and-automation) ### API and Integration Support For advanced automation, check whether the tool offers a REST API, webhook support, or integrations with tools you already use — CRMs, eCommerce platforms, no-code tools like Make and Zapier, or custom internal systems. **Tools that support this:** [Orshot](#1-orshot--automate-visual-creation--social-posting) (REST API + Make/n8n integrations), [Hootsuite](#3-hootsuite--enterprise-social-media-management), [Sprout Social](#5-sprout-social--social-media-analytics--engagement), [Buffer](#2-buffer--simple-social-media-scheduling) --- ## The Real Problem with Most Social Media Automation Tools Here's what none of the scheduling tools on this list solve: **creating the visuals**. Every social media automation platform assumes you show up with finished graphics. But the actual bottleneck for most teams isn't scheduling — it's producing the content in the first place. You need: - Product banners resized for Instagram, Facebook, LinkedIn, and Pinterest - Quote graphics for X and Threads - Promo carousels for Instagram and TikTok - Event announcements across every channel - Seasonal campaign creatives — new versions every week Doing this manually in Canva or Figma doesn't scale. Hiring a designer for every variation gets expensive fast. And generic AI image generators produce outputs that don't match your brand. That's exactly why [Orshot](https://orshot.com/) combines **design automation** with **social publishing**. Instead of using one tool to create visuals and another to schedule them, the entire pipeline runs in one place: 1. Design a template once 2. Generate hundreds of variations from your data 3. Publish directly to 15+ platforms No exporting. No uploading. No separate scheduler subscription — accounts connect inside Orshot at a flat $12/month each, unlimited posts. **If your biggest social media problem is producing enough on-brand content** — not just scheduling what you already have — that's the pipeline Orshot was built for. **Automate the content, not just the calendar** — Design a template once, generate every variation from your data, and post to 15+ platforms. 30 free credits, no card. [Start free](https://orshot.com/signup?via=blog-smat-bottom) --- **Q: What is the best social media automation tool?** The best platform for automating social media depends on your specific needs. For teams that need both visual content creation and social posting in one place, Orshot is the most complete solution — it generates on-brand marketing visuals at scale and publishes them to 15+ platforms. For pure scheduling, Buffer is the simplest option. For enterprise teams needing analytics and social listening, Sprout Social or Hootsuite are strong choices. **Q: How do I automate my social media?** Start by choosing an automation tool that supports your platforms. Then: (1) create or upload your content, (2) schedule posts for optimal times using the tool's recommendations, (3) set up cross-platform publishing so one post goes to multiple networks, and (4) use analytics to track what's working. For fully automated pipelines, tools like Orshot let you generate visuals from templates via API and publish them — all in a single step. **Q: Can I post to all social media platforms at once?** Yes. Most social media automation tools support cross-platform publishing: you write one post and the tool publishes it to all selected networks simultaneously, applying each platform's settings. Orshot supports 15+ platforms including Instagram, Facebook, X, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Threads, Bluesky, Telegram, Snapchat, Discord, WhatsApp, and Google Business. **Q: What's the difference between social media automation and social media management?** Social media management is the broader discipline — strategy, content creation, community management, reporting, and advertising. Social media automation is a subset focused on using tools to handle repetitive tasks like scheduling posts, recycling evergreen content, generating reports, and auto-responding to common messages. Automation handles the execution so you can focus on strategy. **Q: Are social media automation tools worth it?** Yes, if you're posting on more than one platform or publishing more than a few times per week. Scheduling alone gives most teams hours back every week. Tools that also handle content creation — like generating visual variations from templates — multiply those savings significantly. Even free-tier plans from tools like Buffer, Pallyy, and Metricool provide enough value to justify the setup. **Q: Is there a free social media automation tool?** Several tools offer free plans: Buffer (3 channels), Pallyy (1 social set, 15 posts/mo), Metricool (1 brand, 20 posts/mo), and Publer (3 accounts). Postiz is open source, so self-hosting it is free. Later discontinued its free plan — it's a 14-day trial now. Orshot offers 30 free credits with no card required, so you can generate and publish visuals before committing to a paid plan. Generate the visuals, post to 15+ platforms. 30 credits, no card. [Try Orshot free](https://orshot.com/signup?via=blog-smat-footer) --- ### [12 Best AI Marketing Platforms in 2026 (Tested by Use Case)](https://orshot.com/blog/best-ai-marketing-platforms) > The lesser-known AI marketing tools I actually use, like Clay, Firecrawl and Orshot, wired to Claude into one marketing automation brain I've lost whole afternoons to the question every marketer eventually asks: _which AI marketing platform is actually worth it?_ On Reddit it shows up the same way every time. Someone lists Ocoya, SocialBee, Hootsuite, Bannerbear, AdCreative, then asks, _"they all do parts, but not all, am I wrong?"_ Another marketer posts: _"I have 35 social media post topics and I want to create 220 designs from those in different formats."_ Two real problems hide in those threads: - **Tool fragmentation.** Every tool does a slice, and nothing does the whole job. - **The volume bottleneck.** Turning ideas into on-brand assets at scale is still mostly manual. Most "best AI marketing tools" lists don't help here, because they all name the same ten tools (ChatGPT, Jasper, Surfer, Canva) and skip the part that actually moves the needle: **connecting those tools so they run without you.** So I built this list differently. ## How I picked these Four rules: - **Useful right now in 2026.** No dead tools, no "AI" sticker on a 2019 product. - **Has an API or an MCP server,** so it can be automated and wired into an AI agent, not just clicked. - **Lesser-known where it earns it.** Fewer ChatGPT clones, more tools you'll be glad someone told you about. - **A real credibility signal:** funding, usage, or ratings. No vaporware. One disclosure up front: **Orshot is my product,** and I build it. That's exactly why it sits at #2 and not #1, and why I'll be straight about where it fits and where it doesn't. Honest framing matters more than the ranking. The thread running through the whole list is **MCP**, the Model Context Protocol. It's the open standard that lets [Claude](https://claude.com "target=_blank rel=nofollow") connect to a tool, read its data, and act on it. Nine of these twelve expose an MCP server, which is what turns a pile of point tools into something that behaves like one platform. ## The 12 at a glance | Tool | What it does | MCP | Free tier | | :-- | :-: | :-: | :-: | | [Claude](#t-claude) | Orchestrator / reasoning | Yes | Yes | | [Orshot](#t-orshot) | Visual & creative automation | Yes | Yes | | [Peec AI](#t-peec) | AI-search (GEO) visibility | Yes | No | | [Clay](#t-clay) | Lead data enrichment | Yes | Yes | | [AirOps](#t-airops) | AI content & SEO workflows | Yes | Yes | | [Firecrawl](#t-firecrawl) | Web data for AI | Yes | Yes | | [Blotato](#t-blotato) | Social & video automation | Yes | Yes | | [Autosend](#t-autosend) | Email + lifecycle automation | Yes | No | | [PostHog](#t-posthog) | Product & marketing analytics | Yes | Yes | | [Creatify](#t-creatify) | AI video ad creative | Community | Yes | | [Common Room](#t-commonroom) | Buyer-signal intelligence | Yes | No | | [Gumloop](#t-gumloop) | No-code AI workflows | Yes | Yes | --- ## 1. Claude: the orchestrator that runs the rest [Link ↗](https://claude.com "target=_blank rel=nofollow") ![Claude homepage by Anthropic](https://orshot.com/blog/best-ai-marketing-platforms/shot-claude-app.webp) Most lists treat Claude as "an AI writing assistant." That undersells it badly. The reason Claude is #1 is **MCP**. Connect it to your tools and it stops being a chatbot and starts being the brain of your stack. It reads your real data and acts on it. A few things I actually do with it: - _"Why did signups dip last week?"_ → it queries my **PostHog** analytics over MCP, pulls the keywords that lost rank in **Ahrefs**, and writes the brief. - _"Draft the launch announcement and the three ad headlines"_ → done, in my voice. - _"Render the launch creative in five sizes"_ → it hands that job to Orshot (more on that next). Not just that, you can use it via the Claude Desktop app, as well as Claude Code in the CLI, which is my favourite. That's the shift: one tool that _decides_, plugged into many tools that _do_. - MCP client that connects to almost every tool on this list - Genuinely strong reasoning and long-form writing - Claude Code automates multi-step marketing workflows - Reads live data (analytics, SEO, CRM) and acts on it Cons: - It's the brain, not the hands, so it needs other tools to ship assets - Wiring up MCP servers has a small learning curve - Best results come from clear, well-specified prompts - **Agentic reasoning**: Extended thinking for multi-step tasks and research - **MCP client**: Connects out to PostHog, Ahrefs, Orshot, and hundreds more - **Claude Code**: Agentic, automatable workflows from the terminal - **Web search + memory**: Pulls current data and remembers context across chats - **Code execution & files**: Runs code and creates documents inline **MCP role:** Claude is the MCP _client_. It connects out to other tools' servers, so there's no URL to plug in; you add connectors inside Claude or Claude Code. **Best for:** Anyone who wants one AI to plan, analyze, and trigger the rest of their stack instead of bouncing between ten dashboards. **Entry price:** Free; Pro $20/mo. --- ## 2. Orshot: the visual layer most lists skip Almost every "AI + visuals" pick out there means _generating_ a picture (Midjourney, DALL·E, [Canva](https://orshot.com/blog/free-canva-alternatives "target=_blank")). None of them solve the _"35 topics → 220 designs"_ problem from that Reddit thread: turning content into hundreds of on-brand, format-correct assets, automatically. That's exactly what Orshot does. You design once, then render every variation through an API, or let Claude do it for you over MCP. This is one ad template, rendered into three sizes in a single call. No redesign, no re-spend: ![Coaching ad designed in Orshot, rendered as a 1080x1080 square Instagram post](https://orshot.com/blog/best-ai-marketing-platforms/orshot-ad-square.webp) ![The same ad template auto-resized to a 1080x1920 Instagram Story via Orshot Smart Resize](https://orshot.com/blog/best-ai-marketing-platforms/orshot-ad-story.webp) ![The same ad template auto-resized to a 1200x630 Open Graph image via Orshot Smart Resize](https://orshot.com/blog/best-ai-marketing-platforms/orshot-ad-og.webp) Swap the headline and product, and that's your next campaign: image, PDF, or video, from the same design. The AI Template Generator even builds the starting template from a prompt, and you can turn a [Figma file into an API endpoint](https://orshot.com/solutions/figma-automation-via-rest-api "target=_blank") if you've already designed it. Built it in Canva instead? You can [bring a Canva template in via API](https://orshot.com/solutions/canva-template-to-api "target=_blank") too. The Claude connection is the fun part: connect [Orshot's MCP server](https://orshot.com/agents "target=_blank") and you can tell Claude _"render the spring sale ad in five sizes and drop them in our bucket"_, and it does, on a webhook or a schedule, no clicks. - Design once, render thousands of on-brand variants via API - One design → every size automatically (Smart Resize) - Image, PDF, and video from a single template - Connects to Claude (MCP), Zapier, Make, and n8n - Free tier with no credit card Cons: - Not a generative idea tool; you bring the design direction - Built for teams who value brand control over one-click magic - Most powerful once you're automating, not for a single one-off graphic - **AI Template Generator**: Describe a design and get an editable, on-brand template - **Design Agent**: AI builds and edits designs for you in Studio - **Smart Resize**: One design deterministically re-laid-out to any canvas - **Multi-format output**: PNG, PDF, MP4, WebM, GIF from the same template - **MCP + API + automation nodes**: Wire it into Claude, Zapier, Make, or n8n **MCP server:** `https://mcp.orshot.com/mcp` **Best for:** Marketing and content teams who already know their look and need on-brand creative produced at scale, automatically. It's the design layer Claude can drive, the [graphic design tool](https://orshot.com/blog/ai-tools-for-graphic-design-with-mcp) to scale your marketing on autopilot. **Workflow:** A row lands in Airtable → Claude (or n8n) calls Orshot → the on-brand ad renders in every size → it's posted. No designer in the loop. [**See Orshot pricing →**](https://orshot.com/pricing "target=_blank"). Free tier, no card. --- ## 3. Peec AI: get your brand cited inside ChatGPT and Perplexity [Link ↗](https://peec.ai "target=_blank rel=nofollow") ![Peec AI homepage, AI search visibility tracking](https://orshot.com/blog/best-ai-marketing-platforms/shot-peec.webp) This is the "oh, I hadn't heard of that" pick, and the category (**GEO**, generative engine optimization) is the fastest-moving one in marketing right now. Your buyers increasingly ask ChatGPT, Perplexity, and Gemini for recommendations. Peec AI tracks whether _your_ brand shows up in those answers, who's beating you, and which sources the models cite. - Tracks brand share-of-voice across ChatGPT, Perplexity, Gemini - Shows which sources LLMs cite so you can earn placements - The affordable alternative to enterprise GEO tools Cons: - No public free tier; it's a paid product - GEO is new; you're measuring a moving target **MCP server:** `https://api.peec.ai/mcp` **Best for:** Teams who want to start ranking in AI answers before their competitors notice the channel exists. **Workflow:** Have Claude pull your weekly Peec share-of-voice over MCP and draft the content brief to close the biggest citation gap. **Entry price:** Paid plans only (no public free tier). --- ## 4. Clay: the enrichment brain for outbound [Link ↗](https://www.clay.com "target=_blank rel=nofollow") ![Clay homepage, GTM data enrichment](https://orshot.com/blog/best-ai-marketing-platforms/shot-clay.webp) Clay is getting well-known now ($3.1B valuation will do that), but the way it pairs with Claude still feels like a secret. It takes a thin list of leads and enriches it through 150+ data providers, then runs AI research agents ("Claygent") to answer questions a human SDR would have to dig for. - Waterfall enrichment across 150+ providers in one row - Claygent AI agents research accounts automatically - Natural-language search across 50M+ companies Cons: - Genuinely powerful means a real learning curve - Costs add up fast once you scale enrichment credits **MCP server:** Official, via the Claude connector directory (note: `mcp.clay.earth` is a _different_ company, so don't use it). **Best for:** B2B teams whose outbound lives or dies on data quality. **Workflow:** Claude reads an enriched Clay table over MCP and writes a personalized first line per account, with no copy-paste between tools. **Entry price:** Free plan (500 actions/mo); paid from $167/mo. --- ## 5. AirOps: AI content and SEO workflows that actually ship [Link ↗](https://www.airops.com "target=_blank rel=nofollow") ![AirOps homepage, AI content and SEO workflows](https://orshot.com/blog/best-ai-marketing-platforms/shot-airops.webp) AirOps is the one content-ops tool I found with a real, native MCP server, which is why it's here over the usual Surfer/Jasper picks. It chains LLMs, your data, and SEO steps into repeatable workflows: think "research → outline → draft → optimize → publish," running as a grid instead of a chat. - Multi-step AI content + SEO workflows, not one-off prompts - Tracks visibility across ChatGPT, Perplexity, Gemini (AEO) - RAG over your own knowledge base for on-brand output Cons: - Overkill if you just need a single blog draft - Most valuable for teams publishing at volume **MCP server:** `https://app.airops.com/mcp` **Best for:** Content and SEO teams scaling [automated content creation](https://orshot.com/blog/automated-content-creation-tools "target=_blank") without losing brand voice. **Workflow:** Trigger an AirOps content workflow from Claude, then route the finished post's social cards to Orshot for the visuals. **Entry price:** Free "Insights" tier (1,000 tasks). --- ## 6. Firecrawl: clean web data your AI can actually read [Link ↗](https://www.firecrawl.dev "target=_blank rel=nofollow") ![Firecrawl homepage, web scraping API for AI](https://orshot.com/blog/best-ai-marketing-platforms/shot-firecrawl.webp) Firecrawl is infrastructure, but it sits under a huge amount of marketing AI. It turns any URL or whole site into clean, LLM-ready markdown. Why a marketer cares: it's how you feed Claude real competitor pages, pricing tables, or research, without copy-pasting messy HTML. - Any site → clean markdown or structured JSON - Full-site crawl with depth and filters - 43k+ GitHub stars; powers tools you already use Cons: - It's a building block, not a finished marketing app - Credit tiers shift, so check current pricing **MCP server:** `https://mcp.firecrawl.dev/v2/mcp` **Best for:** Anyone using Claude for competitor research, content repurposing, or programmatic SEO. **Workflow:** Ask _"Scrape these 10 competitor pricing pages and summarize how we compare."_ Claude calls Firecrawl over MCP, and you read the answer instead of the HTML. **Entry price:** Free (1,000 credits/mo). --- ## 7. Blotato: the auto-publish layer for short-form [Link ↗](https://www.blotato.com "target=_blank rel=nofollow") ![Blotato homepage, social and video automation](https://orshot.com/blog/best-ai-marketing-platforms/shot-blotato.webp) Blotato is the hidden "publish" endpoint of the faceless-video and short-form scene. It generates posts and pushes them to 9+ platforms. It pairs naturally with Orshot: **render the creative in Orshot, publish it through Blotato.** That combination solves the fragmentation complaint by wiring design and distribution together. - Auto-publish to 9+ social platforms - AI post generation trained on 1M+ viral posts - Repurposes one video into tweets, carousels, blogs Cons: - Newer and smaller than the big schedulers - AI-generated copy still needs a human pass **MCP server:** `https://mcp.blotato.com/mcp` **Best for:** Solo marketers and creators running high-volume social without a full social team. **Workflow:** Orshot renders the carousel → Blotato schedules it across [tweet-to-Instagram](https://orshot.com/blog/automate-tweet-to-instagram "target=_blank") style cross-posting → Claude writes the captions. **Entry price:** $29/mo (7-day trial). --- ## 8. Autosend: email marketing an AI agent can run [Link ↗](https://autosend.com "target=_blank rel=nofollow") ![Autosend homepage, email marketing automation](https://orshot.com/blog/best-ai-marketing-platforms/shot-autosend.webp) This is the one I actually use for Orshot's email, so call my bias upfront. It still belongs here. Autosend handles transactional _and_ marketing email, and it's built to be driven by an AI agent. Here's the part that makes it click in a Claude-centred stack: its **MCP server lets you create email templates and even send test emails** straight from a prompt. You draft, preview, and QA a whole campaign in plain language before a single real send goes out, which makes it genuinely good for handling email marketing end to end. - MCP lets Claude create templates and send test emails - Transactional + marketing email in one tool - Markdown templates with variables and conditional logic - Indie-friendly, volume-based pricing Cons: - Newer and leaner than the big ESPs - Lighter on drag-and-drop visual campaign building **MCP server:** `https://mcp.autosend.com` **Best for:** Teams who want email marketing (templates, test sends, and campaigns) handled end-to-end by an AI agent. **Workflow:** Claude drafts a re-engagement campaign, generates the header in Orshot, then builds the template and fires a test email in Autosend, and only sends for real once I approve it. **Entry price:** Hobby from $1/mo (3,000 transactional emails); $5/mo adds marketing + 1,000 contacts. --- ## 9. PostHog: the analytics Claude reads to make decisions [Link ↗](https://posthog.com "target=_blank rel=nofollow") ![PostHog homepage, product and marketing analytics](https://orshot.com/blog/best-ai-marketing-platforms/shot-posthog.webp) I'll be transparent: we use PostHog ourselves. It belongs here anyway, because of the MCP server. Claude can query your product and marketing data in plain English. This is what closes the loop with #1: Claude doesn't guess what's working, it _asks your data_. - Natural-language analytics over your real data (MCP) - Product analytics, session replay, and flags in one - Genuinely generous free tier Cons: - Broad surface area can feel like a lot at first - Marketing attribution isn't its primary focus **MCP server:** `https://mcp.posthog.com/mcp` **Best for:** Builder-led teams who want analytics an AI can actually interrogate. **Workflow:** Ask _"Which landing page converts best this month, and why?"_ Claude queries PostHog over MCP and writes the takeaway. **Entry price:** Free tier (1M events/mo, no card). --- ## 10. Creatify: AI video ads from a product URL [Link ↗](https://creatify.ai "target=_blank rel=nofollow") ![Creatify homepage, AI video ad creative](https://orshot.com/blog/best-ai-marketing-platforms/shot-creatify.webp) The ad-creative category is wide open for automation, and Creatify is the strongest pick in it. Drop in a product link and it returns a ready UGC-style video ad. This is also where I keep my promise to be honest about MCP: Creatify's is **community-built**, not official. Useful, but don't treat it as first-party. - URL → finished video ad - 800+ AI avatars, plus cloning - Batch up to 50 ad variations Cons: - MCP is community-built, not official - AI avatars still read as AI to some audiences **MCP server:** `npx -y creatify-mcp` (community-built) **Best for:** Performance marketers who need a constant stream of video ad variations to test. **Workflow:** Creatify generates the video hooks; Orshot renders the matching static and Story versions so every format is covered. **Entry price:** Free (10 watermarked credits/mo); paid from ~$33/mo. --- ## 11. Common Room: know who's ready to buy [Link ↗](https://www.commonroom.io "target=_blank rel=nofollow") ![Common Room homepage, buyer-signal intelligence](https://orshot.com/blog/best-ai-marketing-platforms/shot-commonroom.webp) Common Room is the lesser-known pick for the "signals" category. It captures buying signals from 50+ sources and enriches them, so you act on intent instead of cold lists. - Buyer-signal intelligence across 50+ sources - Query your buyer data via AI assistants (MCP) - Differentiated 'signals + enrichment' angle Cons: - Enterprise-priced, with no free tier - Overkill for very small teams **MCP server:** `https://mcp.commonroom.io/mcp` **Best for:** Revenue teams who want to reach accounts at the moment they show intent. **Workflow:** Claude pulls fresh buying signals from Common Room and drafts the right outreach for each account. **Entry price:** Enterprise (no free tier). --- ## 12. Gumloop: the no-code glue for the whole stack [Link ↗](https://www.gumloop.com "target=_blank rel=nofollow") ![Gumloop homepage, no-code AI workflows](https://orshot.com/blog/best-ai-marketing-platforms/shot-gumloop.webp) Gumloop is where you wire the rest together without writing code. It's a node-based canvas to chain LLMs, scrapers, and tools, with a meta-agent ("Gummie") that builds the workflow from a prompt. If Claude is the brain and the others are the hands, Gumloop is the nervous system for the no-code crowd. - No-code canvas to chain AI, data, and tools - Pick the model per node (Claude, GPT, Gemini) - 'Gummie' builds workflows from a description Cons: - Its MCP URL is per-account (not a public endpoint) - Power-user features take time to master **MCP server:** Per-account URL from your dashboard (not public). **Best for:** Teams who want automation power without living in code. **Workflow:** A Gumloop flow watches a form, enriches the lead in Clay, generates the welcome graphic in Orshot, and emails it via Autosend. **Entry price:** Free (5,000 credits); Pro from $37/mo. --- ## How they fit together Notice the pattern: this isn't twelve separate subscriptions you babysit. It's a **stack with a brain.** - **Claude** decides and orchestrates. - **Orshot** produces the visuals. - The other ten feed it data, content, distribution, and signals, most over the same MCP standard. That's the answer to the Reddit complaint that started this post. You don't find one tool that "does it all." You wire best-of-breed tools together so they behave like one, and Claude is what makes that practical in 2026. If you run this for clients, it's the backbone of [AI marketing automation](https://orshot.com/solutions/ai-marketing-automation-for-agencies "target=_blank"), with one operator driving many accounts. With the right tools, and a brain that connects them and automates the busywork, you can scale in pretty much any marketing vertical. ## Common questions **Q: What is an AI marketing platform, really?** In 2026 it's less a single all-in-one app and more an orchestration layer. The most capable setup is an AI like Claude that connects to specialized tools (analytics, SEO, creative, email) over MCP, and runs workflows across them. That beats any single suite that tries to do everything at a mediocre level. **Q: What is MCP and why does it matter here?** MCP (the Model Context Protocol) is an open standard that lets an AI assistant connect to an external tool, read its data, and take actions. It's why Claude can pull your PostHog analytics, scrape with Firecrawl, or render in Orshot from a single prompt. Nine of the twelve tools on this list expose an MCP server. **Q: Why is Orshot ranked #2 and not #1?** Because I build Orshot, and putting your own product first reads as exactly what it is. Claude is genuinely the better #1, since it's the orchestrator the rest plug into. Orshot is the visual-automation arm it drives, and that's the slot most 'AI marketing' lists leave empty. **Q: Do I need all twelve?** No. Start with Claude plus the two or three tools that match your biggest bottleneck: creative (Orshot), analytics (PostHog), or data (Clay/Firecrawl). The point is wiring a few great tools together, not collecting subscriptions. **Q: How does Orshot fit a Claude-centred stack?** Connect Orshot's MCP server and Claude can render on-brand images, PDFs, and video on command, with one design resized to every format, triggered by a webhook, a schedule, or a sentence. It's the design layer that turns 'we have 35 topics' into 220 finished assets without a designer in the loop. ## Bottom line The best AI marketing platform in 2026 isn't a single app. It's **Claude orchestrating a handful of sharp, MCP-connectable tools.** Pick your brain (Claude), wire in the tools that fix your worst bottleneck, and let them run. If that bottleneck is visual creative, the one almost every list ignores, that's the exact job Orshot was built for. [**Get started with Orshot →**](https://orshot.com/pricing "target=_blank"). Free tier, no credit card. --- ### [8 Best Image Generation APIs Compared](https://orshot.com/blog/template-based-image-generation-tools) > A side-by-side comparison of 8 image generation APIs for template automation. Compare pricing, video support and embeddable editors to pick the right one. If you need to generate images programmatically — social graphics, certificates, product banners, OG images — you need an [image automation API](https://orshot.com/solutions/image-generation-api) built for template automation. Not an AI art generator. Not Midjourney. A system where you design a template once, then call an API with dynamic data and get a pixel-perfect image back every time. I've used most of these tools while building [Orshot](https://orshot.com), and I've talked to enough teams making the switch to know what actually matters: editor quality, per-image pricing, integration options, and whether the thing works reliably at scale. **TL;DR** — No single best image API. Pick what matters most and I'll point you to the right one: - **Images, PDFs and video in one plan**: [Orshot](#2-orshot) — $39/mo for 1,500 credits, and one credit pool covers images, PDF pages and video seconds from the same template. Embeddable editor, social publishing and an MCP server included. - **Ad creatives in many sizes**: [Abyssale](#1-abyssale) — A multi-format editor built for adapting one campaign across many ad sizes. The $15/mo Start plan is for in-app generation; API access starts on Pro at $45/mo ($36/mo billed annually). - **Most established**: [Bannerbear](#3-bannerbear) — Around since 2019 with the most docs and community examples. $49/mo for 1,000 renders, no multi-page, no embeddable editor. - **Video is the primary output**: [Creatomate](#5-creatomate) — Video-first with a timeline editor; images are the secondary format. Pick it when most of what you render is MP4. - **HTML/CSS template control**: [RenderForm](#6-renderform) — Visual and HTML/CSS template editors, plus a free API tier for 50 watermarked renders. No video generation. Pricing changes often, so confirm each vendor's current plan before you commit. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-image-api-tools-top) Here are the 8 best image generation APIs for template automation worth considering. ## Quick Comparison | Tool | API Price | Included Usage | Video | Multi-page | Embed Editor | Social Publish | AI | MCP | | :-- | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | [Abyssale](#1-abyssale) | $45/mo | 450 credits | MP4/GIF | Yes | No | No | Yes | No | | [Orshot](#2-orshot) | $39/mo | 1,500 credits | MP4/WebM/GIF | Yes | Yes | 15+ platforms | Yes | Yes | | [Bannerbear](#3-bannerbear) | $49/mo | 1,000 | Basic | No | No | No | No | No | | [Placid](#4-placid) | $19/mo | 500 | Yes | No | Yes | No | No | Yes | | [Creatomate](#5-creatomate) | $54/mo | 2,000 credits | Primary | No | No | No | No | No | | [RenderForm](#6-renderform) | Free | Limited | No | No | No | No | Yes | No | | [DynaPictures](#7-dynapictures) | $29/mo | 1,000 | No | Yes | No | No | No | No | | [Contentdrips](#8-contentdrips) | $39/mo | 1,000 API calls | No | Carousels | Yes | LinkedIn, IG | Yes | No | **1,500 credits for $39, covering images, PDFs and video** — Test it against your own volume before you move anything. [Start free](https://orshot.com/signup?via=blog-image-api-tools-comparison) ## 1. Abyssale ![Abyssale website screenshot](https://orshot.com/blog/image-api-tools/abyssale-screenshot.webp) [Abyssale](https://www.abyssale.com/ "target=_blank nofollow") focuses on ad creative automation — generating hundreds of banner variations across sizes and formats for paid campaigns. Their dynamic layout engine automatically adapts content to different aspect ratios, which is genuinely useful when you're running campaigns across Google, Meta, and display networks simultaneously. The editor is capable and the multi-size generation is where Abyssale really shines — you design one base creative and it outputs every format you need. They also support video output (MP4, GIF, HTML5) and multi-page documents for print. The in-app Start plan costs $15/mo for 150 credits ($12/mo billed annually), while API and no-code automation require Pro at $45/mo for 450 credits ($36/mo billed annually). Their AI ("Abyssale Intelligence") auto-adapts designs to different formats. The platform is less general-purpose than some alternatives — it's built for ad creative teams, and that focus shows in both the features and the limitations. No embeddable editor, no social publishing, no MCP server. If your workflow is "design one banner, output 20 sizes," Abyssale handles that better than most. For general-purpose template automation beyond ad creatives, you'll need something more flexible. **Pricing:** API access from $45/mo for 450 credits ($36/mo billed annually). The app-only Start plan is $15/mo for 150 credits ($12/mo annually). 14-day free trial with 30 credits, no card required. No permanent free tier. **Best for:** Performance marketing teams generating ad creatives across multiple sizes and platforms. [Read the full Abyssale comparison →](https://orshot.com/blog/abyssale-api-alternative) ## 2. Orshot ![Orshot website screenshot](https://orshot.com/blog/image-api-tools/orshot-screenshot.webp) Orshot is a template-based image, PDF and video generation API that pairs a visual editor (Orshot Studio) with a REST API. It's what I built after hitting limitations with the other tools on this list, so take this section with a grain of salt. Orshot is $39/month for 1,500 credits as of August 2026, roughly $0.026 per image. One credit is one image, one PDF page, or one second of video, all from the same pool. No separate video plan, no per-format add-on. The free tier is 30 credits with every feature unlocked, no card needed. - **Image, PDF and video from one template** — PNG, JPG, WebP, PDF, MP4, WebM and GIF, all covered by the same credit pool. - **Multi-page templates** — carousels and multi-page PDFs, with configurable margins, DPI and color modes. - **[Embeddable editor](https://orshot.com/features/orshot-embed)** — white-label Studio via React and Vue SDKs, so your users design inside your product on your domain. - **[Social publishing](https://orshot.com/features/social-publishing)** — post to 15+ platforms including Instagram, X, LinkedIn, TikTok and YouTube, so generate and publish happen in one workflow. - **[Social analytics](https://orshot.com/features/social-analytics)** — engagement and follower metrics per account and per post, and the best time to post, in the same place the content is made. - **[Built for AI agents](https://orshot.com/agents)** — a hosted MCP server that works with Claude, Cursor, ChatGPT and 30+ other agent clients, so an agent can render from your templates directly. An AI Design Agent generates new templates from a text prompt. - **No-code automation** — Make, Zapier, n8n, and Dynamic URLs that generate an image from a plain URL with query parameters and no API call at all. - **Template imports** — bring existing designs from [Canva](https://orshot.com/solutions/canva-template-to-api) and [Figma](https://orshot.com/solutions/figma-automation-via-rest-api) rather than rebuilding them by hand. One caveat: Orshot is younger than Bannerbear, so there's less third-party tutorial content and community example code to lean on when you get stuck. **Pricing:** $39/mo for 1,500 credits (1 credit = 1 image, 1 PDF page, or 1 video second), verified August 2026. Free tier with 30 credits, all features unlocked. **Best for:** Teams that need multi-format output (images, PDFs, videos) and integrations beyond just the REST API. **Build your first template in about two minutes** — 30 credits free, no card. Bring a Canva or Figma design, or start blank. [Open Studio](https://orshot.com/signup?via=blog-image-api-tools-orshot) ## 3. Bannerbear ![Bannerbear website screenshot](https://orshot.com/blog/image-api-tools/bannerbear-screenshot.webp) [Bannerbear](https://www.bannerbear.com/ "target=_blank nofollow") basically pioneered this category. You design templates in their editor, expose dynamic fields, then hit the API to generate images with your data. It's been around since 2019 and has the most documentation and community examples of any tool in the space, [[ref]](https://www.indiehackers.com/post/whats-your-review-of-bannerbear-d34c397757 "target=\_blank nofollow") ↗ The editor is functional but feels dated compared to newer tools. Where Bannerbear shows its age is pricing — $49/month gets you 1,000 renders, which gets expensive at volume. No multi-page templates, no video beyond basic overlays, no embeddable editor. Some users on Indie Hackers have noted it can feel "overkill" for single use cases like certificates when you're paying for features you don't use, [[ref]](https://www.indiehackers.com/post/whats-your-review-of-bannerbear-d34c397757 "target=\_blank nofollow") ↗ Still the most battle-tested option. If you've been using it and it works, there's no urgent reason to switch. But if you're starting fresh, the value isn't there anymore. **Pricing:** $49/mo for 1,000 renders. One-time trial with 30 API credits, no card required. **Best for:** Teams already invested in Bannerbear's ecosystem who need reliability above all else. [Read the full Bannerbear comparison →](https://orshot.com/blog/bannerbear-api-alternative) ## 4. Placid ![Placid website screenshot](https://orshot.com/blog/image-api-tools/placid-screenshot.webp) [Placid](https://placid.app/ "target=_blank nofollow") has arguably the most polished visual editor in this category. Templates ship with good defaults, and their Figma import actually works well. The no-code integrations (Zapier, Make, Airtable) are mature and well-documented. Placid is particularly popular for automating OG images and WordPress social graphics. The trade-off is pricing. $19/month sounds cheap until you realize that only gets you 500 credits. At scale, the per-image cost is higher than most alternatives. They've added video automation and an embeddable Editor SDK for white-labeling, plus an MCP server for AI agent integration. No multi-page templates though. If your volume is low and you care about editor polish above everything else, Placid is a good pick. Just do the math on credits before committing. **Pricing:** From $19/mo for 500 credits. Free tier available. **Best for:** Marketing teams generating low-to-medium volume visuals who want a polished design experience. [Read the full Placid comparison →](https://orshot.com/blog/placid-api-alternative) ## 5. Creatomate ![Creatomate website screenshot](https://orshot.com/blog/image-api-tools/creatomate-screenshot.webp) [Creatomate](https://creatomate.com/ "target=_blank nofollow") is the strongest option if video is your primary output. The editor handles motion design, keyframing, and timeline-based editing in ways that the image-first tools can't match. It also generates images and PDFs, so it's not video-only. Compared with Bannerbear's entry plan, Creatomate includes substantially more [video generation capacity](https://orshot.com/solutions/video-generation-api), [[ref]](https://creatomate.com/compare/bannerbear-alternative "target=\_blank nofollow") ↗ The learning curve is steeper than Bannerbear or Placid — the editor is powerful but less intuitive for simple image templates. Pricing uses a credit system ($54/mo for 2,000 credits) where video renders cost more credits than images, so your effective cost depends heavily on your output mix. If you need programmatic video generation alongside images, Creatomate is the answer. If you only need images, you're paying for video capabilities you won't use. **Pricing:** From $54/mo for 2,000 credits. Full-featured trial with 50 API credits, no card required. **Best for:** Teams whose primary need is automated video generation, with images as secondary output. [Read the full Creatomate comparison →](https://orshot.com/blog/creatomate-api-alternative) ## 6. RenderForm ![RenderForm website screenshot](https://orshot.com/blog/image-api-tools/renderform-screenshot.webp) [RenderForm](https://renderform.io/ "target=_blank nofollow") offers both a visual editor and HTML/CSS templates, giving developers more control over output than purely visual editors. The API is straightforward, and they have a decent free tier to test with. Over 500 bundled fonts is a nice touch. The visual editor is basic compared to Placid or Orshot — functional but not where you'd design anything complex. The HTML/CSS option is the real draw for developer teams who want pixel-perfect control without fighting a WYSIWYG editor. Worth noting: images generated on the free tier include a watermark, and render URLs expire after a set period on lower plans. **Pricing:** Free plan available. Paid plans for higher volume. **Best for:** Developer teams comfortable with HTML/CSS who want a hybrid visual + code approach to template creation. [Read the full RenderForm comparison →](https://orshot.com/blog/renderform-api-alternative) ## 7. DynaPictures ![DynaPictures website screenshot](https://orshot.com/blog/image-api-tools/dynapictures-screenshot.webp) [DynaPictures](https://dynapictures.com/ "target=_blank nofollow") is the simplest tool on this list. The value prop is straightforward: create a template, connect your data, generate images. It integrates with HubSpot, Mailchimp, and marketing automation platforms that the developer-focused tools often ignore. DynaPictures claims batch generation speeds of 200-300 milliseconds per image, [[ref]](https://dynapictures.com/blog/10-top-bannerbear-alternatives/ "target=\_blank nofollow") ↗ The editor is basic and there's no video generation, but they do support multi-page templates and PDF output — useful for LinkedIn carousels and batch documents. If you're a marketing team that needs personalized email banners or social graphics from CRM data, DynaPictures connects to your stack without requiring a developer to set up the API integration. Not the most feature-rich, but does one thing well and keeps it simple. **Pricing:** From $29/mo for 1,000 renders. Free trial available. **Best for:** Marketing teams using HubSpot or Mailchimp who need personalized visuals without touching code. [Read the full DynaPictures comparison →](https://orshot.com/blog/dynapictures-api-alternative) ## 8. Contentdrips ![Contentdrips website screenshot](https://orshot.com/blog/image-api-tools/contentdrips-screenshot.webp) [Contentdrips](https://contentdrips.com/ "target=_blank nofollow") started as a social media content tool and added an API later. The templates are specifically designed for LinkedIn, Twitter/X, and Instagram — carousels, quote cards, thread screenshots. It also has built-in scheduling and publishing to LinkedIn and Instagram, which most image generation APIs don't offer. They've added AI-powered design (generates carousels from prompts, matches your writing style) and a white-label Embed API for platforms that want to offer design tools to their users. The limitation is flexibility — the editor is opinionated about layout and styling, which makes it fast for social content but limiting for anything else. No certificate templates, no product banners, no general-purpose image automation. Good for social-first teams. Not a general-purpose image generation API. **Pricing:** REST API from $39/mo for 1,000 calls. The separate Contentdrips app starts at $15/mo; the API has a 10-call free tier. **Best for:** Content creators and social media managers who need quick, branded social graphics without design work. [Read the full Contentdrips comparison →](https://orshot.com/blog/contentdrips-api-alternative) --- ## When to Use What - **You need the cheapest API entry point** → RenderForm (50 free watermarked renders; paid credits from $9) - **You need breadth at the price** → Orshot ($39/mo for 1,500 credits covering images, PDFs, and video) - **Video is your primary output** → Creatomate - **You want the prettiest editor** → Placid - **You're already on Bannerbear and it works** → Stay on Bannerbear - **You want HTML/CSS template control** → RenderForm - **You're in HubSpot/Mailchimp and need personalized banners** → DynaPictures - **You only make social content** → Orshot or Contentdrips - **You need images, PDFs, videos, carousels and social publishing from one tool** → [Orshot](https://orshot.com/pricing) **Not sure yet? Run your real templates through it** — 30 free credits is enough to rebuild a template and compare the output. [Start free](https://orshot.com/signup?via=blog-image-api-tools-decision) **Q: What is an image generation API for template automation?** An image generation API for template automation lets you create images programmatically by sending data to a template via a REST API call. You design a template once with dynamic fields (text, images, colors), then generate unlimited variations by passing different data. It's used for social media graphics, certificates, product banners, OG images, invoices, and any visual that needs to be created at scale without manual design work. **Q: How is a template-based image generation API different from AI image generators like Midjourney?** Template-based APIs produce deterministic, pixel-perfect output — same template, same data, same result every time. You control the exact layout, fonts, colors, and positioning. AI image generators create unique artistic images from text prompts, but you can't guarantee consistency or brand compliance. Use template-based APIs when you need reliable, branded visuals at scale. Use AI generators when you need creative, one-off illustrations. **Q: Which image generation API is the cheapest?** RenderForm has the lowest API entry price: 50 free watermarked renders, then paid credits from $9. Orshot offers strong value at $39/month for 1,500 credits (~$0.026/image, with the same credits covering PDFs and video). Abyssale's API-capable Pro plan is $45/month for 450 credits ($0.10/credit), Bannerbear is $49/month for 1,000 credits ($0.049/credit), and Placid starts at $19/month for 500 credits ($0.038/credit). At scale, Orshot's per-credit price drops to under a cent — typically 2-5x cheaper per image than alternatives. **Q: Can I generate PDFs and videos with these APIs, or just images?** Orshot generates images (PNG, JPG, WebP), PDFs, and videos (MP4, WebM, GIF) from the same template. Creatomate is video-first and also handles images. Abyssale supports MP4, GIF, and HTML5 video. Placid has added video automation. Bannerbear has basic video overlays. DynaPictures supports multi-page PDFs. RenderForm and Contentdrips are primarily image-only. **Q: Do I need coding skills to use an image generation API?** Not necessarily. Most tools on this list integrate with no-code platforms like Zapier, Make, and n8n. You can set up automated image generation from Google Sheets, Airtable, or a CRM without writing any code. Orshot also supports Dynamic URLs, which let you generate images by simply constructing a URL with parameters — no API calls required. For more control, all these tools provide REST APIs with SDKs in popular languages. **Q: Which API is best for generating social media graphics automatically?** Orshot and Bannerbear are the two strongest options for automated social graphics. Orshot adds built-in social publishing to 15+ platforms (Instagram, X, LinkedIn, TikTok, etc.), so you can generate and post in one step. Contentdrips has built-in scheduling for LinkedIn and Instagram but less template flexibility. For a full automation workflow — data source to generated graphic to published post — Orshot with Make or Zapier covers the entire pipeline. **Q: Can I import my existing Canva or Figma templates?** Orshot supports both Canva and Figma imports. You can clone a Canva design directly or use the Orshot Figma Plugin to import from Figma. Placid supports Figma import. Most other tools require you to recreate templates from scratch in their editor. **Q: What about self-hosting or open-source alternatives?** If you want full control, Puppeteer or Playwright can render HTML/CSS to images using a headless browser — but you own the infrastructure, scaling, and font management. Satori (by Vercel) generates images from JSX but only supports a CSS subset. These are free but require significant developer time to set up and maintain. The hosted APIs on this list trade a monthly fee for zero infrastructure overhead. --- ### [A 2x cheaper Bannerbear Alternative with 10x more features](https://orshot.com/blog/bannerbear-api-alternative) > Switch from Bannerbear to Orshot. Save up to 50% on image generation. Multi-page Videos, PDFs, Canva/Figma import, native workflows. 30 free credits to start. Bannerbear more or less created this category — automated image generation via API — and it's still a solid product. If you're on it today, though, you've probably noticed the pricing adds up fast, and there are features you keep wishing it had. I built Orshot because I ran into these exact limitations. Started as a side project, turned into something that actual teams use daily. Same core idea as Bannerbear (turn templates into API endpoints), but with the stuff I wish Bannerbear had. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-bannerbear-top) **Migrate from Bannerbear to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Bannerbear API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ![Orshot Studio: layers panel, canvas, styles sidebar, and a video timeline, with Automate, Publish and Smart Resize in the toolbar](https://orshot.com/home/new/orshot-studio-new.webp) ## What's Different If you're already on Bannerbear, here's what changes when you switch: | Feature | Orshot | Bannerbear | | :------------------------------ | :------------------------------------------------------------------------ | :--------------------- | | **Starting price** | \$39/month for 1,500 credits (~25 video mins) | \$49/month for 1,000 | | **Cost per image, base plan** | \$0.026 | \$0.049 | | **Next tier up** | \$99/month for 5,000 credits (~83 video mins) | \$149/month for 10,000 | | **Free tier** | 30 credits, every feature included | One-time 30-credit trial, features limited | | **Native automation workflows** | [Built in](https://orshot.com/workflows), with triggers and destinations | Through Zapier or Make | | **Social publishing** | [Built in, 15+ platforms](https://orshot.com/docs/publish/introduction) | No | | **Carousels & multi-page** | Yes, one template exports carousel, PDF or video | No | | **Video generation** | Timeline, per-layer animation, audio tracks, auto-subtitles, MP4/WebM/GIF | Basic | | **Template creation** | [Clone from Canva](https://orshot.com/solutions/canva-template-to-api), Figma import, or AI | Manual | | **White-labeled editor** | Yes, embed it in your own product | No | | **Integrations** | n8n, Zapier, Make, Pipedream, MCP server, Dynamic URLs | Zapier, Make, n8n | ## Bannerbear Pricing in 2026 (and How Orshot Compares) Bannerbear runs three plans — Automate, Scale and Enterprise — all billed monthly, with no annual option. Here's their ladder against the closest Orshot plan (they also sell 30,000 credits at \$247 and a 500,000-credit Enterprise tier at \$617, which I've left out for space). Prices checked against bannerbear.com/pricing in July 2026: | Bannerbear plan | Bannerbear | Closest Orshot plan | Orshot | Orshot video | | ----------------------------- | ---------- | ----------------------- | ---------- | ------------ | | Automate · 1,000 credits | \$49 | Launch · 1,500 credits | **\$39** | ~25 mins | | Scale · 10,000 credits | \$149 | Grow · 20,000 credits | \$160 | ~333 mins | | Scale · 20,000 credits | \$198 | Grow · 20,000 credits | **\$160** | ~333 mins | | Scale · 40,000 credits | \$296 | Grow · 40,000 credits | **\$280** | ~666 mins | | Enterprise · 50,000 credits | \$299 | Scale · 75,000 credits | \$349 | ~1,250 mins | | Enterprise · 100,000 credits | \$458 | Scale · 150,000 credits | \$480 | ~2,500 mins | On Orshot 1 credit is 1 image, 1 PDF page or 1 second of video, so the video column is just the credit allowance expressed in minutes. Bannerbear draws video from the same credit pool but bills it differently — their help docs put it at one credit per five seconds of processing plus one per overlay — and they don't publish a per-plan video figure. Read the table honestly: in the 10,000-credit row and the last two, **the Orshot bill is higher**, because our nearest tier carries more credits than you asked for — \$160 for 20,000 against their \$149 for 10,000, \$349 for 75,000 against their \$299 for 50,000. Per credit Orshot stays cheaper (\$0.008 against \$0.015 at 10,000; \$0.0047 against \$0.006 at 50,000), but if those volumes really are your ceiling, their monthly number is the smaller one. Bandwidth is 10 GB on Automate, 50 GB on Scale and 100 GB on Enterprise. Simple URLs, Signed URLs and team members aren't on the \$49 plan — those start at Scale. **Where the 2x holds:** on the base plan. \$39 buys 1,500 credits against Bannerbear's 1,000 for \$49 — \$0.026 an image versus \$0.049, so roughly half the unit cost. Higher up the ladder the gap narrows: at 20,000 credits it's \$160 against \$198, and at 40,000 it's \$280 against \$296. Still cheaper, not half. Also worth noting: - 30 free credits to test with every feature included (Bannerbear's trial limits features) - Nothing is plan-gated — the one thing priced separately is social publishing, a flat \$12/month per connected account on any plan - Overages are pay-as-you-go, so renders never stop [Full pricing details here](https://orshot.com/pricing) **1,500 credits for $39, not 1,000 for $49** — Test it against your own volume before you move anything. [Start free](https://orshot.com/signup?via=blog-bannerbear-pricing) ## The Editor [Open the embed](https://orshot.com/templates/shared/d5jjcv9r/preview?view=play) [Orshot Studio](https://orshot.com/studio) is the part people notice first. Clean interface, less clicking around, more visual. If you've used Bannerbear's editor, the difference is obvious in about a minute. You don't have to start from a blank canvas either. Bring a design over from Canva or Figma, or screenshot something and let AI rebuild it as a template. **What you get in the editor:** - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Position elements relative to each other. They auto-adjust when content changes - **Brand Assets** - Save your logos, colors and fonts, then reuse them across every template - **Custom Fonts** - Upload any font. No limits on typography - **Personalization** - Make any element dynamic: text, images, colors, styling - **Studio Embed** - Put the editor inside your own product with your branding - **Multi-page Support** - One template exports as an Instagram carousel, a multi-page PDF, or a video That last one is worth dwelling on, because Bannerbear can't do it. A multi-page template gives you a full video timeline: per-layer animations, page-level audio tracks, auto-generated subtitles, and trim, mute and loop controls you can drive from the API. Export to MP4, WebM or GIF. Whatever you build, every template becomes an API endpoint you can call directly, bulk-render in parallel, or hit through [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) with no API call at all. **Build your first template in about two minutes** — 30 credits free. Bring a Canva or Figma design, or start blank. [Open Studio](https://orshot.com/signup?via=blog-bannerbear-editor) ## Automate the Whole Loop, Not Just the Render This is the part that changed most since I first wrote this page. A render API gives you one endpoint. Something still has to decide when to call it, where the data comes from, and what happens to the file afterwards. Usually that's Zapier or Make - a second subscription, a second thing to break, and a task bill that grows with your volume. [Orshot Workflows](https://orshot.com/workflows) put that inside the product: - **Trigger** from Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify, Drive or a plain webhook - **Render** one template or a whole batch - **Send** it to social, storage, email or your own endpoint - **Repeat** on a schedule, without you ![An Orshot workflow: a daily schedule trigger, a Google Sheets source, a render step mapping columns to template fields, and a URL destination](https://orshot.com/blog/bannerbear-alternative/workflow-builder.webp) That one runs daily, reads a sheet, renders a row per asset, and keeps each result at a URL. Four steps, no second subscription. There are ready-made presets for the common ones — [Instagram carousels from a sheet](https://orshot.com/workflows/instagram-carousels-from-sheet), [OG images from your CMS](https://orshot.com/workflows/dynamic-og-webhook), [YouTube thumbnails at scale](https://orshot.com/workflows/youtube-thumbnails-at-scale). Bannerbear has no equivalent. Scheduling and orchestration happen in Zapier, Make or n8n on their side. ### Publishing Without a Third Tool Once the render exists, [Orshot Publish](https://orshot.com/docs/publish/introduction) posts it to 15+ platforms - Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, YouTube, Threads, WhatsApp, Discord and more. Post immediately, schedule it, or save it as a draft for someone to approve. So the full chain - trigger, data, render, post - lives in one place with one bill. On their side that's Bannerbear plus Zapier plus Buffer. If you'd rather keep orchestration where it already lives, that works too. Orshot has a first-party [n8n node](https://orshot.com/docs/integrations/n8n), plus Zapier, Make, Pipedream and an [MCP server](https://orshot.com/docs/integrations/mcp-server) so Claude or Cursor can drive it directly. If something you use is missing from the [full list](https://orshot.com/integrations), just ask. We'll probably add it. ## When Bannerbear Is Still the Right Call I'd rather you pick the right tool than switch and regret it. Two honest reasons to stay put: - **You've already sunk real work into it.** Templates built and tuned, API calls wired into production, Zapier and Make scenarios running, teammates who know where everything lives. That's a genuine cost, and no price table cancels it out. - **It works and you're not annoyed.** If Bannerbear is quietly doing its job and nothing on this page describes a problem you actually have, stay. A migration you didn't need is worse than a slightly higher bill. On the first one, though — that's usually the part we can take off your hands. Send us your Bannerbear template IDs and we'll rebuild them in Orshot for you, then hand back the API calls you need to swap, and you can run both side by side until you're happy the output matches. If it turns out the migration isn't worth it for you, we'll say so. **We'll migrate your templates for you** — Send us your Bannerbear template IDs. Run both in parallel until the output matches. [Start free](https://orshot.com/signup?via=blog-bannerbear-migration) ## Switching from Bannerbear Honestly, it's not that hard. ### Step 1: Recreate Your Templates (15-30 min) You have a few options: **Just rebuild it** - Open your Bannerbear template, rebuild it in Orshot Studio. The editor's actually easier to use, so it usually goes faster than you think. **Use AI** - Screenshot your Bannerbear output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate it, you fine-tune. **Import existing designs** - If you have the original in [Canva](https://orshot.com/solutions/canva-template-to-api) or [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), import it directly. Try it now, paste a public Canva share link and see it as an Orshot template: ### Step 2: Update Your API Calls (10 min) The APIs are pretty similar. Here's what changes. **Bannerbear API Call:** ```javascript const response = await fetch("https://api.bannerbear.com/v2/images", { method: "POST", headers: { Authorization: "Bearer YOUR_BB_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template: "bb_template_uid", modifications: [ { name: "title", text: "Hello World", }, { name: "image", image_url: "https://example.com/photo.jpg", }, ], }), }); ``` **Orshot API Call (Nearly Identical):** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", // Dynamic parameters - override any style property "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` **Main differences:** - Modifications are an object instead of an array (cleaner IMO) - You specify response format explicitly - Auth is the same Bearer token pattern **Helpful docs:** - [API Reference](https://orshot.com/docs/api-reference) - Complete API documentation - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - Main endpoint you'll use - [SDKs](https://orshot.com/docs/sdks) - Node, Python, Ruby, PHP libraries - [Style Parameters](https://orshot.com/docs/orshot-studio/style-parameters) - Override styles you set in Studio from your API requests ### Step 3: Test It (5 min) Every template has a connect sheet: your API key, an editable request body you can run right there, a live preview of the result, and one-click setup for Workflows, n8n, Make, Zapier, Airtable or Pipedream. ![The Orshot connect sheet open beside a template: API status, template ID and API key, tabs for API, Workflows, AI, n8n, Make, Zapier, Airtable and Pipedream, an editable request body, and a live preview](https://orshot.com/blog/bannerbear-alternative/connect-sheet.webp) Hit Run on the prefilled request body and put the output next to your old Bannerbear render. If the fonts look off, it's almost always a missing font file — upload it under Brand Assets and re-render. You can run both Bannerbear and Orshot in parallel for as long as you like — there's no cutover moment you have to get right. ### Need Help? Just hit the chat button on bottom right. I or someone from the team will help you migrate templates, check your API calls, whatever you need. Usually takes about 2 hours total for a complete workflow. ## Examples and Tutorials ### Video Generation using Orshot Demo of Orshot's Video Generation API: [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Import from Canva Clone your existing Canva designs and turn them into API endpoints: [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Import from Figma Use the Figma plugin to import your designs directly: [Watch the video](https://www.youtube.com/watch?v=ggvLR0HLJ7Q) ### eCommerce Automation Example workflow, [automating product images](https://orshot.com/blog/automate-ecommerce-product-images) from your data sources: [Watch the video](https://www.youtube.com/watch?v=S5qNb4mmUdc) ## Common Questions **Q: How much cheaper is Orshot compared to Bannerbear?** About half the unit cost on the base plan: $39/mo buys 1,500 credits on Orshot ($0.026 an image) against Bannerbear's 1,000 credits for $49 ($0.049 an image). The gap narrows further up the ladder — 20,000 credits is $160 on Orshot against $198 on Bannerbear, and 40,000 is $280 against $296. Still cheaper, but not half. See the [pricing page](https://orshot.com/pricing). **Q: How much does Bannerbear cost in 2026?** Bannerbear has three plans, all billed monthly — there is no annual option. Automate is $49/mo for 1,000 API credits and 10 GB bandwidth. Scale starts at $149/mo for 10,000 credits and 50 GB, then $198 for 20,000, $247 for 30,000 and $296 for 40,000. Enterprise is $299/mo for 50,000 credits and 100 GB, rising to $458 for 100,000. Simple URLs, Signed URLs and team members are not included on the $49 Automate plan — those start at Scale. Prices checked against bannerbear.com/pricing in July 2026. **Q: How much does Bannerbear's video API cost?** Bannerbear doesn't publish a per-plan video allowance — video draws on the same API credit pool as images. Their help documentation describes video as one credit per five seconds of processing plus one credit per overlay, so a 10-second video with a single overlay costs 3 credits. On Orshot 1 credit is 1 second of output video, so 1,500 credits is roughly 25 minutes and 20,000 credits is roughly 333 minutes. Orshot handles both jobs: generate a video from a template with a full timeline, per-layer animation, audio tracks and auto-subtitles, or swap in your own footage via the video URL and control trim, mute and loop per element. **Q: Does Bannerbear have a free plan?** No. Bannerbear offers a one-time free trial of 30 API credits with no credit card required, but there is no permanent free tier — once those credits are used you need a paid plan. Orshot also starts at 30 credits, but every feature is included on the free tier and no card is required. **Q: What does Bannerbear charge per image?** $0.049 per image on the $49 Automate plan, falling to about $0.015 at 10,000 credits and $0.006 at 50,000. Bannerbear bills 1 credit for a standard image up to 3000x3000, 3 credits for a hi-res image above that, 2 credits with face detection and 3 credits per PDF. Orshot is a flat 1 credit per image at any size, which is $0.026 on the base plan and $0.008 at 20,000 credits. **Q: Can I import my designs from Canva or Figma to Orshot?** Yes. Instead of rebuilding from scratch, you can use our [Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) or [Canva import tool](https://orshot.com/solutions/canva-template-to-api) to bring your existing templates directly into Orshot. **Q: Does Orshot support multi-page PDFs and carousels?** Yes, Orshot has native support for [multi-page templates](https://orshot.com/blog/introducing-carousel-templates), making it easy to generate Instagram carousels and multi-page PDF documents. Bannerbear does not support this. **Q: Does Orshot support video generation?** Yes. Orshot supports advanced video generation (MP4/WebM/GIF) with per-layer controls like trim, loop, mute, and animations such as fade, slide and scale with staggered choreography. Bannerbear has basic video support but Orshot offers more flexibility. **Q: Can Orshot replace my Zapier or Make setup?** Often, yes. [Orshot Workflows](https://orshot.com/workflows) handle the trigger, the data source, the render and the destination on a schedule, with connectors for Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify and webhooks. If you'd rather keep orchestration in n8n, Zapier or Make, all three are fully supported. **Q: How do I migrate templates from Bannerbear to Orshot?** You can recreate them using our improved editor, or use our [AI Template Generator](https://orshot.com/features/ai-template-generator) to recreate them automatically from an image. **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools for agencies managing multiple clients. **Q: Does Orshot support webhooks?** Yes, Orshot supports webhooks to notify your application when renders are complete. Read our [Webhooks documentation](https://orshot.com/docs/integrations/webhooks) for setup details. ## Bottom Line One thing that doesn't show up in a feature table: I answer the chat myself, usually within the hour, and I'll hop on a call if something's genuinely stuck. When users need something specific we tend to build it. Ivan wanted automated cross-posting for Twitter threads, so we shipped it. ![Mihai Cirstea, Founder of SitePixel: "I had been using Bannerbear before but Orshot quickly stood out as the better option thanks to its richer features and user friendly design"](https://orshot.com/blog/mihai-testimonial.webp) Bannerbear works, but it's expensive and missing some stuff. Orshot does the same core thing (turn templates into API endpoints) but costs less and has the features people keep asking for: multi-page templates, scheduled workflows, social publishing, better integrations, easier editor. The switch is four steps: 1. [Sign up](https://orshot.com/signup?via=blog-bannerbear-footer), no card needed 2. Recreate one of your templates (or use AI to do it) 3. Test with your actual data 4. See if it works for you Building visual content automation for multiple clients? The [Agency Partner Program](https://orshot.com/partner-program) is free to join, with unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. If you're also comparing [Placid](https://orshot.com/blog/placid-api-alternative) or [Contentdrips](https://orshot.com/blog/contentdrips-api-alternative), the short version: Placid is cheaper per raw credit but multiplies credits once a render passes 4000px; Contentdrips outputs PNG and PDF only, with no video. [Abyssale](https://orshot.com/blog/abyssale-api-alternative) is covered separately. Each page runs the same verified-pricing format as this one. If you get stuck, hit the chat button. I'll help you out. --- ### [A Better Priced Templated.io Alternative with No Template Limits](https://orshot.com/blog/templated-io-alternative) > Switch from Templated.io to Orshot. Get 50% more output at the same price, unlimited templates, better editor with carousel support and video editing. 30 free credits to start Templated.io is a solid tool — good editor, clean API, great support team. If you're just starting with automated image generation, it gets the job done. But once you start scaling — more templates, more team members, video renders eating through credits — the limits show up. That's usually when people start looking for a Templated.io alternative. Template caps, unpredictable billing, and missing features like multi-page support or built-in social publishing become real blockers. I built [Orshot](https://orshot.com/) because I kept running into these exact walls. Unlimited templates on every paid plan, predictable pricing, multi-page templates, a full video editor with API controls, and a white-label editor — all from $39/mo. [**Try Orshot Free**](https://orshot.com/pricing) **— 30 credits, no card — Image + PDF + Video Generation** Here's a live demo of a template in Orshot's Studio. You can try playing the animation right here. This same template can generate an image, PDF, or a video. [Open the embed](https://orshot.com/templates/shared/6xu2fq2a/preview?view=play) **Migrate from Templated.io to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Templated.io API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ## What's different | Feature | Orshot | Templated.io | | :---------------------------- | :------------------------------------------------------------------------------------------------ | :-------------------------------------------------- | | **Free Tier** | 30 free credits, all features | 50 credits, trial only | | **Starting Price** | $39/mo for 1,500 credits (1 credit = 1 image) | $39/mo for 1,000 credits | | **Templates** | Unlimited on every paid plan | 15 on Starter, 100 on Scale | | **Multi-page Templates** | Yes — carousels, PDFs, multi-page video | Limited | | **Video Editor** | Full video timeline with per-layer animations, audio tracks, subtitles — all controllable via API | Editor-only animation controls, not exposed via API | | **White-label Editor** | Full editor with React & Vue SDKs, every paid plan | Basic iframe embed | | **AI Features** | AI Design Agent, background removal, variant generation | AI template generator | | **Social Publishing** | Built-in — 15+ platforms | No | | **Canva/Figma Import** | Canva clone + Figma plugin | Canva import only | | **Own Storage** | S3, R2, Google Drive, Dropbox | No | | **Multi-tenant / Workspaces** | Yes — isolated workspaces per client with separate templates, brand kits, and billing | No | | **Integrations** | Zapier, Make, n8n, MCP Server, Dynamic URLs | Zapier, Make, n8n, Airtable | ## Where Templated.io falls short - **Template caps.** 15 on Starter, 100 on Scale. Agencies and SaaS teams hit this fast. Orshot is unlimited on every plan. - **Unpredictable video billing.** Video credits use a formula (resolution x FPS x duration) — a 10-second 1080p clip burns ~13 credits. Orshot charges 1 credit per image or page and 1 credit per second of video — no resolution math, a 10-second clip is always 10 credits. - **No multi-page templates.** Carousels, invoices, multi-page PDFs — you're assembling them yourself. Orshot does it in one API call. - **Video animations locked in the editor.** You can set them visually, but can't override them via API. Orshot has a full video timeline with per-layer animations, page-level audio tracks, and auto-generated subtitles — all controllable via API. - **Basic embed.** Templated.io has an iframe embed, but no dedicated SDKs or deep customization. Orshot's Studio Embed is a full white-label editor with React and Vue SDKs on every paid plan. - **No multi-tenant workspaces.** Everything lives in one pool — templates, brand assets, API keys. Orshot gives each client their own workspace with separate templates, brand kits, members, and billing. - **No own storage.** Renders stay on their CDN. Orshot lets you push renders to Google Drive, Dropbox, S3, or R2 automatically. ## Pricing comparison | Monthly volume | Templated.io | Orshot | You get | | -------------- | ------------------------------------ | ------------------------------ | -------------------------- | | Free tier | 50 credits (one-time trial) | **30 credits, all features** | No feature gates to test | | ~1,000 | $39/mo (1,000 credits, 15 templates) | $39/mo (1,500 credits) | 50% more output, no caps | | 5,000 | $99/mo (100 templates, 5 members) | $99/mo (5,000 credits) | Unlimited templates | | 25,000+ | $229/mo (25,000 credits, 20 members) | $280/mo (40,000 credits) | 60% more output | _On both platforms 1 credit = 1 image. Annual plans give you 2 months free. See [full pricing](https://orshot.com/pricing)._ At scale the difference is caps, not stickers. Templated.io's Enterprise plan ($229/mo) gives you 25,000 credits and caps the team at 20 members. Orshot's $280/mo plan gives you 40,000 credits with unlimited templates and unlimited team members — and the per-credit price keeps dropping on bigger plans. ## What Orshot adds on top Things Orshot does that Templated.io doesn't: - **AI Design Agent** — Describe what you need or paste a screenshot, and get a working template draft - **Variant Generation** — Auto-resize one design into every standard aspect ratio instantly - **Studio Embed** — White-label the full editor inside your own app, every paid plan - **Template Forms** — Turn any template into a public, self-serve form for lead magnets or internal tools - **Brand Kit** — Centralize your colors, fonts, logos, and videos in one place - **Own storage** — Pipe renders into Drive, Dropbox, S3, or R2 automatically - **Social publishing** — Render and post to 15+ platforms in one API call - **MCP Server** — Use Orshot inside Claude, Cursor, and Windsurf for AI-driven design - **OAuth 2.0 apps** — Build and distribute your own apps on top of Orshot ![Automating template image generation with Orshot](https://orshot.com/home/new/automate-templates.png) ## When Templated.io is still the right call If you're under 15 templates, on a tight budget, and the credit system works for your volume — Templated.io's $39/mo Starter is reasonable. Their customer support is genuinely excellent (Pedro and team are responsive), and the Canva import feature is handy if Canva is your primary design tool. But if you're hitting template limits, need multi-page support, want video with API-controllable animations, want to embed the editor in your product, or just want predictable pricing as you scale — Orshot is the better fit. ## Switching Most people are done in an afternoon. ### 1. Recreate templates Three options, fastest first: - **AI Design Agent** — Describe the template or paste a screenshot, and get a working draft - **Import from Canva or Figma** — If you have the source files, bring them straight in - **Build in Orshot Studio** — Drag-and-drop editor with Smart Stacking and your Brand Kit Have a Canva design handy? Paste a public share link and see it as an Orshot template: ### 2. Swap the API call The APIs follow the same pattern. Here's what changes. **Templated.io:** ```javascript const response = await fetch("https://api.templated.io/v1/render", { method: "POST", headers: { Authorization: "Bearer YOUR_TEMPLATED_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template: "templated_template_id", layers: { title: { text: "Hello World" }, image: { image_url: "https://example.com/photo.jpg" }, }, }), }); ``` **Orshot:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", format: "png", }, }), }); ``` Flat key-value modifications instead of nested layer objects, dot notation for style overrides, and explicit output format. Check the [API docs](https://orshot.com/docs/api-reference) for more. Here's a live playground for the same template — you can try different content and see the API output in real-time: [Open the embed](https://orshot.com/templates/shared/nl2w1ihk/playground) ### 3. Run both in parallel Compare outputs side-by-side, tweak styling in Studio, and cut over when you're ready. If anything's off, hit the chat button — I'll help you migrate. ## Common questions **Q: Is Orshot really cheaper than Templated.io?** You get more for the same money. Orshot's $39/mo plan gives you 1,500 credits (1 credit = 1 image) with unlimited templates and team members. Templated.io's $39/mo Starter gives you 1,000 credits and caps you at 15 templates and 2 team members. At scale their $229/mo Enterprise still caps the team at 20 — Orshot stays unlimited and the per-credit price keeps dropping. **Q: Does Orshot have a full video editor?** Yes. You get a visual video editor with per-layer animations (fade, slide, scale, stagger), trim, loop, and mute controls. The key difference from Templated.io: every animation property is controllable via the API too. Design it visually, override it programmatically. Output as MP4, WebM, or GIF. **Q: Can I embed the editor in my own app?** Yes. Studio Embed gives you a full white-label editor on every paid plan ($39/mo+) with React and Vue SDKs. Templated.io has a basic iframe embed, but it doesn't come with dedicated SDKs or deep customization. **Q: Does Orshot support carousels and multi-page PDFs?** Yes. Multi-page templates handle Instagram carousels, invoices, reports, and multi-page videos — all in a single API call. **Q: What about no-code integrations?** Native nodes for Zapier, Make, and n8n. Plus Dynamic URLs for zero-code image generation and an MCP server for AI agent workflows with Claude, Cursor, and Windsurf. **Q: How long does it take to migrate?** Most people finish in an afternoon. Recreate templates with the AI Design Agent or import from Canva/Figma, swap the API call (same Bearer token pattern), and test. **Q: Is there an agency partner program?** Yes. The [Agency Partner Program](https://orshot.com/partner-program) is free to join — unlimited sandbox workspaces, pooled credits up to 100k/mo, and client handoff tools. ## Useful tutorials ### Designing Templates with Claude [Watch the video](https://www.youtube.com/watch?v=OhgdZtqEQK0) ### Video Generation flow [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Designing Carousel Templates [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ## Bottom line Templated.io works, but the template caps, resolution-based credit math, and missing features add up. Orshot does the same core thing — turn templates into API endpoints — with more output per dollar, no artificial limits, and features like multi-page templates, a full video editor, and multi-tenant workspaces that Templated.io doesn't offer. If you're also comparing [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Placid](https://orshot.com/blog/placid-api-alternative), [Creatomate](https://orshot.com/blog/creatomate-api-alternative), [Abyssale](https://orshot.com/blog/abyssale-api-alternative), [APITemplate.io](https://orshot.com/blog/apitemplate-io-alternative), or [Contentdrips](https://orshot.com/blog/contentdrips-api-alternative), the same advantages apply — simpler pricing, no feature gating, and multi-page support that most competitors lack. ## Try it [Sign up](https://orshot.com/pricing), recreate one template (or let AI do it), and run a few real renders. You start with 30 free credits — no card needed. If you need help migrating, hit the chat button. I'll generally be the one on the other end. ## For agencies Building [visual content automation](https://orshot.com/blog/automated-content-creation-tools) for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. --- ### [A Buffer Alternative for Automated Content Posting via AI](https://orshot.com/blog/buffer-alternative) > Buffer schedules content. Orshot automates creation and posting to 15+ platforms from templates, API, workflows, or Claude via MCP. Start free with 30 credits Buffer is a good scheduler. The queue is simple, the apps are clean, and if all you need is "post this at 9am tomorrow", it does the job. But scheduling was never the hard part. Every Buffer alternative thread on Reddit repeats the same complaints: per-channel pricing that compounds, hitting a wall with multiple brands, and still having to make the content somewhere else. As one commenter put it, a design tool matters because then "scheduling becomes the easy part" ([r/MarketersSuccessClub](https://www.reddit.com/r/MarketersSuccessClub/comments/1p16du5/whats_the_best_buffer_alternative_for_social/ "target=_blank nofollow")). ## Meet Orshot, create content + automate to 15+ platforms ![Designing a social carousel in Orshot Studio and posting it to social accounts](https://orshot.com/blog/buffer-alternative/studio-social-carousel-post.webp) I built [Orshot](https://orshot.com/) to make the rest of the pipeline that easy too. It does three things: - **Visual content from templates.** Design your posts, carousels, and reels once in a Canva-like editor (or [import straight from Canva](https://orshot.com/solutions/canva-template-to-api)), then generate every variation by swapping text and images. - **Automated posting via API and MCP.** One request renders the visual and [publishes it to 15+ platforms](https://orshot.com/features/social-publishing). Call it from your code, your no-code stack, or ask Claude over MCP. - **[Workflows](https://orshot.com/features/workflow-automation-builder) that connect all of it.** Template + data source (Google Sheets, Airtable, a webhook) + your social accounts, and posts ship themselves on a schedule. 30 credits, no card. Design + publish + automate. [Try Orshot free](https://orshot.com/signup?via=blog-buffer-top) ## What's different | Feature | Orshot | Buffer | | :--------------------------- | :------------------------------------------------------------------------- | :---------------------------------- | | **Publishing platforms** | 15+ (Instagram, X, LinkedIn, TikTok, YouTube, Pinterest, and more) | ~11 channels | | **Publish from** | Dashboard, API, scheduled workflows, MCP (Claude, Cursor) | Dashboard and apps, rate-capped API | | **Posting modes** | Instant, draft, scheduled, recurring | Queue-based scheduling | | **Content creation** | Design studio, 1,000+ templates, AI Design Agent, auto-resize per platform | Canva import, AI caption assistant | | **Carousels** | Rendered and posted automatically | Manual upload | | **Automation** | Workflows (Sheets, Airtable, webhooks), Zapier, Make, n8n | Publish-only API with request caps | | **Multi-brand** | Separate workspace per brand: templates, brand kit, accounts, billing | Channel groups | | **Social inbox & analytics** | No, Orshot is creation + publishing | Yes | | **Pricing** | From $39/mo (1,500 credits) + $12/mo per account, unlimited posts | $5 to $10 per channel per month | If your main need is replying to comments and DMs from one inbox, Buffer is the right category of tool. Orshot replaces the creation and posting half of your stack, not community management. ## Where Buffer falls short - **It only schedules.** The banner, carousel, or product graphic still has to be made somewhere else. Orshot generates it from a template, AI, or a spreadsheet, then posts it. - **Per-channel pricing compounds.** Six accounts on Buffer Team is $60/mo, and you still haven't created a single graphic. - **Automation is publish-only.** Buffer's API can't generate an image from data, and it's capped by monthly request limits. - **Multiple brands strain it.** "You hit a wall pretty fast" ([r/MarketersSuccessClub](https://www.reddit.com/r/MarketersSuccessClub/comments/1p16du5/whats_the_best_buffer_alternative_for_social/ "target=_blank nofollow")). Orshot gives each brand its own workspace. - **The free plan is a trial in practice.** 3 channels, 10 scheduled posts per channel. ## Publish from wherever you work Anything Orshot can render, it can post: instantly, as a draft, or scheduled in any timezone. ### From the dashboard Pick a template, edit the content, choose accounts, post. No code. Everything (published, scheduled, failed) shows up in the Posts Log, so you keep the visibility you're used to from Buffer's queue. ![Connecting social accounts in Orshot](https://orshot.com/blog/orshot-publish-social-accounts.webp) ### From the API One request creates the visual from your data and publishes it. This is the part Buffer can't do: ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { title: "Summer sale: 40% off everything", image: "https://example.com/product.jpg", }, response: { type: "url", format: "png" }, publish: { accounts: [1, 2], content: "Our summer sale is live! 🌞", schedule: { scheduledFor: "2026-07-20T14:00:00Z" }, }, }), }); ``` Multi-page templates post as carousels automatically. Under the hood, publishing runs on Zernio's [unified social media APIs](https://zernio.com "target=_blank"), which take care of the platform-specific plumbing (carousel uploads, per-platform settings, token refreshes) so posts don't quietly fail. See the [publish API docs](https://orshot.com/docs/publish/publish-from-api) for drafts, scheduling, and platform options. ### From a workflow ![An Orshot workflow posting Instagram carousels from Google Sheets rows](https://orshot.com/blog/buffer-alternative/instagram-posting-workflow-orshot.webp) Workflows run the loop on autopilot: trigger, data, template, post. Copy one into your workspace and turn it on. This one turns Google Sheets rows into Instagram carousels: [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) And this one posts a random Google Drive photo to TikTok on a schedule: [Random Drive photo to TikTok workflow on Orshot](https://orshot.com/workflows/random-drive-photo-to-tiktok/embed) More ready-made setups: [real estate listings to Instagram and Facebook](https://orshot.com/workflows/real-estate-listing-cards), [product images from your catalog](https://orshot.com/workflows/product-marketing-images), and [daily quote graphics](https://orshot.com/workflows/daily-quote-graphics). ### From Claude, via MCP Connect the [Orshot MCP server](https://orshot.com/blog/orshot-remote-mcp-server) to Claude, Cursor, or Windsurf and publishing becomes a prompt: "Render the weekly promo template with this headline and post it to Instagram and LinkedIn tomorrow at 9am." ## The honest math If all you do is schedule posts you already have, Buffer is cheaper. Full stop. Three channels on Buffer Essentials is $15/mo; Orshot with three connected accounts starts at $75/mo ($39 plan + 3 x $12). The math flips when you count the whole stack Orshot replaces: | Your stack today | Cost | With Orshot | | ------------------------------------------ | ---------------- | --------------------------------------- | | Buffer Team, 3 channels | $30/mo | Included ($12/account, unlimited posts) | | Canva Pro for the actual designs | $15/mo | Included (studio, 1,000+ templates, AI) | | Zapier for the automation glue | $20 to $50/mo | Included (workflows, API, integrations) | | Your time designing + resizing + exporting | Hours every week | Automated | Publishing doesn't cost extra credits, and every paid plan has unlimited templates and team members. See [full pricing](https://orshot.com/pricing). ## Switching from Buffer Most people are set up in an afternoon. **1. Bring your templates.** Describe your post style to the AI Design Agent, import from Canva or Figma, or start from the [template library](https://orshot.com/templates). Have a Canva design handy? Paste a public share link: **2. Connect your social accounts.** OAuth from the dashboard. Each account is $12/mo, unlimited posts. **3. Post something real.** From the dashboard, the API, or a workflow. Check the Posts Log before switching anything off on the Buffer side. ## When Buffer is still the right call - You only schedule content that's already made, and the per-channel price works for you - You need a social inbox or engagement analytics in the same tool - You love the queue model and don't want to change how you plan But if making the visuals is where your time goes, or you're gluing Canva to Buffer with Zapier, a scheduler swap won't fix that. ## Other Buffer alternatives, honestly sorted Orshot only makes sense as a Buffer alternative if content *creation* is your bottleneck. If it isn't, one of these is probably the better swap: - **Hootsuite** — the enterprise pick: social listening, team roles, dozens of accounts. From \$99/mo (Standard). - **Later** — visual-first planning with an Instagram grid preview. No free plan anymore (14-day trial); from \$18.75/mo billed yearly. - **SocialBee** — category-based queues that recycle evergreen posts automatically. From \$29/mo. - **Pallyy** — the budget pick; most of the scheduler feature set from \$15/mo. - **Postiz** — the **open source Buffer alternative**: self-host it and scheduling costs nothing, or take their cloud from \$29/mo. Pair it with Orshot's API if you want generated visuals in the same pipeline. - **[Predis.ai](https://orshot.com/blog/predis-ai-alternative)** — writes the caption and designs the post from a prompt, then schedules it. Good if you don't know what to post; the catch is you can't lock the layout. From \$19/mo, though auto-posting starts at \$40. Full breakdowns, verified pricing and free-tier details for all of these are in our [11 best social media automation tools](https://orshot.com/blog/social-media-automation-tools) comparison. ## Common questions **Q: Is Orshot a cheaper alternative to Buffer?** Not per channel, and we won't pretend otherwise. Buffer Essentials is $5/channel/mo; Orshot is $12 per connected account on top of a plan from $39/mo. Orshot is cheaper as a stack: the plan includes the design studio, 1,500 credits of image and video generation, and workflow automation, which usually replaces separate Canva and Zapier subscriptions. Publishing itself costs no extra credits. **Q: Can Orshot schedule posts like Buffer?** Yes. Post instantly, save as a draft, or schedule for a specific time in any timezone, from the dashboard or the API. Workflows post on a recurring schedule automatically. The Posts Log shows everything published, scheduled, or failed. **Q: Can I publish without writing code?** Yes. Pick a template in the dashboard, edit the content, select accounts, and post or schedule. Workflows are no-code too: copy a ready-made one and connect your data source. **Q: Does Orshot have a social inbox or analytics?** No. Orshot focuses on creating and publishing content. If a unified inbox and engagement reports are your main need, Buffer or Sprout Social fits better. **Q: Which platforms can Orshot publish to?** Instagram, X (Twitter), Facebook, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business, Discord, and WhatsApp. Carousels post automatically on platforms that support them. **Q: Is there a free plan?** Yes, 30 credits with the full design studio and API, no card needed. Social publishing itself is a paid addon ($12/mo per connected account, unlimited posts) on any paid plan. **Q: What about an AI alternative to Buffer?** Orshot's AI Design Agent builds working templates from a description or screenshot, and the MCP server lets Claude or Cursor render and publish posts for you. Buffer's AI writes captions; it doesn't create visuals. ## See it in action ### Publishing to your social accounts from Orshot [Orshot Publish demo: post to your social accounts from Orshot](https://www.youtube.com/watch?v=ec05xj2sXp8) ### Auto-posting tweets to Instagram [Automatically post tweets to Instagram with Orshot](https://www.youtube.com/watch?v=J9yL16C7dCE) ### Designing carousel templates [Designing carousel templates in Orshot Studio](https://www.youtube.com/watch?v=EXJoMeGyEhM) ## Bottom line Buffer schedules content you've already made. Orshot makes the content and posts it to 15+ platforms, on one bill. [Sign up](https://orshot.com/signup?via=blog-buffer-footer), recreate one recurring post as a template, connect an account, and publish something real with your 30 free credits. Comparing more tools? See [11 social media automation tools](https://orshot.com/blog/social-media-automation-tools). If you need help migrating, hit the chat button. I'll generally be the one on the other end. --- ### [A Contentdrips Alternative for Social Media Content Automation](https://orshot.com/blog/contentdrips-api-alternative) > Switch from Contentdrips to Orshot. Post to 15+ platforms, not two. Carousels, video with audio and subtitles, and native workflows. Start free. Contentdrips has built something cool - an AI-powered content creation tool focused on LinkedIn and social media. The carousel generators, AI post writers and scheduling features are genuinely useful for personal branding. Where it runs out is scope. Contentdrips posts to two platforms, LinkedIn and Instagram, and its API returns PNG and PDF — so no Reels, no TikToks, no audio, no subtitles. If your content plan is wider than carousels on two networks, you end up bolting a scheduler and a video tool onto the side. I built Orshot to do the whole loop: design the template once, then render carousels, video or stills from your own data and post them to 15+ platforms — from the editor or the API, on a schedule, without a second subscription. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-contentdrips-top) **Migrate from Contentdrips to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Contentdrips API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) This is Orshot Studio, live. It's a four-page animated carousel template — click through the pages, change the text, and see what the API would render: [Open the embed](https://orshot.com/templates/shared/muzkxu0y/preview?view=play) ## What's Different If you're looking at Contentdrips' API, here's how Orshot compares: | Feature | Orshot | Contentdrips | | :-------------------------- | :--------------------------------------------------------- | :-------------------------------------------- | | **Social publishing** | 15+ platforms, instant/scheduled/draft | LinkedIn and Instagram | | **Carousels** | Native LinkedIn PDF and Instagram multi-slide | Yes — their core product | | **Video** | Full timeline, audio tracks, auto-subtitles — MP4/WebM/GIF | None — PNG and PDF only | | **Scheduling** | Built in, plus drafts for approval | Built in | | **Template editor** | Orshot Studio — any dimension, any use case | Social media sizes only | | **Template import** | Canva, Figma, or AI from a screenshot | Social templates only | | **Brand assets** | Logos, colours and custom fonts across every template | Brand profiles (1 on free, 3 on Starter) | | **Core focus** | API-first image/video generation | Social media tool, API came later | | **Free tier** | 30 credits, every feature | 10 API calls, one-time | | **Entry plan** | \$39/mo — 1,500 credits (~25 video mins) | \$39/mo — 1,000 API calls (Basic) | | **Mid plan** | \$99/mo — 5,000 credits (~83 video mins) | \$149/mo — 6,000 API calls (Advanced) | | **Pricing ladder** | \$39 → \$99 → \$160 → \$280 → \$349 → \$480 → \$600 | \$39 → \$149 → \$359 (unlimited) | | **Webhooks** | Every plan | Advanced (\$149) and above | | **Commercial use** | Every plan, including free | Listed as a Pro (\$359) feature | | **Native workflows** | Trigger, render and publish on a schedule | Make, Zapier or n8n | | **Embed editor in your app**| White-label Studio Embed | Embed SDK in their docs | | **MCP server** | Yes | Yes — 24 tools, basic access on the free plan | | **SDKs** | Node, Python, PHP, Ruby | None | | **Own storage** | AWS S3, Cloudflare R2, Google Drive, Dropbox | Not documented | [See the full integrations list →](https://orshot.com/integrations) ## Post to 15+ Platforms, Not Two Contentdrips schedules to LinkedIn and Instagram. That's the list, and it's the half of the job they do well. Orshot renders _and_ posts — Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, YouTube, Threads, WhatsApp, Discord and more — and it isn't API-only. Pick the accounts, write the caption, choose Now, Schedule or Draft, and publish straight out of Studio: ![Publishing from Orshot Studio: connected LinkedIn and Instagram accounts selected, a caption, Now/Schedule/Draft publish modes, LinkedIn first-comment options, and a Generate & Publish button](https://orshot.com/home/connect-post-to-socials.png) The per-platform details come with it — LinkedIn first comment, drafts for someone to approve, per-account platform settings, scheduled posting — so there's no separate [scheduler subscription](https://orshot.com/blog/buffer-alternative) sitting between the design and the post. ## Carousels, Video and Audio From One Template Contentdrips' API outputs PNG and PDF. That's the whole list. If the brief is a Reel, a TikTok or an animated LinkedIn post, there's nothing to call. One Orshot template covers all of it: - **Carousels** — a multi-page design posts as a native LinkedIn PDF carousel or an Instagram multi-slide, from one call - **Video** — MP4, WebM or GIF straight to Reels, TikTok or YouTube, with a real timeline and per-layer animation - **Audio** — page-level audio tracks, trimmed, muted or looped from the API - **Subtitles** — auto-generated and burned into the render, not a separate captioning step - **Any size** — not locked to social presets, so the same design becomes a story, a square and a thumbnail Brand assets — logos, colours, custom fonts — are saved once and reused across every template, so the output stays on-brand whoever triggers it. **Use case:** a sheet of quotes becomes [a new quote video posted to TikTok every day](https://orshot.com/workflows/quote-videos-to-tiktok), on a schedule, with nobody opening an editor. ## Automate the Whole Loop, Not Just the Render Contentdrips will render the carousel and it will schedule to LinkedIn and Instagram. The gap is the middle: pulling this week's copy out of wherever you write it, and getting the finished slides anywhere else. That part is Make, Zapier or n8n — a second subscription, a second thing to break, and a task bill that grows with your posting cadence. [Orshot Workflows](https://orshot.com/workflows) put that inside the product: - **Trigger** from Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify, Drive or a plain webhook - **Render** one template or a whole batch - **Publish** straight to Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, YouTube, Threads and more - **Repeat** on a schedule, without you ![An Orshot workflow: a daily schedule trigger, a Google Sheets source, a render step mapping columns to template fields, and a URL destination](https://orshot.com/blog/bannerbear-alternative/workflow-builder.webp) Once the render exists, [Orshot Publish](https://orshot.com/docs/publish/introduction) posts it to 15+ platforms — immediately, on a schedule, or as a draft for someone to approve. So the full chain (trigger → copy → design → post) lives in one place with one bill. Contentdrips covers the scheduling half for LinkedIn and Instagram, but the render and the orchestration stay in separate tools. ### Social Workflows You Can Copy Here's the one that maps most directly onto what Contentdrips is used for — LinkedIn carousels. Write the slides as spreadsheet columns, and Orshot renders a native LinkedIn PDF carousel and posts it on schedule. Copy it into your workspace and turn it on: [Turn spreadsheet rows into LinkedIn carousels workflow on Orshot](https://orshot.com/workflows/linkedin-carousels-from-sheet/embed) Same idea for Instagram, where each row becomes a multi-slide post: [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) The rest, all working presets rather than concepts: - **[LinkedIn carousels from Notion](https://orshot.com/workflows/linkedin-carousels-from-notion)** — add a page to your content calendar, get a carousel posted and the post link written back onto the page - **[LinkedIn carousels from Airtable](https://orshot.com/workflows/linkedin-carousels-from-airtable)** — same idea, driven from a base - **[One row, a post on every channel](https://orshot.com/workflows/images-from-sheet-to-social)** — render a branded image per row and push it to Instagram, LinkedIn and X - **[Quote videos to TikTok](https://orshot.com/workflows/quote-videos-to-tiktok)** — a sheet of quotes becomes a daily short video - **[Pinterest pins from a spreadsheet](https://orshot.com/workflows/pinterest-pins-from-sheet)** — branded pins on a schedule, instead of an afternoon in Canva - **[Tweets into visuals](https://orshot.com/workflows/tweet-to-visual)** — turn a post into a shareable graphic **Run one of these on your own data** — Pick a workflow, connect your sheet, and watch it post. 30 free credits. [Start free](https://orshot.com/signup?via=blog-contentdrips-workflows) ## The Real Problems with Contentdrips API Based on what teams switching from it tell us: ### 1. It's a Social Media Tool First Contentdrips built their API on top of a LinkedIn content creation tool. The templates are optimized for carousels and social posts. If you need OG images, product mockups, certificates, or anything that isn't social media content, you're bending the tool. Orshot is API-first. Every feature is built around programmatic image generation, not tacked on to a social media scheduler. ### 2. Awkward Pricing Tiers Their API has four tiers: - Free: 10 API calls, one-time - Basic ($39/month): 1,000 calls - Advanced ($149/month): 6,000 calls - Pro ($359/month): unlimited The gaps are the problem. Basic to Advanced is a 282% price rise for 6x the calls. Advanced to Pro is another 141%. Need 8,000 images a month? You're on the $359 plan, paying the same as someone rendering half a million. Orshot moves in smaller steps: $39 for 1,500 credits, $99 for 5,000, $160 for 20,000, $280 for 40,000, $349 for 75,000, $480 for 150,000, $600 for 300,000. ### 3. Fewer Places to Plug It In Credit where it's due: Contentdrips ships native Make, Zapier and n8n nodes, and they launched an MCP server that works with Claude and Cursor, with basic access on their free plan. That's a real integration story and I'm not going to pretend otherwise. What they don't have is a dedicated integrations page (contentdrips.com/integrations returns a 404), SDKs in any language, spreadsheet import, design-tool import, or storage you control. Orshot has 15+ purpose-built integrations, and the ones that matter for social are first-party: native workflows with a publish step, Google Sheets, Airtable and Notion as triggers, plus n8n, Make, Zapier and Pipedream if you would rather orchestrate elsewhere. > I am glad to quit Canva, they make it difficult to use API. > I really want to use Orshot in my content production app. Orshot is perfect product to fit my needs. > > — Francesca Olinga, Founder, Experience Care ## Contentdrips API Pricing in 2026 (and How Orshot Compares) Contentdrips runs four API tiers, all billed monthly — there's no annual option on the API. Here's each one against the closest Orshot plan. Prices checked against contentdrips.com/api in July 2026: | Contentdrips plan | Contentdrips | Closest Orshot plan | Orshot | Orshot video | | ----------------------------- | ------------ | ---------------------- | --------- | ------------ | | Free · 10 API calls, one-time | \$0 | Free · 30 credits | **\$0** | ~30 secs | | Basic · 1,000 calls/mo | \$39 | Launch · 1,500 credits | **\$39** | ~25 mins | | Advanced · 6,000 calls/mo | \$149 | Launch · 5,000 credits | **\$99** | ~83 mins | | Pro · unlimited calls | \$359 | Grow · 20,000 credits | **\$160** | ~333 mins | | Pro · unlimited calls | \$359 | Scale · 75,000 credits | **\$349** | ~1,250 mins | On Orshot 1 credit is 1 image, 1 PDF page or 1 second of video, so the video column is just the credit allowance in minutes. Contentdrips' API returns PNG and PDF only, so there's no video figure to compare. Two things their pricing page gates that ours doesn't: **webhooks start on the \$149 Advanced plan**, and **"commercial use rights" is listed as a \$359 Pro feature**. Both are on every Orshot plan, including the free one. Worth checking against your own use before you pick a tier. And be honest about where they win: **Pro is unlimited.** Past roughly 75,000 renders a month their \$359 is the smaller number, and no amount of table formatting changes that. Below that, the middle of the range is where the gap lives — at 6,000 renders their \$149 against \$135 on Orshot (\$99 Launch plus 1,000 overage credits at \$36), and at 20,000 you're comparing \$359 to \$160. Their app plans are separate from the API and default to yearly billing on their pricing page: Starter shows \$15/mo and Teams \$29/mo on the yearly toggle, but month-to-month they're **\$19 and \$35**. **1,500 credits for $39, and video in the same plan** — Test it against your own volume before you move anything. [Start free](https://orshot.com/signup?via=blog-contentdrips-pricing) ## When Contentdrips Makes Sense I'll be fair - if your use case is specifically LinkedIn carousels and you also want the AI post writing and personal branding features, Contentdrips is purpose-built for that. But if you're here because you need a dedicated image generation API with social posting built in, Orshot covers both — render an image and post it to 15+ platforms in the same API call, no separate scheduler needed. ## Switching from Contentdrips Here's how to migrate: ### Step 1: Recreate Your Templates (15-30 min) **Use the visual editor** - Open [Orshot Studio](https://orshot.com/studio) and recreate your designs. If you have carousel templates, use our [multi-page feature](https://orshot.com/blog/introducing-carousel-templates). **Use AI** - Screenshot your Contentdrips output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate the layout, you fine-tune. **Import from design tools** - If you have source files in Canva or Figma: - [Clone from Canva](https://orshot.com/solutions/canva-template-to-api) - [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) Try it now — paste a public Canva share link and see it as an Orshot template: You can create multi-page templates, [share them through public links or embeds](https://orshot.com/blog/sharing-orshot-templates) with different view modes — the editor at the top of this page is one — and [invite your team to collaborate](https://orshot.com/features/team-collaboration) on design and template integration. ### Step 2: Update Your API Calls (10 min) Here's what changes: **Contentdrips API Call:** ```javascript const response = await fetch( "https://generate.contentdrips.com/render?tool=carousel-maker", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ template_id: "your_template_id", output: "png", branding: { name: "Jane Doe", handle: "@janedoe", }, carousel: { intro_slide: { heading: "Start Here" }, slides: [{ heading: "Tip 1", description: "Details" }], }, }), }, ); ``` **Orshot API Call:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { name: "Jane Doe", handle: "@janedoe", heading: "Start Here", // Dynamic parameters - override any style property // Docs: https://orshot.com/docs/dynamic-parameters "heading.fontFamily": "Space Mono", "name.color": "#FF5733", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` **Main differences:** - Simpler modification structure (flat object) - Element names you define in the template - Explicit response format specification - Multi-page templates handled natively **Helpful docs:** - [API Reference](https://orshot.com/docs/api-reference) - Complete API documentation - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - Main endpoint you'll use - [SDKs](https://orshot.com/docs/sdks) - Node, Python, Ruby, PHP libraries - [Setting Parameters](https://orshot.com/docs/orshot-studio/setting-parameters) - How to make templates dynamic ### Step 3: Test It (5 min) Render one carousel through the API and put it next to your Contentdrips output. Then send the same render to a connected social account as a **draft** — that's the step Contentdrips' API can't do, and it's the fastest way to see whether the render-then-post loop really collapses into one tool for you. ### Need Help? There's a chat button on the bottom right, and it's me or someone on the team behind it. Send over your Contentdrips carousel and branding kit — we'll rebuild them as a multi-page Studio template you can render from a single call. ## Common Questions **Q: Can Orshot post to social media, or only generate the image?** Both. Orshot renders the asset and publishes it to 15+ platforms — Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, YouTube, Threads and more — either from Studio or in the same API call. You can post now, schedule it, or save it as a draft for someone to approve. Contentdrips schedules to LinkedIn and Instagram. **Q: Can I post carousels to LinkedIn and Instagram?** Yes. A multi-page Orshot template posts as a native LinkedIn PDF carousel or an Instagram multi-slide from one call. There are ready-made [workflow presets](https://orshot.com/workflows/linkedin-carousels-from-sheet) that take carousel slides from a Google Sheet, Airtable or Notion and publish them on a schedule. **Q: Can I build my own app on top of Orshot?** Yes. Contentdrips is a SaaS tool for end users; Orshot is API-first. There are [SDKs](https://orshot.com/docs/sdks) for Node, Python, Ruby and PHP, and a white-label [Studio Embed](https://orshot.com/blog/image-editor-sdk) you can drop into your own product so your users design and render without leaving it. **Q: Does Orshot support multi-page carousels?** Yes. A [multi-page template](https://orshot.com/blog/introducing-carousel-templates) renders as a carousel from one API call, so a spreadsheet of slide copy becomes hundreds of finished carousels without anyone opening an editor. The same template also exports as a PDF or an MP4. **Q: Can I generate videos using Orshot?** Yes. Contentdrips is limited to static images. Orshot has a full video editor with a visual timeline, per-layer animations, audio tracks, and auto-subtitles. Generate MP4, WebM, or GIF — all controllable via API. **Q: Does Orshot integrate with n8n?** Yes. We have a dedicated node for [n8n](https://orshot.com/docs/integrations/n8n) (self-hosted or cloud), making it easy to build complex, private automation workflows that Contentdrips doesn't support. **Q: Is Orshot good for bulk generation?** It's built for it. Renders process in parallel, and a Google Sheet, CSV or API loop can drive thousands of them in one workflow run. Plans scale to 300,000 credits a month with pay-as-you-go overage beyond that, so batch size is a plan choice, not an architecture problem. **Q: Can I generate multi-page PDFs with Orshot?** Yes. Unlike Contentdrips, Orshot supports multi-page PDF generation for invoices, certificates, reports, and slide decks. Generate complete documents in a single API call. **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools for agencies. **Q: What automation platforms does Orshot support?** Orshot integrates with [Zapier](https://orshot.com/docs/integrations/zapier), [Make](https://orshot.com/docs/integrations/make), [n8n](https://orshot.com/docs/integrations/n8n), Airtable, and more. There are also native workflows that trigger, render and publish on a schedule, plus a full REST API with SDKs. ## Examples and Tutorials ### Carousel Templates How to create multi-page templates and automate them: [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ### Import from Canva Clone your existing Canva designs and [turn them into API endpoints](https://orshot.com/solutions/canva-template-to-api): [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Import from Figma [Use the Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import your designs directly: [Watch the video](https://www.youtube.com/watch?v=ggvLR0HLJ7Q) ## Bottom Line Contentdrips is good at LinkedIn content creation, and the AI post writing is genuinely useful if that is the job. But if you post to more than two platforms, need video, or want the render and the post to happen in one place, that is what Orshot is built for. If you're also comparing other image generation APIs like [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Placid](https://orshot.com/blog/placid-api-alternative), or [Abyssale](https://orshot.com/blog/abyssale-api-alternative): Bannerbear is the closest to Contentdrips' API model but has no publishing side; Placid is the cheapest for plain sub-4000px images and nothing else. Each of those pages walks the same verified pricing you saw above. Test everything free with 30 credits. ## For Agencies Building social visual content automation for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. Weighing up the AI-generator route instead? [Predis.ai](https://orshot.com/blog/predis-ai-alternative) writes and designs the whole post from a prompt — faster to start, but you don't get to keep the layout. ## Try It 1. [Sign up](https://orshot.com/signup?via=blog-contentdrips-footer) - no card needed 2. Recreate one of your templates (or use AI) 3. Test with your actual data 4. See if it works for you If you get stuck, hit the chat button. I'll help you out. --- ### [A Designer Friendly Creatomate Alternative with Better Pricing](https://orshot.com/blog/creatomate-api-alternative) > A Creatomate alternative with a visual editor, flat credits with zero resolution math, and a white-label embed on every plan. Get 30 free credits to start. When people search for a Creatomate alternative, it usually comes down to three things: - First, your designers can't actually work in JSON, so every small tweak requires a developer - Second, the resolution-based credit system makes monthly costs impossible to predict - Or third, you've outgrown the Essential plan, but the $109 Growth jump feels unnecessarily steep. Creatomate is a solid product if you're a developer-only team rendering complex video at scale. But it was built around JSON templates and resolution-based credits. That structure breaks the moment you need a designer to edit a template, or when you start rendering more images than videos. I built [Orshot](https://orshot.com/) to fix exactly that. Here's the template for this post open in Orshot's Studio. Hit play on the timeline at the bottom to watch the animation — this is the visual video editor Creatomate replaces with JSON. The same template renders as an image, a PDF, or a video. [Orshot Studio video editor — an animated food-delivery ad template with a play timeline](https://orshot.com/templates/shared/t97ofe60/embed?view=play) It gives you a visual drag-and-drop editor your designers will actually enjoy using. It uses flat per-credit pricing with zero resolution math — 1 credit = 1 image, 1 PDF page, or 1 second of video. It gives you multi-page templates and a full white-label editor on every paid tier. 30 credits, no card needed. Images, PDFs and video on one plan. [Try Orshot free](https://orshot.com/signup?via=blog-creatomate-top) **TL;DR** — Which one fits your team: - **Designers editing templates, not developers**: Choose Orshot — A visual drag-and-drop editor instead of JSON, so designers ship changes without a developer in the loop. - **Predictable credits across image, PDF and video**: Choose Orshot — 1 credit = 1 image, 1 PDF page, or 1 second of video at any resolution. No fps or resolution math, and renders never auto-delete. - **Complex multi-track programmatic video at scale**: [Stay on Creatomate](#when-creatomate-is-still-the-right-call) — Its JSON engine handles deep video compositing beyond what a template workflow is built for. ![The Creatomate homepage — a media automation platform that generates videos and images from JSON templates via API](https://orshot.com/blog/creatomate-api-alternative/creatomate-homepage.webp) ## What's Different If you're already on Creatomate, here's what changes when you switch: | Feature | Orshot | Creatomate | | :-------------------------- | :--------------------------------------------------------------------------------- | :-------------------------------------------------------------------- | | **Free tier** | 30 credits, every feature included | 50-credit trial | | **Entry plan** | \$39/month for 1,500 credits | \$54/month for 2,000 credits (\$45 billed annually) | | **Template editing** | Visual drag-and-drop [Studio](https://orshot.com/studio) | JSON templates | | **Credit model** | Flat — 1 credit = 1 image, 1 PDF page or 1 second of video, at any resolution | Video credits scale with resolution and frame rate | | **Multi-page templates** | [Carousels, PDFs and videos in one API call](https://orshot.com/blog/introducing-carousel-templates) | No — stitch them yourself | | **White-label editor** | [Studio Embed](https://orshot.com/blog/orshot-studio-embed) on every paid plan from \$39 | JS Preview SDK (Growth+, \$109) — a preview widget, not a full editor | | **Render storage** | [Push to Drive, Dropbox, S3 or R2](https://orshot.com/features/bring-your-own-storage) | Hosted on their CDN, auto-deleted after 30 days | | **Public self-serve forms** | [Template Forms](https://orshot.com/blog/template-forms) — share a template as a form | No | | **Native workflows** | [Trigger, render and publish on a schedule](https://orshot.com/workflows) | Zapier, Make or n8n | | **Social publishing** | [Built in, 15+ platforms](https://orshot.com/docs/publish/introduction) | No | | **Template creation** | [Canva](https://orshot.com/solutions/canva-template-to-api), Figma import, or AI | Manual, in JSON | | **Integrations** | n8n, Zapier, Make, Pipedream, MCP server, Dynamic URLs | Zapier, Make, n8n, Pabbly | ## The friction with Creatomate ![What Creatomate users keep fixing: designers can't edit JSON, credits scale with resolution, no multi-page templates, editor SDK locked to $109, renders vanish in 30 days, and unpredictable video cost](https://orshot.com/blog/creatomate-api-alternative/frictions.webp) - **JSON templates.** Designers can't iterate without a developer in the loop. - **Resolution-based credits.** 1080p eats more than 720p. Budgeting becomes guesswork. - **No multi-page.** Carousels, PDFs, and slideshows have to be stitched together manually. - **JS Preview SDK gated.** Locked behind the $109 Growth plan (and it's only a preview widget, not the editor). - **Renders auto-delete.** Files vanish after 30 days. No first-party limits to push to your own S3/Drive. - **Tutorials over help.** You get feature walkthroughs when you actually just need a quick answer. ## Creatomate Pricing in 2026 (and How Orshot Compares) Creatomate runs three plans — Essential, Growth and Beyond — and the pricing page defaults to annual billing, so the number you see first is the annual-effective rate (roughly two months cheaper than paying monthly). Here's the monthly rate against the closest Orshot plan, with the annual figure in brackets. Prices checked against creatomate.com/pricing in August 2026: | Creatomate plan | Creatomate | Closest Orshot plan | Orshot | | ------------------------- | ---------------- | ---------------------- | -------- | | Essential · 2,000 credits | \$54 (\$45/yr) | Launch · 1,500 credits | **\$39** | | Growth · 10,000 credits | \$129 (\$109/yr) | Grow · 20,000 credits | \$160 | | Beyond · 50,000 credits | \$329 (\$274/yr) | Scale · 75,000 credits | \$349 | On images the two are close — 1 image is 1 credit on both, so Essential works out to \$0.027 a credit against Orshot Launch's \$0.026. Read it honestly: - **On raw image credits they're competitive**, and if you pay annually and render only images, their \$45 for 2,000 edges Orshot's \$39 for 1,500. - **Video is where the models split — but not the way a sticker price suggests.** Creatomate bills video by resolution and frame rate (their own docs put 720p/25fps at about 14 credits a minute), so the same clip is cheap or expensive depending on settings, and you can't know the bill until you pick them. Orshot is a flat 1 credit per second — simpler to forecast, and it never changes because you bumped the resolution. - **The gated features are the real gap.** The white-label editor, multi-page templates, own-storage sync and social publishing are included on every Orshot plan; on Creatomate the editor SDK starts at Growth and renders auto-delete after 30 days. [Full pricing details here](https://orshot.com/pricing) **A credit that means one thing** — 1 image, 1 PDF page or 1 second of video — at any resolution. Test it on your own volume with 30 free credits. [Start free](https://orshot.com/signup?via=blog-creatomate-pricing) ## What Orshot adds on top Here are a few things Orshot handles that Creatomate doesn't do at all: - **[AI Design Agent](https://orshot.com/blog/introducing-design-agent)** — Describe what you need ("Instagram promo with headline and logo") and it builds the layers and parameters for you. - **[Smart Resize & variants](https://orshot.com/features/smart-resize)** — Render one design at any size in a single call, the layout re-solves to fit, or return every social format at once with `extraSizes`. No redesigning per aspect ratio. - **[Studio Embed](https://orshot.com/blog/orshot-studio-embed)** — White-label the full editor inside your own app, with React and Vue SDKs. - **[Template Forms](https://orshot.com/blog/template-forms)** — Share any template as a public, self-serve form for clients or teammates. - **[Brand Kit](https://orshot.com/features/brand-assets-library)** — Centralize colors, fonts, logos and videos, and apply them to every render. - **[Bring your own storage](https://orshot.com/features/bring-your-own-storage)** — Pipe renders straight into Drive, Dropbox, S3 or R2 (Creatomate deletes them after 30 days). - **[Import from anywhere](https://orshot.com/docs/importing-templates)** — Bring designs in from Canva, Figma, HTML, a URL, Polotno, Bannerbear or Templated instead of starting from scratch. - **Developer tools everywhere** — [OAuth 2.0 apps](https://orshot.com/blog/orshot-for-developers), an [MCP server for agents](https://orshot.com/agents) with 60+ tools, a [VS Code extension](https://orshot.com/blog/orshot-ide-extension), a CLI, and native SDKs (Node, Python, Ruby, PHP). ![Automating template image generation with Orshot](https://orshot.com/home/new/automate-templates.png) ## Audio, subtitles and clips, controlled by the API Creatomate renders video, but Orshot's video is a visual template where every audio track, caption and clip is a parameter you override at render time. Set it up visually in Studio, then override any of it per render — one template becomes hundreds of on-brand videos. ![Orshot Studio's Page Audio panel: pick a track and replace it, trim it, set volume, fade, loop and mute, add multiple audio tracks, and toggle auto-subtitles — an AI transcription of the track burned in at render](https://orshot.com/blog/creatomate-api-alternative/studio-audio.webp) - **Dynamic audio** — add per-page music or a voiceover in Studio with volume, offset, loop, fade and trim, then swap the track for any render with `audioSource` (one URL, or per page). - **Dynamic subtitles** — auto-transcribe captions from the audio or video with Whisper, or pass an `.srt`/`.vtt`. Switch to word-by-word karaoke, and control font, size, weight, color, position, background pill, padding and shadow. - **Per-clip video control** — replace a clip's source and set its `trimStart`, `trimEnd`, `muted` and `loop` per element, per render. ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { headline: "Launch week", // per-clip control, by element id "bgVideo.trimStart": 2, "bgVideo.trimEnd": 8, "bgVideo.muted": false, }, response: { type: "url", format: "mp4" }, videoOptions: { audioSource: "https://cdn.example.com/track.mp3", // swap the soundtrack subtitleSource: "https://cdn.example.com/voiceover.mp3", // auto-transcribed captions subtitleMode: "word-by-word", // karaoke-style captions subtitleColor: "#ffffff", subtitlePosition: "bottom", }, }), }); ``` Every parameter is in the [video options](https://orshot.com/docs/video-generation/video-options), [video elements](https://orshot.com/docs/video-generation/video-elements) and [subtitles](https://orshot.com/docs/video-generation/adding-subtitles) docs. On Creatomate this lives in hand-written JSON and resolution-priced credits; on Orshot it's a visual timeline plus a flat 1 credit per second. ## Automate the Whole Loop, Not Just the Render A render API gives you one endpoint. Something still has to decide when to call it, where the data comes from, and where the finished file goes — usually Zapier, Make or n8n, which is a second subscription and a second thing to break. [Orshot Workflows](https://orshot.com/workflows) put that inside the same product as the template: - **Trigger** from Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify, Drive or a plain webhook - **Render** one template or a whole batch - **Send** it to social, storage, email or your own endpoint - **Repeat** on a schedule, without you The one most Creatomate users would want first — a short-form video rendered and posted straight to TikTok on a schedule. Copy it into your workspace and turn it on: [Render and post a video to TikTok automatically on Orshot](https://orshot.com/workflows/random-drive-photo-to-tiktok/embed) A few more working presets in the same vein: [Instagram carousels from a sheet](https://orshot.com/workflows/instagram-carousels-from-sheet), [product marketing images from a catalog](https://orshot.com/workflows/product-marketing-images), and [sale and discount banners](https://orshot.com/workflows/sale-discount-banners). Creatomate has no workflow equivalent — scheduling and orchestration live in Zapier, Make or n8n on their side. ### Already on Make.com or n8n? Bring it with you If you found this page searching for a Creatomate Make.com integration or a Creatomate n8n setup, you don't lose that by switching. Orshot has a first-party [n8n node](https://orshot.com/docs/integrations/n8n) plus [Make](https://orshot.com/docs/integrations/make), [Zapier](https://orshot.com/docs/integrations/zapier) and [Pipedream](https://orshot.com/docs/integrations/pipedream) apps, so your existing scenarios keep working — swap the render step and the rest of the flow is unchanged. There's also [Orshot for agents](https://orshot.com/agents) so Claude, Cursor or Windsurf can render directly. ## Post to 15+ social accounts, then see what's working Creatomate stops at the render. Orshot takes it all the way to the post and back — from the same API: - **Publish from the render call** — add a `publish` object to any render and Orshot uploads it and posts to [15+ platforms](https://orshot.com/docs/publish/introduction): Instagram, TikTok, LinkedIn, X, YouTube, Facebook, Pinterest, Threads and more. Post instantly, save a draft, or schedule it with a `status` field. - **Or let an agent do it** — with [Orshot for agents](https://orshot.com/agents), Claude, Cursor or ChatGPT can render _and_ post on your behalf from a plain prompt. - **Then measure it** — [social analytics](https://orshot.com/features/social-analytics) tracks impressions, engagement, follower growth and best time to post for every connected account, with a daily digest email. ![Orshot's social analytics dashboard — impressions, engagement, posts published and follower growth across every connected account, with a cross-platform trend chart, share of impressions by platform, and a best-time-to-post heatmap](https://orshot.com/blog/introducing-social-analytics/analytics.webp) ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { headline: "Launch day" }, response: { type: "url", format: "mp4" }, publish: { accounts: [1, 2, 3], // connected TikTok, Instagram, LinkedIn content: "Out now →", }, }), }); ``` On Creatomate you'd render here, then bolt on Buffer or Hootsuite to post and a separate tool to see how it did. Orshot does all three. ## When Creatomate is still the right call I want to be honest here: if you need complex programmatic multi-track video compositing beyond what a template-based workflow handles, Creatomate's JSON engine is genuinely powerful. But with Orshot's visual video timeline, page-level audio, and auto-subtitles, the gap has narrowed significantly. For everything else — image-heavy workflows, carousels, PDFs, designers who want to edit templates without writing JSON, or a white-label editor without a $109 floor price — Orshot is the better fit. ## Switching Most people are done migrating in an afternoon. ### 1. Recreate templates visually You have three options (fastest first): - **[AI Design Agent](https://orshot.com/blog/introducing-design-agent)** — Describe the template or paste a screenshot, and get a working draft. - **[Import from Canva](https://orshot.com/solutions/canva-template-to-api)** or **[Figma](https://orshot.com/solutions/figma-automation-via-rest-api)** — Perfect if you already have the source files. - **Build in [Orshot Studio](https://orshot.com/studio)** — Drag-and-drop everything using [Smart Stacking](https://orshot.com/blog/smart-stacking) and your Brand Kit. Try it now — paste a public Canva share link and see it as an Orshot template: ### 2. Swap the API call Here's how the API call changes. **Creatomate:** ```javascript const response = await fetch("https://api.creatomate.com/v1/renders", { method: "POST", headers: { Authorization: "Bearer YOUR_CREATOMATE_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template_id: "creatomate_template_id", modifications: { "Title.text": "Hello World", "Image.source": "https://example.com/photo.jpg", }, }), }); ``` **Orshot:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", // Override any style property natively "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` It uses the same Bearer pattern, but with flat parameter keys (plus dot notation for style overrides), and an explicit output format. Check the [API docs](https://orshot.com/docs/api-reference), [SDKs](https://orshot.com/docs/sdks), or [Dynamic parameters](https://orshot.com/docs/dynamic-parameters) for more. Your API key lives under Settings in your Orshot dashboard, the same place Creatomate keeps theirs. ### 3. Run both in parallel for a day Compare the outputs side-by-side, tweak margins in Studio, and cut over when you're ready. If anything acts weird, just hit the chat button. I (or someone on the team) will help you migrate. ## Other Creatomate alternatives worth a look Orshot makes sense if you want a visual editor, flat credits and one plan for images, PDFs and video. If your bottleneck is somewhere else, these are the tools people also weigh against Creatomate. ### Bannerbear ![The Bannerbear homepage — auto-generate social media visuals and ecommerce banners via API and integrations](https://orshot.com/blog/creatomate-api-alternative/alt-bannerbear.webp) The most established name in image-generation APIs, with a deep bench of integrations (Zapier, Make, Airtable). It's image-first — video is basic and there's no visual timeline — and the bill climbs faster than Creatomate's once you scale. [Read the full Bannerbear breakdown →](https://orshot.com/blog/bannerbear-api-alternative) ### Placid ![The Placid homepage — a creative automation platform for images, PDFs and video from templates](https://orshot.com/blog/creatomate-api-alternative/alt-placid.webp) The closest to Creatomate on scope: images, PDFs and video from templates, with a real editor. The catch is the credit math — renders over 4000px multiply, PDF pages cost double, and the Editor SDK sits on the top plan. [Read the full Placid breakdown →](https://orshot.com/blog/placid-api-alternative) ### Templated.io ![The Templated.io homepage — automate images, videos and PDFs from dynamic templates with a drag-and-drop editor](https://orshot.com/blog/creatomate-api-alternative/alt-templated.webp) A lighter, cheaper template-to-API tool with a drag-and-drop editor and Canva import. Good if you mostly render images and want a low entry price; less suited to heavy video work. [Read the full Templated breakdown →](https://orshot.com/blog/templated-io-alternative) ### RenderForm ![The RenderForm homepage — a template editor to automate repetitive image and PDF creation](https://orshot.com/blog/creatomate-api-alternative/alt-renderform.webp) A budget-friendly image and PDF API with a component-based editor and a generous free tier. There's no video generation, so it's an image/PDF play rather than a Creatomate-style video engine. [Read the full RenderForm breakdown →](https://orshot.com/blog/renderform-api-alternative) Verified pricing and feature details for these and more are in our [template-based image generation tools](https://orshot.com/blog/template-based-image-generation-tools) comparison. ## Common questions **Q: What is Creatomate?** Creatomate is a media automation platform for generating videos and images from templates via API. It's built around JSON templates and resolution-based credits, which makes it a strong fit for developer teams rendering programmatic video at scale. [Orshot](https://orshot.com/) solves the same job — templates become API endpoints — but with a visual editor designers can use, flat credits, and images, PDFs and video on one plan. **Q: How much does Creatomate cost in 2026?** Creatomate has three plans, and the pricing page defaults to annual billing. Month-to-month: Essential $54 (2,000 credits), Growth $129 (10,000 credits), Beyond $329 (50,000 credits); annual billing is roughly two months cheaper ($45 / $109 / $274). There's a 50-credit free trial. Prices checked against creatomate.com/pricing in August 2026. [Orshot](https://orshot.com/pricing) starts free with 30 credits and every feature, then $39/month for 1,500 credits across images, PDFs and video. **Q: Does Creatomate have a free plan?** Not a permanent one — it's a 50-credit free trial, and generated files auto-delete after 30 days. Orshot's free tier is 30 one-time credits with every feature included (video, the visual editor, workflows, API) and no card required, and you can [push renders to your own Drive, Dropbox, S3 or R2](https://orshot.com/features/bring-your-own-storage) so nothing expires. **Q: How do I get a Creatomate API key?** In Creatomate, the API key lives in your dashboard under the project's API settings. Orshot works the same way — sign up, open Settings, and generate a key — then call `https://api.orshot.com/v1/studio/render` with a Bearer token. The request shape is nearly identical, so migrating an existing Creatomate integration is mostly a find-and-replace. **Q: Does Creatomate integrate with Make.com and n8n?** Yes, Creatomate has modules for Make.com and n8n. Orshot does too — a first-party [n8n node](https://orshot.com/docs/integrations/n8n), plus [Make](https://orshot.com/docs/integrations/make), [Zapier](https://orshot.com/docs/integrations/zapier) and Pipedream — so your existing scenarios port over by swapping the render step. Orshot also has [built-in Workflows](https://orshot.com/workflows), so for many setups you won't need a separate automation tool at all. **Q: Does Creatomate do video generation, and how does Orshot compare?** Video is Creatomate's core strength, and its JSON engine handles complex multi-track compositing well. Orshot also generates video (MP4, WebM, GIF) from a [visual timeline](https://orshot.com/blog/video-timeline-audio-subtitles) with per-layer animation, page-level audio and auto-subtitles. The difference is the credit model: Creatomate video credits scale with resolution and frame rate, while an Orshot second is always 1 credit — easier to forecast. **Q: Do I have to learn JSON to use Orshot?** No. Templates are built visually in [Orshot Studio](https://orshot.com/studio), so designers can edit them without a developer. You only touch JSON in the API call itself, and it's flat key-value pairs. **Q: Can I embed the editor in my own app?** Yes. [Studio Embed](https://orshot.com/blog/orshot-studio-embed) is a full, white-labeled editor on every paid plan from $39/month. Creatomate's JS Preview SDK is a preview widget rather than a full editor, and it starts on the Growth plan. ## Bottom Line Creatomate is a genuinely powerful JSON engine for developer teams rendering complex video at scale. But if your work is image-heavy, needs designers editing templates without touching JSON, or wants carousels, PDFs, a white-label editor and a credit that always means one thing, Orshot fits better — the same render-from-a-template model, without the resolution math or the 30-day render expiry. Building visual content automation for multiple clients? The [Agency Partner Program](https://orshot.com/partner-program) is free to join, with unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. If you're also comparing [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Placid](https://orshot.com/blog/placid-api-alternative) or [APITemplate.io](https://orshot.com/blog/apitemplate-io-alternative), each runs the same verified-pricing format as this page. ## Try it [Sign up](https://orshot.com/signup?via=blog-creatomate-footer), recreate one template (or let our AI do it for you), and run a few real renders against it. You'll start with 30 free credits and we don't ask for a card. If something isn't working right, or you just want help migrating your existing templates, hit the chat button on the bottom right. I'll generally be the one on the other end. --- ### [A Gamma.app Alternative with Design Control and API](https://orshot.com/blog/gamma-app-alternative) > Looking for a Gamma.app alternative? Orshot offers full design control, reliable exports, and a REST API for bulk image generation. 30 free credits. **TL;DR:** Orshot is a Gamma.app alternative built for teams that need full design control, reliable file exports (PNG, PDF, MP4), and a REST API for bulk image generation. No AI layout guessing, no broken PowerPoint exports. [Start free with 30 credits](https://orshot.com/signup "target=_blank") — no credit card needed. --- Gamma made presentations fast. You type a prompt, and you get a deck in seconds. For quick internal docs or email attachments, that's great. But if you've used it beyond the honeymoon phase, you've probably hit the same walls everyone else is hitting. Broken PowerPoint exports. Layouts that all look the same after a while. AI-generated images that hallucinate. A credit system that runs out faster than expected. And when you actually need to present to a client, things fall apart right when it matters most. I built [Orshot](https://orshot.com/) because I needed something different — a tool where you actually control the design, can automate generation at scale through an API, and don't have to pray that your export works in PowerPoint. Same speed, more control. [**Try Orshot Free →**](https://orshot.com/signup "target=_blank") **(30 credits, no card needed)** **Migrate from Gamma.app to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Gamma.app API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ![Designing a presentation slide in Orshot Studio](https://orshot.com/blog/studio-ppt-design.webp) ## Orshot vs Gamma.app: Feature Comparison Here's a side-by-side comparison of Orshot and Gamma.app across the features that matter most for design teams, marketers, and developers: | Feature | Orshot | Gamma | | :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- | | **Template Editor** | Visual drag-and-drop [Orshot Studio](https://orshot.com/studio) with [Smart Stacking](https://orshot.com/blog/smart-stacking) | AI prompt-based, Notion-style blocks | | **Design Control** | Pixel-level control over every element | Limited — AI decides layout | | **Export Formats** | PNG, JPG, WebP, AVIF, PDF, MP4, WebM, GIF — all reliable | PDF, PPTX (often breaks), PNG | | **API Access** | Full REST API, SDKs, CLI, [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) | API on Pro plan only | | **Multi-page Templates** | Yes — carousels, PDFs, videos in [one API call](https://orshot.com/blog/introducing-carousel-templates) | Yes — but limited customization per card | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI Generator](https://orshot.com/features/ai-template-generator) | Prompt-based or import from PDF/PPTX | | **Bulk Generation** | Yes — API, spreadsheet, automation tools | No — one at a time manually | | **White-labeled Design Editor** | Yes via [Orshot Embed](https://orshot.com/blog/orshot-studio-embed) | No | | **Video Generation** | Advanced: MP4/WebM/GIF, per-layer animations, [trim/loop/mute controls](https://orshot.com/docs/dynamic-parameters/video) | Basic AI-generated video clips | | **Automation Integrations** | n8n, Make, Zapier, MCP Server, CLI | Limited — Zapier only | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | | **Offline Usage** | API-generated assets work anywhere offline | No — requires internet, web-based only | | **Free Tier** | 30 free credits, all features | Limited credits, Gamma branding | | **Starting Price** | \$39/month for 1,500 credits (1 credit = 1 image) | \$10/month (Plus), limited features | ## Why People Switch from Gamma.app These are the most common Gamma.app complaints based on Reddit threads, user reviews, and conversations with people who've switched to Orshot: ### 1. Gamma PowerPoint Exports Break Frequently This is the most reported Gamma.app issue. You spend time getting your deck looking good, export it to PowerPoint, and the text shifts, fonts go missing, layouts break. One user [described it perfectly](https://www.reddit.com/r/bestai2025/comments/1qhekze/finally_switched_from_gamma_here_are_the/ "target=_blank"): _"The final straw was when I had to present to a client and my 'polished' Gamma deck looked like a mess when I opened it in PowerPoint 30 minutes before the meeting."_ **How Orshot solves this:** You design the actual output in [Orshot Studio](https://orshot.com/studio). What you see is what you get — PNG, PDF, WebP, whatever format you need. No conversion step, no broken layouts. Orshot supports 8 export formats: PNG, JPG, WebP, AVIF, PDF, MP4, WebM, and GIF. ### 2. Gamma Layouts All Look the Same Gamma's Notion-style blocks produce consistent but repetitive results. After a few months, users notice their decks all share the same structure. _"Every PowerPoint has the same outline or use of their context (the circle, graph, and other)"_ is a [common complaint](https://www.reddit.com/r/ProductivityApps/comments/1nob9ht/gamma_ai_what_do_you_guys_think/ "target=_blank"). **How Orshot solves this:** With [Orshot Studio](https://orshot.com/studio), you design from scratch or start from any template. You control layout, typography, spacing, colors — pixel by pixel. Features like [Smart Stacking](https://orshot.com/blog/smart-stacking) let you position elements relative to each other so they auto-adjust when content changes. Your brand looks like your brand, not like everyone else's Gamma deck. ### 3. Gamma AI Images Hallucinate The AI-generated images in Gamma are unreliable. Even Gamma's team [acknowledged this](https://www.reddit.com/r/ProductivityApps/comments/1nob9ht/gamma_ai_what_do_you_guys_think/ "target=_blank"): _"The hallucination issue you mentioned is real and honestly something we're still working hard to improve."_ For academic, educational, or client-facing work, inaccurate AI images are a dealbreaker. **How Orshot solves this:** You use your own images, stock photos, or Orshot's [background removal API](https://orshot.com/blog/remove-image-background-api). No AI guessing what your image should look like. What you put in is what comes out — every time. ### 4. Gamma Has No API for Bulk Image Generation Until recently, Gamma had no API at all. Even now, it's locked behind the Pro plan and designed for generating presentations — not individual images or assets at scale. If you need to generate hundreds of social media graphics, product images, or certificates, Gamma can't do it. **How Orshot solves this:** Every Orshot template becomes an API endpoint. Generate one image or ten thousand — via [REST API](https://orshot.com/docs/api-reference), [SDKs](https://orshot.com/docs/sdks) (Node.js, Python, Ruby, PHP), [CLI](https://orshot.com/docs/integrations/orshot-cli), [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls), or automation platforms like [n8n](https://orshot.com/docs/integrations/n8n), [Make](https://orshot.com/docs/integrations/make), and [Zapier](https://orshot.com/docs/integrations/zapier). Orshot's Starter plan includes 1,500 credits/month at $39 — about 2.6¢ per image. ### 5. Gamma Is Web-Only with No Offline Access Gamma requires an internet connection for everything. You can't edit offline, and the presentation itself is a webpage — not a file you own. As one user [pointed out](https://www.reddit.com/r/powerpoint/comments/1r1vkw9/is_gamma_app_better_than_powerpoint/ "target=_blank"): _"Gamma is great but be aware it doesn't give you the ability to edit offline."_ **How Orshot solves this:** Orshot generates actual files — images, PDFs, videos. Once rendered, they're yours. Store them in S3, Google Cloud, or your own CDN via [built-in cloud storage connections](https://orshot.com/features/bring-your-own-storage). Use them anywhere, offline or online. ### 6. Gamma's Credit System Burns Through Fast Gamma's credit system leaves users constantly doing mental math about how many presentations they can create. The credits run out, and you're stuck either upgrading or waiting. Users report that the subscription pricing has increased over time, affecting existing subscribers too. **How Orshot solves this:** Orshot's [pricing](https://orshot.com/pricing) is straightforward — $39/month for 1,500 credits, $99/month for 5,000. And a credit always means the same thing: 1 image, 1 PDF page, or 1 second of video — no hidden multipliers, no feature gating based on plan tiers. Every plan includes every feature — API access, video generation, social publishing, all integrations. ### 7. Gamma Has Compatibility Issues with Google Slides and Teams If your workflow involves sharing files with people who use PowerPoint, Google Slides, or Teams, Gamma creates friction. The Notion-style format doesn't translate well, and export fidelity is weak. A user noted: _"Biggest Gamma con for client work? Compatibility issues with Google Slides/Teams."_ **How Orshot solves this:** Orshot generates standard image and PDF formats that work everywhere — email clients, Slack, Notion, Google Docs, presentations. There's no conversion step to worry about. ## What Orshot Offers Beyond Gamma.app Beyond solving Gamma's pain points, Orshot includes features built for developers, marketers, and design teams: **Full visual editor** — [Orshot Studio](https://orshot.com/studio) feels like designing in Figma or Canva. Drag-and-drop, [Smart Stacking](https://orshot.com/blog/smart-stacking) for relative positioning, keyboard shortcuts, real-time preview. Your designers can use it directly — no AI prompt engineering required. **White-label embed** — [Studio Embed](https://orshot.com/blog/orshot-studio-embed) lets you drop a full design editor into your app. Custom branding, permission controls, webhook events. Great for SaaS products that need user-facing design tools. **Multi-page templates** — Create carousels, multi-page PDFs, and multi-page videos in a single template. Generate all pages with [one API call](https://orshot.com/blog/introducing-carousel-templates). Perfect for LinkedIn carousels, Instagram slideshows, pitch decks. **Per-layer animations** — [Animate individual layers](https://orshot.com/blog/introducing-animations-in-studio) in video templates with enter/exit effects (fade, slide, scale), visibility timing, and staggered choreography. All controllable via API parameters. **Import from anywhere** — Clone from [Canva](https://orshot.com/solutions/canva-template-to-api), import from [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), or use [AI to generate templates](https://orshot.com/features/ai-template-generator). Way faster than starting from scratch. **Social publishing** — Render and [post to 15+ social platforms](https://orshot.com/docs/publish/introduction) in one API call. No Buffer or third-party scheduler needed. Post instantly, schedule, or save as draft. **More integrations** — [MCP Server](https://orshot.com/docs/integrations/mcp-server) for AI apps like Claude, [CLI](https://orshot.com/docs/integrations/orshot-cli) for terminal workflows, plus Make, Zapier, n8n. [Full list here](https://orshot.com/integrations). **Actual support** — I respond to chat messages. Usually within an hour. Sometimes I'll just hop on a call if something's complicated. ![Customer testimonial from Mihai about using Orshot](https://orshot.com/blog/mihai-testimonial.webp) ## Pre-built API Templates Ready-to-use utility templates you can call via API — no design work needed: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots with customization - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures, any viewport - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work great on their own or combined with your custom templates. Gamma has nothing equivalent. ## When to Use Gamma.app Instead of Orshot To be fair, Gamma is genuinely good for: - **Quick first drafts** — When you need a rough deck in 2 minutes for an internal meeting - **Brainstorming** — Using AI to iterate on presentation structure before you know what you want - **Simple one-off docs** — Sending a quick doc over email where design doesn't matter much If that's all you need, Gamma works fine. But the moment you need pixel-level design control, reliable exports, bulk generation, or API automation — that's where Orshot takes over. > **Bottom line:** Gamma is an AI presentation generator. Orshot is a design automation platform with an API. They solve different problems — but if you're hitting Gamma's limits, Orshot is the natural next step. ## How to Switch from Gamma.app to Orshot Here's how most people migrate from Gamma to Orshot: ### Step 1: Design Your Templates You have a few options: **Build from scratch** — Open [Orshot Studio](https://orshot.com/studio) and design your template with full control. Drag-and-drop, pixel-level positioning, your fonts and colors. **Use AI** — Screenshot your Gamma output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate the layout, you fine-tune the details. **Import existing designs** — If you have the original in Canva or Figma: - [Clone from Canva](https://orshot.com/solutions/canva-template-to-api) - [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) You can create multi-page templates, [share through public links or embeds](https://orshot.com/blog/sharing-orshot-templates) like the one below, and [invite your team to collaborate](https://orshot.com/features/team-collaboration). [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ### Step 2: Set Up Automation Unlike Gamma (which is manual), Orshot lets you automate everything: **Via API:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { title: "Q1 Sales Report", subtitle: "March 2026 Review", heroImage: "https://example.com/chart.png", "title.fontFamily": "Inter", "title.color": "#1a1a1a", }, response: { type: "url", format: "png", }, }), }); ``` **Via Dynamic URLs** — Generate images just by changing URL parameters. No API calls needed. [Learn more](https://orshot.com/docs/integrations/dynamic-urls). **Via automation tools** — Connect to [n8n](https://orshot.com/docs/integrations/n8n), [Make](https://orshot.com/docs/integrations/make), or [Zapier](https://orshot.com/docs/integrations/zapier) for fully automated workflows. ### Step 3: Test and Deploy 1. Make a few test renders 2. Compare the output quality 3. Tweak styling in Studio if needed 4. Deploy to your workflow You can use the Template Playground to experiment with different content and styles before going live. ![Orshot Template Playground](https://orshot.com/blog/template-playground.webp) ## Gamma.app Alternative FAQ **Q: How is Orshot different from Gamma?** Gamma is an AI presentation maker — you prompt it and get a deck. Orshot is a design-first platform with a visual editor and full API. You control every pixel, and can generate images, PDFs, and videos at scale through automation. Different tools for different needs. **Q: Can Orshot generate presentations like Gamma?** Orshot generates individual visual assets — social media graphics, banners, certificates, product images, carousels, multi-page PDFs, and videos. If you need a full slide deck generated from a prompt, Gamma does that. If you need branded visual content at scale with full design control, that's Orshot. **Q: Can I import my designs from Canva or Figma?** Yes. Use our [Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) or [Canva import tool](https://orshot.com/solutions/canva-template-to-api) to bring existing designs directly into Orshot. **Q: Does Orshot have an API for bulk generation?** Yes. Every Orshot template becomes an API endpoint. Generate thousands of images programmatically via [REST API](https://orshot.com/docs/api-reference), [SDKs](https://orshot.com/docs/sdks) (Node, Python, Ruby, PHP), [CLI](https://orshot.com/docs/integrations/orshot-cli), or automation platforms. **Q: Does Orshot support multi-page templates and carousels?** Yes. Create Instagram carousels, LinkedIn slideshows, multi-page PDFs, and even multi-page videos — all in a single template, generated with [one API call](https://orshot.com/blog/introducing-carousel-templates). **Q: What about video generation?** Orshot supports advanced video generation (MP4/WebM/GIF) with per-layer controls like trim, loop, mute, and [animations](https://orshot.com/blog/introducing-animations-in-studio) including fade, slide, and scale with staggered choreography. **Q: Does Orshot work with n8n, Make, and Zapier?** Yes. Orshot integrates with [Zapier](https://orshot.com/docs/integrations/zapier), [Make](https://orshot.com/docs/integrations/make), [n8n](https://orshot.com/docs/integrations/n8n), plus [MCP Server](https://orshot.com/docs/integrations/mcp-server) and [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls). **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. **Q: Is Orshot free to use?** Yes. Orshot offers 30 free credits with full access to all features — no credit card required. Paid plans start at $39/month for 1,500 credits. **Q: Can I use Orshot to create social media images in bulk?** Yes. Design a template in [Orshot Studio](https://orshot.com/studio), then generate thousands of variations via REST API, Dynamic URLs, or automation tools like n8n, Make, and Zapier. Each image is customized with your data — text, images, colors, fonts. **Q: Does Orshot support video and animated content?** Yes. Orshot generates MP4, WebM, and GIF videos with per-layer animations including fade, slide, scale, and staggered choreography. All controllable via API parameters. See [animation docs](https://orshot.com/blog/introducing-animations-in-studio). **Q: How does Orshot compare to Canva for bulk generation?** Canva's bulk create requires manual CSV uploads with no API access. Orshot lets you automate everything — import [Canva templates](https://orshot.com/solutions/canva-template-to-api), generate via API, and publish to 15+ platforms. See our [Canva bulk create comparison](https://orshot.com/blog/canva-bulk-create-alternative). ## Orshot Studio: The Visual Editor ![Orshot Studio - visual template editor](https://orshot.com/blog/orshot-studio.webp) [Orshot Studio](https://orshot.com/studio) is a drag-and-drop visual editor that gives you the design control Gamma's AI-driven approach can't match. **Key features:** - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** — Position elements relative to each other. They auto-adjust when content changes - **Brand Assets** — Save your logos, colors, and fonts. Use across all templates - **Custom Fonts** — Upload any font. No limits on typography - **Personalization** — Make any element dynamic — text, images, colors, styling - **[Studio Embed](https://orshot.com/blog/orshot-studio-embed)** — Integrate the editor into your own app with custom branding - **Multi-page Support** — Create carousels and PDF templates with multiple pages ## Orshot Tutorials and Examples ### Video Generation using Orshot [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Carousel Templates [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ### Import from Canva [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Dynamic URLs [Watch the video](https://www.youtube.com/watch?v=a2I69Qb2hts) --- ## Start Using Orshot Today If you're hitting the limits of Gamma.app — broken exports, repetitive layouts, no API, no bulk generation — Orshot is built to solve exactly those problems. Full design control, reliable exports in 8 formats, a REST API with SDKs in 4 languages, and integrations with every major automation platform. [**Get Started Free →**](https://orshot.com/signup "target=_blank") — 30 credits, all features, no credit card. ## Bottom Line Gamma is a presentation generator. Orshot is a visual content automation platform. If you need quick AI-generated decks for internal use, Gamma's fine for that. But if you need pixel-level design control, reliable exports, bulk generation through an API, or automation workflows — Orshot is the best Gamma.app alternative for that. No more broken PowerPoint exports. No more repetitive Notion-style layouts. No more hallucinated images. Just a visual editor you control, templates you own, and an API that lets you generate at scale. Comparing other tools too? Check out how Orshot stacks up against [Placid](https://orshot.com/blog/placid-api-alternative), [BannerBear](https://orshot.com/blog/bannerbear-api-alternative), [Creatomate](https://orshot.com/blog/creatomate-api-alternative), and [Canva Bulk Create](https://orshot.com/blog/canva-bulk-create-alternative). ## For Agencies Building visual content for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. ## Try It 1. [Sign up](https://orshot.com) — no card needed 2. Design a template or import from Canva/Figma 3. Test with your actual content 4. See if it works for you If you get stuck, hit the chat button. I'll help you out. --- ### [A Google Pomelli Alternative You Can Actually Automate](https://orshot.com/blog/google-pomelli-alternative) > Pomelli turns your website into one-off campaign ideas. Orshot automates those designs into dynamic images, pdfs and videos via API. Try with 30 free credits > **TL;DR:** Google Pomelli is a free Labs experiment that reads your website and generates on-brand campaign ideas and social creatives. It's a great brainstorming tool, but there's no API, no automation, no scheduling — and it's an experiment that could disappear. > > My tests rendered it unfit for production usage honestly. > > If you've outgrown "make one nice graphic by hand," [Orshot](https://orshot.com/) is the production alternative: design a template once, then generate and publish on-brand visuals at scale. --- ![The Google Pomelli interface](https://orshot.com/blog/google-pomelli.webp) The first time you run Pomelli, it feels a little like magic. You paste your website, Google Labs scans it to build what it calls your "Business DNA" — your colors, fonts, tone, the way your brand actually looks — and a minute later you've got campaign ideas and ready-to-edit social posts that mostly sound like you. For a small business staring at a blank canvas, that's a genuinely good first draft. Then you try to use it for real, and the shape of the thing becomes clear. You generate an asset, download it, and upload it somewhere by hand. You do that again for the next post. And the next. There's no API to call, nothing to wire into your stack, no way to generate a hundred variations or schedule anything. Pomelli is a creative-ideation tool — not a content pipeline. And it's free today precisely because Google hasn't decided what it is yet. I ran into that wall years ago, which is why I built Orshot. It solves the other half of the problem: not "give me an idea," but "I know exactly what I want — now produce it a thousand times and put it where it needs to go, automatically." [**Try Orshot Free →**](https://orshot.com/pricing "target=_blank") **(30 credits, no card needed)** ## Pomelli vs Orshot, honestly These tools look similar on the surface — both spit out on-brand marketing visuals — but they're built for different jobs. Pomelli is an AI that _invents_ creative. Orshot is a platform that _produces_ it on repeat. | Feature | Orshot | Google Pomelli | | :-- | :-: | :-: | | Generates campaign ideas from your site | Yes (via MCP) | Yes | | Pixel-level design control | Yes | No | | Repeatable, identical output | Yes | No | | REST API & SDKs | Yes | No | | AI agents / MCP (Claude, Cursor) | Yes | No | | Automation (n8n, Make, Zapier) | Yes | No | | Bulk generation | Yes | No | | PDF export | Yes | No | | Video export | Yes | Yes | | Publish to 15+ social platforms | Yes | No | | Works in any language | Yes | No | | Free to start | Yes | Yes | | Production-ready (not a beta) | Yes | No | Orshot starts free — 30 credits, no card — then scales from $39/mo for 1,500 credits. Pomelli is free during its beta, with no pricing announced yet. ## Where Pomelli runs out of road Pomelli nails the first 10% of the work — having the idea. The trouble starts the moment you need to do that work repeatedly, at scale, or as part of a system. While testing Pomelli, I also found it doesn't work and errors out often while pulling the brand from a website. ![Google Pomelli showing an error message](https://orshot.com/blog/google-pomelli-erroring-out.webp) Four walls show up fast: - **No API, so no automation.** Everything happens inside the web app: generate, eyeball, download. If you produce the same asset over and over — banners, listing images, certificates — every one is a manual job. Orshot makes a template a live [image generation API](https://orshot.com/solutions/image-generation-api) you call from code, a spreadsheet, or a no-code tool — one render or ten thousand. - **Every run is a fresh roll of the dice.** Great for brainstorming, but you can't lock a design and just swap the content. A fixed template in [Orshot Studio](https://orshot.com/studio) keeps the layout identical and changes only the data — a hundred posts that look intentional, not improvised. - **You publish by hand.** Pomelli has no scheduling and no direct publishing. Orshot does [social media content automation](https://orshot.com/blog/automated-content-creation-tools) — render and publish to 15+ platforms (Instagram, LinkedIn, X, TikTok…) in the same call, instantly or scheduled. - **English-only and experimental.** Pomelli writes copy in English only and lives in Google Labs — a beta with no announced pricing and a long line of retired Labs projects behind it. Orshot's pricing is public, and its API is what teams build on every day. ## Orshot has AI too — it's just not locked in a UI [Orshot MCP Server Tutorial](https://www.youtube.com/watch?v=OhgdZtqEQK0) Pomelli's whole pitch is AI, and that part is fair: pointing a model at your website to draft creative is genuinely useful. Orshot uses AI as well — just aimed at the part that actually scales. - **Describe a template, get a template.** Tell the [AI Design Agent](https://orshot.com/features/ai-template-generator) what you want in plain English and it builds an on-brand, editable template. You reuse it forever instead of regenerating from scratch every time. - **Bring your own AI agents.** Orshot's [MCP server](https://orshot.com/agents) connects Claude, Cursor, and other agents to your account — so "make the launch banner and drop it in our bucket" becomes something an agent does on a webhook or a cron. Prompt in, on-brand asset out. Pomelli's AI ends at a download button. Orshot's AI is wired into your stack. Here's the whole flow — prompt to on-brand asset — in a couple of minutes: ## When Pomelli is the right call To be fair, Pomelli is good at what it's for. If you're starting from a blank page and want AI to propose campaign directions, it does that well. If you need a quick one-off post you'll only ever make once, it's fast and free. And if you're a small business with no design resources and no need to automate, it's a perfectly nice place to start. The moment you need repeatability, an API, bulk generation, scheduling, or a tool you can count on next quarter — that's where Orshot takes over. > **Bottom line:** Pomelli generates marketing _ideas_. Orshot generates marketing _assets_ at scale. Use Pomelli to find the look; use Orshot to produce it forever. ## Moving from Pomelli to Orshot Most people make the jump in three steps. **1. Turn the look you liked into a template.** Rebuild it in the visual editor, or screenshot a design and let Orshot's AI template generator recreate it as an editable template — then mark the dynamic fields. Already have brand designs? Import them straight from Canva or Figma. **2. Generate it with your data.** Once a template has parameters, it's an endpoint: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { headline: "Summer Sale — 30% Off", product_image: "https://example.com/product.png", price: "$49", }, response: { type: "url", format: "png" }, }), }); ``` Prefer no-code? We connect with bunch of [no-code integrations](https://orshot.com/integrations). **3. Publish or deploy.** Push straight to your social channels, drop the files into your CMS or ad manager, or store them in your own bucket. The output is real files you own — not a webpage locked inside someone's beta. If you want to see the kinds of workflows people run this way, [browse the use cases](https://orshot.com/use-cases). ## Common Questions **Q: Is Orshot the same kind of tool as Pomelli?** Not quite — and that's the point. Pomelli is an AI that invents campaign ideas from your website. Orshot is a design-and-automation platform: you define a template once, then generate on-brand images, PDFs, and videos at scale through an API. Use Pomelli to ideate, Orshot to produce. **Q: Does Pomelli have an API?** No. Google Pomelli is a web-based Labs experiment with no public API, no automation hooks, and no scheduling. Orshot is API-first — every template becomes a REST endpoint you can call from code, a spreadsheet, or tools like n8n, Make, and Zapier. **Q: Can Orshot match my brand the way Pomelli does?** Yes, with more control. Save your logos, colors, and fonts as brand assets and design templates pixel-by-pixel. Instead of an AI guessing your brand each run, you lock the design once and only the data changes. **Q: Can I generate and publish images in bulk?** Yes. Design one template and generate thousands of variations — each customized with your own text, images, and colors — then publish them to 15+ social platforms instantly or on a schedule. **Q: Is Orshot free?** Yes. Orshot includes 30 free credits with access to every feature, no credit card required. Paid plans start at $39/month for 1,500 credits. ## Start automating your on-brand content If Pomelli helped you find a look you like, Orshot is how you produce it at scale — full design control, eight export formats, a real API, and built-in publishing, without depending on a beta that might not be here next year. [**Get Started Free**](https://orshot.com/pricing "target=_blank") (30 credits, all features, no credit card) --- ### [A Modern DynaPictures Alternative with Better Pricing and Editor](https://orshot.com/blog/dynapictures-api-alternative) > Looking for a DynaPictures alternative? Orshot offers Canva-like editor, white-label embed, video generation, more integrations and cheaper pricing. Start free DynaPictures has been around since 2020 and they've done solid work in the image automation space. German company, GDPR-focused, reliable API. If you're using it for banner generation or email personalization, it probably gets the job done. But if you've been working with it for a while, you've likely noticed some friction. The editor feels dated compared to modern design tools. No multi-page template support for carousels. Limited integrations beyond Zapier and Pabbly. And pricing in EUR that starts at €29/month for just the basics. I built Orshot because I needed something more flexible. Same core concept - turn templates into API endpoints - but with an editor that feels like Figma, not a web form from 2015. [**Try Orshot Free**](https://orshot.com/pricing "target=_blank") **(30 credits, no card needed)** **Migrate from DynaPictures to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your DynaPictures API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ## What's Different Here's a quick comparison if you're evaluating both: | Feature | Orshot | DynaPictures | | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- | | **Free Tier** | 30 free credits, no expiry, all features | 14-day trial only | | **Starter Plan** | $39/month for 1,500 credits (1 credit = 1 image) | €29/month (Lite) | | **Pro Plan** | $99/month for 5,000 credits | €79/month (Pro) | | **Template Editor** | [Orshot Studio](https://orshot.com/studio) - Figma-like with [Smart Stacking](https://orshot.com/blog/smart-stacking) | Basic template editor | | **Multi-page Templates** | [Carousels, PDFs, Videos](https://orshot.com/blog/introducing-carousel-templates) | No | | **Embed Editor in App** | [White-label Studio Embed](https://orshot.com/blog/orshot-studio-embed) - all paid plans | Widget for image generation only | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI](https://orshot.com/features/ai-template-generator) | Manual creation only | | **Video Generation** | MP4/WebM/GIF with per-layer controls and [animations](https://orshot.com/blog/introducing-animations-in-studio) | No | | **Modern Integrations** | n8n, Make, MCP Server, CLI, Dynamic URLs | Zapier, Pabbly, Integrately | | **Agency Program** | [Free Partner Program](https://orshot.com/blog/agency-partner-program) with sandbox workspaces | No | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | ## The Real Gaps with DynaPictures From what I've seen talking to users who've switched: **The editor is clunky** — DynaPictures' template editor works, but it feels like a web form. No drag-and-drop positioning, no smart alignment, no keyboard shortcuts. If your team includes designers, they'll struggle. [Orshot Studio](https://orshot.com/studio) feels like Figma - layers panel, smart guides, relative positioning with [Smart Stacking](https://orshot.com/blog/smart-stacking). **No multi-page templates** — Instagram carousels, LinkedIn slideshows, multi-page PDFs - DynaPictures can't do these natively. You'd generate each page separately and stitch them yourself. Orshot handles [multi-page templates](https://orshot.com/blog/introducing-carousel-templates) in a single API call, including multi-page videos. **Limited integrations** — DynaPictures has Zapier, Pabbly, and Integrately. That's it. No n8n support (huge for self-hosted automation), no [MCP Server](https://orshot.com/docs/integrations/mcp-server) for AI tools like Claude, no CLI for terminal workflows. Orshot connects with all of these plus Make, Dynamic URLs, and more. **No embeddable editor** — DynaPictures has a widget for end-users to fill forms and generate images. But you can't embed an actual design editor in your app. [Orshot Studio Embed](https://orshot.com/blog/orshot-studio-embed) gives your users a full Canva-like editor inside your product - white-labeled, with webhooks for template changes. **No agency support** — If you're an automation agency building for multiple clients, DynaPictures doesn't offer any special program. Orshot's [Agency Partner Program](https://orshot.com/blog/agency-partner-program) gives you unlimited sandbox workspaces, pooled credits, and client handoff tools - completely free. ## What You Get Extra Beyond solving these gaps: - **Import templates from anywhere** - Clone from Canva, import from Figma with our plugin, or use the [AI Template Generator](https://orshot.com/features/ai-template-generator) to create templates from screenshots. - **Better video support** - Export to MP4, WebM, or GIF. Control each video layer with `.trimStart`, `.trimEnd`, `.muted`, and `.loop` parameters. Add [per-layer animations](https://orshot.com/blog/introducing-animations-in-studio) like fade in, slide transitions, and scale effects with visibility timing and staggered choreography. DynaPictures doesn't do video at all. - **Dynamic URLs** - Generate images on the fly by passing parameters in the URL. No API call needed for simple use cases. [Learn more](https://orshot.com/docs/integrations/dynamic-urls). - **Social Publishing** - Render and [post directly to 15+ social platforms](https://orshot.com/docs/publish/introduction) from the API or dashboard. Skip the download-upload-post cycle entirely. - **Actual support** - I respond to chat messages, usually within an hour. Sometimes I'll just hop on a call if something's complicated. ![Customer testimonial from Mihai about using Orshot](https://orshot.com/blog/mihai-testimonial.webp) ## Utility Templates We have pre-built API templates for common tasks: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work standalone or combined with your custom templates. ## Switching from DynaPictures Here's how most people do it: ### Step 1: Recreate Your Templates (15-30 min) **Rebuild in Studio** - Open your DynaPictures template, recreate it in [Orshot Studio](https://orshot.com/studio). The editor is more intuitive, so it usually goes faster than expected. **Use AI** - Screenshot your DynaPictures output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate the structure, you fine-tune. **Import from Figma** - If you have designs in Figma, use [our plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import directly. ### Step 2: Update Your API Calls (10 min) **DynaPictures API:** ```javascript const response = await fetch("https://api.dynapictures.com/designs/{id}", { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ format: "jpeg", params: [ { name: "title", text: "Hello World" }, { name: "image", imageUrl: "https://example.com/photo.jpg" }, ], }), }); ``` **Orshot API:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", }, }), }); ``` Cleaner structure, same concept. Full docs at [orshot.com/docs](https://orshot.com/docs). ### Step 3: Test Your Integration Use the free tier (30 credits) to validate everything works before going live. No credit card needed. ## For Agencies If you're building image automation for clients, check out the [Agency Partner Program](https://orshot.com/blog/agency-partner-program): - Free to join - Unlimited sandbox workspaces for development - Pooled credit quota (up to 100k/month) - Client handoff tools when they're ready to subscribe [Apply here →](https://orshot.com/partner-program) ## Try It DynaPictures works. But if you want a better editor, multi-page support, modern integrations, and the ability to embed a design studio in your app - give Orshot a try. [**Start Free →**](https://orshot.com/pricing) (30 credits, all features, no card) Questions? Hit me up via chat on the site or email [hi@orshot.com](mailto:hi@orshot.com). --- ### [A No-Code Guide to Automated Retail Ad Generation](https://orshot.com/blog/no-code-retail-ad-generation) > Learn how to automate retail ad generation at scale on auto-pilot using no-code image generation. Create one ad design, generate thousands of variations The retail advertising game has changed. You can't manually design hundreds of product ads anymore—not when you need to launch campaigns across multiple products, platforms, and variations daily Here's how to automate retail ad generation without touching Photoshop or hiring a designer for every update ## The Problem with Manual Ad Creation Let's say you're running a retail brand with 50 products. Each product needs: - Multiple ad sizes (Instagram story, feed post, Facebook ad, Google display) - Seasonal variations (Black Friday, Christmas, Summer Sale) - A/B testing versions (different headlines, colors, CTAs) That's 50 × 4 × 3 × 2 = **1,200 unique ads**. Manually creating these would take weeks and cost thousands in design time There's a better way ## Turn One Template into Thousands of Ads ![Designing a retail ad template in Orshot Studio](https://orshot.com/blog/retail-ads/design-ad-studio.webp) [Preview this ad ↗](https://orshot.com/studio?community_template_id=27) The core concept: **Design once, generate infinitely** Instead of creating individual ads, you create one template and use automation to generate variations. Here's how it works with Orshot: ### Step 1: Choose or Create a Retail Template Start with pre-designed templates built specifically for retail: - **Browse retail-specific templates**: [Orshot Retail Templates](https://orshot.com/templates/g/retail) - **Explore ad templates**: [Orshot Ad Templates](https://orshot.com/templates/g/ads) Or create your own from scratch using **Orshot Studio** (the visual template editor). If you're starting from existing designs in Canva or other tools, check out [free design alternatives](https://orshot.com/blog/free-canva-alternatives) that can be imported directly into Orshot for automation. - **Build custom templates**: [Orshot Studio](https://orshot.com/features/orshot-studio) - Drag-and-drop interface - Add dynamic text fields, images, colors - Design once, use forever ### Step 2: Connect Your Product Data Once you have a template, connect it to your product catalog. Each template becomes an API endpoint that accepts data inputs **Example**: You have a retail template with these dynamic fields: - Product image - Product name - Price - Discount percentage - Background color Instead of manually editing each field, you pass data through the API: ```json { "product_image": "https://yourstore.com/images/shoe-1.jpg", "product_name": "Running Shoes Pro", "price": "$129.99", "price.fontSize": "120px", "discount": "30% OFF", "discount.fontWeight": "bold", "bg_color": "#FF5733" } ``` ![Generating a retail ad in the Orshot playground](https://orshot.com/blog/retail-ads/generate-ad-playground.webp) Orshot generates the ad image automatically. Change the data, get a different ad instantly **Learn more**: [Image Generation API](https://orshot.com/solutions/image-generation-api) ### Step 3: Automate with No-Code Tools Don't want to deal with APIs? Use no-code automation platforms: **Available integrations**: - Zapier - Make (Integromat) - n8n - Pipedream - And more **Explore integrations**: [Orshot Integrations](https://orshot.com/integrations) **Example workflow**: 1. New product added to Shopify → Trigger automation 2. Fetch product data (name, image, price) 3. Send data to Orshot template 4. Generated ad saved to Google Drive 5. Ad posted to social media via [Orshot Social Publish](https://orshot.com/docs/publish/introduction) or Facebook Ads Manager Zero manual work. Your ads generate and publish automatically You don't even need Zapier or Make for this. Orshot has this automation built in as a ready-made workflow: it pulls sale data from Google Sheets on a schedule, renders the discount banners, and saves them to Google Drive. One click adds it to your workspace. [Sale discount banners workflow on Orshot](https://orshot.com/workflows/sale-discount-banners/embed) ## Dynamic URLs: The Simplest Way to Generate Ads ![Generating a retail ad using a dynamic URL](https://orshot.com/blog/retail-ads/generate-ad-using-url.webp) If you want even simpler automation, use **Dynamic URLs** Instead of API calls or integrations, generate ads directly through a URL with parameters: ```bash orshot.com/v1/studio/dynamic-url/perfume-banner-1.png?product_name=Running+Shoes&price=129.99&discount=30%+OFF ``` Change the URL parameters, and the ad changes instantly. Perfect for: - Email campaigns (unique ad per recipient) - Landing pages (personalized ads based on user data) - Social media (dynamic Open Graph images) **Full documentation**: [Dynamic URLs Guide](https://orshot.com/docs/integrations/dynamic-urls) ## Real-World Use Cases for Retail Automation ### Use Case 1: Seasonal Campaign at Scale **Scenario**: Black Friday sale with 100 products. **Without automation**: - Designer creates 100 unique ads - Takes 1-2 weeks - Costs $2,000-$5,000 **With Orshot**: - 1 template created in 30 minutes - Automation generates all 100 ads in seconds - Total cost: $0 (after subscription) ### Use Case 2: Personalized Product Ads **Scenario**: E-commerce brand wants personalized ads for email subscribers. **Setup**: - Template with dynamic product recommendations - Integration with email platform (Mailchimp, SendGrid) - Each subscriber sees products based on browsing history **Result**: Higher click-through rates, more conversions. ### Use Case 3: Multi-Platform Ads from One Design **Scenario**: Launch ad campaign across Instagram, Facebook, Google Ads. **Challenge**: Each platform needs different sizes. **Solution**: - Design one master template in Orshot Studio - Export in multiple formats (1080×1080, 1920×1080, 728×90) - Automation generates all sizes from the same data ## Why This Matters for Retail Brands - **Speed**: Generate ads in seconds, not days, and on auto-pilot - **Cost**: Eliminate repetitive design work—designers focus on creative strategy, not resizing - **Consistency**: All ads follow [brand guidelines automatically](https://orshot.com/features/brand-assets-library) - **Scale**: Launch campaigns with hundreds of variations without extra effort - **Flexibility**: Update pricing, products, or messaging across all ads instantly ## Getting Started with Automated Retail Ads Here's the fastest path to automation: 1. **Pick a template**: Start with a [ad template](https://orshot.com/templates/g/ads) or build your own in [Orshot Studio](https://orshot.com/features/orshot-studio) 2. **Test with static data**: Generate a few ads manually to see how it works 3. **Connect your data**: Use the [API](https://orshot.com/solutions/image-generation-api), [integrations](https://orshot.com/integrations), or [dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) 4. **Automate everything**: Set up workflows so ads generate and publish without you ## Final Thoughts Retail advertising doesn't have to be slow and expensive. With template-based automation, you design once and generate infinitely Whether you're launching a 10-product campaign or managing 1,000 SKUs, the process is the same: create a template, connect your data, and let automation handle the rest Stop spending hours on repetitive design work. Start [generating ads at scale](https://orshot.com/solutions/image-generation-api) **Related →** [10 Best Tools to Automate Content Creation](https://orshot.com/blog/automated-content-creation-tools) | [Best Social Media Automation Tools](https://orshot.com/blog/social-media-automation-tools) --- ### [A Piktochart Alternative with Modern Design Editor and API](https://orshot.com/blog/piktochart-alternative-with-api) > Stop manually updating reports. Switch to Orshot to automate infographics, social content, and PDFs with our API and Integrations. 30 credits free. Piktochart is a fantastic tool for creating infographics and reports manually. If you need to make _one_ beautiful presentation, it's a great choice. But what if you need to generate **100 individualized reports** for your clients? Or create a new infographic summary **every time your data updates**? That's where Piktochart hits a wall. You're stuck manually editing templates, copy-pasting data, and exporting files one by one. It's tedious, error-prone, and unscalable. I built **Orshot** to solve this exact problem. Orshot combines a **Canva-like design editor** with a powerful **API**, allowing you to automate the design process completely. [**Try Orshot Free**](https://orshot.com/pricing "target=_blank") **(30 free credits included)** **Migrate from Piktochart to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Piktochart API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ## Demo Try Orshot Studio with this demo template [Open the embed](https://orshot.com/templates/shared/n45fmzt8/embed?view=play) ## The Automation Gap The main reason teams look for a Piktochart alternative is **automation**. | Feature | Orshot | Piktochart | | :-------------------- | :------------------------------------------------------- | :----------------------------------------- | | **Generation Method** | **API & Integrations** (Automated) | **Manual** (Drag & Drop) | | **Data Connection** | Connect to **n8n, Make, Webhooks**, or Zapier | Limited integrations | | **Integrations** | Webhooks, Native MCP Server, Direct API | Standard (e.g., Google Drive export) | | **Use Case** | Programmatic SEO, Automated Reporting, Social Automation | One-off Presentations, Manual Infographics | | **Pricing** | **Based on generation volume** (starts free) | **Per user/seat** model | | **Developer Tools** | **SDKs** (Node, Python), **CLI**, **API Docs** | None | | **Output Formats** | IMG, PDF, Video (MP4/GIF/WebM) | IMG, PDF, PPT | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | ## Why Switch to Orshot? ### 1. You Need an API Piktochart doesn't have a public API for generating content. Orshot is _built_ API-first. You design a template once, and then use our API to generate thousands of variations by simply sending JSON data. ```json // Example: Generating a report cover { "templateId": "123", "modifications": { "title": "Q1 Performance Review", "client_name": "Acme Corp", "chart_image": "https://chart-service.../chart.png" } } ``` ### 2. Powerful Integrations (No Code Needed) You don't need to be a developer to automate your designs. Orshot integrates seamlessly with tools like **n8n**, **Make**, and **Zapier**. - **Webhooks**: Trigger an image or PDF generation whenever a form is submitted or a database row is added. - **Workflow Automation**: Connect your Airtable or Google Sheets data directly to your design templates. ### 3. A Familiar "Canva-like" Editor Moving to a developer tool shouldn't mean losing design capabilities. [Orshot Studio](https://orshot.com/features/orshot-studio) offers a drag-and-drop experience that feels just like Canva or Piktochart, but with powerful features for automation like **Smart Stacking** (auto-adjusting layouts based on text length). ### 4. Better Pricing for Scale Piktochart charges per user. If you have a team, that adds up. Orshot charges based on _usage_. Whether you have 1 person or 10 people designing templates, you only pay for the images and PDFs you generate. - **Free Plan**: 30 free credits with no expiry. [See pricing](https://orshot.com/pricing). - **Pro**: Starts at $39/mo for 1,500 credits (1 credit = 1 image or PDF page). ### 5. Embed Design Editor in your App Orshot Embed feature lets you [embed the editor inside your app](https://orshot.com/blog/image-editor-sdk). You can give your users their own templates library and a white-labeled experience without moving out of your app. ### 6. Developer Friendly SDKs If you are building an application, relying on manual tools is a non-starter. We provide official SDKs to integrate design generation directly into your product. ### 6. Publish Directly to Social Media Skip the download-upload-post cycle entirely. Orshot's [Social Publishing](https://orshot.com/docs/publish/introduction) addon lets you render an image and post it directly to 15+ platforms — Twitter/X, Instagram, LinkedIn, Facebook, TikTok, Discord, WhatsApp, and more. Publish from the dashboard or automate via the API. $12/month per connected account, unlimited posts. ## The AI Advantage While Piktochart has basic AI for charts, Orshot uses AI to automate the entire creative process. ### Smart Design Variants Never manually resize a design again. Create one "master" template, and let our **AI Variant Generator** automatically repurpose it for Instagram Stories, LinkedIn banners, and Twitter posts—adjusting the layout intelligently to fit each format. [AI Variant Generation Demo](https://www.youtube.com/watch?v=JZR0ufeJNnQ) ### AI Content Generation With **Dynamic Parameters**, you don't even need to provide all the content. Use the `.prompt` modifier in your API calls to let AI write headlines or generate images for you on the fly. ```json { "modifications": { "headline.prompt": "Write a punchy title about Q3 sales growth", "background_image.prompt": "Corporate office skyline, minimalistic style" } } ``` ### AI Template Generator Stuck on a design? Just describe what you need ("A modern tech conference certificate"), or upload a screenshot of a design you like. Orshot's AI will build a fully editable, API-ready template for you in seconds. ## Beyond Static Images: Video Generation Piktochart is great for static PDFs. Orshot brings your reports to life with video. You can generate **MP4, WebM, and GIFs** programmatically. Add video layers, control trim/loop settings via API, and turn a static report into an engaging [social media reel automatically](https://orshot.com/blog/social-media-automation-tools). [Video Generation API Demo](https://www.youtube.com/watch?v=RQPHJY3bkZk) ## Frequently Asked Questions **Q: Is there a free alternative to Piktochart?** Yes, Orshot offers a free tier with **30 free credits** that never expire. Unlike Piktochart's free plan which has watermarks and limited resolution, Orshot's free plan includes full API access and high-quality exports. **Q: Does Piktochart have an API?** No, Piktochart is primarily a manual drag-and-drop tool and does not offer a public API for content generation. **Orshot is the API-first alternative**, designed specifically for developers and automation workflows. **Q: How can I automate Piktochart designs?** You cannot automate designs natively within Piktochart. To automate infographic and report generation, you should switch to Orshot, which integrates with **Make, n8n, Zapier**, and has a native REST API. **Q: Can I generate PDF reports automatically?** Absolutely. Orshot supports **PDF generation** from the same templates you use for images. This is perfect for generating bulk invoices, certificates, or client status reports dynamically. **Q: Is Orshot better for teams?** Yes. Piktochart charges per seat, meaning costs scale with your team size. **Orshot charges by usage (credits)**. You can have unlimited team members collaborating in your workspace without extra per-user fees. **Q: Can I import Canva or Figma designs?** Yes! Orshot allows you to import designs directly. You can use our [Canva import](https://orshot.com/solutions/canva-template-to-api) tool or the [Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to bring your existing assets into our automation pipeline. **Q: Does Orshot support video and GIFs?** Yes. While Piktochart is limited to static images and PDFs, Orshot allows you to generate **MP4 videos and GIFs** programmatically, complete with dynamic text and media layer controls. **Q: What is the best tool for bulk infographic generation?** For bulk generation, manual tools like Piktochart are inefficient. **Orshot** is the best choice because it separates the design (template) from the data (JSON), allowing you to generate thousands of unique infographics in minutes. ## How to Switch 1. **Recreate your Template**: Open [Orshot Studio](https://orshot.com/studio) and recreate your Piktochart design. It's intuitive and fast. 2. **Connect Data**: Use the API or a no-code tool (like Make/n8n) to map your data fields to the template layers. 3. **Automate**: Run your workflow and watch the content generate itself. Ready to stop the manual grunt work? [**Get Started with Orshot**](https://orshot.com/pricing) --- ### [A Placid.app Alternative with AI features and better pricing](https://orshot.com/blog/placid-api-alternative) > A Placid alternative with the simplest credits. 1 credit = 1 image, no multipliers, no gating, plus multi-page, white-label embed and video. 30 free credits Placid has been around since 2019 and they've built a solid creative automation platform. They were one of the early players in the [image automation API](https://orshot.com/solutions/image-generation-api) space, and that experience shows. Good integrations, decent editor, reliable service. But if you're using Placid right now, you've probably noticed some friction. Credits that multiply the moment a render gets bigger than 4000px. PDF pages that cost double what an image does. The Editor SDK sitting behind their top plan. It adds up in ways that are hard to forecast. Orshot started from the same premise Placid did — a template becomes an API endpoint — and then went at the parts I kept getting stuck on: flat credits, multi-page templates, workflows and publishing that don't need a third-party tool in between. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-placid-top) **Migrate from Placid to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Placid API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) [Document Design in Orshot Studio](https://orshot.com/templates/shared/kt8j29wx/embed?view=play) ## What's Different If you're already on Placid, here's what changes when you switch: | Feature | Orshot | Placid | | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- | | **Free Tier** | 30 free credits, no watermarks, all features | Free trial, credit count not published | | **Entry Plan** | \$39/month for 1,500 credits | \$19/month for 500 credits (Basic) | | **At \$39** | 1,500 credits (Launch) | 2,500 credits (Pro) | | **At \$89–99** | \$99/month for 5,000 credits | \$89/month for 25,000 credits (Business) | | **Image credits** | 1 credit at any size | 1 credit to 4000px, then 8 / 16 / 32 | | **PDF credits** | 1 credit per page | 2 credits per page, ×2 for high-res | | **Video credits** | 1 credit per second | 1 credit per second | | **Overages** | Pay-as-you-go, renders never stop | None - generation blocked until upgrade | | **Unused credits** | Reset monthly | Roll over, up to 2× your monthly budget | | **Video Editor** | Full timeline, per-layer animation, audio tracks, auto-subtitles | No visual video editor | | **Embed Editor in App** | [White-label Studio Embed](https://orshot.com/blog/orshot-studio-embed) - all paid plans | Editor SDK on VIP only (\$249/month) | | **Multi-page Templates** | Carousels, PDFs & videos in [one API call](https://orshot.com/blog/introducing-carousel-templates) | Merged PDFs yes, carousels & video no | | **Native workflows** | [Trigger, render and publish on a schedule](https://orshot.com/workflows) | Zapier, Make or n8n | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | | **Template Editor** | [Orshot Studio](https://orshot.com/studio) - Figma-like with [Smart Stacking](https://orshot.com/blog/smart-stacking) | Placid Editor | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI](https://orshot.com/features/ai-template-generator) | Placid Editor | ## The Real Problems with Placid Based on what I've seen from users switching over: - **Credits multiply with size, and you have to remember that** — a Placid image is 1 credit up to 4000px, then 8, then 16, then 32 as the longest side grows. A PDF page starts at 2 credits and doubles again for high-resolution output. So a batch of A2 posters at 300dpi bills at 8 credits a page, not 1. Orshot is a flat 1 credit for an image at any size, 1 per PDF page, 1 per second of video — the number you budget is the number you spend. - **Editor SDK is a $249/month feature** — embedding Placid's editor into your product means the VIP plan; their comparison table shows Canvas Previews and the Editor Component unavailable all the way up through Business at $89. Orshot's [Studio Embed](https://orshot.com/blog/orshot-studio-embed) is on every paid plan from $39 — white-label, with custom branding and webhook events. - **No carousels or multi-page video** — Placid's PDF API will merge pages into one document, so that part is covered. What it won't do is a multi-page _template_ you can export as an Instagram carousel or an animated multi-page video. Orshot treats those as the same object: [one template, one API call](https://orshot.com/blog/introducing-carousel-templates), out as a carousel, a PDF or an MP4. - **Run out of credits and generation stops** — Placid doesn't charge overage fees, which sounds generous until a campaign stops rendering mid-flight and the only fix is upgrading the plan. Orshot bills overages pay-as-you-go so renders never stop. - **The render is where it ends** — Placid gives you an endpoint. Deciding when to call it, where the copy comes from and where the file goes is still Zapier, Make or n8n. Orshot has [workflows](https://orshot.com/workflows) and [publishing](https://orshot.com/docs/publish/introduction) in the product, so the trigger, the render and the post live in one place. ### Where Placid Wins Two things I'm not going to pretend away, because you'll find them the moment you open their pricing page: - **At \$39 they give you more raw credits.** Placid Pro is \$39 for 2,500 credits; Orshot Launch is \$39 for 1,500. If your work is plain images under 4000px and nothing else, that's more headroom for the same money. - **Placid credits roll over**, up to twice your monthly budget. Orshot credits reset each month. Where it flips is per output rather than per credit: PDF pages take half the credits on Orshot, large images don't multiply, the embed isn't a \$249 feature, and a carousel or a video is one call instead of a stitching job. ## What You Get Extra with Orshot Beyond solving Placid's pain points: - **Intuitive visual editor** - [Orshot Studio](https://orshot.com/studio) feels like designing in Figma or Canva. Drag-and-drop, [Smart Stacking](https://orshot.com/blog/smart-stacking) for relative positioning, keyboard shortcuts that just work. Your designers can use it directly. - **White-label embed** - [Studio Embed](https://orshot.com/blog/orshot-studio-embed) lets you drop a full design editor into your app. Custom branding, permission controls, webhook events. It's like giving your users their own Canva. - **Multi-page templates** - Create carousels, multi-page PDFs, and even multi-page videos in a single template. Each page can have multiple video layers. Generate all pages with one API call. Placid's API will merge PDF pages into one document, but there's no multi-page template — no carousel export, no multi-page video. [See how it works](https://orshot.com/blog/introducing-carousel-templates). - **Full video editor** - Visual video timeline with per-layer animations, page-level audio tracks, and auto-generated subtitles. Design video templates visually in Studio, then control every property via API. Placid doesn't offer this level of video editing. - **Scale from solo to enterprise** - Plans go from free (30 credits) to 300k credits/month. No awkward jumps in pricing. - **More integrations** - [MCP Server](https://orshot.com/docs/integrations/mcp-server) for AI apps like Claude, [CLI](https://orshot.com/docs/integrations/orshot-cli) for terminal workflows, plus Make, Zapier, n8n. [Full list here](https://orshot.com/integrations). - **Import from anywhere** - Clone from Canva, import from Figma, or use AI to generate templates. Way faster than starting from scratch. - **Social Publishing** - Render and [post to 15+ social platforms](https://orshot.com/docs/publish/introduction) in one API call. No need for Buffer or any third-party scheduler. Publish instantly, schedule, or save as draft. - **Actual support** - I respond to chat messages. Usually within an hour. Sometimes I'll hop on a call if something's complicated. > Compared to Placid, for example, Orshot offers far more options for creating content. > Thank you very much for this great tool. So far, we've been very happy with it. > > — Max Müller, ExcavatorScout ## Let Agents do it for you This is the AI part the title promises. Orshot ships an [MCP server](https://orshot.com/agents) so Claude, Cursor or ChatGPT can render straight from your templates. Describe the asset, the agent calls Orshot, and an on-brand PNG, PDF or MP4 comes back. No image microservice to babysit. - **Generate stunning templates on auto-pilot** - ask Claude or Codex to design for you, just pass the details. - **Render from a prompt** - your agent turns a brief, a ticket or a webhook into a finished, on-brand render. - **OAuth per workspace** - scoped access for each client or environment, with no keys to rotate. - **Brand kit applied automatically** - every agent render inherits your fonts, colors and logos. - **One call, one or thousands** - fire a single render or a whole batch from the same thread. In Studio, the AI Design Agent can build a template from a plain-English description too, so you start from something instead of a blank canvas. ## You Shouldn't Need Zapier to Call an API Placid does the render well. The awkward part is everything either side of it — noticing there's a new blog post, pulling the title and author, deciding where the finished PNG goes. That lives in Zapier, Make or n8n, which means a second subscription, a second set of credentials, and a task bill that climbs with your volume. Orshot [Workflows](https://orshot.com/workflows) collapse that into the same product as the template: - **Trigger** from Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify, Drive or a plain webhook - **Render** one template or a whole batch - **Send** it to storage, your own endpoint, or straight to social - **Repeat** on a schedule, without you ![An Orshot workflow: a daily schedule trigger, a Google Sheets source, a render step mapping columns to template fields, and a URL destination](https://orshot.com/blog/bannerbear-alternative/workflow-builder.webp) The one most Placid users want first is an OG image for every post, without wiring anything. Copy it into your workspace and turn it on: [Automatic Open Graph images for every post, on Orshot](https://orshot.com/workflows/blog-og-images/embed) A few others worth stealing, all working presets rather than concepts: - **[Return an OG image from a webhook](https://orshot.com/workflows/dynamic-og-webhook)** — your CMS calls, the render comes back - **[Product marketing images from your catalog](https://orshot.com/workflows/product-marketing-images)** — one row per SKU, on-brand every time - **[YouTube thumbnails at scale](https://orshot.com/workflows/youtube-thumbnails-at-scale)** — from a sheet, batched - **[Customer reviews into testimonial cards](https://orshot.com/workflows/customer-review-cards)** — form or sheet in, shareable graphic out - **[Sale and discount banners](https://orshot.com/workflows/sale-discount-banners)** — driven off a pricing sheet If you'd rather keep orchestration where it already lives, that works too — there are first-party [n8n](https://orshot.com/docs/integrations/n8n), Zapier, Make and Pipedream integrations, plus an [MCP server](https://orshot.com/docs/integrations/mcp-server). **Run one of these on your own data** — Pick a workflow, connect your source, and watch it render. 30 free credits. [Start free](https://orshot.com/signup?via=blog-placid-workflows) ## Utility Templates (The Handy Extras) We've got pre-built API templates that solve common problems: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots with customization - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures, any viewport - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work great on their own or combined with your custom templates. ## Switching from Placid It's pretty straightforward. Here's how most people do it: ### Step 1: Recreate Your Templates (15-30 min) You have a few options: **Just rebuild it** - Open your Placid template, rebuild it in [Orshot Studio](https://orshot.com/studio). The editor is intuitive, usually goes faster than you think. **Use AI** - Screenshot your Placid output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate it, you fine-tune. **Import existing designs** - If you have the original in Canva or Figma, import directly: - [Clone from Canva](https://orshot.com/solutions/canva-template-to-api) - [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) Try it now — paste a public Canva share link and see it as an Orshot template: You can create multi-page templates, [share through public links or embeds](https://orshot.com/blog/sharing-orshot-templates) like the one below with different view modes. You can also [invite your team to collaborate](https://orshot.com/features/team-collaboration) on design + template integration. ### Step 2: Update Your API Calls (10 min) The APIs are similar in concept. Here's what changes: **Placid API Call:** ```javascript const response = await fetch("https://api.placid.app/api/rest/images", { method: "POST", headers: { Authorization: "Bearer YOUR_PLACID_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template_uuid: "placid_template_id", layers: { title: { text: "Hello World", }, image: { image: "https://example.com/photo.jpg", }, }, }), }); ``` **Orshot API Call:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", // Dynamic parameters - override any style property // Docs: https://orshot.com/docs/dynamic-parameters "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` **Main differences:** - Modifications are a flat object (cleaner) - You specify response format explicitly - Same Bearer token authentication pattern **Helpful docs:** - [API Reference](https://orshot.com/docs/api-reference) - Complete API documentation - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - Main endpoint you'll use - [SDKs](https://orshot.com/docs/sdks) - Node, Python, Ruby, PHP libraries - [Setting Parameters](https://orshot.com/docs/orshot-studio/setting-parameters) - How to make templates dynamic ### Step 3: Test It (5 min) 1. Make a few test calls 2. Compare the output 3. Tweak styling if needed in Studio 4. Deploy Nothing says you have to cut over at once. Point a few routes at Orshot, leave the rest on Placid, and move the rest when you've seen the output side by side. ### Need Help? Hit the chat button on the bottom right and you'll get me or someone on the team, not a bot. Send us a Placid template and we'll rebuild it in Studio for you — the fiddly part is usually the auto-fitting text, and that's the bit we can do fastest. ## Placid Pricing in 2026 (and How Orshot Compares) Placid runs four plans, billed monthly by default — the yearly toggle shows the same plans as annual totals. Prices checked against placid.app/pricing in July 2026: | Placid plan | Placid | Closest Orshot plan | Orshot | | ------------------- | ------ | ----------------------- | ------ | | Basic · 500 credits | \$19 | Launch · 1,500 credits | \$39 | | Pro · 2,500 credits | \$39 | Launch · 1,500 credits | \$39 | | Business · 25,000 | \$89 | Grow · 20,000 credits | \$160 | | VIP · 100,000 | \$249 | Scale · 150,000 credits | \$480 | Read that honestly: **from Pro up, Placid is cheaper on raw credits.** Their \$89 buys 25,000 credits against our \$160 for 20,000. (The \$19 Basic tier is the one exception — \$0.038 a credit against Launch's \$0.026.) The comparison only works per output, which is where their multipliers live: - An image over 4000px costs **8, 16 or 32 credits** on Placid. On Orshot it's 1 at any size. - A PDF page is **2 credits**, doubling again for high-resolution output. On Orshot it's 1. - A carousel or a multi-page video isn't a Placid template at all, so the credits aren't the constraint — the capability is. - Studio Embed is on every Orshot paid plan from \$39. Placid's Editor SDK is **VIP, at \$249**. So if your workload is plain sub-4000px images and nothing else, Placid is the cheaper bill and I'd rather you knew that from this page than from their pricing page. If it involves PDFs, large renders, carousels, video or an embedded editor, the per-output maths turns over. [Full pricing details here](https://orshot.com/pricing) **Run your own numbers against it** — 30 free credits, every feature included, no card. [Start free](https://orshot.com/signup?via=blog-placid-pricing) ## Common Questions **Q: How does Orshot price video against Placid?** The same rate, in fact: both bill 1 credit per second of video, so a 10-second clip is 10 credits either way. The difference is the editor around it. Orshot has a visual video timeline with per-layer animation, page-level audio tracks and auto-generated subtitles, and multi-page video templates render in one call. Placid has no visual video editor. **Q: Does Orshot support multi-page templates?** Yes. Orshot allows you to create [multi-page templates](https://orshot.com/blog/introducing-carousel-templates) natively. This is perfect for creating social media carousels or comprehensive PDF reports in a single request, something basic image APIs often struggle with. **Q: How does the Orshot template editor compare to Placid?** Orshot's [Studio](https://orshot.com/studio) is a modern, layer-based editor with features like Smart Stacking. If you're coming from Placid, you'll find our layout controls more flexible for handling variable-length content. **Q: Will my automations break if I switch from Placid?** No. Orshot connects to the same ecosystem you likely use: [Airtable](https://orshot.com/docs/integrations/airtable), [Zapier](https://orshot.com/docs/integrations/zapier), [n8n](https://orshot.com/docs/integrations/n8n). The migration is usually just swapping the connection step. **Q: Can I embed the Orshot editor into my app?** Yes. We offer a [White-label Studio Embed](https://orshot.com/blog/image-editor-sdk) on every paid plan, from $39/month. For comparison, Placid's Editor SDK — Canvas Previews and the Editor Component — is listed on their VIP plan at $249/month. **Q: Does Orshot support video generation?** Yes. Orshot has a full video editor with a visual timeline, per-layer animations, page-level audio tracks, and auto-generated subtitles. Export as MP4, WebM, or GIF, with every property controllable via API. **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools for agencies managing multiple clients. **Q: What integrations does Orshot support?** Orshot integrates with [Zapier](https://orshot.com/docs/integrations/zapier), [Make](https://orshot.com/docs/integrations/make), [n8n](https://orshot.com/docs/integrations/n8n), Airtable, Slack, and more. We also offer Dynamic URLs for no-code generation and a full REST API with SDKs. ## The Editor ![Orshot Studio: layers panel, canvas, styles sidebar, and a video timeline, with Automate, Publish and Smart Resize in the toolbar](https://orshot.com/home/new/orshot-studio-new.webp) [Orshot Studio](https://orshot.com/studio) is clean and intuitive. If you've used Placid's editor, you'll immediately notice the difference. **Key features:** - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Position elements relative to each other. They auto-adjust when content changes - **Brand Assets** - Save your logos, colors, and fonts. Use across all templates for consistency - **Custom Fonts** - Upload any font. No limits on typography - **Personalization** - Make any element dynamic - text, images, colors, styling - **[Studio Embed](https://orshot.com/blog/orshot-studio-embed)** - Integrate the editor into your own app with custom branding - **Multi-page Support** - Create carousels and PDF templates with different pages ## How It Works Every template becomes an API endpoint. You can: - Generate templates with AI or import from Canva/Figma - Automate with REST API, SDKs, Zapier, Make, n8n, or [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) - Bulk generate with parallel processing - Generate carousels and multi-page videos from one template (Placid merges PDF pages, but has no multi-page templates) If there's an integration missing, just ask. We'll probably add it. ## Examples and Tutorials ### Video Generation Adding videos in your templates and automating via Orshot's Video Generation API: [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Carousel Templates How to create multi-page templates and automate them: [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ### Import from Canva Clone your existing Canva designs and [turn them into API endpoints](https://orshot.com/solutions/canva-template-to-api): [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Import from Figma [Use the Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import your designs directly: [Watch the video](https://www.youtube.com/watch?v=ggvLR0HLJ7Q) ### eCommerce Automation Example workflow - [automating product images](https://orshot.com/blog/automate-ecommerce-product-images) from your data sources: [Watch the video](https://www.youtube.com/watch?v=S5qNb4mmUdc) ### Dynamic URLs Generate images just by changing URL parameters - no API calls needed: [Watch the video](https://www.youtube.com/watch?v=a2I69Qb2hts) ## Bottom Line Placid works, but the credit multipliers are confusing and you're missing features like multi-page templates unless you pay more. Orshot does the same core thing (turn templates into API endpoints) but with the simplest credit in the industry — 1 credit = 1 image, 1 PDF page, or 1 video second — and no feature gating. If you're also comparing [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Abyssale](https://orshot.com/blog/abyssale-api-alternative), or [Contentdrips](https://orshot.com/blog/contentdrips-api-alternative), the same advantages apply - simpler pricing, no feature gating, and multi-page support that most competitors lack. The switch takes a couple hours. You can test everything free with 30 credits. ## For Agencies Building image automation for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. ## Try It 1. [Sign up](https://orshot.com/signup?via=blog-placid-footer) - no card needed 2. Recreate one of your templates (or use AI to do it) 3. Test with your actual data 4. See if it works for you If you get stuck, hit the chat button. I'll help you out. --- ### [A Polotno Studio Alternative with Unlimited Loads and API](https://orshot.com/blog/polotno-studio-alternative) > Switch from Polotno Studio SDK to Orshot Studio for a beautiful design editor. One-line integration, free downloads, REST API included – without React dependencies or infra costs Polotno is a solid JavaScript [image editor SDK](https://orshot.com/blog/image-editor-sdk) for building canvas editors. If you're a developer who wants to embed a design tool into your React app and has time to integrate, customize, and maintain it – Polotno does that job well. They've built a capable library that powers 200+ businesses. But here's where it gets tricky. Polotno is fundamentally an SDK – a JavaScript library you need to integrate, host, and maintain yourself. At $199/month for the Team plan (or $399/month for Business), you're paying for the SDK license, not a complete solution. You still need to handle rendering infrastructure, storage, API endpoints, and ongoing maintenance. I built Orshot because I needed something simpler. If you want to embed a design editor into your app, [Orshot Studio Embed](https://orshot.com/blog/orshot-studio-embed) gives you a white-label Canva-like editor with a single line of code – no React setup, no infrastructure, no SDK integration. Plus you get a REST API included for programmatic generation when you need it. [**Try Orshot Studio Embed**](https://orshot.com/signup "target=_blank") **Migrate from Polotno to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Polotno API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) Here's a live demo of the Orshot Studio: [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ## What's Different If you're evaluating Polotno SDK to embed a design editor, here's how Orshot Studio Embed compares: | Feature | Orshot Studio Embed | Polotno SDK | | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------- | | **Integration** | One-line iframe embed | React SDK integration | | **Integration Effort** | Minutes – copy/paste embed code | Days/weeks – integrate React components | | **Framework Dependency** | None – works in any app via iframe | React-first (Vue/Angular require extra work) | | **Free Tier** | Unlimited embed loads & downloads | 100-day trial on dev server only | | **Starting Price** | \$39/month (embed + 1,500 credits included) | \$199/month SDK license (10k editor loads) | | **Pricing Model** | Embed loads & downloads free, only API generation uses credits | Editor loads count + separate cloud rendering | | **User Downloads** | Free, unlimited (images, PDFs) | You build export functionality | | **Cloud Rendering API** | Included in all plans | Extra: \$0.004/image, \$0.03/min video | | **Multi-page Templates** | Native [carousel/PDF support](https://orshot.com/blog/introducing-carousel-templates) | Build yourself | | **Video Generation** | MP4/WebM/GIF with per-layer controls and [animations](https://orshot.com/blog/introducing-animations-in-studio) | Requires their cloud rendering add-on | | **White-label Branding** | Custom colors, logo, title – no code | Full customization but requires dev work | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI](https://orshot.com/features/ai-template-generator) | Manual creation in SDK | | **Infrastructure** | Fully managed | You manage hosting, rendering, storage | | **Webhooks** | Built-in (template.create, template.update) | Build your own | | **Browser Events** | postMessage API for real-time events | Build your own | | **REST API** | Included for programmatic generation | Build your own or pay for cloud rendering | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | Build your own | ## The Real Problems with Polotno Based on conversations with developers who've evaluated or used Polotno: ### 1. It's an SDK, Not a Ready-to-Use Embed Polotno gives you components to build a canvas editor – but that's where their job ends. You need to: - Set up React (or adapt for Vue/Angular) - Host the editor on your infrastructure - Build rendering/export logic (or pay extra for their cloud rendering) - Handle storage, exports, and asset management - Maintain everything as your product scales [Orshot Studio Embed](https://orshot.com/blog/orshot-studio-embed) is the opposite approach. One line of code gives you a full white-label design editor in your app. Your users can create designs and download images and PDFs directly – no infrastructure to manage, no SDK maintenance. Need video generation? The REST API is included for that. ### 2. Editor Loads ≠ Image Renders Polotno's pricing is based on "editor loads" – how many times users open the editor. At $199/month, you get 10,000 editor loads. But here's the catch: that doesn't include rendering. If you want Polotno to render images for you (instead of building your own rendering pipeline), their cloud rendering costs $0.004/image and $0.03/minute for video – on top of the SDK license. Orshot's pricing is simpler: **you only pay for API generation**. Downloads from [Orshot Studio](https://orshot.com/studio) or [Studio Embed](https://orshot.com/blog/orshot-studio-embed) are completely free and unlimited. Embed loads don't count against anything. $39/month gets you 1,500 credits (1 credit = 1 image) – that's for programmatic generation via REST API. If your users are designing and downloading directly from the editor, that costs you nothing. ### 3. React Dependency Creates Lock-in Polotno is built on React with Blueprint.js UI components. If your stack is Vue, Angular, vanilla JS, or even a no-code platform, you'll need workarounds. Their docs mention Vue and Angular integrations, but you're swimming upstream. Orshot Studio Embed is framework-agnostic. It's an iframe – works in React, Vue, Angular, Svelte, WordPress, Webflow, or any platform that supports HTML. One line of code: ```html ``` Need programmatic generation too? The REST API works with any language – Python, Node, PHP, Go, whatever your backend runs. ### 4. No Built-in Multi-page Templates Need Instagram carousels, LinkedIn slideshows, or multi-page PDFs? With Polotno, you're building that functionality yourself using their pages API. Orshot has native [multi-page template support](https://orshot.com/blog/introducing-carousel-templates). Design carousels in Studio, generate all slides with one API call. Same for multi-page PDFs and even multi-page videos with multiple video layers per page. ### 5. Building vs Buying Takes Real Time Polotno's own case studies mention customers saving "4+ months" by using their SDK instead of building from scratch. But that still assumes weeks of integration work. With Orshot, you can go from signup to generating images via API in under an hour. No SDK integration, no infrastructure setup, no component customization. Design a template, grab your API key, start rendering. ## What You Get with Orshot Beyond solving Polotno's integration overhead: - **One-line white-label embed** - [Studio Embed](https://orshot.com/blog/orshot-studio-embed) drops a full Canva-like design editor into your app with a single line of code. Your users design and download images and PDFs directly from the embed, completely free (no render charges, no download limits). Video generation is available via API. - **Deep customization without code** - Configure everything from your dashboard: - **Branding** - Custom accent colors, logo, title to match your app - **Template controls** - Show/hide template list, allow delete/rename, enable carousels - **Download permissions** - Control what formats users can export (PNG, PDF) - **Language** - 4 languages with optional user language switching - **Domain security** - Restrict embed to specific domains **Built-in webhooks** - Get notified when users create or update templates. No infrastructure to build: ```json // Webhook payload on template.create or template.update { "event": "template.update", "templateId": "abc123", "workspaceId": "workspace_456", "timestamp": "2025-12-13T10:30:00Z" } ``` **Browser events via postMessage** - Listen to real-time events in your app for deeper integration: ```javascript window.addEventListener("message", (event) => { if (event.data.type === "orshot:template.save") { console.log("Template saved:", event.data.templateId); // Update your UI, trigger workflows, etc. } if (event.data.type === "orshot:template.download") { console.log("User downloaded:", event.data.format); } }); ``` **REST API included** - Need programmatic generation? Every template becomes an API endpoint. The API is included in all plans – not a separate add-on like Polotno's cloud rendering. **Powerful design editor** - [Orshot Studio](https://orshot.com/studio) includes features your users will love: - **Gradient text** - Beautiful linear and radial gradients on any text layer - **Auto-scale text** - Text automatically shrinks to fit container bounds - **Smart Stacking** - Position elements relative to each other for dynamic layouts - **Video layers** - Add video elements with trim, loop, and mute controls - **Dynamic layers** - Mark any layer as dynamic for API/parameter overrides - **Multi-page templates** - Create carousels, slideshows, multi-page PDFs - **Background removal** - One-click AI background removal - **Import from Canva/Figma** - Bring existing designs instantly **Multi-page templates** - Create carousels, multi-page PDFs, and multi-page videos. [See how it works](https://orshot.com/blog/introducing-carousel-templates). **Video generation** - Export to MP4, WebM, or GIF. Control each video layer with `.trimStart`, `.trimEnd`, `.muted`, and `.loop` parameters via API. Add [per-layer animations](https://orshot.com/blog/introducing-animations-in-studio) — fade ins, slide transitions, scale effects, visibility timing, and staggered choreography. [Learn more](https://orshot.com/docs/dynamic-parameters/video). **Import from anywhere** - Clone from Canva, import from Figma, or use AI to generate templates. Way faster than designing from scratch. **No-code integrations** - [Make](https://orshot.com/blog/orshot-make-integration), Zapier, n8n – connect to 1000+ apps without writing code. Plus [MCP Server](https://orshot.com/docs/integrations/mcp-server) for AI apps and [CLI](https://orshot.com/docs/integrations/orshot-cli) for terminal workflows. **Social Publishing** - Render and [post to 15+ social platforms](https://orshot.com/docs/publish/introduction) in one API call. No need to build your own social posting pipeline. Publish instantly, schedule, or save as draft. ![Customer testimonial from Mihai about using Orshot](https://orshot.com/blog/mihai-testimonial.webp) ## Cost Comparison: Real Numbers Let's break down what you'd actually spend: **Scenario: 5,000 API images/month + users designing in editor** | Cost Component | Orshot | Polotno | | :--------------------- | :-------------- | :---------------------------------- | | Base Plan | \$99/month | \$199/month (Team SDK) | | Cloud Rendering | Included | \$20/month (5k × \$0.004) | | Editor/Embed Downloads | Free, unlimited | N/A (you build this) | | Editor Load Charges | None | Counts against 10k limit | | Infrastructure/Hosting | Included | Your cost (AWS, Vercel, etc.) | | Integration Dev Time | ~1 hour | ~40-80 hours | | Ongoing Maintenance | None | Your team's time | | **Monthly Total** | **\$99** | **\$219+ plus your infrastructure** | At 10,000 API images/month, Orshot is $160 all-in (20,000 credits included). Polotno's cloud rendering alone would be $40, plus the $199 SDK license, plus your hosting costs. And remember – if you're using Orshot's Studio Embed to let users design and download their own images, those downloads are free. Only programmatic API generation counts. ## When Polotno Makes Sense I'll be honest – Polotno is a good choice if: - You need **deep customization** of every editor component at the code level - Your team has **React expertise** and time for SDK integration - You want **full control** over the entire stack and UI - You're building a **complex design tool** that needs SDK-level flexibility - You have **dedicated DevOps** for hosting and rendering infrastructure But if you want to embed a design editor without the SDK overhead, let users download designs for free, and have a REST API ready for programmatic generation – Orshot gets you there in minutes instead of weeks. ## Utility Templates (The Handy Extras) Pre-built API templates that solve common problems: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots with customization - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures, any viewport - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work via API immediately – no template creation needed. ## Getting Started with Orshot Embed If you're evaluating alternatives to Polotno SDK, here's how to get a white-label editor running in your app: ### Step 1: Configure Your Embed (5 min) Signup for [Orshot](https://orshot.com/signup) and go to your Workspace Settings → Embed. Configure: 1. **Enable embed** and add your allowed domains (including `localhost:3000` for testing) 2. **Customize branding** - accent color, title, custom icon 3. **Set permissions** - template visibility, downloads, carousels 4. **Add webhook URL** (optional) - receive `template.create` and `template.update` events ### Step 2: Add to Your App (2 min) **Basic embed:** ```html ``` **Open with a specific template pre-loaded:** ```html ``` **Set a specific language:** ```html ``` ### Step 3: Listen to Events (Optional) Capture user actions in your app: ```javascript window.addEventListener("message", (event) => { // Verify origin for security if (event.origin !== "https://orshot.com") return; const { type, templateId, data } = event.data; switch (type) { case "orshot:template.save": console.log("Template saved:", templateId); // Sync with your database break; case "orshot:template.download": console.log("Download completed:", data.format); // Track analytics break; case "orshot:template.create": console.log("New template created:", templateId); break; } }); ``` ### Step 4: Set Up Webhooks (Optional) For server-side notifications, add a webhook URL in embed settings. Your endpoint receives: ```javascript // POST to your webhook URL { "event": "template.update", "templateId": "tmpl_abc123", "workspaceId": "ws_456", "embedId": "emb_789", "timestamp": "2025-12-13T10:30:00Z" } ``` That's it. Full design editor in your app with webhooks and events – no React setup, no component integration, no Blueprint.js CSS imports, no rendering infrastructure. ## Embed Features at a Glance | Feature | What It Does | | :----------------------- | :--------------------------------------------------------- | | **White-label branding** | Custom accent color, title, icon – your brand, not ours | | **Domain restrictions** | Embed only works on your specified domains | | **Template controls** | Show/hide templates, allow delete/rename, enable carousels | | **Download permissions** | Control PNG, PDF exports (video via API) | | **Multi-language** | 4 languages, optional user switching | | **Webhooks** | Server-side notifications for template events | | **Browser events** | Real-time postMessage events for frontend integration | | **Template pre-loading** | Open embed with specific template via URL param | ## Try It Free If you've been evaluating Polotno SDK and want something ready-to-use, [start here](https://orshot.com/signup). You can always dig into SDK-level solutions later if you need that control – but most teams don't. --- ### [A Predis.ai Alternative for On-Brand Content](https://orshot.com/blog/predis-ai-alternative) > Predis.ai writes inconsistent AI posts from a prompt. Orshot renders from branded templates and your data, then posts to 15+ social platforms. Free 30 credits If you've used Predis.ai for a few months, you know the loop. You type a prompt, it returns a carousel and a caption, you regenerate twice because the layout put your headline over the product, you fix the copy by hand, then you schedule it. It's genuinely faster than opening Canva. But somewhere around month three, you scroll your own feed and every post looks like it came out of the same machine. That's not a Predis bug. It's what prompt-to-post tools are for. ## What Predis is actually good at ![The Predis.ai homepage — an AI ad generator that creates video ads, UGC and reels from a text prompt, product link or image](https://orshot.com/blog/predis-ai-alternative/predis-homepage.webp) I want to be fair here, because a lot of "alternative" pages aren't. - **Cold start.** You describe your business, you get posts. Nothing beats it for that. - **Ecommerce content.** Point it at a product URL, get ads and UGC-style clips without a shoot. - **Captions and hashtags.** Fine first drafts, and it saves real time. - **One tool, whole loop.** Generate, schedule, publish. Reasonable thing to want. If you're a solo founder filling an empty calendar, Predis is a good buy. I'd still recommend it for that. ## Where it stops Read enough Predis.ai reviews and the complaint is never "it's bad". It's that the output stops being _yours_. A commenter in r/ContentCreators put it better than I would — tools like this work best as "a speed layer" rather than "a creation layer" ([r/ContentCreators](https://www.reddit.com/r/ContentCreators/comments/1oi4ovw/do_you_ever_feel_like_youre_creating_more_but/ "target=_blank nofollow")). Another in r/FacebookAds said he uses it because he can't be bothered starting from scratch, but then likes to "make my own modifications after" ([r/FacebookAds](https://www.reddit.com/r/FacebookAds/comments/1im69zu/what_ai_tools_do_you_use_for_advertising_in_2025/ "target=_blank nofollow")). Same gap, described twice. The AI gets you 80% there and you finish the last 20% by hand — every post, forever. ![Six things Predis.ai users keep running into: every post looks the same, I still fix it by hand, can't lock the layout, captions sound like AI, auto-posting is $40/mo, 30-second video cap](https://orshot.com/blog/predis-ai-alternative/problems.webp) Where it bites: - **You can't lock the design.** Each generation re-decides your layout. Brand settings nudge it; they don't pin it. - **Auto-posting isn't on the entry plan.** Core ($19/mo) has the API and 10 accounts, but auto-posting starts on Rise at $40/mo. - **Video is capped by tier.** 30 seconds on Core, and 1,300 credits is roughly 9 clips. - **It can't run off your data.** No "render this from the row that just landed in Airtable". You're always the one prompting. - **Batches drift.** Generate a week at a time and the posts start rhyming. **Lock the design once, render it 4,000 times** — Same fonts, spacing and logo on every single render. [Start free](https://orshot.com/signup?via=blog-predis-control) ## The editor, not a prompt box This is a real Orshot template. Hit play, then change anything in it: [Designing a template in Orshot Studio](https://orshot.com/templates/shared/kt8j29wx/embed?view=play) You design the post once, mark the bits that change as parameters, and that design becomes an API endpoint. Every render after that is pixel-identical, because it's your file — not a fresh guess. You don't have to start blank either. Import a [Canva](https://orshot.com/solutions/canva-template-to-api) or [Figma](https://orshot.com/solutions/figma-automation-via-rest-api) design, describe it to the [AI Design Agent](https://orshot.com/features/ai-template-generator), or pick from the [template library](https://orshot.com/templates). **Build your first template in about two minutes** — Bring a Canva or Figma file, or start from a blank canvas. [Open Studio](https://orshot.com/signup?via=blog-predis-editor) ## Side by side | | Orshot | Predis.ai | | :-- | :-: | :-: | | Generates post ideas from a prompt | Via AI agent / MCP | Yes | | Writes captions and hashtags | Via AI agent / MCP | Yes | | Pixel-identical output every render | Yes | No | | You own and edit the underlying design | Yes | No | | Render from Sheets, Airtable, webhooks | Yes | No | | REST API as the core product | Yes | Available, secondary | | Zapier / Make / n8n / MCP | Yes | No | | One design auto-resized to every format | Yes | No | | Video length | No cap (1 credit = 1 second) | 30s on Core, 5 min on Rise | | Bulk render from a spreadsheet | Yes | No | | Publish to socials | 15+ platforms | Rise plan and up | | Entry price | $39/mo, 1,500 credits | $19/mo, 1,300 credits | ## Predis.ai pricing, honestly compared Predis is cheaper on paper, and I'm not going to pretend otherwise. | | Predis.ai | Orshot | | :------------------ | :------------------------------ | :------------------------------------------------------------------------------------- | | **Entry plan** | $19/mo Core | $39/mo | | **Credits** | 1,300 (~86 images or ~9 videos) | 1,500 (1 credit = 1 image, PDF page, or video-second) | | **Social accounts** | 10 included | $12/mo each, unlimited posts, [includes API usage](https://orshot.com/docs/api-reference/social-publish) | | **Auto-posting** | Rise ($40/mo) and up | Any paid plan | | **Free tier** | Trial with watermark | 30 credits, no card | Read that account row carefully. **If you post to eight brands' accounts, Predis is clearly cheaper** — Orshot would be $39 + 8 × $12 = $135/mo. Better you know now than after signing up. It flips when you count what else is in the box. The $39 includes the studio, video, workflows and the API — usually a Canva subscription plus a Zapier plan. And the credit math differs in kind: 1,500 credits is 1,500 seconds of video, about 25 minutes, versus roughly 9 clips. **1,500 credits for $39, and video is 1 credit a second** — Run it against your own volume before you move anything. [See pricing](https://orshot.com/pricing?via=blog-predis-pricing) ## Point it at your data The Predis.ai API exists on every plan, but it drives their generator — you send a prompt and take what comes back. Orshot's takes your template and your row, and returns the exact design you approved: ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { product_name: "Merino Runner", price: "$128", product_image: "https://cdn.yourstore.com/merino.jpg", }, response: { type: "url", format: "png" }, publish: { accounts: [1, 2], content: "New drop: the Merino Runner 🏃", schedule: { scheduledFor: "2026-08-14T14:00:00Z" }, }, }), }); ``` Swap `"png"` for `"mp4"` and the same template returns a reel. Multi-page templates post as carousels on their own. ### Or describe it and skip the code [Workflows](https://orshot.com/features/workflow-automation-builder) run the same loop with no code: a trigger, your data, a template, your accounts. Copy a ready-made one and switch it on: [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) Came to Predis for ecommerce? The closest swaps are [Shopify product videos](https://orshot.com/workflows/shopify-product-videos) and [product marketing images](https://orshot.com/workflows/product-marketing-images). **Your sheet fills in, the post goes out** — Copy a ready-made workflow, connect your data, switch it on. [Start free](https://orshot.com/signup?via=blog-predis-workflow) ## Publishing is included Anything Orshot renders, it can [post to 15+ platforms](https://orshot.com/features/social-publishing) — instantly, as a draft, or scheduled. No separate scheduler, and publishing costs no extra credits. [Orshot Social Publishing walkthrough: post to your social accounts from Orshot](https://www.youtube.com/watch?v=ec05xj2sXp8) Accounts are $12/mo each with unlimited posts, on any paid plan. ## Stay on Predis if - You want the machine to decide what to post. Orshot won't write your content calendar. - You want captions and hashtags written for you inside the dashboard, without wiring up an agent to do it. - You run many accounts on a tight budget. Ten accounts at $19 is hard to beat. - Your posts are one-off. Templates only pay off when something recurs. Plenty of people run both: ideate in Predis, then rebuild the winner as an Orshot template and let it run on your data. ## Other Predis.ai alternatives worth a look Orshot only makes sense if the _design_ is what you keep redoing. If that isn't your bottleneck, one of these is the better swap. ### AdCreative.ai ![The AdCreative.ai homepage — an AI tool that generates ad creatives and scores them for predicted conversion](https://orshot.com/blog/predis-ai-alternative/alt-adcreative.webp) The closest match if **ads** are the job rather than organic posts. It generates concepts and ranks them by predicted conversion, which Predis doesn't do, and pushes winners straight to Google and Meta ad accounts. The catch is billing: the trial needs a card and auto-converts, and scoring, video and batch only start on the $249 tier. [Read the full AdCreative.ai breakdown →](https://orshot.com/blog/adcreative-ai-alternative) ### Contentdrips ![The Contentdrips homepage — write, design and publish social content, focused on LinkedIn and Instagram carousels](https://orshot.com/blog/predis-ai-alternative/alt-contentdrips.webp) The carousel specialist, and better than Predis at branded LinkedIn carousels specifically — you get a real template editor with brand kits. The limit is scope: it publishes to LinkedIn and Instagram only, and its API returns PNG and PDF, so no reels, audio or subtitles. [Read the full Contentdrips breakdown →](https://orshot.com/blog/contentdrips-api-alternative) ### Buffer ![The Buffer homepage — a social media workspace for scheduling posts across every platform](https://orshot.com/blog/predis-ai-alternative/alt-buffer.webp) If you only kept Predis for the scheduling, drop to a proper scheduler and save the money. Buffer is cheaper per channel and gives you the social inbox and engagement analytics that neither Predis nor Orshot offers. You'll still be making the graphics somewhere else. [Read the full Buffer breakdown →](https://orshot.com/blog/buffer-alternative) ### Canva ![The Canva homepage — AI-powered social posts, videos and presentations in a drag-and-drop editor](https://orshot.com/blog/predis-ai-alternative/alt-canva.webp) The honest DIY answer. If you post a few times a week, Canva plus a scheduler beats paying for AI generation you keep correcting, and Bulk Create handles spreadsheet-driven batches. It stops working when you need a render to fire on a trigger rather than a person clicking export. [Read the full Canva breakdown →](https://orshot.com/blog/canva-bulk-create-alternative) Verified pricing and free-tier details for these and eight more are in our [social media automation tools](https://orshot.com/blog/social-media-automation-tools) comparison. ## Common questions **Q: Is Orshot a drop-in replacement for Predis.ai?** No, and it's worth being clear about that. Predis decides what your post should say and look like. Orshot takes a design you've already settled on and reproduces it exactly, from your own data, as many times as you need. If prompt-to-post is the feature you love, Orshot will feel like a step sideways. **Q: Does Orshot write captions like Predis?** Yes, through an agent. Connect the Orshot MCP server to Claude or Cursor and it writes the caption and hashtags, renders the visual, and publishes the post in one flow — you can also pass caption text directly in the publish call. The difference is that Predis has a caption generator built into the dashboard; on Orshot it comes from the agent driving it. **Q: Is Orshot cheaper than Predis.ai?** Depends entirely on connected accounts. Predis Core is $19/mo with 10 accounts included; Orshot is $39/mo plus $12 per connected account. On a handful of accounts Predis wins on price. Orshot gets cheaper when it replaces your design tool and your automation tool at the same time, and when video is a real part of your output. **Q: Does Predis.ai have a free plan, and does Orshot?** Predis.ai free is a trial rather than a plan — you get a limited run of generations and the output carries a watermark, so you can evaluate it but not ship with it. Orshot's free tier is 30 credits with the full studio and API, no card and no watermark. Neither includes social publishing; on Orshot that's a paid addon at $12/mo per connected account. **Q: Can Orshot make videos and reels?** Yes. Studio has a timeline with per-layer animation and video layers, so one template exports as PNG, PDF, GIF, or MP4. Credits are 1 per second of video, with no per-plan length cap. **Q: What if my designs are already in Canva or Figma?** Import them. A Canva share link or a Figma file becomes an Orshot template, and from there an API endpoint, keeping the design you already approved. **Q: Which platforms can Orshot publish to?** Instagram, X, Facebook, LinkedIn, TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, Google Business, Discord, and WhatsApp. Carousels post automatically where supported. ## Bottom line Predis.ai is a good answer to "I don't know what to post." Orshot is the answer to "I know exactly what to post, and I need it made 400 times without drifting." If you've been finishing every Predis post by hand, that's the signal. Rebuild one recurring post as a template, connect the sheet it should read from, and let it run. If you're mid-migration and want a hand, hit the chat button. It's usually me on the other end. --- ### [A Refreshed Studio, Now in 3 Columns](https://orshot.com/blog/studio-3-column-layout) > Orshot Studio has a cleaner, faster layout — Pages and Layers on the left, properties on the right, and a bigger canvas in the middle. Available in the editor and in your embedded editor. We've refreshed Orshot Studio. The editor is cleaner and quicker to work in, and there's a new **3-column layout** that puts everything where you'd expect from a professional design tool — available both in Studio and inside the embedded editor your customers use. [Try it out now](https://orshot.com/studio "target=_blank") ## What's new: the 3-column layout ![](https://orshot.com/blog/studio-3-column-layout/3-col-orshot-studio.webp) Turn it on and Studio reorganizes into three columns: - **Left** — your **Pages** and **Layers**, always visible. Move between pages and select or reorder layers without opening a panel. - **Middle** — a **bigger canvas**, so your design takes center stage. - **Right** — the **properties** for whatever you've selected (or the page itself), right where you need them. It's the layout you already know from tools like Figma, so it feels familiar from the first click. ## Why it's useful - **Less hunting.** Pages, layers, and properties are all on screen at once — no switching tabs to find what you need. - **Faster on complex templates.** Multi-page carousels and heavily layered designs are far easier to navigate when the full structure stays in view. - **More room to design.** The artboard gets the middle of the screen, so you see more of your work while you edit. - **The same pro experience in embeds.** If you embed Orshot Studio in your product, your users get the exact same 3-column layout. ## How to turn it on **In Studio:** open the **File** menu → **View** → **3-Column Layout**. Switch back the same way, or with the hide-panels button in the left panel header. **In an embed:** open the **⋮** menu in the toolbar → **3-Column Layout**. Prefer the classic two-column layout? It's still there — switch between them anytime. ## Also in this refresh Alongside the new layout, we did a broad polish pass on the editor: a more consistent, higher-contrast design system in both light and dark mode, better accessibility, and more reliable panels, menus, and dialogs throughout. The refreshed Studio is live now — open any template and give the 3-column layout a try. --- ### [A Robust Image Editor SDK Without the Enterprise Price Tag](https://orshot.com/blog/image-editor-sdk) > Looking for an embeddable image editor SDK? See why Orshot is a simpler, more affordable alternative to Polotno and IMG.LY for client portals If you're building any kind of platform where users need to edit designs—whether that's a client portal, a marketing tool, or a print-on-demand service—you've probably heard this request: "Can they just edit it themselves in the dashboard?" Seems straightforward, right? A canvas, some text tools, image uploads. But spend five minutes on Reddit or any dev forum and you'll quickly see the mess that is building or buying an **image editor SDK** or **embeddable design editor**. If you're looking for a powerful, white-label image editor that integrates in seconds, Orshot is the only platform you'll need. - [**Play with Orshot Studio**](https://orshot.com/studio?community_template_id=115 "target=_blank") - [**View Pricing**](https://orshot.com/pricing "target=_blank") ![Preview of the Orshot embed image editor](https://orshot.com/home/orshot-embed-preview.png) ## The Problem with Traditional SDKs If you look at the options available today, you usually face three major blockers: 1. **Massive Bundle Bloat**: Most SDKs are heavy. They add megabytes of JavaScript to your application, killing your load times and hurting your SEO. 2. **The "Backend Gap"**: Almost every SDK is just a frontend widget. You are still stuck building the database to store user uploads, separating User A's images from User B's, and managing template permissions. 3. **Enterprise Pricing**: Many providers hide behind "Contact Sales" buttons, with pricing models based on Monthly Active Users (MAU) that punish you for growing. If you're delivering a client-facing product, this is a real problem. You want to offer a polished, white-label experience—but you don't want to become a full-time backend engineer or blow your budget on licensing fees. ## The Checklist for Client-Facing Image Editors Before diving into solutions, here's a reality check on what features you'll actually need when choosing an embeddable image editor: | Feature | Why It Matters | Orshot | | --------------------------------- | ---------------------------------------------------- | --------------------- | | **White-label Branding** | Your portal, your brand. No third-party logos. | ✅ Full customization | | **Multi-tenancy / Per-User Data** | Each client sees only their own designs. | ✅ Built-in | | **React / Vue SDKs** | Drop-in components for modern stacks. | ✅ Official Libraries | | **Template Locking** | Prevent clients from breaking brand guidelines. | ✅ Configurable | | **Webhook & API Access** | Automate workflows when designs are saved. | ✅ Included | | **Multi-page / Carousel Support** | For social media kits and presentations. | ✅ Supported | | **Download Controls** | Decide if users can export or must request approval. | ✅ Toggle on/off | | **Domain Restriction** | Ensure embed only loads on your domains. | ✅ Built-in security | | **Transparent Pricing** | Know what you'll pay before you commit. | ✅ Public pricing | ## The Solution: Don't Build, Embed. ![The Orshot embed settings panel](https://orshot.com/blog/embed/embed-settings.png) This is exactly why we built [Orshot Embed](https://orshot.com/blog/orshot-studio-embed). It allows you to integrate a fully functional, Canva-like design editor directly into your application with a single line of code. Instead of cobbling together open-source libraries or grappling with alternatives like [Polotno](https://orshot.com/blog/polotno-studio-alternative), you get a complete platform that solves the hard parts for you. ### 1. Zero Bundle Size Because Orshot runs as an optimized embed, it adds virtually zero weight to your application bundle. Your site stays fast, and we handle the heavy lifting of rendering. ### 2. Built-in Multi-Tenancy (Per-User Data) This is the game changer. With our [Per-User Data](https://orshot.com/docs/orshot-embed/per-user-data) feature, you don't need to build a backend to manage user templates. By simply passing a `userId` in the embed URL, Orshot automatically creates a private, isolated space for that user. User A sees their designs, User B sees theirs, and you see none of the database headache. ```html ``` ### 3. Fully White-label Your users shouldn't feel like they've been dropped into a third-party tool. With Orshot, you can customize the editor's look to match your brand—colors, logos, the works. It looks like _your_ product. - **Template Management**: Let users pick from your pre-made designs. - **Robust Editing**: Text, shapes, images, and even [multi-page carousels](https://orshot.com/blog/introducing-carousel-templates). - **Control**: You decide if users can download designs, or if they need to trigger a workflow first. - **Social Publishing**: Users can render and [post directly to 15+ social platforms](https://orshot.com/docs/publish/introduction) — no external scheduler needed. ### 4. Multi-Language Support Serving an international audience? The embedded editor supports **4 languages** out of the box—English, Spanish, French, and Portuguese. Just pass a `lang` parameter and your users get the editor in their language. See the [configuration docs](https://orshot.com/docs/orshot-embed/configuration) for details. ### 5. Embed User Dashboard You get a dedicated dashboard to manage all your embed users in one place. See who's active, how many templates they've created, and manage their data—no custom admin panel required. Check out the [per-user data documentation](https://orshot.com/docs/orshot-embed/per-user-data) for the full setup. ### 6. React & Vue SDKs We also offer official SDKs for [React](https://orshot.com/docs/orshot-embed/react-sdk) and [Vue](https://orshot.com/docs/orshot-embed/vue-sdk) to make integration even smoother. Instead of manually handling iframes or scripts, you can use our wrapper components to drop the editor into your app with full type safety and event handling. ```bash npm install @orshot/embed-react # or npm install @orshot/embed-vue ``` ## Transparent Pricing (vs. Polotno, IMG.LY, and Others) Let's talk about the elephant in the room: **cost**. Most image editor SDKs either hide their pricing behind a "Contact Sales" button, or charge rates that only make sense if you're a Fortune 500. If you're a small team or just getting started, that's a non-starter. Here's how Orshot stacks up: | Provider | Starting Price | Multi-Tenancy | White-label | | ------------------- | ----------------- | ----------------- | ----------- | | **IMG.LY (CE.SDK)** | ~$500+/mo | Build it yourself | Extra cost | | **Polotno** | ~$100+/mo | Build it yourself | Limited | | **Canva API** | Enterprise only | No | No | | **Orshot Embed** | **Starts $39/mo** | ✅ Built-in | ✅ Included | With Orshot, Embed access starts at just **$39/month** on the SaaS plan. The Startup plan at **$99/month** unlocks full white-label (no Orshot branding), download controls, and up to 10 embed users with isolated data. Need to scale further? Higher tiers support **50, 100, 500, and up to 1,500 embed users** with per-user data isolation—so you can grow from a handful of clients to a full-blown platform without switching tools. No "Contact Sales". No surprise invoices. Just [pick a plan](https://orshot.com/pricing) and start building. ### Automate the Workflow The design process doesn't end when the user hits "Save". A good image editor SDK needs to talk to the rest of your stack. With Orshot Embed, you can hook into [Webhooks](https://orshot.com/blog/orshot-studio-embed#webhook-integration). When a client finishes a design, your app gets notified instantly. You could automatically send that image to a social media scheduler, attach it to a report, or trigger an [invoice generation workflow](https://orshot.com/blog/automated-invoice-generation). ### Wrapping Up Look, your users don't care how elegant your backend code is. They care about getting their work done. By using a dedicated **image editor SDK** like Orshot Embed, you skip months of development headaches and ship a polished **white-label design editor** today. If you're building a client portal, a marketing platform, or really any product where users need to create visuals, [**give Orshot a look**](https://orshot.com/signup). Plans start at $39/month, and you can test the embed right away. Stop paying enterprise prices for features you'll never use. Ship the thing. --- ### [A VistaCreate Alternative for Automated Design & Scale](https://orshot.com/blog/vistacreate-alternative) > Looking for a VistaCreate alternative? Orshot offers API-first design automation, white-label embedding, and scalable image generation. Generate thousands of designs programmatically VistaCreate is a solid tool for manual, one-off designs like social media posts or banners. However, it bottlenecks teams that need scale. Without an API or bulk generation features, you can't automate creating hundreds of variations or integrate design generation into your product. That's where **Orshot** comes in. It combines a professional visual editor with powerful API automation. Design once, then generate thousands of on-brand images, PDFs, or videos programmatically—giving you the best of both design and code. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-vistacreate-top) **Migrate from VistaCreate to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your VistaCreate API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) --- Here's a **preview of Orshot Studio** for you to try: [Open the embed](https://orshot.com/templates/shared/6h1w0nmj/embed?view=play) ## The Problems with VistaCreate While VistaCreate is a solid manual design tool, users switching to automated solutions often cite these key limitations: ### 1. Manual Bottlenecks VistaCreate relies entirely on point-and-click manual work. Creating or updating 100 variations means 100 manual downloads. There is no bulk generation or API to automate repetitive tasks, making it unscalable for agencies or product teams needing high volume. ### 2. No API or Integrations It lacks a public API, meaning you cannot generate images programmatically or connect to tools like Zapier, Make, or your own database. It is strictly a standalone tool, isolating your design process from your automated workflows. ### 3. Subscription & Billing Issues Users frequently report difficulty canceling subscriptions and unexpected auto-renewals. The seat-based pricing ($10-13/user/mo) also becomes costly for teams compared to usage-based models. ### 4. Restrictive Free Tier The free plan includes watermarks and download limits, obstructing testing and small projects. You pay per seat regardless of how much you use it, rather than paying for what you generate. ## Enter Orshot: The Automated Alternative Here's the fundamental difference: **VistaCreate:** Design one by one, manually, in their editor. Download individually. **[Orshot](https://orshot.com/):** Design once in the editor, then generate thousands of variations via API, spreadsheets, or integrations. VistaCreate is a design tool. Orshot is a design automation platform. You can still use a visual editor (Orshot Studio). You can still create beautiful templates. But then you can turn each template into an API endpoint and generate unlimited variations programmatically. ## Key Features (What Makes Orshot Different) ### 1. Orshot Studio - Professional Design Tool - [Orshot Studio](https://orshot.com/studio) is a full-featured design editor. Clean interface, professional capabilities, no limitations. But with features VistaCreate lacks: - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Position elements relative to each other using flexbox-like layouts. When content changes size (longer text, different images), everything auto-adjusts. VistaCreate doesn't have this - you're manually repositioning elements. - **Smart Layouts** - Create responsive designs that adapt to different content automatically. - **Custom Fonts** - Upload any font. No restrictions. - **Multi-page Templates** - Create carousels, PDF reports, and multi-page designs. [See how it works](https://orshot.com/blog/introducing-carousel-templates). - **Brand Assets** - Save your logos, colors, and fonts. Reuse across all templates for consistency. [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ### 2. API-First Design Automation Every template you create becomes an API endpoint. Here's what that means in practice. **With VistaCreate (Manual):** 1. Open editor 2. Change text/images manually 3. Download file 4. Repeat 99 more times for 100 variations **With Orshot (Automated):** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { title: "Dynamic Title", description: "Dynamic description text", productImage: "https://example.com/product1.jpg", // Override any style property "title.fontFamily": "Space Mono", "productImage.borderRadius": "16px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); // Returns image URL instantly ``` One API call. Instant generation. Scale to 10,000 variations if needed. **Complete docs:** - [API Reference](https://orshot.com/docs/api-reference) - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - [Setting Parameters](https://orshot.com/docs/orshot-studio/setting-parameters) ### 3. Embed SDK - White-Label Your Design Tool ![AI-powered template generation in the Orshot embed](https://orshot.com/docs/orshot-embed/ai-template-gen-embed.webp) You can embed the Orshot editor directly into your own SaaS application. Your users get a design tool inside your product, with your branding. ```html ``` Perfect for: - SaaS platforms that need user customization - Marketing platforms offering design tools to clients - Print-on-demand services - Social media management tools VistaCreate doesn't offer this. You can't white-label their editor or embed it in your app. Your users would have to leave your platform, sign up for VistaCreate separately, and work there. Read more about [Orshot Studio Embed](https://orshot.com/blog/orshot-studio-embed) and the [Image Editor SDK](https://orshot.com/blog/image-editor-sdk). ### 4. Import from Anywhere Don't want to start from scratch? Import existing designs: - **From Canva:** [Clone any Canva template](https://orshot.com/solutions/canva-template-to-api) directly into Orshot. Copy the share link, paste it, done. - **From Figma:** Use the [Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import designs with one click. - **Using AI:** Drop a screenshot into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It recreates the design automatically. VistaCreate requires you to rebuild everything manually in their editor or use their templates. ## Pricing Comparison Different models, but here's how they compare: | Feature | VistaCreate | Orshot | | :--------------------- | :------------------ | :------------------------------------------------------ | | **Model** | Per-seat | Usage-based | | **Single User** | ~$10-13/month | $39/month | | **What You Get** | Unlimited downloads | 1,500 credits (1 credit = 1 image), Unlimited downloads | | **API Access** | None | All plans | | **Bulk Generation** | Manual only | Automated | | **Integrations** | Limited | Zapier, Make, n8n | | **White-label Embed** | Basic | Yes | | **Multi-page Support** | No | Yes | | **Social Publishing** | No | [15+ platforms](https://orshot.com/docs/publish/introduction) | | **Free Trial** | Free tier available | 30 free credits | **Bottom line:** - **VistaCreate** is better if you're a single designer making a few graphics per week manually. - **Orshot** is better if you need volume, automation, or you're building a system. For teams, Orshot is cheaper (no per-seat pricing). For automation, there's no comparison (Orshot has an API, VistaCreate doesn't). For scale, Orshot wins ($39 for 1,500 credits vs manual work in VistaCreate). [Full pricing details](https://orshot.com/pricing) ## What You Can Do at Scale This is where Orshot really shines. Once you have templates set up, you can: ### Programmatic SEO Images Generate unique OG images for every blog post automatically. Pull title, description, and author from your CMS, render an image, add it to the page. ```javascript // Generate blog post image automatically const blogImage = await renderTemplate({ title: post.title, author: post.author, category: post.category, }); ``` Thousands of blog posts? Thousands of unique images. No manual work. ### Personalized Email Headers Send personalized email images to each customer. Include their name, their stats, their achievements. Makes emails feel custom without manually creating each one. ```javascript const emailHeader = await renderTemplate({ customerName: user.name, monthlyGoal: user.goalProgress, badgeIcon: user.currentBadge, }); ``` ### Automated Social Media Visuals Turn tweets into shareable images. Turn blog posts into Instagram carousels. Turn product updates into LinkedIn graphics. All automated. Check out [Twitter Screenshot API](https://orshot.com/templates/tweet-image) as an example. ### Multi-Language Variations (Geo Optimization) Same banner, 20 languages, instantly. Perfect for international campaigns. ```javascript const languages = ["en", "es", "fr", "de", "ja", "pt", "it"]; for (const lang of languages) { await renderTemplate({ title: translations[lang].title, description: translations[lang].description, ctaButton: translations[lang].cta, }); } ``` Generate all variations in seconds. VistaCreate would require manually creating 20 separate designs. ### Product Catalog Automation eCommerce with hundreds of products? Auto-generate product banners from your database. [See eCommerce automation tutorial](https://orshot.com/blog/automate-ecommerce-product-images). ### Certificate and Report Generation Generate personalized certificates, invoices, reports. See [automated invoice generation](https://orshot.com/blog/automated-invoice-generation) and [Google Sheets certificates automation](https://orshot.com/blog/google-sheets-certificates-automation). All of this is impossible with VistaCreate because it's a manual tool. With Orshot, it's a few API calls. ## How It Works [Watch the video](https://www.youtube.com/watch?v=3bR-lWT5EFY) **The workflow:** 1. **Create a template** in Orshot Studio (or import from Canva/Figma, or use AI) 2. **Mark dynamic elements** (which text/images should change) 3. **Get your API endpoint** (each template becomes an API) 4. **Generate at scale** via REST API, SDKs, Zapier, Make, n8n, or [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) No manual work after step 1. Change data, get new images. That simple. ## Integrations Orshot connects with tools you already use: - **[Zapier](https://orshot.com/docs/integrations/zapier)** - Connect to 5,000+ apps - **[Make](https://orshot.com/docs/integrations/make)** - Visual automation builder - **[n8n](https://orshot.com/docs/integrations/n8n)** - Self-hosted automation - **[Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls)** - Generate images via URL parameters (no API calls needed) - **REST API** - Full API with [SDKs for Node, Python, Ruby, PHP](https://orshot.com/docs/sdks) - **[MCP Server](https://orshot.com/blog/orshot-remote-mcp-server)** - For AI agent integration VistaCreate has some integrations, but nothing close to full automation capabilities. ## Common Questions **Q: Can I use VistaCreate templates in Orshot?** You can't directly import VistaCreate templates, but you can recreate them in Orshot Studio or use our AI Template Generator to recreate a design from a screenshot. Alternatively, if you have the original in Canva or Figma, you can import directly. **Q: Is Orshot suitable for non-technical users?** Yes. Orshot Studio is a visual editor similar to VistaCreate - drag-and-drop, no coding required. The API features are optional. You can use it purely as a design tool if you want. But when you need automation, it's there. **Q: How is pricing different from VistaCreate?** VistaCreate charges per user seat (~$10-13/month per person). Orshot charges for credits ($39/month for 1,500 credits, unlimited team members). For teams, Orshot is usually cheaper. For individual designers making limited graphics, VistaCreate might be more economical. **Q: Can I embed Orshot in my own app?** Yes. You can [white-label and embed Orshot Studio](https://orshot.com/blog/orshot-studio-embed) directly into your SaaS or platform. Your users can design without leaving your product. VistaCreate doesn't offer this. **Q: Does Orshot support bulk generation like spreadsheets?** Yes. You can bulk generate from spreadsheets, Google Sheets, or CSV files. You can also use API bulk endpoints to generate hundreds or thousands of images in parallel. Check out our [bulk generation guide](https://orshot.com/blog/canva-bulk-create-alternative). **Q: What file formats does Orshot support?** Images: PNG, JPG, WebP, AVIF. Documents: PDF. Videos: MP4, WebM, GIF. You specify the format in each API call. Orshot also supports multi-page PDFs and carousels. **Q: Can I automate social media posts with Orshot?** Absolutely. Many users automate Instagram posts, Twitter images, LinkedIn graphics, and Facebook banners. With Orshot's built-in [Social Publishing](https://orshot.com/docs/publish/introduction), you can render an image and post it directly to 15+ platforms in one API call — no Buffer or third-party scheduler needed. You can also connect to your CMS or social media tools via Zapier/Make. See [Twitter to Instagram automation](https://orshot.com/blog/automate-tweet-to-instagram). **Q: Is there a partner program for agencies?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. Perfect for agencies managing multiple clients. ## The Bottom Line VistaCreate is a solid manual design tool. If you need to create a few graphics per week and you don't need automation, it works fine. The templates are good, the interface is easy, and the price is reasonable for individuals. But if you need to: - Generate designs at scale - Automate image creation - Integrate design generation into your product or workflow - Build systems, not individual graphics - Work as a team without per-seat pricing Then you need Orshot. VistaCreate is for designers. Orshot is for developers, product teams, agencies, and anyone who needs design automation. The switch takes about an hour to set up your first automated workflow. You can test everything free with 30 credits. If you've outgrown VistaCreate but don't need full API-driven automation, it's worth looking at [PosterMyWall](https://www.postermywall.com/ "target=_blank") too. It's an all-in-one AI-powered marketing and design tool. Generate designs, images, and marketing copy from a prompt, then schedule and publish directly to your social accounts, all from the same place. For teams that just want AI-assisted design and easy publishing without writing a line of code, PosterMyWall can do a better job than VistaCreate! ## For Agencies Building visual automation for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. ## Try Orshot Free **Start automating your visuals** — 30 free credits. No credit card required. [Try Orshot free](https://orshot.com/signup?via=blog-vistacreate-bottom) 1. [Sign up](https://orshot.com/pricing) - no card needed 2. Create a template (or import from Canva/Figma) 3. Make a test API call or use spreadsheet generation 4. See if automation works for your use case You get 30 free credits to experiment. If you get stuck, hit the chat button. I or someone from the team will help you out. If you're also comparing other tools like [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Placid](https://orshot.com/blog/placid-api-alternative), [Abyssale](https://orshot.com/blog/abyssale-api-alternative), [Canva Bulk Create](https://orshot.com/blog/canva-bulk-create-alternative), or weighing up [free Canva alternatives](https://orshot.com/blog/free-canva-alternatives), the same advantages apply - API-first approach, no feature gating, and multi-page support that most competitors lack. --- ### [Abyssale Alternative for High-Volume Image & Video Generation](https://orshot.com/blog/abyssale-api-alternative) > Looking for an Abyssale API alternative? Orshot offers simpler pricing, more features, and better value. No per-seat pricing or feature gating. Start with 30 free credits Abyssale is a solid creative automation platform. They've built a comprehensive tool for generating banners, videos, and HTML5 ads at scale. Respect where it's due - they serve enterprise teams well. But if you've been using Abyssale, you've probably noticed some things. The per-seat pricing that multiplies fast. Features locked behind higher tiers. Credits that expire monthly. The complexity that comes with enterprise-focused tools when you just need to generate images via API. I built Orshot because I needed something simpler. Same core concept ([turn templates into API endpoints](https://orshot.com/solutions/image-generation-api)), but without the enterprise overhead. More output per dollar, fewer restrictions, straightforward pricing. [**Try Orshot Free**](https://orshot.com/pricing "target=_blank") **(30 credits, no card needed)** **Migrate from Abyssale to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Abyssale API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) Here's a **preview of Orshot Studio** for you to try: [Open the embed](https://orshot.com/templates/shared/6h1w0nmj/embed?view=view) ## What's Different If you're on Abyssale, here's what changes when you switch: | Feature | Orshot | Abyssale | | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------- | | **Free Tier** | 30 free credits, no expiry, all features unlocked | 30 credits, 14-day trial, 3 downloads max | | **Pricing Model** | Fixed monthly (\$39-\$600) | Per-seat (multiplies with team size) | | **Starter Plan** | \$39/month for 1,500 credits (1 credit = 1 image) | \$12/seat/month for 150 credits | | **Mid Plan** | \$99/month for 5,000 credits | Pro plan + multiple seats required | | **Video Generation** | All plans — full timeline, audio tracks, auto-subtitles (MP4/WebM/GIF) | Pro plan and above only | | **API Access** | All plans | Pro plan and above only | | **Credits Expiry** | Monthly reset (~3x more images per dollar) | Monthly reset (use it or lose it) | | **Embed Editor in App** | [White-label Studio Embed](https://orshot.com/blog/orshot-studio-embed) | Abyssale Bridge (view-only, no editing) | | **Dynamic URLs** | [All plans](https://orshot.com/docs/integrations/dynamic-urls) | Pro plan and above only | | **AI Features** | Included (AI templates, background removal) | Extra AI credits required | | **Template Editor** | [Orshot Studio](https://orshot.com/studio) with [Smart Stacking](https://orshot.com/blog/smart-stacking) | Abyssale Editor | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI](https://orshot.com/features/ai-template-generator) | Figma plugin, Photoshop plugin | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | ## The Real Problems with Abyssale Based on what I've seen from users switching over, here are the main pain points: ### 1. Per-Seat Pricing Gets Expensive Fast Abyssale's pricing is per seat. Start plan is $12/seat/month, Pro is $36/seat/month. Sounds reasonable until your team grows. 5 team members on Pro? That's $180/month - and you're still sharing a limited credit pool. With Orshot, you pay for credits, not seats. Add your whole team, it's the same price. $39/month gets you 1,500 credits whether you have 1 person or 20. ### 2. Feature Gating Want to use the API on Abyssale? Pro plan or higher. Dynamic image URLs? Same thing. Video generation? Locked behind Pro. Spreadsheet generation? Pro. Orshot doesn't gate features. Pay for credits, get everything. API, dynamic URLs, video generation, all of it. ### 3. Credits Expire Monthly Abyssale's subscription credits reset each billing cycle. Didn't use all 450 Pro credits this month? Gone. You lose them. Orshot credits also reset monthly, but we give you significantly more per dollar. At $39/month for 1,500 credits vs Abyssale's ~$36/month for 450 credits, you're getting roughly 3x more value. Less pressure to optimize every single render. ### 4. Learning Curve for Complex Workflows Abyssale is powerful but complex. Great for enterprise teams with dedicated designers. But if you just want to generate images programmatically without a PhD in their system, it's overkill. Reviews mention "initial learning curve if you're used to traditional tools" and the UI being "quirky sometimes." We've kept Orshot intentionally simple. ### 5. AI Features Cost Extra Abyssale charges separate AI credits for background removal, text-to-image, and other AI features. These are on top of your generation credits. $0.10 per AI credit adds up. Orshot bills AI background removal as part of your regular credits. No extra packs to buy. ## What You Get Extra with Orshot Beyond solving Abyssale's pain points: - **Simpler pricing** - One price, all features. No calculating seats × tiers × credit packs. Check the [pricing page](https://orshot.com/pricing). - **Multi-page templates** - Create carousels, multi-page PDFs, and multi-page videos for social media. Each page can have multiple video layers. [See how it works](https://orshot.com/solutions/video-generation-api). - **More integrations** - n8n, MCP Server, Orshot CLI - tools Abyssale doesn't support. [Full list here](https://orshot.com/integrations). - **Import from anywhere** - Clone from Canva, import from Figma, or use AI to generate templates. Way faster than starting from scratch. - **Better editor** - [Orshot Studio](https://orshot.com/studio) has smart stacking and smart layouts. Less clicking, more designing. - **Full video editor with API control** - Visual video timeline with per-layer animations, page-level audio tracks, and auto-generated subtitles. Export to MP4, WebM, or GIF. Control trim, mute, loop, and every animation property via API. Multiple videos per page, multiple pages per template — one API call generates everything. - **Social Publishing** - Render and [publish to 15+ social platforms](https://orshot.com/docs/publish/introduction) in one API call. Post instantly, schedule, or save as draft — no third-party scheduler needed. - **Actual support** - I respond to chat messages. Usually within an hour. Sometimes I'll hop on a call if something's complicated. ![Customer testimonial from Mihai about using Orshot](https://orshot.com/blog/mihai-testimonial.webp) ## Utility Templates Pre-built API templates that solve common problems: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots with customization - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures, any viewport - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work standalone or combined with your custom templates. ## Switching from Abyssale Migration is straightforward. Here's how people do it: ### Step 1: Recreate Your Templates (15-30 min) You have options: **Just rebuild it** - Open your Abyssale template, rebuild in [Orshot Studio](https://orshot.com/studio). The editor's intuitive, usually faster than you think. **Use AI** - Screenshot your Abyssale output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate it, you fine-tune. **Import existing designs** - If you have originals in Canva or Figma: - [Clone from Canva](https://orshot.com/solutions/canva-template-to-api) - [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) Try it now — paste a public Canva share link and see it as an Orshot template: You can create multi-page templates, [share through public links or embeds](https://orshot.com/blog/sharing-orshot-templates) with different view modes. You can also [invite your team to collaborate](https://orshot.com/features/team-collaboration) on design + template integration. [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ### Step 2: Update Your API Calls (10 min) The APIs are similar conceptually. Here's what changes. **Abyssale API Call:** ```javascript const response = await fetch( "https://api.abyssale.com/banner-builder/{templateId}/generate", { method: "POST", headers: { "x-api-key": "YOUR_ABYSSALE_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template_format_name: "Instagram Post", elements: { title: { payload: "Hello World", }, image: { payload: "https://example.com/photo.jpg", }, }, }), }, ); ``` **Orshot API Call (Cleaner):** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", // Dynamic parameters - override any style property // Docs: https://orshot.com/docs/dynamic-parameters "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` **Main differences:** - Simpler modifications object (direct key-value instead of nested payload) - Response format specified explicitly - Standard Bearer token auth **Helpful docs:** - [API Reference](https://orshot.com/docs/api-reference) - Complete API documentation - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - Main endpoint you'll use - [SDKs](https://orshot.com/docs/sdks) - Node, Python, Ruby, PHP libraries - [Setting Parameters](https://orshot.com/docs/orshot-studio/setting-parameters) - How to make templates dynamic - [Style Parameters](https://orshot.com/docs/orshot-studio/style-parameters) - Override styles via API ### Step 3: Test It (5 min) 1. Make a few test calls 2. Compare the output 3. Tweak styling if needed in Studio 4. Deploy Use the Template playground to experiment with different content and styles. ![Orshot Template Playground](https://orshot.com/blog/template-playground.webp) You can run both Abyssale and Orshot in parallel during transition. Most people switch fully within a day or two. ### Need Help? Hit the chat button on bottom right. I or someone from the team will help you migrate templates, check your API calls, whatever you need. Usually takes about 2 hours total for a complete migration. ## Common Questions **Q: Why choose Orshot over Abyssale for teams?** Abyssale charges per user seat, which gets expensive quickly for agencies and teams. Orshot includes unlimited team seats on all plans, so your entire team can collaborate on templates without extra costs. **Q: Does Orshot support multi-page PDFs and carousels?** Yes. Orshot natively supports [multi-page templates](https://orshot.com/blog/introducing-carousel-templates) for generating PDF reports, slide decks, and seamless social media carousels in a single API call. Abyssale focuses more on single-page banner variations. **Q: How does Orshot's video generation compare to Abyssale?** Orshot has a full video editor with a visual timeline, per-layer animations, page-level audio tracks, and auto-generated subtitles — all controllable via API. Export as MP4, WebM, or GIF. Abyssale focuses on HTML5 banner ads; Orshot is built for social media video and automated reporting. **Q: Can I use my existing Zapier or Make automations?** Yes. If you use automation tools like [Zapier](https://orshot.com/docs/integrations/zapier) or [Make](https://orshot.com/docs/integrations/make), you can simply swap the Abyssale module for Orshot. The logic of mapping data to template fields remains the same. **Q: Can I import my Figma or Canva designs to Orshot?** Yes. You can import designs from Figma using our [plugin](https://orshot.com/solutions/figma-automation-via-rest-api) or clone from Canva using our [import tool](https://orshot.com/solutions/canva-template-to-api). Our Smart Stacking feature makes recreating flexible layouts very fast. **Q: Does Orshot support HTML5 Banner Ads?** No. Orshot focuses on generating high-fidelity images, PDFs, and videos. If you specifically need HTML5 zip bundles for display networks, Abyssale is the right tool. For social, email, and print, Orshot is more cost-effective. **Q: Is there a partner program for agencies?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. Perfect for agencies managing multiple clients. **Q: What integrations does Orshot support?** Orshot integrates with Zapier, Make, n8n, Airtable, Slack, and more. We also offer [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) for no-code image generation and a full REST API with SDKs for Node, Python, Ruby, and PHP. ## Pricing Comparison Here's what you're actually paying: | Monthly Volume | Abyssale (Pro, 1 seat) | Orshot | You get | | -------------- | ---------------------- | ----------------------------- | --------------------- | | 450 images | ~\$36/month | \$39/month (1,500 credits) | 3x more included | | 5,000 images | Enterprise pricing | \$99/month | Significant savings | | 20,000 images | Enterprise pricing | \$160/month | Significant savings | Note: Abyssale's per-seat model makes direct comparison complex. The above assumes minimal seats — every extra seat multiplies their price, not ours. Also worth noting: - 30 free credits to test with no expiry (Abyssale's 30 expire after the 14-day trial) - No feature restrictions on any plan - ~3x more images per dollar than Abyssale - No separate AI credit costs [Full pricing details here](https://orshot.com/pricing) ## The Editor ![The Orshot Studio visual template editor](https://orshot.com/blog/orshot-studio.webp) [Orshot Studio](https://orshot.com/studio) is designed for simplicity. Clean interface, minimal clicking, visual results. **Key features:** - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Position elements relative to each other. They auto-adjust when content changes - **Brand Assets** - Save your logos, colors, and fonts. Use across all templates - **Custom Fonts** - Upload any font. No limits - **Personalization** - Make any element dynamic - text, images, colors, styling - **[Studio Embed](https://orshot.com/blog/orshot-studio-embed)** - Integrate the editor into your own app with custom branding - **Multi-page Support** - Create carousels and [PDF templates](https://orshot.com/solutions/pdf-generation-api) with different pages ## How It Works [Watch the video](https://www.youtube.com/watch?v=3bR-lWT5EFY) Every template becomes an API endpoint. You can: - Generate templates with AI or import from Canva/Figma - Automate with REST API, SDKs, Zapier, Make, n8n, or [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) - Bulk generate with parallel processing - Generate multi-page PDFs and carousels If there's an integration missing, just ask. We'll probably add it. ## Examples and Tutorials ### Generating Videos Adding videos in your templates and automating via Orshot's Video Generation API: [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Carousel Templates How to create multi-page templates and automate them: [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ### Import from Canva Clone your existing Canva designs and [turn them into API endpoints](https://orshot.com/solutions/canva-template-to-api): [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Import from Figma [Use the Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import your designs directly: [Watch the video](https://www.youtube.com/watch?v=ggvLR0HLJ7Q) ### eCommerce Automation Example workflow - [automating product images](https://orshot.com/blog/automate-ecommerce-product-images) from your data sources: [Watch the video](https://www.youtube.com/watch?v=S5qNb4mmUdc) ### Dynamic URLs Generate images just by changing URL parameters - no API calls needed: [Watch the video](https://www.youtube.com/watch?v=a2I69Qb2hts) ## Bottom Line Abyssale is powerful, especially for enterprise teams needing HTML5 ads and complex approval workflows. But for most use cases - generating images and videos via API - it's overbuilt and overpriced. Orshot does the same core thing (turn templates into API endpoints) with simpler pricing and no feature gating. If you're also comparing [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative), [Placid](https://orshot.com/blog/placid-api-alternative), or [Contentdrips](https://orshot.com/blog/contentdrips-api-alternative), the same advantages apply - simpler pricing, no feature gating, and multi-page support that most competitors lack. The switch takes a couple hours. You can test everything free with 30 credits. ## For Agencies Building visual automation for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. ## Try It 1. [Sign up](https://orshot.com) - no card needed 2. Recreate one of your templates (or use AI to do it) 3. Test with your actual data 4. See if it works for you If you get stuck, hit the chat button. I'll help you out. --- ### [AdCreative.ai Alternative for Automated Image and Video Ads](https://orshot.com/blog/adcreative-ai-alternative) > Generate static and video ads via AI agents, render on-brand at scale via API, n8n, Make. Predictable pricing compared to AdCreative.ai, 30 free credits If you're looking for an AdCreative.ai alternative, you've usually hit one of two walls: - **The bill** — a surprise annual charge after a trial you thought you'd cancelled. - **The output** — an AI that _guesses_ your ad isn't a tool that reliably _ships_ the one you already designed. Orshot is the second kind. Design an ad once, then render it in every size and format — static image or animated video — through an API. You own the exact look, and the price doesn't move. AdCreative invents and scores ads; Orshot reproduces and automates the one you picked. [**Try Orshot free**](https://orshot.com/signup "target=_blank") — 30 credits, no card. ## One ad, every size, one call This is the part worth seeing first. Design an ad once, and Orshot renders it into every format you need in a single API call — no redesign, no re-spend: ![Coaching ad template rendered as a 1080x1920 Instagram Story via Orshot Smart Resize](https://orshot.com/blog/adcreative-ai-alternative/resize-story.png) ![Same coaching ad template rendered as a 1080x1080 square Instagram post via Orshot Smart Resize](https://orshot.com/blog/adcreative-ai-alternative/resize-square.png) ![Same coaching ad template rendered as a 1200x630 Open Graph image via Orshot Smart Resize](https://orshot.com/blog/adcreative-ai-alternative/resize-og.png) Same ad — a Story, a square post, an OG image — from one template in one request. Swap the headline and you've got the next campaign. I'll show the call that did this further down. ## I'll be straight about fit first If you don't yet know what your ad should look like and want AI to invent concepts and score them, Orshot is the wrong tool — no generator, no creative score. It's built for the next step: you already have the design, now produce it on-brand, in every size, at scale. (Full who-picks-which is at the bottom.) ## Why people leave AdCreative.ai The ideas are rarely the problem — it's everything wrapped around them. The patterns from public reviews ([Product Hunt 3.9/5](https://www.producthunt.com/products/adcreative-ai/reviews "target=_blank rel=nofollow"), [Trustpilot](https://www.trustpilot.com/review/adcreative.ai "target=_blank rel=nofollow"), G2): - **Surprise charge after the trial.** The 7-day trial needs a credit card and auto-converts, and the headline prices are the discounted quarterly/yearly rates — so the bill comes in bigger than it looked. The widely-cited **~$339** charge after a trial people thought they'd cancelled (then slow or ghosted refunds) is the #1 complaint. - **Credits are downloads, and scarce.** ~**10/month** on Starter, no roll-over, watermark only off on a paid download. - **Output can look AI-made.** A fair share of creatives read as generic — fine to start, hard to ship as your brand at scale. - **Generates, but doesn't deliver.** Pushes to ad accounts, but no automation layer — nothing renders an ad when a row lands in Airtable or a product changes in your CMS. - **Support friction** — slow help right when a billing problem is most stressful. None of it makes AdCreative a bad product. It means that once ad creative is recurring work, you want control, automation, and a cost you can predict. Different tool. ## The pricing, and the "$339 trap" Here's the model in plain terms: | | AdCreative.ai | Orshot | | :-------------------------- | :--------------------------------------------- | :---------------------------------------- | | **Entry price** | $39/mo Starter ($39 / $249 / $999 tiers) | $39/mo | | **Billing** | Monthly, or 25% off quarterly / 50% off yearly | Same price, monthly or annual | | **What a credit is** | One **download** of a creative | 1 image, 1 PDF page, or 1 second of video | | **Entry credits** | ~10 downloads/mo on Starter | 1,500 credits/mo on the $39 plan | | **Free option** | 7-day trial, **credit card required** | 30 credits, **no card** | | **Roll over** | Unused credits reset | — | | **Scoring / video / batch** | Pro plan ($249+) and up only | Included on paid plans | The "$339 trap" is a few things stacking up: the trial needs a card and auto-converts, the lowest advertised prices are the quarterly/yearly rates rather than what you'd pay month to month, and the features people came for — creative scoring, video, batch — only start on the $249 Professional tier. A casual signup can become a multi-hundred-dollar bill before you've shipped one ad. Orshot's free tier needs no card — nothing to forget to cancel — and the same $39 buys **1,500 credits** with no annual lock-in. ## How Orshot works instead You design the ad once in [Orshot Studio](https://orshot.com/studio) — a Figma-like editor — lock your brand (fonts, colors, logo), and mark only the parts that change (headline, price, product image) as parameters. From there the design is an **API endpoint**: every render comes out pixel-exact and on-brand, whether you make one or ten thousand. Here's the template, embedded live — hit play to watch it animate, then resize it to any format: [Open the embed](https://orshot.com/templates/shared/vx6jbbh2/embed?view=play) That preview is animating, not a static mockup. Studio has a timeline with per-layer animations and video layers, so the same template also exports as an **animated video ad** — MP4, WebM, or GIF — not just a still. If you specifically want an AdCreative alternative for video ads, one template gives you both the static and the moving version, from the same API call. **Like what you see? [Sign up free to save and export your own design](https://orshot.com/signup "target=_blank")** — 30 credits, no card. You don't have to start from a blank canvas, either. The [ad template gallery](https://orshot.com/templates/g/ads "target=_blank") has 30+ ready-made ads across SaaS, ecommerce/DTC, fitness, food & beverage, dental, courses, automotive, and pet services — Story ads, square IG ads, product cards, offer stories. Pick one, swap your copy and product, done. Already designed your ad in [Canva](https://orshot.com/solutions/canva-template-to-api) or [Figma](https://orshot.com/solutions/figma-automation-via-rest-api)? Import it and it becomes an API endpoint too. ## AdCreative.ai vs Orshot, side by side These tools overlap but sit at different points in the workflow. AdCreative.ai _invents and scores_ creative. Orshot _reproduces and automates_ the creative you've already chosen. | Feature | Orshot | AdCreative.ai | | :-- | :-: | :-: | | Generates ad ideas from your brand/site | Via MCP agent | Yes | | Predictive conversion-score ranking | No | Yes | | Push to Google/Meta ad accounts | No | Yes | | Pixel-exact brand control (you design it) | Yes | No | | Predictable pricing, no annual lock-in | Yes | No | | Free tier, no credit card | Yes | No | | REST API & SDKs (Node/Python/Ruby/PHP) | Yes | No | | Zapier / Make / n8n + MCP for AI agents | Yes | No | | Smart Resize — one design, every ad size | Yes | No | | Bulk render from a spreadsheet/CSV | Yes | No | | Animated video ads (MP4/WebM/GIF) + PDF, same template | Yes | No | | Publish to 15+ social platforms | Yes | No | | Entry price | $39/mo (1,500 credits) | ~$39/mo (~10 downloads) | > **Bottom line:** AdCreative.ai is an AI idea-generator for ads with billing you have to watch closely. Orshot is the alternative when you want predictable pricing and pixel-exact, automated creative across image, PDF, and video. ## One design → every ad size This is the part from the top of the post, and where owning the template pays off. With AdCreative.ai you re-generate — and re-spend — for each format. With Orshot you design once and [Smart Resize](https://orshot.com/features/smart-resize) re-lays-out the design to fit any canvas. Text, images, and colors stay shared; only the layout moves. The three renders up top — Story, square, OG — came out of one call with `extraSizes`: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_ad_template_id", modifications: { headline: "Unlock Your Leadership Potential", cta: "Book a Session", }, response: { type: "url", format: "png" }, size: "instagram-story", extraSizes: ["1080x1080", "1200x630"], }), }); ``` Presets cover `instagram-story`, `instagram-post`, `facebook-story`, `linkedin-post`, `youtube-thumbnail`, `og-image`, `leaderboard-ad`, `medium-rectangle-ad`, and more — or pass any `WIDTHxHEIGHT`. ## Automate it (API, Zapier, Make, n8n, bulk) AdCreative.ai stops at "here are some creatives." Orshot is built to push creative _into your stack_ on its own: - **REST API + SDKs** for Node, Python, Ruby, and PHP — every template is an endpoint. Swap `"png"` for `"webp"`, `"pdf"`, `"mp4"`, or `"gif"` and the same call returns a different format from the same design. - **Zapier, Make, and n8n nodes** — render a new ad every time a row lands in Airtable, a product changes in your CMS, or a deal closes. - **[MCP server](https://orshot.com/agents "target=_blank")** — connect Claude, Cursor, ChatGPT, or any AI agent and it generates ad designs on autopilot: tell it "render the launch ad in five sizes and drop them in our bucket" and it does, on a webhook or cron, no clicks. - **Bulk render** — loop a spreadsheet of products, prices, or locales and produce the whole campaign in one batch. That's the core of [automated image generation](https://orshot.com/solutions/image-generation-api) and [social media content automation](https://orshot.com/solutions/ai-marketing-automation-for-agencies). - **Publish to 15+ platforms** — render and post in the same call, no separate scheduler. ```javascript // Generate the whole campaign from a product list for (const product of products) { await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_ad_template_id", modifications: { headline: product.headline, price: product.price, product_image: product.imageUrl, }, response: { type: "url", format: "png" }, extraSizes: ["instagram-story", "1080x1080", "1200x630"], }), }); } ``` ## Who should pick which - **Pick AdCreative.ai** if your core need is _generative ideation_ — you want AI to come up with concepts, headlines, and layouts, score them, and push winners into Google/Meta. A templating tool can't replace that. - **Pick Orshot** if you already know your look and need _control, automation, and predictable cost_ — design once, render thousands of on-brand variants across every size and format via API, no surprise annual charge, no per-download cap. Plenty of teams run both: ideate in a generator, lock the winner as an Orshot template, produce at scale. ## Common questions **Q: Is Orshot a direct replacement for AdCreative.ai?** Not one-to-one — they solve adjacent problems. AdCreative.ai generates new ad concepts with AI and scores them for predicted conversion. Orshot takes a design you've already chosen and reproduces it exactly across thousands of on-brand variations and every format via API. Many teams ideate in one and produce in the other. **Q: What's the real story behind AdCreative.ai's pricing and the $339 charge?** AdCreative.ai's trial requires a credit card and auto-converts. It does offer monthly plans, but the lowest advertised prices are the discounted quarterly/yearly rates, and creative scoring, video, and batch only start on the $249 Professional tier. The widely-reported ~$339 charge happens when a trial converts into a longer plan people didn't expect. Orshot's free tier needs no card, and $39/mo gets 1,500 credits at the same price monthly or annually. **Q: How is an Orshot credit different from an AdCreative.ai credit?** On AdCreative.ai a credit is consumed when you download a creative, and the Starter plan ships with very few (around 10/month) that don't roll over. On Orshot, 1 credit = 1 image, 1 PDF page, or 1 second of video — 1,500 credits on the $39 plan, scaling to 300,000 credits/month, every template included. **Q: Can Orshot resize one ad into every social format automatically?** Yes — that's Smart Resize. Design once and Orshot deterministically re-lays-out the design to fit any canvas (Story, Square, OG, banner, YouTube thumbnail). You can render multiple sizes in a single API call with extraSizes. **Q: Can Orshot make video ads, not just static ones?** Yes — Studio supports per-layer animations and video layers, so the same ad template exports as an animated video ad in MP4, WebM, or GIF, alongside static images and PDFs. One template and one credit pool cover every format, which makes Orshot a practical AdCreative alternative for video ads as well as static creative. **Q: How does Orshot fit into automation?** Every template becomes a REST endpoint with SDKs for Node, Python, Ruby, and PHP, plus native nodes for Zapier, Make, and n8n, an MCP server for AI agents, a CLI, and Dynamic URLs. That's how one design becomes thousands of on-brand assets automatically — the delivery layer AdCreative.ai doesn't have. ## Bottom line If AdCreative.ai helped you work out what your ads should look like, Orshot is the next step: lock that design as a template and generate every on-brand variation — image, PDF, and video — from one predictable plan and one API. No creative score, no surprise renewal. Just the ad you chose, in every size you need, on demand. [**Get started free →**](https://orshot.com/signup "target=_blank") — 30 credits, all features, no card. Also comparing AI generators for organic social rather than paid? [Predis.ai](https://orshot.com/blog/predis-ai-alternative) covers the same ground for feed posts and carousels. --- ### [AI Generated Images are useless! Try Template Based Generation](https://orshot.com/blog/useless-ai-generated-images) > AI Images are not consistent. There will always be uncertainty in generating content through AI. Try Templates based automated image generation for best results With AI, prompt generated images have been trending since some time now. Probably because it opens a new gate for non-designers, non-creative people to be creative No problem in that! AI Generated Images are fancy, fun way to create content, but apart from the fanciness and the dopamine to express your creative ideas through prompt generated creatives, it's mostly useless **The reason?** **AI Images are not consistent**. There will always be uncertainty in generating content through AI, be it text, images or video You can't basically do "_generate the same image with XYZ new text and this new logo_" and rely on the output The whole point of a useful image generation tool is to be creative to a point you can have a set template or design. And then you can generate as many images from that template. That's when it'll be most useful What's lacking in AI based image generation for it to be most useful? - Can't generate consistent images - Can't generate(consistent) templates for reuse - One time use visuals, can't automate - Can't customize the exact details - It'll always be uncertain what AI generates ![AI-generated photo trends from Gemini](https://orshot.com/blog/gemini-photo-trends.webp) There's so much fuss about the creative production through AI, which makes sense for fun, creative output. For ex. the ghibli trend, or the current retro photos trend going on But as someone who runs a business, for example, a clothing business, would you rely on AI to have your outfit photos with model? You might, but your customers might not like it So what's the solution? ## AI Images + Templating + Automation The real power comes when you combine the creative possibilities of AI with the consistency of templates and the efficiency of automation This is where **template-based image generation** shines. Instead of hoping AI generates what you need every time, you: 1. Design once (or use AI to help design) 2. Lock in your brand style, colors, and layout 3. Generate unlimited variations with consistent branding 4. Automate the entire process ## Meet Orshot: Template-Based Image Generation ![A parameterized product template in Orshot](https://orshot.com/blog/automate-ecommerce-visuals/orshot-product-template.webp) [Orshot](https://orshot.com/) is built specifically to solve the consistency problem that AI image generation can't handle. It's a template-based automated image and PDF generation platform that lets you: #### Create Consistent, Branded Images at Scale With [Orshot Studio](https://orshot.com/features/orshot-studio), you get a powerful design editor where you can: - Design your templates once with your exact brand guidelines - Add dynamic text, images, and data fields - Use [Smart Stacking](https://orshot.com/blog/smart-stacking) for layouts that automatically adapt to content changes - Create [multi-page carousel templates](https://orshot.com/blog/introducing-carousel-templates) for social media The best part? Once you've designed your template, you can generate thousands of variations - all maintaining your exact brand style #### Automate Image Generation Unlike AI-generated images that require manual prompting each time, Orshot lets you: - Generate images via [API](https://orshot.com/solutions/image-generation-api) with just your data - Integrate with [Make](https://orshot.com/blog/orshot-make-integration), n8n, Zapier, and other automation tools - Connect to your data sources (Google Sheets, databases, CMS) - Generate images in bulk without any manual intervention **Example Use Cases:** - **eCommerce**: [Auto-generate product marketing images](https://orshot.com/blog/automate-ecommerce-product-images) for hundreds of products - **Social Media**: Create consistent branded posts from your blog content - **Certificates**: [Generate certificates from Google Sheets](https://orshot.com/blog/google-sheets-certificates-automation) - **Marketing**: Create quote cards, testimonials, and promotional graphics at scale **Real-World Example: eCommerce Product Images** Imagine you have an online store with 500 products. With AI image generation: - You'd need to prompt each image individually - Results would be inconsistent - No guarantee of brand consistency - Time-consuming and unpredictable **With Orshot:** 1. Design one product template in Orshot Studio 2. Connect your product data (from Shopify, Google Sheets, or any source) 3. Generate all 500 product images in minutes 4. Every image follows your exact brand guidelines 5. Need to update the design? Change the template once, regenerate all images ### Why Template-Based Generation Wins - **Consistency**: Every generated image matches your brand perfectly - **Predictability**: You know exactly what you'll get every time - **Scalability**: Generate 1 image or 10,000 - same quality, same speed - **Automation-Ready**: Perfect for workflows, integrations, and bulk generation - **Cost-Effective**: No per-prompt costs or uncertainty about results - **Customization**: Full control over every design element ## The Best of Both Worlds This doesn't mean AI image generation is useless - it just means it's not ideal for business use cases that require consistency and automation Use AI for: - Creative exploration and inspiration - One-off unique visuals - Artistic projects and experimentation Use template-based generation ([like Orshot and others](https://orshot.com/blog/bannerbear-api-alternative)) for: - Business graphics and marketing materials - Social media content at scale - Product images and promotional materials - [Certificates](https://orshot.com/tools/certificate-generator), invoices, and documents - Any scenario requiring brand consistency AI-generated images are exciting and have their place, but when it comes to building a scalable, consistent visual presence for your business, [template-based image generation](https://orshot.com/solutions/image-generation-api) is the way to go Stop hoping AI will get it right. Start knowing your brand will look perfect every time With Orshot, you get the consistency of templates, the power of automation, and the flexibility to scale your visual content production without compromising on quality or brand identity ### How to get started? - Go to your [Orshot dashboard](https://orshot.com/workspace) - Pick any of the templates, or create one(or import from Canva/Figma) - Customize and get API for it - Generate consistent, branded images and PDFs from it [Try Orshot Free Today →](https://orshot.com/) --- ### [All-in-One APITemplate.io Alternative for Image, PDF & Video](https://orshot.com/blog/apitemplate-io-alternative) > Switch from APITemplate.io to Orshot: images, PDFs, and video on one plan, unlimited templates, and a visual editor. Start free with 30 credits APITemplate.io renders images and PDFs from templates. Orshot does that too — then adds video with full timeline view, removes template cap and replaces the HTML/Jinja2 workflow with a Canva-like visual editor your whole team can use. Same API model. Wider surface. Orshot also generates [PDFs](https://orshot.com/blog/best-pdf-generation-apis) and [Videos](https://orshot.com/solutions/video-generation-api) with same API call, all you need to do is change the format from `png` to `pdf` or `mp4`. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-apitemplate-top) ![The APITemplate.io homepage — an API to auto-generate PDF documents and images from templates at scale](https://orshot.com/blog/apitemplate-io-alternative/apitemplate-homepage.webp) **TL;DR** — Pick the one that fits how you work: - **Images, PDFs & video in one plan**: Choose Orshot — One render bucket and one visual editor across every format — no separate image and PDF plans, no second tool for video, no template caps. - **SOC 2, QR codes, regional endpoints**: [Stay on APITemplate.io](#when-apitemplateio-wins) — SOC 2 Type II audit, native QR/barcode, and regional data-residency endpoints — none of which Orshot ships today. - **High-volume PDF Generation from Templates**: Choose Orshot — If you're looking for high volume PDF generation from templates, Orshot gives you that at a better pricing. --- ## Give Orshot's Editor a try (Live Demo) Orshot has a more modern visual editor which lets you design templates with granular controls. You can design carousels, add videos, parameterize every layer and even control them dynamically at the time of calling the API. [Orshot Studio Demo](https://orshot.com/templates/shared/k1d31i6i/embed?view=play) We also have [2,000+ and growing templates in our library](https://orshot.com/templates), one click copy and paste and ready to be edited. So you can quickly come up with visuals and not spend a gazillion hours deciding the right font. --- ## Side by side | | Orshot | APITemplate.io | | :-- | :-: | :-: | | Images & PDFs in one plan | Yes | No | | Video (MP4 / WebM / GIF) | Yes | No | | Unlimited templates, all tiers | Yes | No | | Visual editor for every format | Yes | No | | Canva / Figma import | Yes | No | | AI template generator | Yes | No | | AI agents / MCP | Yes | No | | Social publishing (15+) | Yes | No | | HTML / Jinja2 templates | No | Yes | | Native QR / barcode | No | Yes | | SOC 2 Type II audit | No | Yes | | Regional endpoints | No | Yes | | Free tier | 30 credits, all features | 50 renders/mo, 3 templates | | Starts at | $39/mo | $35/mo ($29 billed annually) | --- ## APITemplate.io Pricing in 2026 (and How Orshot Compares) Two things about their pricing page worth knowing before you compare. First, it sells **two separate ladders** — PDF-only plans and Image+PDF plans — so the $19 headline price only renders PDFs. Second, **the page defaults to annual billing**: the $29 Starter you see is the annual rate, and month-to-month is $35. Prices checked against apitemplate.io/pricing in August 2026: | APITemplate.io plan (Image + PDF) | Monthly | Annual | Closest Orshot plan | Orshot | Orshot video | | ---------------------------------------- | ------- | ------ | ---------------------- | --------- | ------------ | | Free · 50 renders/mo · 3 templates | \$0 | — | Free · 30 credits | \$0 | ~30 secs | | Starter · 1,500 renders · 15 templates | \$35 | \$29 | Launch · 1,500 credits | **\$39** | ~25 mins | | Standard · 9,000 renders · 150 templates | \$89 | \$69 | Launch · 5,000 credits | \$99 | ~83 mins | | Enterprise · 20,000 renders · unlimited | \$179 | \$139 | Grow · 20,000 credits | **\$160** | ~333 mins | Read it honestly, both ways: - **At 9,000 renders they're cheaper.** Their \$89 Standard beats our \$99 for 5,000 — about a penny a render against two. If your volume sits there and images and PDFs are all you need, that's their row. - **At 20,000 we're cheaper** — \$160 against \$179 — and the gap keeps widening above that (\$280 for 40,000, \$349 for 75,000, up to 300,000 credits a month). - **The template caps are the real tax.** 15 templates on Starter, 150 on Standard; every Orshot plan, free included, is unlimited. If you're generating per-client or per-campaign designs, the cap arrives before the render quota does. - **Their PDF-only Basic is genuinely cheap** — \$24/month ($19 annual) for 3,000 PDFs. If PDFs are the entire job and HTML templates suit your team, it's a fair deal; our pitch is everything that plan leaves out. - **Video is the column they can't fill.** On Orshot 1 credit is 1 image, 1 PDF page or 1 second of video, so the same allowance renders MP4s — there's no APITemplate.io number to put next to it. **1,500 credits for $39 — images, PDFs and video in one bucket** — Run your own volume against it. 30 free credits, no card. [Start free](https://orshot.com/signup?via=blog-apitemplate-pricing) --- ![What APITemplate.io users keep fixing: images and PDFs on two plans, 15 templates on Starter, no video generation, PDFs live in HTML and Jinja2, no visual editor for PDFs, and annual is the sticker price](https://orshot.com/blog/apitemplate-io-alternative/frictions.webp) ## Where Orshot pulls ahead - **Every format, one plan**: Images, PDFs, and video share a single render bucket. APITemplate.io splits images and PDFs into separate pricing tracks. - **Video, natively**: MP4, WebM, and GIF with per-layer animation, audio, and auto-subtitles — from the same templates. APITemplate.io has no video. - **Templates never capped**: Keep as many designs as you want, free tier included. APITemplate.io limits you to 3 on free, 15 on Starter. - **Design without code**: A drag-and-drop editor for every output, plus Canva clone and Figma import. APITemplate.io's PDF power lives in HTML and Jinja2. - **Embed design editor in your own app**: Orshot Embed lets you embed Orshot Studio in your own app with your own templates, in a white-labeled customizable package Video is the gap most people hit first and Orshot basically fills that gap and enables [variety of use cases](https://orshot.com/use-cases) in just one platform. Same template system, same API call, renders different visual types: [Orshot video generation](https://www.youtube.com/watch?v=RQPHJY3bkZk) ## Built for real documents APITemplate.io users mostly generate invoices, certificates, reports and tickets — and Orshot's PDF output is built for exactly that: - **Print-ready** — CMYK color, print-scale rendering, and per-side margins for anything headed to a printer. - **Accessible & searchable** — alt-text tags and a document title on every PDF, so reports pass accessibility checks. - **Clickable links** — real hyperlinks inside the PDF, not flattened text. - **Multi-page & page ranges** — render a 40-page report, or just pages 3–5, from one template. - **Lighter files** — automatic compression shrinks photo-heavy PDFs, with custom and Google fonts embedded. And when the output is a social visual rather than a document, Orshot also posts to 15+ platforms and tracks [impressions, engagement and follower growth](https://orshot.com/features/social-analytics) — none of which APITemplate.io offers. --- ## Automate the Documents, Not Just the Render APITemplate.io's biggest use cases — invoices, reports, certificates, tickets — are exactly the jobs where the render is the easy half. Something still has to notice the new order, pull the line items, and file the finished PDF somewhere. On their stack that's Zapier, Make or n8n; [Orshot Workflows](https://orshot.com/workflows) run that loop inside the same product as the template: - **Trigger** from Google Sheets, Airtable, Notion, Google Forms, HubSpot, Shopify, Drive or a plain webhook - **Render** one document or a whole batch - **Send** it to storage, your own endpoint, or an email - **Repeat** on a schedule, without you The one most APITemplate.io users would want first — invoices generated straight from Airtable records. Copy it into your workspace and turn it on: [Generate invoices from Airtable records automatically on Orshot](https://orshot.com/workflows/invoices-from-airtable/embed) A few more working presets in the same vein: [invoice PDFs from a form or sheet](https://orshot.com/workflows/invoice-generator), [certificates from Google Forms responses](https://orshot.com/workflows/certificates-from-google-forms), [event tickets from registrations](https://orshot.com/workflows/event-tickets), and [client report cards on a schedule](https://orshot.com/workflows/client-report-cards). --- ## Post to 15+ social accounts, then see what's working Not every render is a PDF — plenty are social graphics, and APITemplate.io stops at the file. Orshot takes it to the post and back, from the same API: - **Publish from the render call** — add a `publish` object to any render and Orshot posts the image to [15+ platforms](https://orshot.com/docs/publish/introduction): Instagram, LinkedIn, X, TikTok, Facebook, Pinterest, Threads and more. Post instantly, save a draft, or schedule it with a `status` field. - **Or let an agent do it** — with [Orshot for agents](https://orshot.com/agents), Claude, Cursor or ChatGPT can render _and_ post from a plain prompt. - **Then measure it** — [social analytics](https://orshot.com/features/social-analytics) tracks impressions, engagement, follower growth and best time to post for every connected account, with a daily digest email. ![Orshot's social analytics dashboard — impressions, engagement, posts published and follower growth across every connected account, with a cross-platform trend chart, share of impressions by platform, and a best-time-to-post heatmap](https://orshot.com/blog/introducing-social-analytics/analytics.webp) ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { headline: "New drop" }, response: { type: "url", format: "png" }, publish: { accounts: [1, 2, 3], // connected Instagram, LinkedIn, X content: "Just shipped →", }, }), }); ``` APITemplate.io has none of this — you'd add Buffer plus a separate analytics tool. Orshot does all three. --- ## When APITemplate.io wins Orshot isn't for everyone. Stay where you are if: - **You live in HTML/CSS.** High-volume HTML-to-PDF with a Jinja2-fluent team is its home turf. - **You need QR codes or barcodes.** Generated natively, inside the template. - **Compliance is non-negotiable.** SOC 2 Type II and regional endpoints matter in regulated industries. - **Renders-per-dollar is the only metric.** Skip images and video entirely and its volume tiers can run cheaper. --- ## Switch in three steps **1. Recreate the template once.** Drop your APITemplate.io HTML into the visual editor as a starting point, pull in a Canva or Figma file, or hand a screenshot to the AI generator. Then tag the fields that vary — name, price, photo — as parameters. Try it now — paste a public Canva share link and see it as an Orshot template: **2. POST your data, pick a format.** Every parameter you marked becomes a key you send at render time: ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { event: "DevConf 2026", attendee: "Maya Patel", seat: "Row C · Seat 14", }, response: { type: "url", format: "pdf" }, // try jpg, webp, mp4, or gif }), }); ``` The catch APITemplate.io users feel here: that one template backs the printable PDF ticket, the confirmation-email image, and the event's promo video — flip `format` and the same request returns each. No engineer free? The template also renders from a plain dynamic URL or a no-code automation step. **3. Point it at your stack.** Renders can land in your CMS, ride along on transactional emails, sync to your own Drive/S3 bucket, or post to your channels — pick the destination, the call doesn't change. --- ## Other APITemplate.io alternatives worth a look Orshot fits if you want images, PDFs and video on one plan with a visual editor. If your needs are narrower, these are the tools people also compare against APITemplate.io. ### Bannerbear ![The Bannerbear homepage — auto-generate social media visuals and ecommerce banners via API and integrations](https://orshot.com/blog/apitemplate-io-alternative/alt-bannerbear.webp) An established image and PDF generation API with a wide integration library (Zapier, Make, Airtable). Rock-solid for images and documents; video is basic, and the design lives in a fixed template editor rather than HTML. [Read the full Bannerbear breakdown →](https://orshot.com/blog/bannerbear-api-alternative) ### Placid ![The Placid homepage — a creative automation platform for images, PDFs and video from templates](https://orshot.com/blog/apitemplate-io-alternative/alt-placid.webp) Templates for images, PDFs and video, with a proper editor and a similar render-from-your-data model. Watch the credit math — large renders multiply and PDF pages cost double — but the visual editor is a step up from HTML and Jinja2. [Read the full Placid breakdown →](https://orshot.com/blog/placid-api-alternative) ### Templated.io ![The Templated.io homepage — automate images, videos and PDFs from dynamic templates with a drag-and-drop editor](https://orshot.com/blog/apitemplate-io-alternative/alt-templated.webp) A cheaper template-to-API tool with a drag-and-drop editor, Canva import, and image, video and PDF output. A good middle ground if APITemplate.io's HTML workflow is the thing you want to leave behind. [Read the full Templated breakdown →](https://orshot.com/blog/templated-io-alternative) ### DynaPictures ![The DynaPictures homepage — an image generation API that renders personalized visuals from a data source like Google Sheets](https://orshot.com/blog/apitemplate-io-alternative/alt-dynapictures.webp) An image-generation API built around data sources — point it at Google Sheets and it renders a personalized image per row. Strong for bulk marketing images; there's no video, and PDFs aren't its focus. [Read the full DynaPictures breakdown →](https://orshot.com/blog/dynapictures-api-alternative) Verified pricing and feature details for these and more are in our [best PDF generation APIs](https://orshot.com/blog/best-pdf-generation-apis) comparison. ## FAQ **Q: Is Orshot a drop-in replacement?** For most use cases, yes. Both follow the same render-with-your-data pattern, so you mainly swap the request shape — and you pick up video, uncapped templates, and a visual PDF editor in the process. The honest trade-offs: APITemplate.io ships more SDK languages and carries a SOC 2 Type II audit. **Q: How hard is the migration?** There's no one-click importer between the two, but it's rarely needed. The realistic path: rebuild your highest-volume template first, run it next to your APITemplate.io endpoint, compare outputs, then move traffic over once it matches. Most templates take minutes, not hours. **Q: Can Orshot generate PDFs from HTML or Markdown?** Yes. Orshot renders [PDFs](https://orshot.com/blog/best-pdf-generation-apis) from visual templates, and you can bring existing HTML in as a starting point or drive the content dynamically at render time. If you're on APITemplate.io specifically for its Markdown-to-PDF endpoint, Orshot covers the same document output — with a visual editor on top, and images and video sharing the same plan and the same render call. **Q: Does Orshot have an n8n node?** Yes. Orshot has a first-party [n8n node](https://orshot.com/docs/integrations/n8n), plus [Make](https://orshot.com/docs/integrations/make), [Zapier](https://orshot.com/docs/integrations/zapier) and Pipedream apps, so an existing APITemplate.io n8n workflow ports over by swapping the render step. Orshot also has [built-in Workflows](https://orshot.com/workflows) if you'd rather not run a separate automation tool at all. **Q: How does pricing compare?** Orshot is free for 30 credits with full feature access, then from $39/month for 1,500 credits across images, PDFs, and video (1 credit = 1 image or PDF page). APITemplate.io's Image + PDF Starter is $29/month annual ($35 monthly) for 1,500 renders and 15 templates. **Q: Does the same plan really cover video?** Yes. Images, PDFs, and video draw from one render allotment and one editor — no upgrade, no separate product. APITemplate.io doesn't generate video at all. **Q: How much does APITemplate.io cost in 2026?** Two ladders, and the pricing page defaults to annual billing. Image + PDF plans month-to-month: Starter $35 (1,500 renders, 15 templates), Standard $89 (9,000 renders, 150 templates), Enterprise $179 (20,000 renders, unlimited templates). PDF-only plans run $24 / $89 / $179 monthly for 3,000 / 12,000 / 25,000 PDFs. Annual billing takes roughly 20% off — that's where the advertised $19 and $29 figures come from. **Q: Does APITemplate.io have a free plan?** Yes — 50 images or PDFs per month, renewing monthly, with a 3-template cap. Orshot's free tier is 30 one-time credits, but with no template cap and every feature included: video, the visual editor, workflows, and API access. **Q: What does a render cost on each?** At entry, they're close: APITemplate.io Starter is about $0.023 per render month-to-month ($35/1,500) and Orshot Launch is $0.026 ($39/1,500). Their $89 Standard drops to roughly $0.01 per render, which beats our $99 tier — while at 20,000 renders Orshot is $0.008 ($160) against their $0.009 ($179). The bigger practical difference: an Orshot credit can also be 1 second of video, and templates are never capped. **Q: What do I give up by leaving APITemplate.io?** Three real things: native QR and barcode generation inside templates, a SOC 2 Type II audit, and regional data-residency endpoints. If any of those is a hard requirement, stay — the rest of this page doesn't outweigh a compliance mandate. Keep the render-from-an-endpoint workflow you already know. Drop the two-plan split, the template ceiling, and the hunt for a separate video tool. If you're weighing other tools in this space, the same verified-pricing treatment exists for [Templated](https://orshot.com/blog/templated-io-alternative), [Bannerbear](https://orshot.com/blog/bannerbear-api-alternative) and [Placid](https://orshot.com/blog/placid-api-alternative). 30 credits, every format, no card. [Try Orshot free](https://orshot.com/signup?via=blog-apitemplate-footer) --- ### [Auto-generate Certificates from Google Sheets](https://orshot.com/blog/google-sheets-certificates-automation) > Automate Certificate PDF generation from your Google Sheets data and certificate template in Orshot using 3-step n8n workflow Almost all the institutes or corporates have some kind of workflow that involves generating PDFs. Be it for course completions, awards, participation or employee relaed certificates Manually creating certificates for course completions, training programs, or events can be time-consuming and error-prone. If you're coming from tools like [Certifier](https://orshot.com/blog/certifier-alternative), this workflow gives you more flexibility and lower costs. With Orshot's visual content automation platform, you can automatically generate personalized certificates directly from your Google Sheets data using [PDF generation API](https://orshot.com/solutions/pdf-generation-api) For example, this [certificate generator tool](https://orshot.com/tools/certificate-generator) built using Orshot's PDF Generation API lets you generate personalized certificates from a carousel template in seconds Let's get started with the workflow **Relevant** → [Automate Certificate Generation](https://orshot.com/use-cases/t/auto-generate-certificate-pdfs) ## What you'll need? - Google Sheet: Where your data is stored - [Orshot Account](https://orshot.com) (Free): To design or [use a Certificate template](https://orshot.com/templates/26-course-completion-certificate-template)(we'll use this one) and get an API for it which we'll use to connect with Google Sheets on n8n - [n8n Account](https://n8n.io) : To connect Google Sheets and Orshot to setup the automation ## What are we building? A **3-step workflow in n8n** which connects Google Sheets and Orshot to automatically generate Certificate PDFs from your data in Google Sheets It'll use your Google Sheets column data, pass it to Orshot where the certificate will be generate, and then send the generated certificate PDF back to your Google Sheets in a new column ## Need help? Setting up the automation could be complex, **feel free to use the chat button on bottom right** or [**send us an email**](mailto:hi@orshot.com) to ask for help and we'll help you setup the automation ## Method 1: No-Code Automation with n8n Create a new workflow on n8n in your account. We'll start by adding a Google Sheets node. Here are the steps you can follow to build the automation: ![Adding a Google Sheets node in an n8n workflow](https://orshot.com/blog/automate-sheets-certificate/1.webp) Click on "Create new credential" and connect your Google account where you have the Google Sheet: ![Creating a Google account credential in n8n](https://orshot.com/blog/automate-sheets-certificate/2.webp) ![Connecting a Google account credential in n8n](https://orshot.com/blog/automate-sheets-certificate/3.webp) For this example, we have a simple Google Sheet with two columns: one with Candidate Names which we will use in the certificates, and another with Certificate PDFs where the generated PDF will be stored: ![A Google Sheet with candidate names and details](https://orshot.com/blog/automate-sheets-certificate/4.webp) After connecting your Google account, select the Document and Sheet from the dropdown list. In "Trigger On", select when you want the automation to run: ![Selecting the document and sheet in the n8n Google Sheets node](https://orshot.com/blog/automate-sheets-certificate/6.webp) When you click on "Fetch Test Event", it'll display the list of rows in the right panel: ![Fetched Google Sheet rows shown in the n8n panel](https://orshot.com/blog/automate-sheets-certificate/7.webp) Now we have the first step set up, which will trigger the event whenever a new row is added/updated based on your trigger event. Now we'll move on to the second step where we'll set up the certificate PDF generation using Orshot. To do that, click on the "+" icon to add a new node, search for "Orshot" in the nodes, and add it: ![Setting up certificate PDF generation in n8n](https://orshot.com/blog/automate-sheets-certificate/8.webp) ![Adding the Orshot node for PDF generation in n8n](https://orshot.com/blog/automate-sheets-certificate/9.webp) In the Orshot node, click on "Create new credential" to give n8n access to your Orshot account. To do that, go to your Orshot dashboard > Settings > API Keys and copy your API key: ![Creating an Orshot credential in the n8n Orshot node](https://orshot.com/blog/automate-sheets-certificate/10.webp) ![Connecting the Orshot account credential in n8n](https://orshot.com/blog/automate-sheets-certificate/11.webp) Now paste the Orshot API key in the Orshot n8n node in the "Token" field and save the changes: ![Pasting the Orshot API key into the n8n Orshot node](https://orshot.com/blog/automate-sheets-certificate/14.webp) We'll also customize the certificate template in Orshot. To do that, go to Templates > Library page, search for "Certificate" and select the template you like. Click on "Open in Studio" and customize the design as you prefer. You can also create a new template from scratch if you want. Make sure to parameterize the elements you want to dynamically update—in this case, the candidate name. Select the layer with the name, enable the "Parameterize" toggle for it, and give it a key as shown in the screenshot: ![Creating and parameterizing a certificate template in Orshot](https://orshot.com/blog/automate-sheets-certificate/12.webp) ![Parameterizing the certificate template fields in Orshot](https://orshot.com/blog/automate-sheets-certificate/13.webp) In the Orshot node, select the "Operation" as "generate from studio template", and in the "Template ID" dropdown, select the newly created Certificate template from your Orshot account: ![Selecting 'generate from studio template' in the Orshot n8n node](https://orshot.com/blog/automate-sheets-certificate/15.webp) Now we'll map the data for the candidate name from Google Sheets. To do that, under the "Modifications" section, add a modification and you'll see the parameter ID for the candidate name that we set in the Orshot template. In this case, we set it to "candidateName". Add it, and in the value field, drag and drop the "Candidate Name" column from Google Sheets: ![Mapping the candidateName parameter in the Orshot n8n node](https://orshot.com/blog/automate-sheets-certificate/16.webp) As soon as you click on "Execute Step", it'll trigger the event and generate a PDF for one of the rows. You can view the generated certificate by opening the URL in the "content" field in the right panel: ![Executing the step to generate a certificate PDF in n8n](https://orshot.com/blog/automate-sheets-certificate/17.webp) ![The generated certificate PDF result in n8n](https://orshot.com/blog/automate-sheets-certificate/18.webp) ![The certificate PDF output URL in n8n](https://orshot.com/blog/automate-sheets-certificate/20.webp) In the last step, we'll add another node that updates the same Google Sheet with the link to the generated PDFs in the "Certificate PDFs" column. Add another "Google Sheets" node and configure the settings as shown in the screenshot below. We're selecting the same file, and based on matching candidate names, we're asking the node to update the "Certificate PDF" column with the PDF URL from Orshot: ![Adding a second Google Sheets node to write results back in n8n](https://orshot.com/blog/automate-sheets-certificate/19.webp) Once saved, make sure to click the "Active" toggle at the top of your workflow. Setting it to active ensures it's ready to listen to row add/update events in your Google Sheets: ![Activating the n8n workflow with the Active toggle](https://orshot.com/blog/automate-sheets-certificate/21.webp) Now whenever you add or update a row in your Google Sheet, it'll instantly add or update the "Certificate PDF" column with the certificate for that candidate, automatically! You can open the URLs to preview the PDF: ![Opening the generated certificate PDF URLs](https://orshot.com/blog/automate-sheets-certificate/22.webp) ![Previewing a generated certificate PDF](https://orshot.com/blog/automate-sheets-certificate/23.webp) That's it! Your automation is now complete and ready to generate certificates automatically from your Google Sheets data. [Download n8n JSON file for the workflow](https://orshot.com/blog/automate-sheets-certificate/automate-certificate-sheets-orshot.json) If you'd rather not run n8n at all, this automation is built into Orshot as a ready-made workflow that reads your Google Sheet, generates a certificate PDF for each row, and saves it to Google Drive. One click on **Use this workflow** adds it to your workspace. [Generate certificates from a Google Sheet workflow on Orshot](https://orshot.com/workflows/certificate-generator/embed) ## Method 2: Programmatic Generation with JSON Data For developers who prefer a code-first approach, you can generate certificates programmatically using Orshot's [API for PDF Generation](https://orshot.com/solutions/pdf-generation-api) from templates with JSON data containing candidate information. You can [design a custom template for your certficate](https://orshot.com/studio) and get a Rest API for it, which you can use programmatically ### Using the REST API ```javascript const generateCertificate = async (candidateData) => { const response = await fetch("https://api.orshot.com/api/studio/render", { method: "POST", headers: { Authorization: "Bearer ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "26", // Copy Template ID from Template Page in your Orshot account modifications: { candidateName: candidateData.name, logo: "https://acme.com/public/logo.png", }, responseFormat: "pdf", responseType: "url", }), }); const result = await response.json(); }; // Example usage with JSON data const candidates = [ { name: "John Doe" }, { name: "Jane Smith" }, { name: "Mike Johnson" }, ]; // Generate certificates for all candidates candidates.forEach(async (candidate) => { const certificateUrl = await generateCertificate(candidate); console.log(`Certificate generated for ${candidate.name}: ${certificateUrl}`); }); ``` ## Conclusion If you're generating certificates manually, this workflow will save you a lot of time auomating the process This not only works with n8n, you can replicate the same workflow in any of automation platforms like Make, Pipedream, Zapier as all of them support both Google Sheets and [Orshot integrations](https://orshot.com/integrations) --- ### [Auto-generate eCommerce Product Marketing Images](https://orshot.com/blog/automate-ecommerce-product-images) > Learn how to automate product marketing images generation using n8n and Orshot - from data source to beautiful branded marketing images in minutes Creating consistent, professional marketing visuals for your eCommerce products can be time-consuming and expensive. In this tutorial, we'll show you how to automate the entire process using n8n workflow automation and [Orshot's image generation API](https://orshot.com/solutions/image-generation-api) **Relevant** → [Auto-generate eCommerce Banners](https://orshot.com/use-cases/t/auto-generate-e-commerce-images) ## We Will Use: - [n8n](https://n8n.io) for the workflow setup - Google Sheets for data source - [Orshot](https://orshot.com/) for image generation from custom templates, you'll need to signup for an API key(free) **Note that** n8n and Google Sheets are just for this tutorial, in real workflow you can pull data from your database and directly send it to Orshot's API for marketing image generation, and then save that image or continue workflow however you want ## What You'll Build By the end of this tutorial, you'll have an automated workflow that: - Pulls product data from any source (Google Sheets, database, API) - Generates professional marketing visuals using [Orshot templates](https://orshot.com/templates) - Saves the generated images to your preferred storage (Google Sheets, Drive, S3, etc.) - [Download n8n JSON file for the workflow](https://orshot.com/blog/automate-ecommerce-visuals/n8n-config.json) for quick setup ## Video Walkthrough Here's a video walkthrough of the n8n workflow setup [Watch the video](https://www.youtube.com/watch?v=S5qNb4mmUdc) ## Step 1: Setting Up Your Data Source The first step is configuring your data source. For this demo, we're using Google Sheets with product information, but this could be any data source like: - Shopify product database - WooCommerce API - Airtable - Custom database - CSV files ![The n8n workflow steps for automating e-commerce product images](https://orshot.com/blog/automate-ecommerce-visuals/n8n-workflow-steps.webp) ### Google Sheets Trigger Configuration In your n8n workflow, add a **Google Sheets Trigger** node with the following settings: - **Credential**: Connect your Google Sheets account - **Document**: Select your eCommerce product database - **Sheet**: Choose the sheet containing product data - **Trigger On**: Row Added or Updated - **Poll Times**: Set to monitor changes (e.g., Every Minute) ![n8n workflow step 1: polling a data source for changes](https://orshot.com/blog/automate-ecommerce-visuals/workflow-step-1.webp) Your Google Sheets should contain columns like: - Product Type - Product Name - Before Price - Discount Price - Currency - Product Image URL ## Step 2: Generate Images with Orshot This is where the magic happens. The Orshot node takes your product data and generates beautiful marketing visuals using pre-designed template For this tutorial, we'll be using below [template in Orshot](https://orshot.com/templates/60). You can also start with design tools like Figma, Canva, or [explore free design alternatives](https://orshot.com/blog/free-canva-alternatives), then import them into Orshot for automation. The image, text for before price, discounted price and product type are parameterized so we can pass dynamic data to those elements ![A parameterized product image template in Orshot](https://orshot.com/blog/automate-ecommerce-visuals/orshot-product-template.webp) ### Orshot Node Configuration Add the **Orshot** node to your workflow and configure: - **Credential**: Connect your Orshot account - **Operation**: Generate Image From an Orshot Studio Template - **Template**: Select "eCommerce Discount Banner Template" (or your custom template) - **Response Type**: URL - **Response Format**: PNG ![n8n workflow step 2: generating the product image with Orshot](https://orshot.com/blog/automate-ecommerce-visuals/workflow-step-2.webp) ### Data Mapping Map your Google Sheets data to the Orshot template parameters: ```javascript // Product Type mapping { "productType": "{{ $json['Product_Type'] }}" } // Before Price mapping { "beforePrice": "{{ $json['Before_Price'] }}" } // Additional mappings for discount price, currency, product image, etc. ``` The template will automatically generate a professional marketing visual with your product information, pricing, and branding. ## Step 3: Save Generated Images After Orshot generates your marketing visual, you need to store it somewhere accessible. For this tutorial, we're saving back to Google Sheets, but you have many options: ### Google Sheets Storage (Demo) - **Node**: Append or update row in Google Sheets - **Operation**: Append or Update Row - **Document**: Same eCommerce database - **Values to Send**: Include the generated image URL ### Alternative Storage Options for Production: **Google Drive** - Automatically organize images in folders by product category - Easy sharing and collaboration **Amazon S3 / Cloudflare R2** - Scalable cloud storage - Perfect for high-volume eCommerce stores - Cost-effective for large image libraries **Direct Upload to Shopify/WooCommerce** - Automatically add generated images to product listings - Streamline your product management workflow If you'd rather not build the n8n workflow yourself, Orshot ships this exact automation as a ready-made workflow: Google Sheets in, rendered product images out, posted to Instagram on a schedule. One click adds it to your workspace with every step already wired up [Product marketing images workflow on Orshot](https://orshot.com/workflows/product-marketing-images/embed) ## Using Orshot REST API Directly If you prefer to integrate Orshot directly into your application, you can use our REST API as show below. You can also [generate dynamic images via dynamic URLs](https://orshot.com/blog/programmatic-seo-tools) without any programmatic involvement ```javascript await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer ", }, body: JSON.stringify({ templateId: "", modifications: { canvasBackgroundColor: "#FFFFFF", productType: "Body Lotions", beforePrice: "109.99", discountPrice: "101.99", currency: "$", productImageUrl: "https://images.unsplash.com/photo-15...", }, response: { type: "url", format: "png", scale: 1, }, }), }); ``` This approach gives you maximum flexibility and can be integrated into any application or custom workflow ## Benefits of This Automation - **Time Savings**: Generate hundreds of marketing visuals in minutes instead of hours - **Consistency**: Maintain brand consistency across all product marketing - **Scalability**: Easily handle large product catalogs - **Cost-Effective**: Reduce design costs and resource requirements - **Real-time Updates**: Automatically generate new visuals when products or prices change ## Use Cases Beyond eCommerce This automation pattern works for many scenarios: - Social media content generation — use [Social Publish](https://orshot.com/docs/publish/introduction) to auto-post generated product images to Instagram, Pinterest, TikTok, and 10+ platforms - Email marketing campaigns - Product catalog updates - Seasonal promotions AI combined with automation is a powerful combination. Specially in marketing where a lot of work can be mannual, apps like Orshot with AI and automation features can help you reduce your team's efforts, scale production speed and quality **Related →** [10 Best Tools to Automate Content Creation](https://orshot.com/blog/automated-content-creation-tools) | [Best Social Media Automation Tools](https://orshot.com/blog/social-media-automation-tools) --- ### [Auto-Generate Images and PDFs from Tally.so Form Responses](https://orshot.com/blog/tally-form-image-pdf-generation) > Learn how to automatically generate images and PDFs—like certificates, invoices, or tickets—from Tally form responses using webhooks Tally is one of the simplest and most elegant form builders available. While it's great for collecting data, sometimes you need to give something back to your users immediately after they submit—like a personalized [certificate](https://orshot.com/tools/certificate-generator), a PDF invoice, a ticket, or a social sharing card. With [Orshot](https://orshot.com/) [webhooks](https://orshot.com/templates/g/certificate), you can connect your [Tally.so](https://tally.so "target=_blank") form directly to a design template and generate these assets automatically. No code required. In this tutorial, we'll demonstrate this by building an **automated event badge generator**, but the same principles apply whether you're generating invoices, certificates, or social media graphics. ## What We're Building We'll set up a workflow where: 1. Someone fills out a Tally registration form 2. Tally sends the form data to Orshot via webhook 3. Orshot uses an Event Badge template to generate a personalized image or PDF 4. You receive a link to the generated asset instantly The whole setup takes about 10 minutes. ## What You'll Need - An [Orshot account](https://orshot.com/signup) (free tier works) - A [Tally](https://tally.so) form ## Step 1: Design Your Template First, decide what you want to generate. In [Orshot Studio](https://orshot.com/studio), you can: - Start from scratch - Use an existing template from our [library](https://orshot.com/templates/g/certificate) - Import a design from Figma Since we're building a badge generator for this example, let's look at a simple event badge design containing: - Attendee name - Attendee photo In Orshot Studio, make these elements dynamic by adding parameter IDs: - `attendeeName` for the name text - `attendeePhotoUrl` for the attendee photo Save your template. For this tutorial, we'll be using below template. [Open the embed](https://orshot.com/templates/shared/qw44wijl/embed?view=view) ## Step 2: Create a Webhook ![Setting up a template webhook in Orshot](https://orshot.com/blog/tally-image-pdf-responses/template-webhook.webp) Go to your **Template's Playground** and click the **Webhook** tab. Click **Add New** to create a webhook. Configure it: | Setting | Value | | ------------------- | ----------------------------------------- | | **Name** | Tally Registration | | **Response Format** | PNG (or PDF if you want printable badges) | | **Response Type** | URL (easiest to work with) | | **Max Renders** | Leave empty for unlimited, or set a limit | Copy the **Webhook URL**. It looks like: ``` https://api.orshot.com/v1/studio/webhook/wh_abc123xyz ``` Keep this tab open—we'll come back to map the fields. ## Step 3: Set Up Your Tally Form Create your registration form in Tally with fields that match your badge: - Attendee Name (short text) - Attendee Photo (file upload) ![A Tally form with attendee fields](https://orshot.com/blog/tally-image-pdf-responses/tally-form.webp) Once your form is ready, go to **Integrations** → **Webhooks**. Paste your Orshot webhook URL and save. ![Adding the Orshot webhook URL to a Tally form](https://orshot.com/blog/tally-image-pdf-responses/tally-form-webhook.webp) ![Saving the webhook integration in Tally](https://orshot.com/blog/tally-image-pdf-responses/tally-form-webhook-1.webp) ## Step 4: Map Form Fields to Template ![Mapping Tally form fields to template parameters](https://orshot.com/blog/tally-image-pdf-responses/template-webhook-mapping.webp) Here's where the magic happens. Submit a test response to your Tally form. This sends sample data to Orshot, which automatically detects the available fields. Go back to your webhook settings in Orshot. You'll now see the **Field Mappings** section populated with your Tally form fields. Map each field: | Tally Field | Template Parameter | | ---------------- | ------------------ | | `Name` | `attendeeName` | | `Attendee Photo` | `attendeePhotoUrl` | Save the mappings. ## Step 5: Test It Submit another response to your Tally form. Check the webhook response—you should get back a generated badge URL: ```json { "data": { "content": "https://storage.orshot.com/cloud/.../badge.png", "type": "url", "format": "png", "responseTime": "1234.56ms" } } ``` Open that URL. Your personalized badge is ready. ## Step 6: Automatically Save to Dropbox, Google Drive or S3-Storage (Optional) Want to keep a permanent archive of every generated badge? You can automatically upload them to your own storage bucket or drive. Go to the [Integrations](https://orshot.com/integrations) page in Orshot to connect your **Dropbox**, **Google Drive**, or **Amazon S3** account. You can specify a folder path, and Orshot will silently upload every generated PDF or image to your connected account. ## Taking It Further ### Send badges via email Use Tally's email notifications or connect to Zapier/Make to automatically email the badge URL to attendees after submission. ### Generate PDF badges for printing Change the webhook response format to PDF. You'll get a print-ready badge that attendees can download. ### Post to social media Use [Social Publish](https://orshot.com/docs/publish/introduction) to automatically share generated badges or certificates to LinkedIn, Twitter/X, Instagram, and 10+ other platforms — great for attendee social proof and event promotion. ### Add QR codes Include a QR code element in your badge template. Pass a unique ID or URL through the form to generate scannable badges for check-in. ### Multi-page badges If your badge has a front and back, use a carousel template in Orshot. The webhook will return URLs for both pages. ## Troubleshooting **Webhook not triggering?** Make sure the webhook is enabled in Orshot and the URL is correct in Tally. **Fields not detected?** Submit a test response first. Orshot needs at least one payload to detect available fields. **Wrong data mapping?** Check the Field Mappings section. You can clear and re-detect fields if needed. ## Wrap Up That's it—automatic image or [PDF generation](https://orshot.com/solutions/pdf-generation-api) from Tally forms in about 10 minutes. No code, no complex automation tools. Just connect your form to Orshot and let webhooks handle the rest. This same approach works for certificates, tickets, name cards, social cards, or any personalized image you need to generate from form responses. Questions? Hit the chat button or email us at hi@orshot.com. --- ### [Auto-Generate Instagram Carousels & Reels from Google Sheets](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets) > Turn Google Sheet rows into branded Instagram carousels — images, animated reels, and one combined video — auto-posted. No-code, 2 Make modules, free template. **TL;DR:** Most carousel "automation" guides stop at static PNGs glued together from four or five tools — and the AI-image ones can't even render your headline without typos. This one goes end-to-end with two tools: a Google Sheet holds your content calendar, Make watches for new rows, and **one Orshot API call** renders all four branded slides, optional animated reels, or one combined video — and publishes the carousel straight to Instagram. No design tool, no Cloudinary, no separate scheduler. **Grab the working files:** - **[🎨 Open the carousel template](https://orshot.com/templates/shared/muzkxu0y/preview?view=play "target=_blank")** — the exact 4-page animated template used below; preview it, play with the parameters, and use it in your workspace - **[📋 Copy the Google Sheet template](https://docs.google.com/spreadsheets/d/1pPkRAaL9csCZfLBSLuN7eH0aZxrThr1MZEWb3n16SRA/copy "target=_blank nofollow")** — the exact content calendar used below - **[📥 Download the Make blueprint (JSON)](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/make-blueprint-sheet-to-instagram-carousel.json "target=_blank")** — import, paste your API key, done - **[📥 Download the n8n workflow (JSON)](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/n8n-sheet-to-instagram-carousel.json "target=_blank")** — same flow in two n8n nodes ## What we're building Picture a creator who posts a weekly "notes to my younger self" carousel — a hook cover, three pinned-note slides, a follow CTA. The content changes every week; the design never does. That's the exact situation where you should stop opening a design tool. Instead, the words live in a Google Sheet — one row per carousel. When a new row appears, Make sends it to Orshot, which drops each cell into a designed multi-page template, renders all four slides, and posts them to Instagram as a carousel with the caption from the same row: ![Pipeline: Google Sheet row → Make scenario → Orshot renders 4 slides → published to Instagram as a carousel](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/pipeline-diagram.png) The same row can also come out as **four animated reels** or **one combined video of all slides** — we'll cover all three output modes below, from the same template and the same API call. ## The output: one Sheet row, four branded slides Here's the real rendered output from row 2 of the demo sheet — a 4-page carousel, 1080×1350, with the photos, handwriting, and pinned-note design fully intact (no AI-generated text glitches, because nothing here is AI-imaged — it's a designed template): ![Carousel slide 1: hook cover with handwritten headline 'Notes to my younger self'](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/slide-1-cover.webp) ![Carousel slide 2: pinned note card reading 'You were never behind. You were becoming.'](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/slide-2-note.webp) ![Carousel slide 3: pinned note card reading 'Rest is not a reward you have to earn.'](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/slide-3-note.webp) ![Carousel slide 4: closing note with follow CTA](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/slide-4-cta.webp) And because the template has layer animations built in, the **same render request with `format: "mp4"`** returns each slide as a short animated reel. ## Why a render API beats AI image generators (and Canva) If you've searched for "create instagram carousel automatically", you've seen the other approaches. Here's the honest comparison: | | Orshot (this guide) | AI image workflows | Canva Bulk Create | Schedulers (Buffer etc.) | | :-- | :-: | :-: | :-: | :-: | | Designed, on-brand slides | Yes | Inconsistent — AI re-imagines your brand every run | Limited to static layouts | No | | Accurate text on slides | Yes | Typos on long headlines (a known AI-image failure) | Yes | n/a — you bring finished images | | Multi-slide carousels from a spreadsheet | Yes | Yes | Manual CSV upload each time | No | | Animated reels from the same template | Yes | No | No | No | | One combined video of all slides | Yes | No | No | No | | Auto-publish to Instagram | Yes | Needs Meta Graph API setup + image host | No | Yes | | Tools required | 2 (Sheets + Make) | 4–6 (LLM, image AI, host, scheduler…) | 2–3 | 2–3 | The structural difference: AI-image workflows _generate_ every slide from scratch (so brand and text drift), and schedulers only _post_ what you've already designed. A template render sits in the middle — pixel-exact design, dynamic content, and [native publishing](https://orshot.com/docs/publish/publish-from-api) from the same call. ## What you'll need - A Google account (for the Sheet) and a free [Make](https://www.make.com "target=_blank nofollow") account — the whole flow fits in Make's free tier - An [Orshot account](https://orshot.com/pricing "target=_blank") with an API key — the free tier's 30 credits are plenty to build and test this end to end - An Instagram account connected to Orshot (Workspace → **Social Accounts**) for the publishing step ## Step 1 — The carousel template (design once, reuse forever) Everything starts with a multi-page template in [Orshot Studio](https://orshot.com/features/orshot-studio). Ours is a 4-page, 1080×1350 "pinned notes" design — full-bleed photos, handwritten type, a note card pinned with a pearl tack: ![The 4-page carousel template open in Orshot Studio, with the layers panel and animation timeline](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/02-studio-template-editor.webp) The pages panel shows the whole carousel — cover, two note slides, and the CTA page: ![Pages panel in Orshot Studio listing all four carousel pages](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/08-studio-pages-panel.webp) Two things make a template automation-ready: **1. Dynamic parameters.** Any layer can be marked parameterizable with a clean ID — `note_text`, `bg_image`, `subtitle`. For multi-page templates, the API addresses them with a page prefix: `page1@hook_line1`, `page2@note_text`, `page4@bg_image`. The fixed stuff (your handle, the design, the decorations) never appears in the spreadsheet at all — defaults fill anything you don't send. **2. Layer animations.** Every layer in this template has an entrance — the arrows drop in, the note card springs up, the pin presses in, sparks pop last. Configure it once in the **Animate** tab and it's what makes the same template render as video: ![The Animate tab in Orshot Studio showing Show At timing, Slide In Up enter animation and easing controls](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/07-studio-animate-tab.webp) You don't have to design this yourself: **[open the exact template from this tutorial](https://orshot.com/templates/shared/muzkxu0y/preview?view=play "target=_blank")** — animations, parameters and all — try the parameters live, and use it in your own workspace. Or start from one of the 2,000+ designs in the [template library](https://orshot.com/templates), or [import an existing design](https://orshot.com/docs/importing-templates) and add parameters to it. ## Step 2 — Set up the Google Sheet content calendar The Sheet is the entire editorial workflow: one row = one carousel. Our demo calendar has 14 columns — the words for each slide, a photo URL per page, and the Instagram caption: ![Google Sheet content calendar with one carousel per row: hook, notes, subtitles, image URLs and caption columns](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/01-google-sheet-calendar.png) | Columns | What they fill | | ------------------------------------------------------------------------------- | --------------------------------------------------------------- | | `hook_line1`, `hook_circled`, `strip_text`, `cover_image` | The cover slide (the circled word gets the hand-drawn scribble) | | `note1`–`note3`, `note1_subtitle`–`note3_subtitle`, `note1_image`–`note3_image` | One pinned-note slide each | | `caption` | The Instagram caption for the whole post | **[Copy this exact Sheet](https://docs.google.com/spreadsheets/d/1pPkRAaL9csCZfLBSLuN7eH0aZxrThr1MZEWb3n16SRA/copy "target=_blank nofollow")** — it comes pre-filled with three demo rows so you can test before writing your own content. Batch-write a month of rows on a Sunday and the rest of this pipeline turns them into posts. ## Step 3 — Grab your Orshot API key In your Orshot workspace, go to **Workspace → API Keys** and create a key. You'll paste it into exactly one place in Make (the `Authorization` header). Treat it like a password — anyone with it can render on your account. ## Step 4 — Build the Make scenario (just 2 modules) This is the part other guides turn into a six-module maze. It's two: ![The complete Make scenario: Google Sheets Watch New Rows connected to an HTTP module posting to the Orshot render API](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/06-make-scenario-canvas.webp) The fastest path is to **[import the blueprint](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/make-blueprint-sheet-to-instagram-carousel.json "target=_blank")** (Make → scenario menu → _Import blueprint_), connect your Google account, point the trigger at your copy of the Sheet, and paste your API key. If you'd rather build it by hand: **Module 1 — Google Sheets → Watch New Rows.** Pick your spreadsheet and `Sheet1`, keep _Table contains headers_ on, and set the limit to 1. When Make asks where to start, choose _All_ so your existing demo rows count as new on the first run: ![Make Google Sheets trigger configuration with the carousel calendar spreadsheet selected](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/03-make-sheets-trigger-config.webp) **Module 2 — HTTP → Make a request.** This is the single call that does everything. Method `POST`, URL `https://api.orshot.com/v1/studio/render`, two headers: ![Make HTTP module with the Orshot render endpoint, POST method, and Content-Type plus Authorization headers](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/04-make-http-config.webp) Then set _Body content type_ to `application/json`, _Body input method_ to **JSON string**, and paste the request body — mapping each field to its Sheet column (type the `{{ }}` tokens or click the green pills from the mapping panel): ![Make HTTP module JSON body with Sheet columns mapped into the Orshot modifications object as green pills](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/05-make-http-body.webp) ```json { "templateId": 12372, "modifications": { "page1@hook_line1": "{{hook_line1}}", "page1@hook_circled": "{{hook_circled}}", "page1@strip_text": "{{strip_text}}", "page1@bg_image": "{{cover_image}}", "page2@note_text": "{{note1}}", "page2@subtitle": "{{note1_subtitle}}", "page2@bg_image": "{{note1_image}}", "page3@note_text": "{{note2}}", "page3@subtitle": "{{note2_subtitle}}", "page3@bg_image": "{{note2_image}}", "page4@note_text": "{{note3}}", "page4@subtitle": "{{note3_subtitle}}", "page4@bg_image": "{{note3_image}}" }, "response": { "type": "url", "format": "png" }, "publish": { "accounts": [0], "content": "{{caption}}" } } ``` Two values to make your own: `templateId` — `12372` is our demo template, and yours is shown in the studio URL and at the top of its playground — and the `0` in `publish.accounts`, which you'll swap for your Instagram account ID in Step 6 (until then, `0` safely renders without posting anything). That's the whole automation. No image-hosting module, no iterator, no array aggregator — the things that derail most Make carousel attempts simply aren't needed, because Orshot treats the multi-page render _and_ the carousel upload as one operation. ## Step 5 — One API call, three output modes The `response.format` field decides what comes back. Same template, same modifications — three different deliverables. ### Static carousel images (PNG) With `"format": "png"`, a multi-page template returns one image per page: ```json { "data": [ { "page": 1, "pageId": "page-1", "content": "https://storage.orshot.com/.../slide1.png" }, { "page": 2, "pageId": "page-2", "content": "https://storage.orshot.com/.../slide2.png" }, { "page": 3, "pageId": "page-3", "content": "https://storage.orshot.com/.../slide3.png" }, { "page": 4, "pageId": "page-4", "content": "https://storage.orshot.com/.../slide4.png" } ], "format": "png", "totalPages": 4 } ``` These are the four slides you saw at the top of this post. ### Render each carousel page as an animated reel (MP4) Switch to `"format": "mp4"` and every page renders as its own video, with the template's layer animations playing out frame-perfectly — the cover runs 3.3 seconds, the note slides about 2.5 each: ```json { "data": [ { "page": 1, "content": "https://storage.orshot.com/.../page1.mp4", "videoDuration": 3.3 }, { "page": 2, "content": "https://storage.orshot.com/.../page2.mp4", "videoDuration": 2.5 } ], "format": "mp4", "totalVideoDuration": 11.25 } ``` Use these as standalone reels, Stories, or video slides inside a mixed carousel (Instagram allows mixing photos and videos in one carousel post). ### Combine all slides into one Instagram video This is the one no other carousel workflow offers: add [`videoOptions.combinePages`](/docs/video-generation/video-options) and the API stitches every page into **a single video**, with an optional transition between pages: ```json { "templateId": 12372, "modifications": { "...same as above..." }, "response": { "type": "url", "format": "mp4" }, "videoOptions": { "combinePages": true, "pageTransition": "fade", "pageTransitionDuration": 0.4 } } ``` Unlike the per-page render, the response comes back with a **single video URL** instead of an array: ```json { "data": { "content": "https://storage.orshot.com/.../combined.mp4", "type": "url", "format": "mp4", "videoDuration": 10.05 } } ``` **[▶ Watch the real combined render (10s MP4)](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/carousel-combined.mp4 "target=_blank")** — all four slides in one video: each page plays its animations, then fades to the next. That's a ready-to-post reel summarizing the whole carousel, from the same Sheet row. Transitions include `fade`, `slideleft`, `circleopen`, `dissolve` and more — or omit it for hard cuts. (`combinePages` works for `mp4` and `webm`; GIFs always come back per-page.) You can try all three modes without touching Make: the template's [Template Form](https://orshot.com/docs/orshot-studio/template-forms) lets you fire test renders from the browser: ![The Orshot API playground for the carousel template showing all dynamic parameters and a live preview](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/10-orshot-playground.webp) ## Step 6 — Auto-publish to Instagram as a carousel Here's the part every render-API competitor leaves you to figure out alone: getting slides _posted_. With Orshot, the `publish` object inside the render request handles it — for multi-page templates, **all pages are automatically uploaded and posted as a carousel**. No extra calls, no Graph API setup, no image host. First connect Instagram under **Social Accounts** and copy the numeric account ID: ![Orshot Social Accounts page with connected Instagram, LinkedIn, X and Pinterest accounts, each with a Copy ID button](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/09-orshot-social-accounts.webp) Then the `publish` block from Step 4 does the rest: ```json "publish": { "accounts": [19], "content": "Three notes I'm keeping pinned this week 📌 Save the one you need." } ``` The response tells you exactly what happened per account — `published`, `scheduled`, or `failed` — and you can pass `schedule.scheduledFor` to queue the post for a specific time instead of publishing immediately. The same block works for LinkedIn, X, Pinterest and the rest of the [supported platforms](https://orshot.com/docs/publish/publish-from-api); video formats publish as reels. > **Test safely:** while you're experimenting, leave `publish` out entirely (you'll get render URLs back, nothing is posted) — or keep `accounts: [0]`, which fails harmlessly. Add your real account ID only when the renders look right. ## Make it run on its own Flip the scenario's scheduling toggle on and Make checks the Sheet on an interval (every 15 minutes on the free plan). From then on the workflow is: write a row → carousel appears on Instagram. Your "posting tool" is a spreadsheet. Writing rows is also automatable — anything that can add a Google Sheets row can now post carousels: a form tool, an automation from your CMS, or an LLM that drafts next week's notes straight into the sheet. Prefer to skip Make entirely? This same Sheet-to-carousel pipeline ships as a ready-made workflow inside Orshot. Click **Use this workflow** and it shows up in your workspace with the trigger, render, and publish steps prewired, waiting to be pointed at your sheet. [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) ## Bulk-create a month of carousels Because the trigger processes rows in order, batching is just… pasting rows. Drop in 30 rows, set the limit to 1 per cycle, and the scenario drips one carousel per run; or temporarily raise the limit and schedule posts at specific times with `schedule.scheduledFor` per row (add a `post_at` column and map it). For one-off bulk runs without Make at all, the same render endpoint accepts the rows from any script — see [bulk image generation](https://orshot.com/blog/canva-bulk-create-alternative) for the spreadsheet-only version of this pattern. ## What it costs Honest math: Make's free tier (1,000 operations/month) is far more than this needs — a daily carousel uses ~60 operations a month. On the Orshot side, each rendered page costs 1 credit, and the [free tier's 30 credits](https://orshot.com/pricing) are enough to build, test, and post your first week of carousels before paying anything. No other tools, hosts, or per-seat design licenses are involved — that's the point. ## What this can't do (yet) - **Instant triggers.** Google Sheets polling means minutes, not seconds, between row and post. For real-time, swap the trigger for a webhook. - **Per-slide captions or alt text.** The caption applies to the whole carousel post, not individual slides. - **Design changes from the Sheet.** The spreadsheet changes _content_, not layout. New look = edit the template (once). - **Engagement.** This posts; it doesn't reply to comments or analyze performance. Pair it with your analytics tool of choice. ## Prefer n8n? Same flow, two nodes If your automations live in n8n, the identical pipeline is a Google Sheets Trigger plus one HTTP Request node — **[download the workflow JSON](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/n8n-sheet-to-instagram-carousel.json "target=_blank")** and import it. It ships with a third, **deactivated** node that renders the combined video, so nothing fires until you enable it: ![The n8n workflow: Google Sheets trigger connected to a render-and-publish HTTP node, with an optional deactivated combined-reel node](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets/11-n8n-workflow-canvas.png) For a deeper n8n walkthrough (including rendering image + video variants and posting to LinkedIn), see the full [n8n marketing automation tutorial](https://orshot.com/blog/n8n-marketing-automation-tutorial). ## FAQ **Q: Can you fully automate Instagram carousels end to end?** Yes — that's exactly what this setup does: a Google Sheet row triggers Make, Orshot renders all slides from a designed template, and the publish object posts them to Instagram as a carousel with your caption. After setup, writing a row is the entire workflow. **Q: How many slides can an Instagram carousel have?** Instagram supports up to 20 slides per carousel post. This tutorial's template uses 4 pages, but Orshot templates can have as many pages as your carousel needs. **Q: Can an Instagram carousel mix images and videos?** Yes. Instagram lets you mix photos and videos in one carousel. Render some pages as PNG and some as MP4 (each page renders as its own video), and publish the combination. **Q: Do all carousel slides need the same aspect ratio?** Yes — Instagram applies the first slide's ratio to the whole carousel. Multi-page Orshot templates share one canvas size (1080×1350 here), so this is handled automatically. **Q: Should I use Make or n8n for this?** Both work with the same single API call. Make is friendlier if you've never automated anything (visual modules, generous free tier). n8n suits self-hosters and technical teams. Downloads for both are at the top of this post. **Q: Why use a template render API instead of an AI image generator?** Text accuracy and brand control. AI image models routinely misspell headline text and re-interpret your brand every generation. A template renders your actual fonts, colors, and layout with the exact words from your spreadsheet, every time. **Q: Can I schedule carousels instead of posting immediately?** Yes — add schedule.scheduledFor (an ISO date) to the publish object, optionally with a timezone. Add a column for it in your Sheet and every row can carry its own posting time. **Q: Do I need a Facebook/Meta developer app to auto-post?** No. Connecting Instagram to Orshot in Social Accounts handles authentication — there's no Graph API app to create, verify, or maintain, which is the most painful step in DIY carousel automations. **Q: How do I turn the carousel into a single video or reel?** Set format to mp4 and add videoOptions.combinePages: true with an optional pageTransition. The API returns one video where each slide plays its animations and transitions to the next — ready to publish as a reel. **Q: What happens if a render or post fails?** The API response includes a status per publish account (published, scheduled, drafted, or failed), so your scenario can branch on failures — for example, alerting you in Slack or retrying the row. ## The bottom line A carousel-a-day habit is one of the highest-leverage formats on Instagram — and the actual bottleneck was never ideas, it was production. With a designed template, a Sheet, and two Make modules, production rounds to zero: the same row becomes branded slides, animated reels, or one combined video, posted without you touching a design tool. Design your carousel template once, connect your sheet, and let the calendar post itself — **[start free with 30 credits](https://orshot.com/pricing)**. --- ### [Auto-Generate Open Graph (OG) Images in Framer](https://orshot.com/blog/framer-og-images) > Generate on-brand OG and social images for every Framer CMS item with the Orshot plugin. The right 1200x630 size, no code, in minutes. We just shipped an [Orshot plugin for Framer](https://www.framer.com/marketplace/plugins/orshot/ "target=_blank"). It does one thing: generate an on-brand OG image for every item in your Framer CMS, automatically. I built it because I kept seeing the same thing on Framer sites, including good ones: a blog where every post shares with the same static preview image, or none at all. The preview card is the first thing people see when your link lands in Slack, LinkedIn, or X, and making one per post by hand stops happening around post number three. Here's the whole setup, start to finish. It takes about ten minutes. ## What's the right OG image size for Framer? Quick fundamentals first, because this is the question I get most. The standard Open Graph image size is **1200x630 pixels** (1.91:1). That's what Framer recommends for social previews, and it renders correctly on X, LinkedIn, Facebook, Slack, and WhatsApp. Keep titles away from the edges since some platforms crop, and design at 1200x630 directly so text stays crisp. Orshot's [template library](https://orshot.com/templates) has OG card templates at this size ready to go, and anything you design in the editor at 1200x630 works. ## Step 1: Install the plugin and connect Install the plugin and open it from the Plugins menu in Framer. Create an API key in your Orshot workspace under Workspace, then API Keys, and paste it in. The free tier is enough to follow along. Free, from the Framer Marketplace. [Install Orshot for Framer](https://www.framer.com/marketplace/plugins/orshot/) ## Step 2: Pick a template The plugin lists your templates with thumbnails and sizes. Anything marked 1200x630 is right for social previews. ![Browsing 1200x630 OG image templates inside the Orshot plugin for Framer](https://orshot.com/blog/framer-og-images/step-1-open-plugin-browse-templates.webp) Start from the [library](https://orshot.com/templates), or bring your own design over from [Canva](https://orshot.com/solutions/canva-template-to-api) or [Figma](https://orshot.com/solutions/figma-automation-via-rest-api) and parameterize it once. ## Step 3: Map your CMS fields Pick the collection, pick the image field to save into (mine is called "Social Image"), and map template parameters to CMS fields. The plugin auto-suggests the obvious ones, like Title into the headline. ![Mapping Framer CMS fields like Title to Orshot template parameters](https://orshot.com/blog/framer-og-images/step-2-map-cms-fields.webp) Anything left on "Keep template default" stays as designed. Map only what should change per post. ## Step 4: Preview, then generate Preview renders one real item so you can check the design against actual content. ![Previewing an OG image rendered from real Framer CMS content](https://orshot.com/blog/framer-og-images/step-4-preview-render.webp) Then Generate. One image per item, written straight back to the image field as a native Framer asset. The "Only items without an image" toggle makes re-runs incremental: new posts get images, existing ones stay untouched. ![Generation complete, with every Framer CMS item getting its own OG image](https://orshot.com/blog/framer-og-images/step-5-generation-done.webp) ## Step 5: Bind the field to your social preview Your collection now has a filled image column: ![Framer CMS collection with an auto-generated social image for every item](https://orshot.com/blog/framer-og-images/step-6-cms-images-filled.webp) In your CMS page settings, set the social preview to the "Social Image" field using CMS variables. Done. Every page now shares with its own card, and a new post is one Generate click away from having its preview ready. ## Beyond blog posts The same flow works for any collection: changelogs, careers, events, docs. And because templates live in Orshot, the same design also renders via [API](https://orshot.com/docs) and [50+ integrations](https://orshot.com/integrations), so your site, emails, and social posts share one design system. Using Astro or Next.js elsewhere? The code-first version of this idea: [dynamic OG images in Astro](https://orshot.com/blog/astro-dynamic-og-images) and in Next.js. **Q: Is the Orshot plugin for Framer free?** The plugin is free to install from the Framer Marketplace. Renders count toward your Orshot plan's quota, and the free tier covers a small blog comfortably. **Q: What size should Framer OG images be?** 1200x630 pixels (1.91:1). It is the standard Open Graph size and works across X, LinkedIn, Facebook, Slack, and WhatsApp previews. **Q: Can I use my own design instead of a library template?** Yes. Design in the Orshot editor at 1200x630, or import from Canva or Figma and mark the text and image layers you want as dynamic parameters. **Q: What about static pages that are not in the CMS?** Use the plugin's Preview and insert the rendered image onto the canvas, or set it directly as the page's social image in page settings. ## The bottom line OG images are the highest-leverage ten minutes of Framer SEO: they decide whether your link looks like a real publication or a bare URL. Design once, map once, generate forever. [**Get started with Orshot**](https://orshot.com/pricing) and give every page on your Framer site a preview worth clicking. --- ### [Automate Invoice Generation: Python, API, Zapier, Make & n8n Guide](https://orshot.com/blog/automated-invoice-generation) > The complete guide to automated invoicing. Learn to generate PDF invoices from templates using Python, REST API, or no-code workflows (Zapier, Make, n8n) Manually creating invoices for every transaction is time-consuming and prone to errors. With automated invoice generation, you can generate professional invoices programmatically using templates and customer data. This guide shows you how to set up automated invoice generation using Orshot's invoice templates and REST API. ## What you'll need - [Orshot Account](https://orshot.com "target=_blank") (Free Trial): To design invoice templates and programmatically generate invoice PDF from API - Basic knowledge of REST APIs - Python 3.x or JavaScript/Node.js (for the examples) ## Step 1: Choose an Invoice Template Orshot provides ready-to-use [invoice templates](https://orshot.com/templates/g/invoice) that you can customize for your business needs. [![Orshot's ready-to-use invoice templates](https://orshot.com/blog/invoice-generation/templates.webp)](/templates/g/invoice) Browse the invoice template gallery and select a template that matches your branding. Click on **"Open in Studio"** to customize the selected template. Here's a free template you can directly copy in your Orshot workspace to get started quickly: [Open the embed](https://orshot.com/templates/shared/21o4u98t/embed?view=view) ## Step 2: Customize Your Invoice Template In Orshot's Studio, you can customize your invoice template to match your brand: 1. **Update your logo**: Replace the placeholder logo with your company logo 2. **Customize colors**: Adjust colors to match your brand palette 3. **Parameterize dynamic fields**: Enable parameterization for fields that will change per invoice ![Parameterizing an invoice template in Orshot Studio](https://orshot.com/blog/invoice-generation/invoice-template-studio.webp) To parameterize a field (like customer name, invoice number, amounts): 1. Select the text layer or element 2. Toggle **"Parameterize"** in the properties panel 3. Assign a unique key (e.g., `customerName`, `invoiceNumber`, `totalAmount`) Once customized, save your template. Copy the **Template ID** from the template page—you'll need this for the API. ## Step 3: Generate Invoices Using REST API Orshot's [PDF Generation API](https://orshot.com/solutions/pdf-generation-api) allows you to generate invoices programmatically by sending invoice data to your customized template. Template also has playground where you can try out different values for set parameters and generate the PDF preview for the invoice ![The Orshot playground for testing invoice template parameters](https://orshot.com/blog/invoice-generation/playground.webp) ### API Endpoint ``` POST https://api.orshot.com/api/studio/render ``` ### Authentication Get your API key from **Orshot Dashboard > Settings > API Keys** Include it in the request header: ``` Authorization: Bearer YOUR_API_KEY ``` ## Step 4: Code Examples ### JavaScript/Node.js Example ```javascript async function generateInvoice(invoiceData) { const url = "https://api.orshot.com/api/studio/render"; const response = await fetch(url, { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "YOUR_TEMPLATE_ID", modifications: { customerName: invoiceData.customer_name, invoiceNumber: invoiceData.invoice_number, invoiceDate: invoiceData.date, totalAmount: invoiceData.total, item_title_1: invoiceData.item_title_1, item_price_1: invoiceData.item_price_1, item_title_2: invoiceData.item_title_2, item_price_2: invoiceData.item_price_2, }, responseFormat: "pdf", responseType: "url", }), }); const result = await response.json(); return result.content; // Returns PDF URL } // Example usage const invoiceData = { customer_name: "John Doe", invoice_number: "INV-001", date: "2025-11-23", total: "$1,250.00", item_title_1: "Web Development", item_price_1: "$1,000.00", item_title_2: "Consulting", item_price_2: "$250.00", }; const pdfUrl = await generateInvoice(invoiceData); console.log(`Invoice generated: ${pdfUrl}`); ``` ### Python Example ```python import requests import json def generate_invoice(invoice_data): url = "https://api.orshot.com/api/studio/render" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } payload = { "templateId": "YOUR_TEMPLATE_ID", "modifications": { "customerName": invoice_data["customer_name"], "invoiceNumber": invoice_data["invoice_number"], "invoiceDate": invoice_data["date"], "totalAmount": invoice_data["total"], "item_title_1": invoice_data["item_title_1"], "item_price_1": invoice_data["item_price_1"], "item_title_2": invoice_data["item_title_2"], "item_price_2": invoice_data["item_price_2"] }, "responseFormat": "pdf", "responseType": "url" } response = requests.post(url, headers=headers, json=payload) result = response.json() return result["content"] # Returns PDF URL # Example usage invoice_data = { "customer_name": "John Doe", "invoice_number": "INV-001", "date": "2025-11-23", "total": "$1,250.00", "item_title_1": "Web Development", "item_price_1": "$1,000.00", "item_title_2": "Consulting", "item_price_2": "$250.00" } pdf_url = generate_invoice(invoice_data) print(f"Invoice generated: {pdf_url}") ``` ### Batch Invoice Generation For automated invoice generation at scale, process multiple invoices in a batch: ```python def generate_bulk_invoices(invoices_list): generated_invoices = [] for invoice in invoices_list: try: pdf_url = generate_invoice(invoice) generated_invoices.append({ "invoice_number": invoice["invoice_number"], "pdf_url": pdf_url, "status": "success" }) except Exception as e: generated_invoices.append({ "invoice_number": invoice["invoice_number"], "status": "failed", "error": str(e) }) return generated_invoices # Example: Generate invoices for multiple customers invoices = [ { "customer_name": "Acme Corp", "invoice_number": "INV-001", "date": "2025-11-23", "total": "$2,500.00", "item_title_1": "Service A", "item_price_1": "$2,500.00" }, { "customer_name": "Tech Solutions", "invoice_number": "INV-002", "date": "2025-11-23", "total": "$1,800.00", "item_title_1": "Service B", "item_price_1": "$1,800.00" } ] results = generate_bulk_invoices(invoices) for result in results: print(f"{result['invoice_number']}: {result['status']}") ``` ### Save Generated Invoices Locally Download and save generated invoice PDFs to your local system: ```python import requests def generate_and_save_invoice(invoice_data, output_path): # Generate invoice pdf_url = generate_invoice(invoice_data) # Download PDF pdf_response = requests.get(pdf_url) # Save to file with open(output_path, 'wb') as f: f.write(pdf_response.content) print(f"Invoice saved to: {output_path}") # Example usage invoice_data = { "customer_name": "Jane Smith", "invoice_number": "INV-003", "date": "2025-11-23", "total": "$3,200.00", "item_title_1": "Project X", "item_price_1": "$3,200.00" } generate_and_save_invoice(invoice_data, "invoices/INV-003.pdf") ``` ## Automate with No-Code Platforms ### Using n8n ![Generating invoices with an n8n workflow](https://orshot.com/blog/automate-ecommerce-visuals/workflow-step-2.webp) Orshot integrates with [**n8n**](https://orshot.com/integrations "target=_blank") for visual workflow automation: 1. Create a new workflow in n8n 2. Add a trigger (webhook, schedule, or data source like Google Sheets) 3. Add the **Orshot node** and connect your Orshot account 4. Select your invoice template and map dynamic fields 5. Add action nodes to send emails or save to cloud storage ### Using Make (formerly Integromat) Automate invoice generation with [**Make**](https://orshot.com/integrations "target=_blank"): 1. Create a new scenario in Make 2. Add a trigger module (CRM, payment gateway, or schedule) 3. Add **Orshot** module and authenticate 4. Configure template ID and map invoice data from previous modules 5. Connect to email or storage modules to deliver invoices ### Using Zapier Set up automated invoice generation with [**Zapier**](https://orshot.com/integrations "target=_blank"): 1. Create a new Zap in Zapier 2. Choose a trigger app (Stripe, PayPal, Google Sheets, etc.) 3. Add **Orshot** as the action app 4. Select "Generate from Studio Template" action 5. Map invoice fields from trigger data 6. Add actions to email invoices or save to Google Drive You can also skip the automation platform entirely, since Orshot ships this invoice pipeline as a ready-made workflow. One click on **Use this workflow** copies it into your workspace, where you point it at your spreadsheet and turn it on. [Generate invoices from a spreadsheet workflow on Orshot](https://orshot.com/workflows/invoice-generator/embed) ## Conclusion Automated invoice generation eliminates manual work and ensures consistency across all your invoices. With Orshot's invoice templates and REST API, you can set up automated invoice generation in minutes. Whether you're processing hundreds of invoices monthly or building a complete billing system, Orshot's [PDF Generation API](https://orshot.com/solutions/pdf-generation-api) provides the flexibility and reliability you need. **Ready to automate?** [Browse invoice templates](https://orshot.com/templates/g/invoice) and start generating invoices programmatically. --- ### [Automate LinkedIn Carousels with SvelteKit Remote Functions](https://orshot.com/blog/automate-linkedin-carousels-sveltekit) > Design carousel slides in Orshot, render them as PNGs, and publish to LinkedIn from a SvelteKit app — server-side with Remote Functions [LinkedIn Carousels](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels) is one of the better formats for a short story in feed, but the production loop is painful. You design five or seven slides in Figma, export PNGs, upload them in order, write the caption, and hope you did not typo slide three after the client asked for one headline change. I wanted a small internal tool where marketing picks a theme, edits copy in a form, previews all slides, and publishes without leaving the browser. By the end of this guide, you will have a SvelteKit application that uses [Remote Functions](https://svelte.dev/docs/kit/remote-functions "target=_blank nofollow") to talk to [Orshot](https://orshot.com/) on the server that list carousel templates from your workspace, build a form from each template's `modifications` metadata, render PNG slides with the [Studio render API](https://orshot.com/docs/api-reference/render-from-studio-template), and publish to LinkedIn through [Social Publishing](https://orshot.com/features/social-publishing) of accounts already connected in Orshot. ## Prerequisites - Node.js and npm installed. The demo app in this tutorial uses version 22 of Node.js. - An [Orshot](https://orshot.com/) account ## Connect your LinkedIn Account to Orshot Before you automate your LinkedIn carousels, you need to connect your LinkedIn account in Orshot by following these steps: - Go to **Orshot Studio** > **Publish** > **Social Accounts**. - In **Connect Account** section, select **LinkedIn** from the dropdown and complete the connection process. - Once your LinkedIn account is connected, you should see it listed among your social accounts, similar to the example below: ![Connected LinkedIn account listed in Orshot social accounts](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-linkedin.webp) ## Pick a Carousel Theme in Orshot To get started with a pre-built carousel theme, visit [Orshot Templates](https://orshot.com/templates) and search for **Carousel**. ![Searching for carousel templates in Orshot](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-templates.webp) Click on a template you like to add a copy of it to your Orshot workspace: ![Cloning a carousel template into your Orshot workspace](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-template-clone.webp) To test the theme with your own text, open the "Automate" tab, enter sample values for the fields, and click "Generate Render": ![Testing the template with sample values in the Automate tab](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-template-render.webp) Once you've confirmed that editing the variables produces the expected result, you're ready to build out the UI in SvelteKit. ## Create a new SvelteKit application with Remote Functions Create a minimal SvelteKit project, install dependencies, and opt in to experimental remote functions (required as of SvelteKit 2.27+) as follows: ```bash # create new svelte app npx sv create linkedin-carousel cd linkedin-carousel # install the in-built deps npm install # add valibot for lightweight schema validation npm install valibot # add tailwindcss npx sv add tailwindcss ``` Valibot is being installed to validate arguments on remote `command` calls (as recommended in the [Svelte docs](https://svelte.dev/docs/kit/remote-functions "target=_blank nofollow")). Then, enable remote functions, async, and Svelte 5 runes in `svelte.config.js`: ```javascript import adapter from "@sveltejs/adapter-auto"; /** @type {import("@sveltejs/kit").Config} */ const config = { compilerOptions: { experimental: { async: true, }, runes: ({ filename }) => filename.split(/[/\\]/).includes("node_modules") ? undefined : true, }, kit: { adapter: adapter(), experimental: { remoteFunctions: true, }, }, }; export default config; ``` Next, add your Orshot API key by copying it from [Orshot Workspace → API Keys](https://orshot.com/docs/quick-start/get-api-key) and pasting it into your `.env` file like this: ![Copying the Orshot API key from workspace settings](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-api.webp) ```bash ORSHOT_API_KEY=your_api_key_here ``` Finally, start the dev server to confirm the baseline works with the following command: ```bash npm run dev ``` Visit `http://localhost:5173` in your browser to ensure the app is running correctly, then stop the dev server before proceeding to the following steps. ## Set up server-side Orshot API helpers Create a file at `src/lib/server/orshot.ts` to hold thin utility wrappers for the Orshot REST API. Each function should issue an HTTP request to the Orshot API, automatically attaching your API key in the `Authorization` header. ```typescript import { ORSHOT_API_KEY } from "$env/static/private"; const BASE = "https://api.orshot.com/v1"; function headers() { return { "Content-Type": "application/json", Authorization: `Bearer ${ORSHOT_API_KEY}`, }; } export type OrshotModification = { key: string; id: string; type: string; description: string; example: string; page_number: number; page_id: string; element_name?: string; }; export type OrshotTemplate = { id: number; name: string; description: string; tags: string[]; thumbnail_url: string; canvas_width: number; canvas_height: number; pages_data: { page_id: string; name: string; thumbnail_url: string }[]; modifications: OrshotModification[]; }; export async function listStudioTemplates(options?: { page?: number; limit?: number; search?: string; }) { const params = new URLSearchParams({ page: String(options?.page ?? 1), limit: String(options?.limit ?? 10), }); if (options?.search) params.set("search", options.search); const res = await fetch(`${BASE}/studio/templates/all?${params}`, { headers: headers(), }); if (!res.ok) throw new Error(`List templates failed: ${res.status}`); const json = await res.json(); return json as { data: OrshotTemplate[]; pagination: { page: number; limit: number; total: number; totalPages: number; }; }; } export type RenderSlide = { page: number; pageId?: string; content: string; }; export type SocialAccount = { id: number; platform: string; account_name: string; account_username: string; account_avatar: string; connected_at: string; requires_reconnect?: boolean; }; export async function listSocialAccounts(options?: { includeHealth?: boolean; }) { const params = new URLSearchParams(); if (options?.includeHealth) params.set("include_health", "true"); const url = params.size > 0 ? `${BASE}/social/accounts?${params}` : `${BASE}/social/accounts`; const res = await fetch(url, { headers: { Authorization: headers().Authorization }, }); if (!res.ok) throw new Error(`List social accounts failed: ${res.status}`); const json = await res.json(); return (json.data ?? []) as SocialAccount[]; } export async function renderStudioTemplate(input: { templateId: number; modifications: Record; }) { const res = await fetch(`${BASE}/studio/render`, { method: "POST", headers: headers(), body: JSON.stringify({ templateId: input.templateId, modifications: input.modifications, response: { type: "url", format: "png", }, }), }); if (!res.ok) { const text = await res.text(); throw new Error(`Render failed: ${res.status} ${text}`); } const json = await res.json(); // Single-page template if (typeof json.data?.content === "string") { return [{ page: 1, content: json.data.content }] satisfies RenderSlide[]; } // Multi-page carousel: data is an array of { page, pageId, content } if (Array.isArray(json.data)) { return json.data as RenderSlide[]; } return []; } export async function publishToSocial(input: { accountIds: number[]; content: string; mediaUrls: string[]; }) { const res = await fetch(`${BASE}/social/publish`, { method: "POST", headers: headers(), body: JSON.stringify({ accounts: input.accountIds, content: input.content, media_urls: input.mediaUrls, }), }); if (!res.ok) { const text = await res.text(); throw new Error(`Publish failed: ${res.status} ${text}`); } return res.json(); } ``` Here’s what each exported function does in the code above: - `listStudioTemplates`: Fetches a list of Orshot studio templates (including carousels) with optional pagination and search, automatically using the API key. - `listSocialAccounts`: Retrieves all connected social publishing accounts (such as LinkedIn) from Orshot, so you can select where to publish. - `renderStudioTemplate`: Calls the Orshot render API to generate PNG URLs for each slide in a selected template and given modifications. Handles both single-slide (string response) and multi-slide (array response) cases. - `publishToSocial`: Publishes a post with caption and media URLs to selected connected social accounts (e.g. LinkedIn) via Orshot’s Social Publish API. Throws an error on failure. ## Create Remote Functions for Template Listing, Slide Preview, and Carousel Publishing To easily connect your SvelteKit front end with Orshot, create a new file at `src/lib/orshot.remote.ts`. Remote functions defined here will run securely on the server, keeping your Orshot API key safe and never exposing it to the client. ```typescript import * as v from "valibot"; import { command, query } from "$app/server"; import { listStudioTemplates, listSocialAccounts, renderStudioTemplate, publishToSocial, type OrshotTemplate, type SocialAccount, } from "$lib/server/orshot"; export const getCarouselTemplates = query(async () => { const { data } = await listStudioTemplates({ limit: 40, }); return data.filter((t) => t.pages_data?.length > 1) as OrshotTemplate[]; }); export const getLinkedInAccounts = query(async () => { const accounts = await listSocialAccounts(); return accounts.filter((a) => a.platform === "linkedin") as SocialAccount[]; }); export const previewCarousel = command( v.object({ templateId: v.number(), modifications: v.record(v.string(), v.string()), }), async ({ templateId, modifications }) => { const slides = await renderStudioTemplate({ templateId, modifications }); return { slides }; }, ); export const publishCarousel = command( v.object({ accountIds: v.array(v.number()), caption: v.string(), mediaUrls: v.array(v.string()), }), async ({ accountIds, caption, mediaUrls }) => { const result = await publishToSocial({ accountIds, content: caption, mediaUrls, }); return result; }, ); ``` The above code defines SvelteKit remote function endpoints that power the LinkedIn carousel tool: - `getCarouselTemplates`: Loads all carousel-style templates (with more than one page) from the Orshot API for the user's workspace. - `getLinkedInAccounts`: Lists all connected LinkedIn accounts to target for publishing. - `previewCarousel`: Renders preview slide PNGs from a selected template and user-provided form values via the Orshot render API. - `publishCarousel`: Publishes rendered slides as a LinkedIn carousel post via Orshot's backend, using the selected accounts and caption. These functions are called from the Svelte UI (see next section), letting the frontend build forms dynamically based on the template's parameter schema, preview, and publish posts, all without needing to store secrets or call the Orshot API directly from the browser. ## Build the Svelte UI Create a file at `src/routes/+page.svelte` where you'll fetch the available carousel templates and the list of connected social accounts. The UI would allow the user to select a carousel theme, display input fields based on each template's `modifications` parameters, and invoke the provided remote functions for previewing and publishing. Since the project uses Svelte 5 runes mode, remember to manage local UI state with `$state()` (failing to do so will prevent the UI from updating after previewing). ```svelte
Orshot × SvelteKit

LinkedIn carousel generator

Pick a theme, edit slide copy, preview every page, and publish to LinkedIn in one flow.

1

Choose a theme

Multi-page Orshot templates from your workspace

{#if templates.length === 0}

No carousel templates found

Create a multi-page template in Orshot Studio, then refresh this page.

{:else}
{#each templates as t} {/each}
{/if}
{#if selected}
2

Edit slide copy

Template #{selected.id} · {selected.pages_data.length} pages

{#each selected.modifications as mod} {/each}
3

Preview & publish

Render slides, then post to your LinkedIn account

{#if error} {/if}
{#if slides.length}

Preview

{slides.length} slide{slides.length === 1 ? '' : 's'}
{#each slides as slide}
Slide {slide.page}
Slide {slide.page}
{/each}
{/if} {/if}
``` In the code above: - `modifications` array is used to dynamically generate the input fields for the form. - Any new parameter added in Orshot Studio appears automatically in the UI when the template list is refreshed, no code change is needed to handle new input fields. - Parameter keys (e.g., `page2@headline`) are displayed as-is to ensure they match exactly what the Orshot render API expects. ## Render response format for carousels For multi-page templates, a successful PNG render returns `data` as an **array** of objects with `page`, `pageId`, and `content` (hosted PNG URL). That matches LinkedIn's need for ordered slide images. Your preview grid should preserve array order when passing URLs to publish. Example shape (abbreviated from the [API docs](https://orshot.com/docs/publish/publish-from-api)): ```json { "data": [ { "page": 1, "pageId": "a1b2c3d4-…", "content": "https://storage.orshot.com/…/page_1.png" }, { "page": 2, "pageId": "b2c3d4e5-…", "content": "https://storage.orshot.com/…/page_2.png" } ], "type": "url", "format": "png", "totalPages": 2, "renderedPages": 2 } ``` > Note: Use `media_urls` (not `media_url`) on the [Social Publish](https://orshot.com/docs/api-reference/social-publish) endpoint when posting multiple images as a carousel. PNG and JPG are supported on LinkedIn. ## Test the Complete Workflow 1. Start the app with `npm run dev` and open the home page. 2. Select a carousel template and confirm modification fields populate with example values from the API. ![Selecting a carousel template with modification fields populated from the API](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-test-1.webp) 3. Confirm a LinkedIn account appears in the dropdown (connect one in Orshot first if not). ![LinkedIn account appearing in the account dropdown](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-test-2.webp) 4. Edit copy, click **Preview slides**, and confirm each slide image loads. ![Previewing the rendered carousel slides](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-test-3.webp) 5. Click **Publish to LinkedIn** and check the post on your profile (or drafts if you set `isDraft: true` in the publish payload for testing). ![Published LinkedIn carousel post](https://orshot.com/blog/automate-linkedin-carousels-sveltekit/orshot-test-4.webp) ## Ending thoughts Using Remote Functions in SvelteKit provides a clean way to integrate with the Orshot API while keeping sensitive logic securely on the server. This approach allows you to manage template selection, parameter editing, slide previewing, and publishing all from a streamlined, interactive single-page Svelte UI. By keeping templates, dynamic fields, and rendering work in Orshot, your application remains flexible and easy to extend as new templates or input parameters are added. ## Resources - [GitHub Repository](https://github.com/rishi-raj-jain/orshot-linkedin-sveltekit "target=_blank nofollow") --- ### [Automatically Post Tweets on Instagram](https://orshot.com/blog/automate-tweet-to-instagram) > Instantly convert your Twitter tweets into images and automatically post on Instagram using TweetHunter/Typefully, Orshot connected using Zapier A lot of creators schedule their tweets and to save time, cross-post to other social sites. Ever wondered how? With this powerful automation, you can instantly convert your Twitter content into beautiful Instagram posts using Typefully or Typefully, Orshot, and Instagram for Business - all connected seamlessly through Zapier If you prefer a tool that can help you convert tweets to images or even carousel for Instagram, you can try out [Twitter Carousel Generator](https://orshot.com/tools/twitter-carousel-generator), or grab clean tweet screenshots right from your browser with the [free X/Twitter Chrome extension](https://orshot.com/blog/twitter-screenshot-chrome-extension) ## Tweet to Instagram Automation using Zapier This Zapier template creates a streamlined 3-step workflow that: 1. **Triggers on new tweets** from [Typefully](https://typefully.com/) or [TweetHunter](https://tweethunter.io/) 2. **Converts tweets to images** using Orshot's [tweet to image template](https://orshot.com/templates/tweet-image) 3. **Automatically posts** the generated image to your Instagram Business account ## Need help? Setting up the automation could be complex, **feel free to use the chat button on bottom right** or [**send us an email**](mailto:hi@orshot.com) to ask for help and we'll help you setup the automation ## Video Tutorial [Watch the video](https://www.youtube.com/watch?v=J9yL16C7dCE) ## Setting up the Zap 1. Create a new Zap on Zapier 2. Select Typefully or TweetHunter in trigger for first step, connect your account in Setup tab and use following settings: - Setup Tab: **Trigger Event** → Draft published - Configure Tab: **Enabled for** → Tweets/Threads 3. Test the step to get a test record 4. In next step, add Orshot using your Orshot API Key from [Settings > API Key page](https://orshot.com/workspace) - Setup Tab: **Action Event** → Render from Template - Configure Tab: **Template ID** → "tweet-image", **Tweeturl** → use the Twitter URL from Typefully record, **Response Type** → "url", **Response Format** → "png" ![Orshot API Key](https://orshot.com/blog/automate-sheets-certificate/11.webp) 5. Test the step to get a test record 6. Add Instagram for Business in last step - Setup Tab: **Action Event** → Publish Photo(s) - Configure Tab: **Instagram Account to Use** → connect your Instagram account, **Media** → select "Data Content" from Orshot step 7. In Step 6 for Orshot under Configure Tab, feel free to customize the look of the tweet image 8. In Step 9, feel free to set caption, location etc. as you like 9. Once done, save the Zap and mark it as active Now whenever you will post a tweet on Twitter, it'll automatically be posted on your Instagram account with the customizations you've set in Step 4 in Orshot step ## Tweet Image Customization In Step 4 in Orshot, you can customize the tweet image by selecting different colors for background, text etc. You can also choose to hide or show tweet media, metrics, date time etc. ## Zapier Filters Set up filters to only post certain types of tweets: - Tweets with specific hashtags - Tweets above a certain length - Tweets containing images or links ## Best Practices - Consider Instagram's audience when crafting tweets - Add relevant Instagram hashtags in the automation - Set up delays if needed to avoid overwhelming your Instagram feed - Use Typefully's draft feature to review before publishing - Set up the automation to trigger only on final published tweets ## Even Easier: Use Orshot Social Publish Instead of connecting Orshot to Instagram via Zapier, you can now use [Orshot Social Publish](https://orshot.com/docs/publish/introduction) to post directly to Instagram (and 12 other platforms) from Orshot itself. Connect your Instagram account in your workspace, and Orshot handles the posting — no Zapier step needed. You can publish from the dashboard or [automate it via the API](https://orshot.com/docs/publish/publish-from-api) by adding a `publish` object to your render request. Better still, the whole tweet-to-visual flow is available as a ready-made workflow in Orshot. Click **Use this workflow** below and it's added to your workspace with each step already connected. [Turn tweets into visuals workflow on Orshot](https://orshot.com/workflows/tweet-to-visual/embed) ## Conclusion By connecting Typefully, Orshot, and Instagram through Zapier, you're not just saving time; you're creating a professional, consistent brand presence across platforms --- ### [Best PDF Generation APIs in 2026 (Ranked for Devs)](https://orshot.com/blog/best-pdf-generation-apis) > A developer's guide to best free and paid PDF generation and automation API platforms — DocRaptor, Orshot, PDFMonkey, APITemplate and more Almost every PDF generation API comes down to one of two approaches. - **HTML/CSS → PDF**: you write the markup, the API renders it through a browser or print engine and hands you a PDF. Maximum control, but you own every pixel and there's no UI for non-developers. - **Template-based**: you design a document once in a visual editor, then hit an endpoint with data (`{ "invoice_no": "1042", "total": "$49" }`) and get a pixel-perfect PDF back. Less raw control, far less maintenance, and a marketer or ops person can edit the template without touching code. Neither is "better" — they fit different teams. This list covers both, ranked for how most developers actually ship invoices, certificates, reports, contracts and other [PDF documents at scale](https://orshot.com/solutions/pdf-generation-api) in 2026, . I build **Orshot**, one of the tools below, so weight my ranking accordingly — but I've tried to be fair about where each one genuinely wins. **TL;DR** — There's no single best PDF API — it depends on how you build. Pick what matters most and I'll point you to the right one: - **Template based PDF + image + video**: [Orshot](#2-orshot--best-if-you-need-more-than-pdfs) — One API key for production-grade PDFs, images, and video — with a Canva-like Studio editor a non-developer can actually use. - **Print-grade HTML/CSS fidelity**: [DocRaptor](#1-docraptor--best-htmlcss-fidelity) — The Prince engine gives the most faithful CSS support here, plus accessible, SOC 2 / HIPAA / GDPR-compliant PDFs. - **Lean HTML-in, PDF-out**: [PDFMonkey / PDFShift](#4-pdfmonkey--lean-and-transparent) — Thin, transparent, developer-first conversion for side projects and small teams. - **Visual editor for docs + images**: [APITemplate.io / CraftMyPDF](#3-apitemplateio--editor-meets-html) — Drag-and-drop template editors that also handle image output — no hand-written layout required. - **Embed editing in your product**: [PDF Generator API](#7-pdf-generator-api--built-for-embedding) — Ships an embeddable, end-user-facing editor so your own customers can design their templates. - **Pay-per-use at spiky volume**: [Api2Pdf](#8-api2pdf--pay-only-for-what-you-render) — Pure usage-based billing (~$0.005/PDF) with no monthly minimum — cheapest at unpredictable volume. ## The shortlist at a glance | Tool | Free tier | Starting price | Visual editor | Images too | HTML/CSS | | :-- | :-: | :-: | :-: | :-: | :-: | | [DocRaptor](#1-docraptor--best-htmlcss-fidelity) | 5 docs/mo | $15/mo | No | No | Yes | | [Orshot](#2-orshot--best-if-you-need-more-than-pdfs) | 30 credits | $39/mo · 1,500 credits | Yes | Yes | No | | [APITemplate.io](#3-apitemplateio--editor-meets-html) | 50/mo | ~$29/mo · 1,500 | Yes | Yes | Yes | | [PDFMonkey](#4-pdfmonkey--lean-and-transparent) | 20 docs/mo | €5/mo · 300 docs | No | No | Yes | | [PDFShift](#5-pdfshift--minimal-api-first-html-to-pdf) | 50/mo | Credit-based | No | No | Yes | | [CraftMyPDF](#6-craftmypdf--drag-drop-templates) | 20 docs/mo | $29/mo · 1,200 | Yes | Yes | No | | [PDF Generator API](#7-pdf-generator-api--built-for-embedding) | Sandbox | Volume-based | Yes | No | No | | [Api2Pdf](#8-api2pdf--pay-only-for-what-you-render) | $1 credit | ~$0.005/PDF | No | No | Yes | Prices verified at time of writing; always check each vendor's pricing page, since tiers move. ## 1. DocRaptor — best HTML/CSS fidelity ![DocRaptor — HTML-to-PDF API homepage](https://orshot.com/blog/pdf-apis/docraptor.webp) [DocRaptor](https://docraptor.com "target=_blank rel=nofollow") is the one to beat for print-grade output. It renders through the Prince engine, which gives you the most faithful CSS support of anything here — page breaks, headers and footers, footnotes, and proper print styling that browser-based renderers fumble. It also produces accessible (tagged) PDFs and is SOC 2, HIPAA, and GDPR compliant, so it shows up a lot in regulated industries. Pricing starts free for 5 documents a month, then \$15/mo, with unlimited _watermarked_ test documents so you can develop without burning quota. - Best-in-class CSS fidelity via the Prince engine - Accessible, tagged PDFs (PDF/UA, WCAG, Section 508) - SOC 2, HIPAA, and GDPR compliant - Unlimited free watermarked test docs while you build Cons: - No visual editor — you write all the HTML/CSS - PDF and Excel only; no images or video - Per-document pricing climbs at high volume **Where it fits:** complex, paginated documents where layout fidelity and compliance matter more than having a visual editor. It's PDF (and Excel) only — no images or video. ## 2. Orshot — template-based PDF generation at scale I'll keep my own pitch short. Orshot turns a template into an API endpoint — design once in the Studio editor, then POST your data and get a PDF back. Multi-page documents and carousels render in a single call, which matters for invoices and reports that run long. Here's a live-preview of Orshot Studio with a design-rich document template (**you can also play with the design**): [Orshot Embed](https://orshot.com/templates/shared/c42ksdn1/embed?view=play) Where it pulls ahead is a designer-friendly Canva like editor which can be used to create rich PDF and document designs, and the same plan also generates [images and video](https://orshot.com/solutions/image-generation-api) — no separate products or add-ons. So if you need invoice PDFs _and_ social images _and_ the occasional video clip, it's one API key and one bill instead of three vendors. You also get SDKs for Node, Python, Ruby, and PHP, native automation via n8n, Make, Zapier, an MCP server for AI agents, a CLI, and Dynamic URLs. Output formats cover PNG, JPG, WebP, AVIF, PDF, MP4, WebM, and GIF, and you can import templates straight from Canva or Figma. A render is one POST — pass a `templateId` plus your `modifications` and ask for a PDF: ```bash curl -X POST https://api.orshot.com/v1/studio/render \ -H "Authorization: Bearer $ORSHOT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "3211", "modifications": { "invoice_no": "1042", "total": "$49" }, "response": { "type": "url", "format": "pdf" } }' ``` The response hands back a hosted URL to the finished PDF (`{ type: "base64" }` returns the bytes inline instead). The same call swaps `"format": "png"` or `"mp4"` for an image or video. - PDFs, images, and video on a single plan - Design once in Studio, render with one API call - Multi-page documents and carousels in one call - SDKs, an MCP server, a CLI, and Dynamic URLs - Native n8n, Make, and Zapier — no-code friendly Cons: - Less raw HTML/CSS control than a dedicated converter - Template-first if all you need is HTML-to-PDF **Where it fits:** you want one predictable bill for PDF, image, and video, with an editor a non-developer can actually use. If you only ever need raw HTML-to-PDF, a dedicated HTML-to-PDF tool may suit you better. ## 3. APITemplate.io — editor meets HTML ![APITemplate.io — PDF and image generation API homepage](https://orshot.com/blog/pdf-apis/apitemplate.webp) [APITemplate.io](https://apitemplate.io/pricing/ "target=_blank rel=nofollow") straddles both worlds: a drag-and-drop template editor _and_ the option to render raw HTML/CSS. It does PDFs and images, gives you 50 free API calls a month with 3 templates, and starts around \$29/mo for 1,500 renders. - Visual editor and raw HTML/CSS both supported - Generates both PDFs and images from templates - Connects to Zapier, Make, n8n, Airtable, and Bubble - Regional endpoints (US, EU, APAC) for lower latency Cons: - No video output - Editor can lag on complex or large templates - Lowest advertised price is annual-billing only **Where it fits:** teams that want HTML flexibility without giving up a visual editor, and that need image generation alongside PDFs but not video. ## 4. PDFMonkey — lean and transparent ![PDFMonkey — HTML template PDF generation homepage](https://orshot.com/blog/pdf-apis/pdfmonkey.webp) [PDFMonkey](https://pdfmonkey.io/pricing/ "target=_blank rel=nofollow") is built on the idea that PDF generation should be a thin, predictable layer over your HTML templates — nothing more. It's a favorite for side projects and small teams. The free tier is 20 documents a month, paid starts at **€5/mo for 300 docs**, and every account gets a 30-day Pro trial. The catch to plan around is document retention: generated PDFs are kept only briefly (a day on Starter, a week on Pro), so store your own copies if you need them long-term. - Transparent, low-cost pricing from €5/mo - Forever-free tier with 20 documents a month - Familiar HTML/CSS templates plus a visual builder - Native Zapier, Make, and n8n integrations Cons: - Generated PDFs are deleted within days — store your own - Free tier blocks external images, fonts, and CSS - Unlimited retention only on higher-priced plans **Where it fits:** developers who like writing HTML templates, have modest volume, and want simple, transparent pricing. ## 5. PDFShift — minimal API-first HTML to PDF ![PDFShift — HTML-to-PDF conversion API homepage](https://orshot.com/blog/pdf-apis/pdfshift.webp) [PDFShift](https://pdfshift.io/#pricing "target=_blank rel=nofollow") is the most stripped-down option: send HTML, get a PDF, done. No template editor, just a clean credit-based API with 50 free conversions a month. Worth knowing before you commit: there's a file-size cap (~5 MB per PDF even on paid plans), so very heavy documents can hit a wall. - Dead-simple HTML-to-PDF endpoint, live in minutes - Clean, well-documented credit-based API - Chromium rendering for accurate output - Free sandbox mode for unlimited testing Cons: - Large files burn extra credits, raising cost - No visual template editor or no-code builder - Small free tier pushes you to paid quickly **Where it fits:** developers who already have their HTML and want a no-nonsense conversion endpoint, not a platform. ## 6. CraftMyPDF — drag-drop templates ![CraftMyPDF — drag-and-drop PDF template editor homepage](https://orshot.com/blog/pdf-apis/craftmypdf.webp) [CraftMyPDF](https://craftmypdf.com/pricing/ "target=_blank rel=nofollow") leans into the visual side: a solid drag-and-drop editor for PDFs and images, aimed at people who'd rather not hand-write layout. The free plan covers 20 documents a month, and paid starts at \$29/mo for 1,200 PDFs across 6 templates. - Polished drag-and-drop editor, no HTML needed - Generates both PDFs and PNG/JPEG images - Solid no-code integrations: Zapier, Make, Bubble, n8n - AI auto-detects fields when building templates Cons: - Templates capped per plan tier - Can slow down on complex or high-volume jobs - No video output — PDFs and images only **Where it fits:** teams that want a polished template editor for documents and don't need video. ## 7. PDF Generator API — built for embedding ![PDF Generator API — embeddable PDF editor homepage](https://orshot.com/blog/pdf-apis/pdf-generator-api.webp) [PDF Generator API](https://pdfgeneratorapi.com/pricing "target=_blank rel=nofollow") is aimed at SaaS products that want to let _their own users_ design and edit PDF templates. It ships an embeddable, end-user-facing editor and prices on volume rather than locking features behind tiers, with a free sandbox to start. - Embeddable editor your own users can use - Built for multi-tenant SaaS with per-customer templates - Drag-and-drop WYSIWYG editor, no designers needed - Free 14-day sandbox to test before paying Cons: - Embedded editor is gated to higher-priced tiers - Overkill if you just need server-side PDFs - Per-page credit math is easy to underestimate **Where it fits:** you're building a product and want customers to customize their own document templates without leaving your app. ## 8. Api2Pdf — pay only for what you render ![Api2Pdf — pay-per-use PDF generation API homepage](https://orshot.com/blog/pdf-apis/api2pdf.webp) [Api2Pdf](https://www.api2pdf.com/pricing "target=_blank rel=nofollow") is a thin, serverless wrapper over engines like headless Chrome, wkhtmltopdf, and LibreOffice, plus PDF merging. Pricing is pure pay-per-use — roughly \$0.005 per PDF — with no monthly minimum beyond a small balance charge. It's the cheapest path at unpredictable or very high volume, but there's no editor and no template management; it's plumbing. - Pure pay-per-use with no monthly commitment - No rate limits or request queuing - Multiple engines: headless Chrome, wkhtmltopdf, LibreOffice - Built-in PDF merge, thumbnails, and barcodes Cons: - No template management or visual editor - Usage-based billing makes per-PDF cost hard to predict - Per-request caps: 2 GB RAM, 90-second timeout **Where it fits:** high or spiky volume where usage-based billing wins and you don't need any UI. ## How to choose The honest decision tree: pick **DocRaptor** if you need the best CSS fidelity and compliance for complex print documents. Pick **PDFMonkey** or **PDFShift** if you're a developer who just wants HTML in, PDF out, at small scale. Pick **APITemplate.io** or **CraftMyPDF** if you want a visual editor for documents _and_ images. Pick **PDF Generator API** if you're embedding template editing into your own product. Pick **Api2Pdf** if pure usage-based pricing fits your volume. And pick **Orshot** if you'd rather not run three separate vendors for PDFs, images, and video — and want an editor anyone on the team can use. Whatever you choose, the test is the same: can you go from template to a clean API call in an afternoon? Browse real setups in our [use-cases](https://orshot.com/use-cases) library to see what's possible before you commit. [**Try Orshot Free →**](https://orshot.com/pricing "target=_blank") **(30 credits, no card needed)** > **Bottom line:** Every tool here will turn data into a PDF over an API. The split is approach — DocRaptor and the HTML-first tools give you raw control; [APITemplate](https://orshot.com/blog/apitemplate-io-alternative), CraftMyPDF, and Orshot give you a visual editor. Orshot's edge is doing PDF, image, and video under one predictable price. ## Common questions **Q: What's the difference between an HTML-to-PDF API and a template-based PDF API?** With an HTML-to-PDF API (DocRaptor, PDFMonkey, PDFShift, Api2Pdf) you write the HTML/CSS yourself and the API renders it — maximum control, but you maintain every layout. A template-based PDF API (Orshot, APITemplate.io, CraftMyPDF, PDF Generator API) lets you design a document once in a visual editor, then send data to fill it, so non-developers can edit templates without code. **Q: Which PDF generation API is cheapest?** At very low or unpredictable volume, Api2Pdf's pay-per-use (~$0.005/PDF) or PDFMonkey's €5/mo for 300 docs are cheapest. Once you scale, Orshot tends to win on value — $39/mo for 1,500 credits (1 credit = 1 PDF page) that also covers images and video. Always compare at your real expected volume. **Q: Can these APIs generate images too, or only PDFs?** It varies. Orshot does PDF, image, and video on one plan. APITemplate.io and CraftMyPDF do PDF and image. DocRaptor, PDFMonkey, PDFShift, PDF Generator API, and Api2Pdf are PDF-focused. **Q: Do I need to write code to generate PDFs with these tools?** For raw API use, yes. But several offer no-code paths — Orshot has native n8n, Make, and Zapier integrations plus Dynamic URLs (generate a document just by editing a URL), so ops and marketing teams can automate PDFs without writing code. **Q: How many free credits do I get to test Orshot?** 30 free credits, no credit card required, with access to all features so you can properly evaluate PDF, image, and video generation before paying. --- ### [Certifier Alternative for Automated Certificate Generation](https://orshot.com/blog/certifier-alternative) > Looking for a Certifier.io alternative? Orshot offers flexible certificate generation API, better pricing, no limits, multi-page PDFs, and a free tool to test If you're issuing certificates for course completions, training programs, or events, you've probably looked at Certifier.io. It's a solid platform, but once you start scaling, you'll hit the annual certificate limits, and the pricing adds up fast. With Orshot, you get a certificate generation API with no annual caps, lower costs, and complete design flexibility. You can [test it right now with our free certificate generator](https://orshot.com/tools/certificate-generator) - no signup needed. [**Try Orshot Free**](https://orshot.com/signup) **(30 credits, no card needed)** **Migrate from Certifier to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Certifier API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) [Open the embed](https://orshot.com/templates/shared/ejko95fl/embed?view=view) ## Is This You? You might be looking for a Certifier alternative if: - You're **hitting annual certificate limits** and don't want to upgrade to an expensive tier - You need to **generate 1,000+ certificates per month** and Certifier's pricing doesn't make sense - Your **certificate designs look too templated** and you want more control - You need **multi-page certificates** (course booklets, detailed credentials) that Certifier can't create - You're a developer who wants **full API control** over certificate generation - You want to **automate from Google Sheets** or your existing LMS without complex integrations - You're paying for **add-ons** (premium branding, custom fonts) that should be included ## How Orshot Solves These Problems | What You Need | Orshot | Certifier | | :--------------------------- | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------ | | **No certificate limits** | Per-render pricing, generate as many as you need | Annual limits (250 free, then capped) | | **Affordable at scale** | $39/month for 1,500 credits (1 credit = 1 certificate) | $67/month for ~1,000/month | | **Professional designs** | Canva/Figma-like [Orshot Studio](https://orshot.com/studio) | Basic certificate builder | | **Multi-page certificates** | Yes, carousel templates for booklets | No | | **Import existing designs** | [Clone from Canva](https://orshot.com/solutions/canva-template-to-api), [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) | Start from scratch | | **Custom fonts** | Included in all plans | Advanced plan only ($339/mo) | | **Google Sheets automation** | Built-in via n8n or Make | Requires workarounds | | **Full API control** | Dynamic parameters, any element customizable | Standard API | | **Video certificates** | MP4/WebM/GIF generation | No | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | ## For Developers: The Certificate API If you're integrating certificate generation into your app or LMS, here's what the API looks like: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_certificate_template_id", modifications: { recipientName: "John Smith", courseName: "Advanced JavaScript", completionDate: "December 24, 2025", certificateId: "CERT-2025-001", }, response: { format: "pdf", }, }), }); ``` Every template becomes an API endpoint. Pass in recipient name, course details, date - get back a PDF or PNG. [Full API docs here](https://orshot.com/docs/api-reference). ## For Non-Developers: Automate from Google Sheets Don't want to write code? Connect your spreadsheet directly to certificate generation using n8n or Make. Here's the workflow: 1. Add recipient data to Google Sheets 2. n8n triggers on new row 3. Orshot generates the certificate 4. PDF link appears in your sheet [Step-by-step tutorial here](https://orshot.com/blog/google-sheets-certificates-automation). Even simpler: this automation comes ready-made in Orshot. Click **Use this workflow** to add it to your workspace, point it at your sheet, and certificates start landing in your Google Drive. [Generate certificates from a Google Sheet workflow on Orshot](https://orshot.com/workflows/certificate-generator/embed) ![Automating certificate generation from Google Sheets with Orshot](https://orshot.com/blog/automate-sheets-certificate/automate-certificat-sheets-cover.png) ## Design Certificates That Don't Look Generic [Orshot Studio](https://orshot.com/studio) works like Canva or Figma: - **Upload your own fonts** - Match your brand typography (included free, Certifier charges $339/mo for this) - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Elements auto-adjust when names are longer or shorter - **Save brand assets** - Reuse logos, colors across all templates - **Make any element dynamic** - Change text, images, colors via API Need multi-page certificates? Create course booklets or detailed credentials with [carousel templates](https://orshot.com/blog/introducing-carousel-templates). ## What Will You Save? | Your Volume | With Certifier | With Orshot | You Save | | :-------------------- | :------------- | :------------------ | :---------- | | **250 certs/year** | Free (limited) | Free (all features) | Features | | **1,000 certs/month** | $67/month | $39/month | $336/year | | **5,000 certs/month** | $209/month | $99/month | $1,320/year | Plus, you stop paying for add-ons. Custom fonts, premium templates, bulk generation - all included. ## Who Uses Orshot for Certificates? **Course creators & educators** - Generate completion certificates automatically when students finish. Connect to Teachable, Thinkific, or your custom LMS via API. **Corporate training teams** - Issue compliance certificates, training completions, and onboarding credentials. Bulk generate from HR spreadsheets. **Event organizers** - Participation certificates for webinars, conferences, workshops. Use [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) so attendees can generate their own. **Certification programs** - Professional badges and credentials. Export as PNG for LinkedIn, PDF for printing. **Social media announcements** - Generate a certificate and [publish it directly to LinkedIn, Twitter/X, and 13+ other platforms](https://orshot.com/docs/publish/introduction) in one step. Great for public recognition of achievements. ## Switching from Certifier Takes ~30 Minutes **Step 1: Recreate your template (15-20 min)** Open [Orshot Studio](https://orshot.com/studio) and rebuild your certificate design. Or take a shortcut: - Screenshot your Certifier certificate → drop into [AI Template Generator](https://orshot.com/features/ai-template-generator) - Have a Canva file? [Import directly](https://orshot.com/solutions/canva-template-to-api) - Figma design? [Use the plugin](https://orshot.com/solutions/figma-automation-via-rest-api) **Step 2: Update your integration (10 min)** If you're using Zapier or Make, swap the Certifier action for Orshot. Same data mapping concept. For API integration, update the endpoint. [See the API docs](https://orshot.com/docs/api-reference). **Step 3: Test and go live** Generate a few test certificates. If something looks off, tweak in Studio. Most people are fully switched within an hour. ## Start with a Template Don't want to design from scratch? Pick a certificate template and customize: [Open the embed](https://orshot.com/templates/shared/7rphjkws/embed?view=view) Browse more [certificate templates](https://orshot.com/templates/g/certificate) ## Connect to Your Existing Tools Orshot integrates with everything you're already using: - **n8n** - Free, open-source automation ([Google Sheets tutorial](https://orshot.com/blog/google-sheets-certificates-automation)) - **Make** - Visual workflows ([integration guide](https://orshot.com/integrations)) - **Zapier** - 5,000+ app connections - **Direct API** - For custom integrations - **Dynamic URLs** - Generate via URL parameters, no code needed - **CLI** - Batch generate from command line ## Common Questions **Q: Can I use any font for my certificates?** Yes. On all paid Orshot plans, you can [upload any custom font](https://orshot.com/docs/orshot-studio/using-custom-fonts) file (TTF/OTF). Certifier often restricts custom branding features to their enterprise-level plans. **Q: How do I add verification QR codes to certificates?** We support dynamic QR codes. You can generate a unique ID for each recipient via API, create a verification URL, and embed it as a QR code directly on the certificate. **Q: Can I generate video certificates?** Yes. Stand out on LinkedIn by issuing video certificates (MP4) to your students or attendees. Orshot is one of the few platforms that treats video as a first-class citizen alongside PDF and image generation. **Q: Is there a limit on certificate generation volume?** No hard limits. Whether you verify 50 people or 50,000, our infrastructure scales with you. You simply pay a clear [monthly rate](https://orshot.com/pricing) for the render volume you need. **Q: Can I automate certificate issuing via Zapier?** Yes. Connect Typeform, Google Sheets, or your LMS to Orshot via [Zapier](https://orshot.com/docs/integrations/zapier). When a course is completed, the certificate is generated and emailed automatically. **Q: Does Orshot support multi-page certificate PDFs?** Yes. You can generate [multi-page PDF documents](https://orshot.com/blog/introducing-carousel-templates) containing all certificates in a single file, or individual certificates per recipient. Perfect for batch printing or digital distribution. **Q: Is there an agency partner program for certificate providers?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools for agencies managing multiple clients. **Q: What integrations does Orshot support for certificate automation?** Orshot integrates with [Zapier](https://orshot.com/docs/integrations/zapier), [Make](https://orshot.com/docs/integrations/make), [n8n](https://orshot.com/docs/integrations/n8n), Google Sheets via Airtable, and more. We also offer a full REST API with SDKs for custom integrations. ## For Agencies Building certificate automation for multiple clients? Check out the [Agency Partner Program](https://orshot.com/partner-program) — free to join, unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. ## Ready to Switch? 1. **Try it now** → [Free Certificate Generator](https://orshot.com/tools/certificate-generator) (no signup) 2. **Sign up** → [30 free credits](https://orshot.com/signup), all features included 3. **Migrate your template** → 15-30 minutes in Studio 4. **Connect your workflow** → Same integrations you're already using Questions? Use the chat button or [email us](mailto:hi@orshot.com). We'll help you migrate. [**Get Started Free →**](https://orshot.com/signup) --- ### [Connect Orshot with AI Agents using Orshot Remote MCP Server](https://orshot.com/blog/orshot-remote-mcp-server) > Use Orshot's image and video generation capabilities directly inside Claude, Cursor, and Windsurf without installing anything locally We are excited to announce the **[Orshot Remote MCP Server](https://orshot.com/docs/integrations/mcp-server)**. You can now connect Orshot's image and video generation capabilities to your favorite AI coding agents—like Cursor, Windsurf, and Claude—without installing anything on your machine. Use natural language to generating mockups, screenshots, PDFs, and videos directly within your coding or writing workflow. ### Why Remote? Previously, using our Model Context Protocol (MCP) server required cloning a repository, installing Node.js dependencies, and running a local process. With the new **Remote MCP (SSE)** support, connection is instant. No terminal commands, no maintenance. Just add one URL and you are ready to go. ### How to Connect #### Cursor (Agent Mode) 1. Go to **Settings** > **General** > **MCP Servers**. 2. Click **+ Add new MCP server**. 3. Select **SSE** as the type. 4. Enter the URL: `https://mcp.orshot.com/mcp` #### Windsurf & VS Code Look for "Remote MCP" or "SSE" configuration in your settings and use the same URL: `https://mcp.orshot.com/mcp`. For **VS Code** users with the MCP extension, you can also add this to your `.vscode/mcp.json` or global configuration: ```json { "servers": { "orshot": { "type": "sse", "url": "https://mcp.orshot.com/mcp" } } } ``` ### How to Use Since the remote server is shared, it doesn't know your API key by default. You simply provide it in your prompt when you ask for a task. **Example Prompts:** - "Generate a website screenshot of apple.com. Here is my API key: os-..." - "List all my studio templates and pick one to generate a mockup using this logo. API Key: os-..." - "Create a PDF certificate for 'John Doe' using the 'Certificate' template. API Key: os-..." - "Generate a 5-second MP4 video from my 'Intro' template. API Key: os-..." ### Capabilities The server exposes powerful tools to your AI agent: - **Unified Generation**: Automatically detects if you are using a Library or Studio template. - **Multimedia Support**: Generate Images (PNG/JPG/WEBP/AVIF), Videos (MP4/WebM/GIF), and PDFs. - **Documentation Access**: The agent can look up Orshot API docs for you to answer technical questions. - **API Utilities**: Check your API status and validate your key. ### Learn More To learn more about configuration options and detailed usage instructions, check out the documentation. [Read MCP Server Documentation](https://orshot.com/docs/integrations/mcp-server) --- ### [Create Better Videos with Audio and Motion](https://orshot.com/blog/video-audio-improvements) > Build richer video templates with stock media, Ken Burns motion, voiceovers, ambient audio, word-synced captions and animated waveforms in Orshot. Orshot video templates can now do more of the work that usually happens after design: find the right footage, add cinematic motion, generate narration, mix audio and keep captions in sync. The result is a reusable template that can produce polished launch videos, ads, social posts and personalized reels in [Studio](https://orshot.com/features/orshot-studio), through the API or with an AI agent. [Watch the video](https://orshot.com/blog/video-audio-improvements/agent-demo.mp4) _Created with Orshot for agents in ChatGPT._ ## More movement, less manual editing Start with stock photos or video, then build the pacing directly into the template. - Search and place stock images and video without leaving Studio - Add **Ken Burns**, pulse, drift, float, rotate and other ambient motion - Combine enter and exit animations with precise layer timing - Use more page transitions for multi-scene video - Preview the composition on the visual timeline before rendering ## Give every template a voice Audio now lives with the template instead of being a separate editing step. - Generate a voiceover from your script and choose the voice that fits the story - Make narration dynamic to speak different copy on every render - Add ambient audio, music and sound effects across multiple tracks - Trim, offset, fade, loop, mute and balance each track independently - Generate word-synced captions and choose from social-ready reveal styles - Add a waveform that animates with the selected audio track Audio, captions and timing are saved with the template and included automatically in video renders. ## Use it from Studio, the API or an agent **In Studio**, build the complete video visually: footage, motion, voiceover, sound, captions and timing. **With the API**, send new content to the same template. If the voiceover script is set as a dynamic parameter, each render can speak different words: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer ", }, body: JSON.stringify({ templateId: "", modifications: { headline: "Turn one launch into a week of content", voiceover: "Create once, personalize every version, and publish everywhere.", hero_video: "https://example.com/launch.mp4", }, response: { format: "mp4", type: "url" }, }), }); const result = await response.json(); console.log(result.data.content); ``` The parameter names come from your template, so you decide which text, narration, images and video stay dynamic. **With an agent**, describe the finished video instead of assembling every step yourself: > Create a 15-second vertical launch reel with stock video, Ken Burns motion on stills, a concise voiceover, word-synced captions, ambient audio and a branded CTA. Keep the headline and narration dynamic. Orshot's MCP server can turn that brief into a reusable template, render it and continue into your publishing workflow. ## Built for repeatable video production These improvements are useful anywhere the story changes but the visual system should stay consistent: feature launches, UGC-style ads, product updates, real-estate videos, personalized campaigns and scheduled social content. We are continuing to improve video composition, audio authoring and agent-led template creation. The goal is simple: fewer editing handoffs and better output from every reusable template. [Explore Video Generation](https://orshot.com/docs/video-generation) --- ### [Creatopy Alternative for Automated, On-Brand Ad Generation](https://orshot.com/blog/creatopy-api-alternative) > Design an ad once, then render it in every size and format from a self-serve API. Flat credits, not Creatopy's seat pricing. 30 free credits, no card. Creatopy has a new name. As of late 2025 it's **The Brief**, the latest identity for a tool that started as Bannersnack and became Creatopy along the way. With the rename it leaned harder into being a full display-advertising platform, with HTML5 banner ad units, dynamic creative, and ad serving to 25+ networks. That's a fair trade if you run paid display at scale. But it's a lot of platform if all you wanted was a clean way to turn one design into on-brand images, PDFs, and video from your own code. You're paying per seat, and the render API sits behind an Enterprise contract. Orshot is the lean alternative for that second job. One visual template becomes a REST endpoint, and a single call renders it in every size and format you need. The API is self-serve on every plan, including the free one. [**Try Orshot free**](https://orshot.com/signup "target=_blank") with 30 credits, no card. **Migrate from Creatopy to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Creatopy API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ## Where Creatopy starts getting in the way The editor isn't the problem. People like it for spinning up ad variations fast. The friction shows up the moment you want to *automate* that output, or just pay for what you actually use. A few patterns come up again and again in public reviews ([Trustpilot](https://www.trustpilot.com/review/www.thebrief.ai "target=_blank rel=nofollow"), [G2](https://www.g2.com/products/creatopy/reviews "target=_blank rel=nofollow"), [GetApp](https://www.getapp.com/marketing-software/a/creatopy/ "target=_blank rel=nofollow")): - **The render API is an Enterprise line item.** It exists, and it's a genuine REST API. But "API access" only shows up on the custom-priced Enterprise tier, not the self-serve $29–$79/mo plans. To automate anything, you book a sales call first. - **You pay per seat, and there's no free plan.** You get a 7-day trial, then per-seat pricing that climbs with the team. Trustpilot has a steady run of reviewers reporting charges after they cancelled, or being auto-enrolled into a paid "Pro" trial they thought was free. - **Exports don't always match the editor.** This one carried over from the Creatopy era: the rendered file can drift from what you designed. - **Three rebrands in.** Long-time Bannersnack and Creatopy users describe being migrated twice into a product they're still adjusting to. None of that makes Creatopy a weak product. If your core job is HTML5 animated banner ad units for ad networks, DCO that builds creative from a feed, and ad serving, then Creatopy is genuinely built for it and Orshot isn't. But once rendering on-brand creative becomes recurring, programmatic work, the platform starts sitting between you and the output. ## One template, every size, without re-exporting Here's how Orshot works. You design the ad once in [Orshot Studio](https://orshot.com/studio), a drag-and-drop, Figma-like editor. Lock your brand fonts, colors, and logo, then mark only the parts that change (headline, price, product image) as parameters. From there the design is an **API endpoint**, and every render comes back pixel-exact and on-brand, whether you make one or ten thousand. ![Orshot Smart Resize panel in Studio re-laying one ad design into Story, Square, Landscape and Open Graph sizes](https://orshot.com/blog/smart-resize/panel.webp) Because the layout is a template and not a fixed file, [Smart Resize](https://orshot.com/features/smart-resize) re-flows it into any canvas on demand. Here's one design rendered as a Story, a square post, and a landscape banner, all from a single call: ![A food delivery ad template rendered as a 1080x1920 Instagram Story via Orshot Smart Resize](https://orshot.com/blog/creatopy-api-alternative/resize-story.webp) ![The same food delivery ad rendered as a 1080x1080 square via Orshot Smart Resize](https://orshot.com/blog/creatopy-api-alternative/resize-square.webp) ![The same food delivery ad rendered as a 1200x630 landscape banner via Orshot Smart Resize](https://orshot.com/blog/creatopy-api-alternative/resize-og.webp) That's one template and one request. No redesign, no re-export per format: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_ad_template_id", modifications: { headline: "Order your favorite food now", cta_text: "Download Now", }, response: { type: "url", format: "png" }, size: "instagram-story", extraSizes: ["1080x1080", "1200x630"], }), }); ``` Presets cover `instagram-story`, `facebook-story`, `linkedin-post`, `youtube-thumbnail`, `og-image`, `leaderboard-ad`, `medium-rectangle-ad`, and more, or you can pass any `WIDTHxHEIGHT`. You don't have to start from a blank canvas, either. The [ad template gallery](https://orshot.com/templates/g/ads "target=_blank") has ready-made ads to drop your copy into, and anything you've already built in [Canva](https://orshot.com/solutions/canva-template-to-api) or [Figma](https://orshot.com/solutions/figma-automation-via-rest-api) imports and becomes an endpoint too. ## The same design as an image, a PDF, *and* a video This is where one template pays off twice. Swap `"png"` for `"pdf"`, `"mp4"`, `"webp"`, or `"gif"` in the same call, and you get a different format out of the same design. No separate tool, no separate export. - **Video ads from the same template.** Studio has a timeline with per-layer animations and video layers, so the ad you designed also exports as an animated **MP4, WebM, or GIF**. Creatopy does video and HTML5 too, but Orshot's comes from the same `/v1/studio/render` call you already wrote. - **PDF, which Creatopy doesn't do.** The same design renders to a print-ready PDF, which helps when an "ad" is really a one-pager, a menu, or a flyer. - **Modern still formats.** AVIF and WebP sit alongside PNG and JPG, so one [image generation](https://orshot.com/solutions/image-generation-api) endpoint hands you a small, modern file. One template, one credit pool, every format. A credit is just 1 image, 1 PDF page, or 1 second of video, with no per-seat math. ## Banners on autopilot (API, n8n, Make, Zapier, bulk) Creatopy's automation lives on the Enterprise tier. On Orshot it's the default, and every template is an endpoint you can drive from anywhere: - **REST API and SDKs** for Node, Python, Ruby, and PHP. Every template is a render endpoint. - **Zapier, Make, and n8n nodes** that render a fresh banner whenever a row lands in Airtable, a product changes in your CMS, or a deal closes. - **[MCP server](https://orshot.com/agents "target=_blank")** so you can point Claude, Cursor, or ChatGPT at it and let an agent generate ad sets on a webhook or cron. Tell it "render the launch banner in five sizes and drop them in our bucket," and it does, no clicks. - **Bulk render** that loops a spreadsheet of products, prices, or locales and produces the whole campaign in one batch. That's the core of [automated image generation](https://orshot.com/solutions/image-generation-api) and [social media content automation](https://orshot.com/solutions/ai-marketing-automation-for-agencies). Here's an AI agent driving Orshot through the MCP server, going from a plain prompt to finished, on-brand renders with no clicks: [Using Orshot from an AI agent via the MCP server](https://www.youtube.com/watch?v=OhgdZtqEQK0) ```javascript // Generate the whole campaign from a product list for (const product of products) { await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_ad_template_id", modifications: { headline: product.headline, cta_text: product.cta, hero_food_photo: product.imageUrl, }, response: { type: "url", format: "png" }, extraSizes: ["instagram-story", "1080x1080", "1200x630"], }), }); } ``` ## Orshot vs Creatopy, at a glance They overlap in the editor and diverge everywhere else. Creatopy _builds and serves display ads_ for ad networks. Orshot _renders and automates_ the on-brand creative you've already designed, across image, PDF, and video. | Feature | Orshot | Creatopy | | :-- | :-: | :-: | | Drag-and-drop visual editor | Yes | Yes | | Self-serve REST API (no enterprise contract) | Yes | Enterprise only | | Auto-resize one design to every size | Yes | Yes | | Animated video output (MP4/WebM/GIF) | Yes | Yes | | PDF export from the same template | Yes | No | | HTML5 banner ad units (.zip) for ad networks | No | Yes | | Ad serving to Google/Meta + 25+ networks | No | Yes | | Bulk render from a spreadsheet/CSV | Yes | Enterprise feeds | | Zapier / Make / n8n + MCP for AI agents | Yes | No | | Import from Canva / Figma | Yes | No | | Publish to 15+ social platforms | Yes | No | | Free tier, no credit card | Yes | No | | Flat credits (1 = 1 image / PDF page / video sec) | Yes | No | | Entry price | $39/mo flat (API included) | $29/mo per seat (API = Enterprise) | > **Bottom line:** Pick Creatopy if you live in display advertising, with HTML5 ad units, DCO, and ad serving. Pick Orshot if you want a self-serve API, flat pricing, and pixel-exact creative across image, PDF, and video. Plenty of teams run both: serve display ads in one, automate every other on-brand asset in the other. ## Common questions **Q: Wait, is Creatopy now called The Brief?** Yes. Creatopy rebranded to The Brief in late 2025, after starting life as Bannersnack, and creatopy.com now redirects to thebrief.ai. People still search 'Creatopy,' so that's the name used here, but the live product is The Brief. **Q: Does Creatopy have an API, and how is Orshot's different?** Creatopy does have a REST render API, but access is an Enterprise-tier, custom-priced line item, so it isn't included on the self-serve $29 to $79/mo plans. Orshot's render API ([/v1/studio/render](https://orshot.com/docs/api-reference/render-from-studio-template)) is included on every paid plan and the free tier, with no sales call required. **Q: Can Orshot make HTML5 banner ads for ad networks?** No, and that's the honest answer. Orshot renders flat images, PDFs, and video (MP4/WebM/GIF with per-layer animations). It does not export interactive HTML5 ad units (.zip files with ClickTags) or serve ads to networks. For static and video ad creative produced on-brand at scale, Orshot fits. For HTML5 ad units and ad serving, Creatopy is the right tool. **Q: How does Orshot's pricing compare?** Orshot is flat: free to start with 30 credits and no card, then $39/mo for 1,500 credits, where 1 credit is 1 image, 1 PDF page, or 1 second of video. Creatopy has no free plan (just a 7-day trial), prices per seat from $29/mo billed annually, and keeps API access on the Enterprise tier. See the [pricing page](https://orshot.com/pricing) for the full breakdown. **Q: Can Orshot resize one ad into every format automatically?** Yes, that's Smart Resize. Design once and Orshot deterministically re-lays-out the design to fit any canvas: Story, square, landscape banner, leaderboard, or YouTube thumbnail. You can render multiple sizes in a single API call with extraSizes. **Q: Is Orshot a direct replacement for Creatopy?** Not one-to-one, since they solve adjacent problems. Creatopy (now The Brief) is a display-ad platform that builds HTML5 banner units and serves them to ad networks. Orshot is a visual editor plus a self-serve API that renders on-brand images, PDFs, and video from one template. Many teams use Creatopy for ad serving and Orshot to automate everything else. ## Bottom line If Creatopy has grown into more platform than you need, an ad-network suite with the API locked behind Enterprise, then Orshot is the leaner path. Design your banner once, then generate every on-brand variation (image, PDF, and video) from one self-serve API and one predictable plan. No enterprise contract, no per-seat bill. Just the design you made, in every size you need, whenever you need it. [**Get started free →**](https://orshot.com/signup "target=_blank") with 30 credits, all features, no card. --- ### [Free Chrome Extension for Twitter Screenshots](https://orshot.com/blog/twitter-screenshot-chrome-extension) > Generate beautiful X/Twitter screenshots with one click using the Orshot Chrome extension - perfect for content creators and marketers Creating beautiful screenshots of tweets has never been easier. The **Orshot Chrome Extension** lets you capture stunning X/Twitter screenshots with just one click, directly from your browser It uses Orshot's [Twitter Screenshot API](https://orshot.com/templates/tweet-image) internally to generate beautiful tweet screenshots, and unlike most other apps, it also includes quoted and replied to tweets in the screenshots giving you a full picture We also have an app that [converts Twitter threads to carousels](https://orshot.com/tools/twitter-carousel-generator), in case you're looking for that. And if you'd rather generate screenshots programmatically — or you're migrating from a shutting-down service — see our [Twitter Screenshot API](https://orshot.com/blog/tweetpik-api-alternative) guide. [**Get the extension here →**](https://chromewebstore.google.com/detail/orshot-beautiful-xtwitter/koegcnmefgbpodbkapojflenblmpdjnm?authuser=0&hl=en) ## What is Twitter Screenshot Chrome Extension? Orshot is a lightweight Chrome extension that adds a Camera button(📸) to every tweet on Twitter/X. Instead of taking manual screenshots and editing them, you can generate professional-looking tweet screenshots instantly ![The Orshot Chrome extension adding a camera button to a tweet](https://orshot.com/blog/chrome-extension-twitter-screenshot-preview.webp) ## Key Features #### One-Click Screenshot Generation Simply click the **Camera icon** button that appears next to every tweet's like and retweet buttons. No complex setup required #### Includes Quoted and Replied-to tweets If you capture a reply or a tweet which has a quote tweet, the generated screenshot will include those too in the image #### Beautiful Modal Preview Screenshots appear in an elegant modal with options to: - Download as PNG file - Copy to clipboard for instant pasting - Preview before saving #### Fast and Lightweight Built with performance in mind, the extension doesn't slow down your browsing experience and generates screenshots in seconds #### Optional API Key Integration - Use without an API key for basic functionality - Add your Orshot API key for more screenshots and avoid rate-limits - Get a free API key at [orshot.com](https://orshot.com) #### Dark Mode Support Automatically adapts to your browser's theme preference for a consistent experience ## Demo [Watch the video](https://www.youtube.com/watch?v=XTJWl18q3_w) ## How to Install [**Get the extension here →**](https://chromewebstore.google.com/detail/orshot-beautiful-xtwitter/koegcnmefgbpodbkapojflenblmpdjnm?authuser=0&hl=en) Just add to your Chrome or Chrome based browser. Next time you open X or Twitter, you'll start seeing the Camera icon at bottom right of each tweet. Use the button to capture tweet screenshot It's perfect for content creators, marketers and publications to capture tweet screenshots for references in their content --- ### [Generate Dynamic OG Images in Astro with Orshot](https://orshot.com/blog/astro-dynamic-og-images) > Skip Satori JSX. Design OG templates visually in Orshot Studio and render dynamic social images from Astro Content Collections via one API call. If you run a blog or documentation site with Astro, you're probably adding a `title` and `description` to the frontmatter for every post. Ideally, your social previews (OG images) come from this same data. In reality, most teams either use a single static `og.jpg` across the whole site, get stuck manually designing OG cards in Figma and exporting new PNGs by hand for every content change, or struggle writing code-first Satori JSX with time spent on learning how to load custom fonts and wrangle limited CSS just to match the design given to them in Figma. The approaches above work, and there are solid tutorials and integrations for it but it also means every layout tweak is a pull request, every new font is more boilerplate, and you are debugging flexbox in a constrained runtime instead of moving type on a canvas. Marketing or DevRel team cannot adjust the card without asking an engineer to touch code and re-deploy. In this guide, you'll separate and save your OG image template layers in Orshot, allowing anyone to make updates visually in Orshot Studio without ever needing to change the site code again after setup. Design a single OG template in [Orshot Studio](https://orshot.com/features/orshot-studio), mark text or image fields (such as `title`, `description`, and `tag`) as parameters, and then use an Astro route to call the [Orshot Image Generation API](https://orshot.com/docs/image-generation), passing in values from your Content Collection entry. This workflow also applies to [Starlight](https://starlight.astro.build/ "target=_blank rel=nofollow") docs, where each guide has its own frontmatter. You can generate OG images on demand at request time from the server, or prefetch them during the build process. ## What you'll build By the end of this guide, every blog post on your Astro site will automatically get a unique OG image rendered from your Content Collection frontmatter — no manual exports, no Satori JSX. ![Designing an OG image template in Orshot Studio](https://orshot.com/blog/orshot-agent-template-astro.webp) ## Prerequisites - Node.js and npm installed. The demo app in this tutorial uses version 22 of Node.js. - An [Orshot](https://orshot.com/) account ## Why the code-only OG Image path gets old fast Satori expects you to express the whole design as JSX with a limited CSS subset. That is fine for a minimal title-on-gradient card. It gets tiring when you want brand rules, multi-line titles that shrink gracefully, author avatars, category pills, and background images that marketing refreshes every quarter. Each change means editing code, running the dev server, opening a preview URL, and comparing output in Discord or Twitter Card Validator until it looks right. The deeper issue is ownership. OG images are marketing surface area. Locking them inside `OgImage.tsx` turns every headline experiment into an engineering task. Orshot does not remove the need for a template, but it moves the template into a visual editor where parameterized layers map cleanly to the same `modifications` object you would have built by hand in code. ## Design the OG template in Orshot Studio You can design the OG card in [Orshot Studio](https://orshot.com/studio) the same way you would any other template. I kept the first version simple i.e. a logo and site name at the top left, a large bold headline in the middle, and a lighter description underneath. No photos, no clutter, just strong hierarchy that stays readable at thumbnail size. [Open the embed](https://orshot.com/templates/shared/s2q2y5jh/embed?view=play) Here's a prompt that works: > Design an Open Graph social card template for blog link previews. Canvas 1200×630. Dark charcoal to black background, minimal and high contrast. Top left: small white circular logo placeholder and site name text "ACME" in white uppercase sans-serif. Main content aligned left with generous padding: large bold white headline spanning up to two lines ("Title of the blog in two lines."), then a smaller light gray description below spanning up to two lines ("Description in two lines."). No clutter, no photos, no CTA button. Keep strong hierarchy and readable type at thumbnail size. Parameterize: `title` (text), `description` (text), `site_name` (text), `logo` (imageUrl). Use text fit or truncate on title and description so long Astro frontmatter does not overflow. Before integrating with Astro, use the preview or Automate panel in Orshot Studio to generate a sample image with mock content. If you notice issues with how the title wraps or scales, take this opportunity to adjust width constraints or text fit settings directly within Studio, rather than waiting until after you've connected the endpoint. Finally, make a note of your template's ID and double-check the names of all modification keys. These identifiers are visible in the template playground or within the API documentation, and must exactly match the keys you will send from Astro, including letter casing and any underscores. ## Build the Astro application We will scaffold a minimal Astro app, add a blog Content Collection, expose `/og/[slug].png` as an API route, and point the layout meta tags at that URL. ### Step 1. Scaffold a new Astro project From an empty directory, create a minimal TypeScript project and start the dev server to confirm the baseline works. ```bash npm create astro@latest og-orshot-demo cd og-orshot-demo npm run dev ``` Open `http://localhost:4321` once. Stop the server before the next step. Set your production site origin in `astro.config.mjs`. Crawlers require absolute URLs in `og:image`. ```javascript title="astro.config.mjs" import { defineConfig } from "astro/config"; export default defineConfig({ site: "https://example.com", }); ``` ### Step 2. Install dependencies for on-demand OG routes On-demand OG Image routes need server output in production, so add the Node adapter and switch to hybrid mode so static pages stay static while `/og/*` renders at request time. ```bash npx astro add node --yes npm install zod ``` Then, add secrets for local development. Copy your values from [Orshot **Workspace → API Keys**](https://orshot.com/docs/quick-start/get-api-key) and from the template ID from the Studio. ```bash title=".env" ORSHOT_API_KEY="your_api_key_here" ORSHOT_OG_TEMPLATE_ID="12345" ``` Finally, reference them in `src/env.d.ts` so TypeScript knows about `import.meta.env`: ```typescript title="src/env.d.ts" /// interface ImportMetaEnv { readonly ORSHOT_API_KEY: string; readonly ORSHOT_OG_TEMPLATE_ID: string; } interface ImportMeta { readonly env: ImportMetaEnv; } ``` ### Step 3. Create a sample blog Content Collection First, define the collection schema in `src/content.config.ts`. ```typescript title="src/content.config.ts" import { z } from "astro/zod"; import { glob, file } from "astro/loaders"; import { defineCollection } from "astro:content"; const blog = defineCollection({ loader: glob({ base: "./src/content/blog", pattern: "**/*.{md,mdx}" }), schema: z.object({ title: z.string(), description: z.string(), pubDate: z.coerce.date(), }), }); export const collections = { blog }; ``` Then, add a sample post at `src/content/blog/hello-orshot.md` as follows: ```markdown title="src/content/blog/hello-orshot.md" --- title: "Hello Orshot OG images" description: "Dynamic social previews from Content Collections without Satori JSX." pubDate: 2026-05-19 --- This post exists so we have frontmatter to feed into the Orshot template. ``` Next, create a blog page at `src/pages/blog/[slug].astro` that renders the entry body. ```astro title="src/pages/blog/[slug].astro" --- import { getCollection, getEntry, render } from "astro:content"; export async function getStaticPaths() { const posts = await getCollection("blog"); return posts.map((post) => ({ params: { slug: post.data.slug } })); } const { slug } = Astro.params; const entry = await getEntry("blog", slug!); if (!entry) return Astro.redirect("/404"); const { Content } = await render(entry); --- {entry.data.title}

{entry.data.title}

``` Run the dev server again and confirm `http://localhost:4321/blog/hello-orshot` loads. Stop the server before the next step. ### Step 4. Configure the OG image API endpoint Add `src/pages/og/[slug].png.ts` with the following code (social crawlers request this URL with `GET`). The handler loads the blog entry, posts to Orshot, and returns PNG bytes from your domain. ```typescript title="src/pages/og/[slug].png.ts" import type { APIRoute } from "astro"; import { getEntry } from "astro:content"; export const prerender = false; export const GET: APIRoute = async ({ params }) => { const slug = params.slug as string; const entry = await getEntry("blog", slug); if (!entry) { return new Response("Not found", { status: 404 }); } const orshotRes = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${import.meta.env.ORSHOT_API_KEY}`, }, body: JSON.stringify({ templateId: import.meta.env.ORSHOT_OG_TEMPLATE_ID, modifications: { title: entry.data.title, description: entry.data.description, }, response: { format: "png", type: "base64", }, }), }); if (!orshotRes.ok) { const errorText = await orshotRes.text(); console.error("Orshot render failed", orshotRes.status, errorText); return new Response("Render failed", { status: 502 }); } const json = await orshotRes.json(); const raw = String(json.data.content).replace(/^data:image\/png;base64,/, ""); const bytes = Buffer.from(raw, "base64"); return new Response(bytes, { status: 200, headers: { "Content-Type": "image/png", "Cache-Control": "public, max-age=86400", }, }); }; ``` Test the endpoint directly in the browser by visiting `http://localhost:4321/og/hello-orshot.png` directly (or with a curl) once the dev server is running. > If you prefer not to proxy bytes through Astro, set `response.type` to `"url"` in the Orshot payload and return `Response.redirect(json.data.content, 302)` instead. Most teams keep the `/og/...` path on their own domain for stable crawler behavior. ### Step 5. Use the OG URL in SEO meta tags Extract a small layout component so every blog page exposes consistent Open Graph and Twitter tags. Create `src/components/Seo.astro` with the following code: ```astro title="src/components/Seo.astro" --- interface Props { title: string; description: string; slug: string; } const { title, description, slug } = Astro.props; const canonical = new URL(Astro.url.pathname, Astro.site); const ogImage = new URL(`/og/${slug}.png`, Astro.site); --- ``` Finally, import it in `src/pages/blog/[slug].astro` inside ``. ```astro title="src/pages/blog/[slug].astro" --- import Seo from "../../components/Seo.astro"; // ...existing frontmatter --- ``` Now, view page source of `http://localhost:4321/blog/hello-orshot` and confirm `og:image` resolves to `https://example.com/og/hello-orshot.png`. Paste that OG URL into a social debugger or Slack to verify the preview matches your Orshot template. ## Conclusion Astro Content Collections already give you structured metadata per page. Orshot gives you a visual, parameterized template that non-engineers can evolve. The glue between them is one API call in a dynamic route, which is smaller than maintaining a parallel Satori layout in JSX for every brand refresh. If you are starting from a single shared `og.jpg`, this is a reasonable next step before you invest in a full programmatic layout in code. If you already have Satori working, compare how often you change design versus copy. When design changes are frequent, moving the canvas to Studio and keeping Astro for data usually saves time. ## Resources - [GitHub Repository](https://github.com/rishi-raj-jain/og-orshot-astro "target=_blank rel=nofollow") --- ### [How Brendi Automates Marketing for 5,000+ Restaurants](https://orshot.com/blog/brendi-restaurants-marketing-automation) > Brendi uses Orshot to auto-generate branded marketing images for 5,000+ restaurant clients across Brazil — one template, thousands of unique outputs When you're a platform serving **5,000+ restaurants** across Brazil, every client expects polished marketing visuals — menu promotions, delivery campaigns, seasonal offers. Hiring designers for each one doesn't scale. That's the problem Brendi solved with Orshot. ## What Brendi Does ![The Brendi restaurant marketing homepage](https://orshot.com/blog/brendi-home.webp) [Brendi](https://brendi.com.br "target=_blank") is a foodtech SaaS platform that helps restaurants across Brazil run their own direct-to-customer sales channels. Think AI-powered WhatsApp ordering, digital menus, loyalty programs, and automated marketing — all designed to help restaurants sell more without relying on third-party delivery apps. The numbers behind the platform are impressive: - **5,000+ active restaurant clients** across Brazil - **$100M+** in revenue generated through the platform - **10M+ orders** processed to date Their clients include popular chains like **Will The Burguer**, **La Brasa**, **Johnnie Grill**, **Primeiro Reino Burguer**, **Moot Burguer**, and more — all relying on Brendi's platform to power their direct sales and marketing. A critical part of that marketing stack? **On-brand visual content** for every restaurant, generated on demand using [Orshot](https://orshot.com/pricing). ## The Problem: Visuals That Don't Scale Each of Brendi's restaurant clients has their own brand — logos, colors, food photography, promotional messaging. Creating unique marketing images manually for thousands of restaurants means: - **Designers bottlenecked** on repetitive, templated work - **Days of turnaround** for simple promotional banners - **Inconsistent quality** across the client base - **No way to run personalized campaigns** at the scale their platform demands When you're powering marketing automation for thousands of businesses, the images need to be as automated as the messages. ## The Solution: Orshot Templates + API Brendi uses [Orshot Studio](https://orshot.com/features/orshot-studio) to design reusable marketing templates, then renders unique images for each restaurant via the [Orshot API](https://orshot.com/docs/api-reference/render-from-studio-template). - **Template design in Studio**: Marketing templates built once with placeholders for restaurant logos, product photos, brand colors, and promo text. - **Dynamic rendering via API**: Each restaurant's brand assets and copy are swapped in at render time — one template, thousands of unique outputs. - **Integrated into their platform**: Image generation is baked into Brendi's marketing automation — restaurants get visuals without lifting a finger. ### One Template, Thousands of Brands The key insight: Brendi doesn't create a new design for every restaurant. They design a template once — say, a promotional banner layout — and use [dynamic parameters](https://orshot.com/docs/orshot-studio/setting-parameters) to inject each restaurant's: - **Logo and branding** - **Product photography** - **Custom promotional copy** - **Brand colors** The result is a unique, on-brand image for every client, generated in seconds. ## Try It Yourself: Food & Restaurant Templates Orshot has a library of ready-made [food & restaurant templates](https://orshot.com/templates/g/food) you can clone and customize. Here are a few examples similar to what Brendi generates for their clients: ### Restaurant Pasta Promo [Open the embed](https://orshot.com/studio?community_template_id=843) ### Daily Special Announcement [Open the embed](https://orshot.com/studio?community_template_id=160) ### Restaurant Grand Opening [Open the embed](https://orshot.com/studio?community_template_id=370) Each template above is fully editable — swap in your brand, photography, and copy, then render via API at any scale. Browse all [food templates →](https://orshot.com/templates/g/food "target=_blank") ## The Results - **Thousands of marketing images generated every month** — unique visuals for each restaurant client - **5,000+ restaurants** served with personalized, on-brand visuals - **Seconds, not hours** — from data to finished image - **Zero per-client design work** — templates scale automatically - **Consistent quality** across every restaurant's marketing materials What previously required a design team working around the clock now runs on autopilot as part of Brendi's platform. As they onboard more restaurants, the image generation scales with zero additional design effort. ## Why This Matters for Platforms Brendi's use case highlights a pattern we see across SaaS platforms, agencies, and marketplaces: **your users need visual content, but you can't hire designers for each one.** Whether you're generating: - Restaurant promotions like Brendi - [Personalized certificates](https://orshot.com/blog/google-sheets-certificates-automation) for education platforms - [Social media graphics](https://orshot.com/use-cases/t/auto-generate-social-media-images) for marketing tools - Product cards for e-commerce marketplaces The approach is the same — design once in Studio, render at scale via API. > If your platform needs to generate branded visuals for your users, you're solving the same problem Brendi did. ## Get Started Orshot gives you a visual editor to design templates and a REST API to render them with dynamic data. No complex infrastructure, no per-image design work. [Start generating images at scale →](https://orshot.com/pricing) --- ### [How ClickUp is Automating Banner Generation using Orshot](https://orshot.com/blog/clickup-banner-generation) > ClickUp uses Orshot to auto-generate yearly wrap banners for over 100,000 users, producing 300+ banners per minute after just 30 minutes of template design. When you're serving over 100,000 users and need to generate personalized yearly wrap banners for each one, manual design simply isn't an option. That's exactly the challenge [ClickUp](https://clickup.com "target=_blank") faced — and why they turned to Orshot for a scalable solution. If you see any of the below ClickUp's 2025 Wrapped banner in the wild, it's generated with Orshot. ![A ClickUp Wrapped banner generated with Orshot](https://orshot.com/blog/clickup-wrapped-banner.webp) ## The Challenge ClickUp wanted to create a memorable end-of-year experience for their users by generating personalized yearly wrap banners. With over 100,000 users to serve, they needed a solution that was both fast to set up and powerful enough to handle massive scale. ## The Solution: Orshot Studio + API ClickUp chose Orshot to automate their banner generation workflow. Using [Orshot Studio](https://orshot.com/features/orshot-studio), their team designed a dynamic template that could be personalized with each user's data — productivity stats, achievements, and custom branding elements. ### Quick Setup The template design process was remarkably efficient. Using Orshot Studio's intuitive interface, the ClickUp team went from concept to production-ready template in **just about 30 minutes**. No complex design tools or lengthy development cycles required. They simply: 1. Designed their banner template in Studio 2. Set up [dynamic parameters](https://orshot.com/docs/orshot-studio/setting-parameters) for user data 3. Connected their backend to the [Orshot API](https://orshot.com/docs/api-reference/render-from-studio-template) ## The Results The numbers speak for themselves: - **300+ banners per minute** — consistent, reliable generation at scale - **100,000+ personalized banners** — unique to each user - **30 minutes** — from blank canvas to production template - **Zero maintenance** — fully automated workflow What would have taken weeks of design work and custom development was accomplished in a fraction of the time, letting the ClickUp team focus on what matters: creating value for their users. ## Why It Works Orshot's combination of visual design tools and powerful API infrastructure makes it ideal for this kind of automation: - **No-code template design** — designers work directly in Studio without developer handoff - **Instant API integration** — templates are immediately available via REST API - **Proven scale** — built to handle thousands of renders per minute - **Flexible output** — generate images, PDFs, or videos from the same template Whether you're [generating certificates](https://orshot.com/blog/google-sheets-certificates-automation), [social media graphics](https://orshot.com/use-cases/t/auto-generate-social-media-images), personalized reports, or yearly wrap banners like ClickUp, Orshot gives you the tools to design once and generate at scale. Ready to automate your visual content? [Get Started for free](https://orshot.com/pricing) --- ### [How CreatorCore Automates 100k+ Visuals for Influencers](https://orshot.com/blog/influencer-marketing-automation-creatorcore) > CreatorCore runs influencer campaigns for agencies and music labels. See how they've automated 100,000+ visuals for influencers using Orshot. CreatorCore is an all-in-one platform for the creator economy. Agencies, talent managers, brands and music labels use it to run influencer campaigns end to end: discover creators, manage campaigns, build media kits, track performance and handle payouts. Teams working with Capitol Records, Atlantic Records and Warner Bros. run their operations on it. Every one of those campaigns needs its own graphics. Since April 2025, CreatorCore has generated them through Orshot: - **100,000+ images** rendered through the API - **10,000+ images a month** at the current pace - **99.7%** of requests successful - **Zero** designers involved ![The CreatorCore homepage](https://orshot.com/blog/creatorcore-home.webp) ## The Migration [CreatorCore](https://creatorcore.co "target=_blank") originally generated their images through Pika, another product of ours. When the Pika API was retired in favor of Orshot, they were one of the teams we reached out to directly and helped move across. The migration was straightforward, and once it was done the integration largely disappeared into the background, which is the outcome everyone wants from infrastructure. > — Nic Campanile, Co-Founder, CreatorCore ## The Problem Every Platform Runs Into CreatorCore's customers are agencies, and every agency has clients of its own. Every client runs campaigns, and every campaign needs graphics on that client's branding, usually the same week the numbers land. That leaves a platform with three unappealing options: staff designers to rebuild the same layout a thousand times, ask customers to make their own graphics elsewhere, or ship without the visuals and let the product feel incomplete. The work itself is repetitive by nature. Same layout, different data. That is what makes it a good fit for automation. ## How They Set It Up CreatorCore did not commission a custom design. They chose a ready-made social media template from the Orshot library, connected it to the [render API](https://orshot.com/docs/api-reference/render-from-template) and passed their customers' data through it. - **A template from the library**: Chosen off the shelf rather than designed from scratch, with dynamic parameters for text, images and branding already in place. - **One API call per image**: Their platform sends each customer's data and receives a finished image in seconds. One template produces thousands of distinct outputs. - **Invisible to the end customer**: The graphics appear inside CreatorCore as part of their product. Nobody has to open a design tool. ## Try the Same Template Below is a template from the Orshot library, similar to the kind CreatorCore started with. Change the photo, the caption or the username to see how it responds. If it is useful, save it to your workspace and start rendering it through the API. [Open the embed](https://orshot.com/templates/shared/ldk8htdg/embed?view=view) There are plenty more in the [social media templates](https://orshot.com/templates/g/social-media) and [Instagram templates](https://orshot.com/templates/g/instagram) collections. ## The Same Pattern, Across Industries CreatorCore is not an unusual case. [Brendi](https://orshot.com/blog/brendi-restaurants-marketing-automation) does the same for more than 5,000 restaurants across Brazil, and [agencies](https://orshot.com/solutions/ai-marketing-automation-for-agencies) run the same setup across their whole client roster. The shape is consistent: your users expect visual content, staffing a design team for each of them is not realistic, so image generation becomes a feature you ship rather than a queue you manage. Choose a template or design your own, connect it to the API, and it runs quietly from there. 30 credits free, no card needed. [Start generating images at scale](https://orshot.com/signup?via=blog-creatorcore-case-study) --- ### [How Ivan is cross-posting Twitter Threads on Instagram and TikTok](https://orshot.com/blog/twitter-thread-to-carousel) > Meet Ivan, a writer, storyteller and author who has automated carousel generation for Intsgram and Tiktok from his Twitter threads using this free tool Meet Ivan, a writer, storyteller and author who was spending good time manually converting his Twitter threads into Instagram carousels and TikTok videos. Today, he's automated this process using Orshot, saving him time and manual effort ## The Story ![Customer testimonial from Ivan about Orshot](https://orshot.com/blog/ivan-testimonial.webp) About last week Ivan signed up on Orshot, he was looking to automate cross-posting his Twitter threads on his Instagram and Tiktok Ivan is a writer, storyteller and a published author, and has a huge following on his socials with [130k+ on X](https://x.com/ivanfamil), [53k+ on Instagram](https://www.instagram.com/ivanfamil) and LinkedIn He didn't want to manually screenshot his Thread tweets and then resize them for Instagram/Tiktok and then upload them, so he was looking for a tool that could help him automatically screenshot those threads and put them in size ready to be posted on his other socials. There were [tools like TweetPik](https://orshot.com/blog/tweetpik-api-alternative) which could do that, but they don't support Twitter threads Ivan figured Orshot wouldn't solve his problem, since there was no direct option to automate Twitter thread screenshot and automatically resize them for other social platforms I instantly sent him an email asking about his use case, his first reply was "... yeah I tried but I don't think Orshot can help me with that" 😅 The best thing about this reply was I instantly knew what exactly Ivan was trying to do. And now that I understood the problem, and that i was something that didn't exist in Orshot at that point, but can be done, I told Ivan that I can add this feature in Orshot Ivan agreed to give it a try and joined Orshot's Slack, where we discussed specifics about his use case And after bunch of automation explorations on Zapier, new APIs, trials and testing we built this tool which helps him auto-generate carousels for his Instagram, LinkedIn and Tiktok from his Twitter threads I built this tool with Ivan with lots of feedback from him Here's a quick demo of the tool in action: [Watch the video](https://www.youtube.com/watch?v=jgvvWEmz6l4) ## How Ivan is using Orshot Ivan writes lots of threads on Twitter. And to repurpose his content for other social platforms, all he does now is paste the link to those threads in [**Twitter Carousel Generator**](https://orshot.com/tools/twitter-carousel-generator) and the tool automatically generates carousel slides for him, in just a matter of seconds ![The Orshot Twitter thread to carousel generator](https://orshot.com/blog/twitter-carousel-generator-tool.webp) You can select the platform for which you want the slides for from LinkedIn, Instagram, Tiktok. On top of that, you can also customize the appearance of the carousel images Once the carousel is generated, you can download them as images or PDF — or skip the download entirely and post straight to Instagram, TikTok, LinkedIn, and 10+ other platforms using [Orshot Social Publish](https://orshot.com/docs/publish/introduction). What used to take minutes and lots of manual screenshotting and resizing, can now be done within seconds with this tool [**Try Twitter Carousel Generator**](https://orshot.com/tools/twitter-carousel-generator)(free) --- ### [How to add Image and PDF Attachment Automations in Airtable](https://orshot.com/blog/airtable-image-automation) > Automatically add branded image and PDF attachments to Airtable records. Render via a script or Make, Zapier, or n8n and write the file back. 30 free credits. Airtable is great at holding data — testimonials, products, listings, events. It's just not built to turn that data into finished graphics. So the work lands on you: export to a sheet, open Canva, rebuild the same layout for every row. This is about automating that away. Design the layout once in Orshot, point an [Airtable automation](https://www.airtable.com/platform/automations "target=_blank rel=nofollow") at it, and every record renders itself into a branded image or PDF — with the file written straight back into an attachment field. Quick expectation-check, since "images from Airtable" gets used two ways: - **AI art from a prompt** — type "a watercolor fox," get a fox. That's a text-to-image model, not this. - **Designed graphics and PDFs from your records** — every row becomes an on-brand card, certificate, or social post. That's what we're doing, basically [template-based graphics from your Airtable data](https://orshot.com/blog/template-based-image-generation-tools). [**Try it on your own base free**](https://orshot.com/pricing "target=_blank") **— 30 credits, no card.** ## What you'll build Here's the end state. This is a testimonials table where every quote rendered itself into a branded review card, dropped right into the Attachments field: ![An Airtable testimonials table where each quote has rendered into a branded review card in the Attachments column](https://orshot.com/blog/airtable-image-automation/04-airtable-result.webp) Same idea works for product cards, event banners, listing graphics, or per-record certificates — you template the design once, then every row fills it in. ## Step 1 — your table You need a **Quote** column for the text and an **Attachments** field for the finished card. Add a column for anything else each card should pull from your data — a name, a company, a stat — then map it in the next step. ## Step 2 — a template The Attachments column fills from an Orshot template — the design your rows pour into. This is the review card open in [Studio](https://orshot.com/features/orshot-studio), with the quote, stat, photo, and name all set up as fields: ![The review-card template open in Orshot Studio, with the quote, stat, photo, and customer fields](https://orshot.com/blog/airtable-image-automation/05-studio-template.webp) Build your own from scratch, generate one with AI, or paste a Canva link and start from that: Mark the parts you want driven by data — the quote, a name, a stat — as dynamic, and you're ready to wire it up. ## Step 3 — the render This is the part that calls Orshot and writes the card back. In Airtable it runs in the Scripting extension (fired by a button) or an Automation's _Run a script_ action — both are on Airtable's paid (Team) plans. On the Free plan, skip to the [no-code route](#no-code-make-zapier-or-n8n) below; it works on any plan. You don't have to write the script from scratch. Open your template, hit **Automate → Airtable**, and Orshot hands you a ready-made script for that template with its fields already mapped — here's a trimmed version that drives the card from a couple of columns: ![Orshot's Quick Connect sheet on the Airtable tab — the ready-made Airtable Scripting code for this template](https://orshot.com/blog/airtable-image-automation/06-quick-connect-airtable.webp) It reads a row, sends its fields to Orshot, and saves the returned file to the attachment field: ```javascript // Airtable script — render a review card from each row const table = base.getTable("Testimonials"); const record = await input.recordAsync("Pick a record", table); const res = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "your_template_id", modifications: { // map each column to a field in your template quote: record.getCellValueAsString("Quote"), customer_name: record.getCellValueAsString("Customer"), customer_title: record.getCellValueAsString("Title"), // add company, stat_number, stat_label, customer_photo to drive the rest }, response: { type: "url", format: "png" }, // "pdf" gives a document instead }), }); const { data } = await res.json(); await table.updateRecordAsync(record, { Attachments: [{ url: data.content }] }); ``` `modifications` maps your columns onto the template. The render comes back as a hosted URL, and `updateRecordAsync` drops it into the Attachments field — that attachment URL is what shows the card right in the record — the same card you saw up top. (Quick Connect names the field `Orshot Image`; I used Airtable's default `Attachments` — use either, just match it in the script, and keep your key in the script's secrets, not in a shared base.) ## No-code: Make, Zapier, or n8n On a Free Airtable plan, or if you'd rather not touch code, wire it up in a no-code tool instead. Orshot connects to Zapier, Make, n8n, and Pipedream directly: ![Orshot's no-code connectors — Airtable, Zapier, Make, n8n, and Pipedream](https://orshot.com/blog/airtable-image-automation/01-integrations.webp) The recipe's the same in all of them: - **Trigger** — a new or updated Airtable record - **Render** — send the fields to an Orshot render step - **Write back** — update the record with the URL that returns Full walkthroughs for [Make](https://orshot.com/blog/orshot-make-integration) and [n8n](https://orshot.com/blog/n8n-marketing-automation-tutorial). If you've built a [Sheets-to-image flow](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets) before, this is the same shape against your base. ## Then let it run One render is a demo. The point is never thinking about it again. With the [content automation](https://orshot.com/solutions/ai-marketing-automation-for-agencies) in place, every new row turns itself into a finished file — like this base quietly rendering content and listings on its own: ![Orshot Automations — Airtable records turning into images and PDFs automatically](https://orshot.com/blog/airtable-image-automation/02-automations.webp) A few things worth knowing: - **PDFs, not just images** — switch `format` to `pdf` and the same template becomes a per-record certificate, invoice, or one-pager. `mp4` gives you a short clip. - **Backfill** old rows by looping the script over a view, or batch the whole set at once - **It scales** — renders run in parallel, so a big batch doesn't crawl [**Point it at your base →**](https://orshot.com/pricing "target=_blank") — free, 30 credits, no card. ## Common questions **Q: Is this an Airtable automation, or do I click a button?** Both work, on a paid Airtable plan: the Scripting extension fires on a button click, and Airtable's Automations can run the same script on a 'record created' or 'record updated' trigger. On any plan — including Free — Make, Zapier, or n8n can watch the base and render automatically. **Q: Can Orshot make AI art from an Airtable prompt field?** No. Orshot renders from templates, not text prompts — it turns your records into branded graphics, it doesn't invent artwork. For DALL·E-style art, use a text-to-image model. Orshot does use AI to [build a starting template](https://orshot.com/features/ai-template-generator) and for background removal, but the render itself is template-based. **Q: Can it generate PDFs, not just images?** Yes — set the response format to `pdf` and the same template renders a document instead of an image. It's how people generate per-record certificates, invoices, and one-pagers. Video (mp4/webm/gif) works the same way. See the [render API](https://orshot.com/solutions/image-generation-api). **Q: How does the finished file get back into Airtable?** Orshot returns a hosted URL. You write it into an Airtable attachment field on the same record — that attachment URL is what displays the rendered card in the cell. The script's updateRecordAsync step, or the automation's 'Update record' action, does it for you. **Q: Do I have to write the script myself?** No. Every Orshot template has a Quick Connect sheet — open it and hit the Airtable tab, and you get the Scripting snippet with all of that template's fields already mapped. Copy, paste, swap in your API key. **Q: Can I run it across thousands of existing records?** Yes. Loop the script over a view, batch the set, or use Orshot's bulk render to backfill. Renders run in parallel, so large jobs stay quick. ## Bottom line If you meant AI art, grab a text-to-image model — Orshot isn't that. If you meant automating Airtable to spit out clean, designed images and PDFs from the records you already keep, that's the whole job: template the design once, connect it through a script or a no-code automation, and every row renders its own. The same approach works from [Google Sheets](https://orshot.com/blog/auto-generate-instagram-carousels-google-sheets) and most data sources. Try it on the free credits, and if the field mapping trips you up, hit the chat — I'll walk you through it. --- ### [How to Auto-Generate Social Media Graphics at Scale using AI](https://orshot.com/blog/automate-social-media-graphics) > Learn how to automate social media graphics with AI. Create templates, generate branded visuals via API, and publish to 15+ platforms — no designer needed. Every blog post, product launch, or customer quote needs graphics sized for Instagram, Twitter/X, LinkedIn, and Facebook. That's 4+ visuals per piece of content — resized, branded, and captioned. Manually. Every time. In this guide, you'll set up a workflow that automatically generates branded social media graphics whenever you add a row to a spreadsheet. No design skills, no code. By the end, you'll have an automation that turns data into ready-to-post visuals in seconds using [Orshot](https://orshot.com/pricing) and [Make](https://orshot.com/docs/integrations/make "target=_blank nofollow") ![Animated social media graphic generated with Orshot — auto-generate graphics like this](https://orshot.com/blog/automate-social-media-graphics/happy-customers-new.gif) ## Why Automate Your Social Visuals? If you're still making each social graphic by hand, you already know the pain: - **Hours lost on repetitive work** — Same template, different headline, different image. Over and over. - **Brand inconsistency** — When three people make graphics in Canva, you get three different versions of your brand. - **Designer bottleneck** — Your designer is swamped. Marketing waits. Posts get delayed. - **Missed posting windows** — By the time the graphic is ready, the moment has passed. - **Scaling means more manual work** — More content = more graphics = more hours in Canva. It doesn't scale. The fix isn't hiring more designers. It's automating the graphics themselves. Design the template once, then let data do the rest. ## What You'll Build A no-code workflow where adding a row to Google Sheets automatically generates a branded social media graphic via Orshot and saves the image URL back to your sheet — ready to post or feed into your publishing pipeline **The flow:** ![Automation flow: Google Sheets to Make to Orshot](https://orshot.com/blog/automate-social-media-graphics/flow.png) ### What You'll Need - **[Orshot Account](https://orshot.com/pricing)** — Free trial, no credit card required. This is where your templates and image generation API live. - **A social media template in Orshot** — We'll pick one in Step 1. - **Google Sheets** — Your data source (headlines, images, colors). - **[Make.com account](https://make.com "target=_blank nofollow")** — Free tier works fine for this. This connects everything. > **Using n8n or Zapier?** The same approach works. See our [n8n tutorial](https://orshot.com/blog/n8n-marketing-automation-tutorial) or [Zapier docs](https://orshot.com/docs/integrations/zapier) for platform-specific setup. ## Step 1: Pick a Social Media Template Head to Orshot's [template library](https://orshot.com/templates) and pick a social media template that fits your use case — quote cards, product promos, event announcements, or general-purpose social graphics. Here's a template you can copy and start using: [Open the embed](https://orshot.com/templates/shared/ud9ovrbl/embed?view=play) You can also design your own from scratch in [Orshot Studio](https://orshot.com/features/orshot-studio), or import existing designs from [Canva](https://orshot.com/docs/importing-templates/import-from-canva) or [Figma](https://orshot.com/docs/importing-templates/import-from-figma). Or skip manual design entirely — use Orshot's [AI Design Agent](https://orshot.com/blog/introducing-design-agent) to generate a complete template from a text prompt. Describe what you need ("Instagram promo card with headline, subtitle, logo, and CTA button on a gradient background") and the agent builds it for you in seconds, ready to parameterize. [Orshot AI Design Agent Demo](https://www.youtube.com/watch?v=t-Xt1W5XzEY) Once you have a template, open it in Orshot Studio and **parameterize** the dynamic fields — the parts that change between posts. Select a layer, toggle **"Parameterize"** in the properties panel, and assign a key name. For a typical social media graphic, you'll want these parameters: | Field | Parameter Key | Example Value | | ---------------- | ------------- | ---------------------------------- | | Headline | `headline` | `Summer Sale: 50% Off` | | Subtitle | `subtitle` | `Limited time offer — ends Friday` | | Background Image | `bg_image` | `https://cdn.example.com/bg.jpg` | | Logo | `logo` | `https://cdn.example.com/logo.png` | | Brand Name | `brand_name` | `Your Brand` | | CTA Text | `cta_text` | `Shop Now` | Once saved, this template becomes an API endpoint. Every social post can now generate a unique branded graphic by passing different data to the same template. ## Step 2: Set Up Your Data Source (Google Sheets) Create a new Google Sheet with columns that match your template parameters, plus an output column for the generated image: | headline | subtitle | bg_image | logo | brand_name | cta_text | imageUrl | | ---------------------- | ------------------------------------------ | ---------------------------------- | -------------------------------- | ---------- | ----------- | --------------- | | Summer Sale: 50% Off | Limited time — ends Friday | https://cdn.example.com/summer.jpg | https://cdn.example.com/logo.png | Acme Store | Shop Now | _(auto-filled)_ | | New Feature: Dark Mode | Now available for all users | https://cdn.example.com/dark.jpg | https://cdn.example.com/logo.png | Acme Store | Try It Free | _(auto-filled)_ | | Customer Spotlight | "Orshot saved us 10 hours/week" — Sarah K. | https://cdn.example.com/sarah.jpg | https://cdn.example.com/logo.png | Acme Store | Read More | _(auto-filled)_ | Add 3-5 rows with real data. The `imageUrl` column stays empty — your automation will fill it in. ## Step 3: Build the Automation in Make Open [Make.com](https://make.com "target=_blank nofollow") and create a new scenario. You'll add three modules: ### 3a. Google Sheets — Watch New Rows Add the **Google Sheets > Watch New Rows** module as your trigger: - **Connection**: Connect your Google account - **Spreadsheet**: Select the sheet you created in Step 2 - **Sheet**: Choose the correct tab - **Limit**: Set to 10 (processes up to 10 new rows per run) This module fires every time a new row appears in your sheet. ### 3b. Orshot — Generate Image Add the **Orshot** module next. Search for "Orshot" in Make's module list — [it's a native integration](https://orshot.com/docs/integrations/make). - **Connection**: Add your Orshot API key (find it in Orshot Dashboard → Settings → API Key) - **Operation**: Generate Image From an Orshot Studio Template - **Template**: Select your social media template from Step 1 - **Response Type**: URL - **Response Format**: PNG Then map your Google Sheets columns to the Orshot template parameters: | Orshot Parameter | Google Sheets Column | | ---------------- | -------------------- | | `headline` | `{{headline}}` | | `subtitle` | `{{subtitle}}` | | `bg_image` | `{{bg_image}}` | | `logo` | `{{logo}}` | | `brand_name` | `{{brand_name}}` | | `cta_text` | `{{cta_text}}` | Make's visual mapper lets you drag column values directly into each parameter field. ### 3c. Google Sheets — Update Row Add a **Google Sheets > Update a Row** module to save the generated image URL back: - **Spreadsheet**: Same sheet as the trigger - **Row Number**: Map from the trigger module's row number - **imageUrl column**: Map the image URL from the Orshot module's output That's the full workflow: new row → generate graphic → save URL. ### 3d. Turn It On Set the scenario to run on a schedule (every 15 minutes, hourly, or on-demand) and activate it. Every new row you add will automatically produce a branded social media graphic. ## Step 4: Test and Scale Add a new row to your sheet and watch the automation run. Within seconds, the `imageUrl` column fills in with a link to your generated graphic. Click it — that's a ready-to-post social media visual, generated from your template and data, with zero manual design work. Here's an animated graphic generated from the template — with staggered, spring-based entrance animations on every element: ![Animated social media graphic with spring animations generated with Orshot](https://orshot.com/blog/automate-social-media-graphics/animated-spring-new.gif) Orshot generates **static images, animated GIFs, and videos** from the same template — just change the format from `png` to `gif` or `mp4`. Here are four static graphics generated from the **same template** with different data — each row in your spreadsheet produces a unique, branded visual: ![Summer sale social media graphic generated with Orshot](https://orshot.com/blog/automate-social-media-graphics/summer-sale.png) ![Dark mode launch social media graphic generated with Orshot](https://orshot.com/blog/automate-social-media-graphics/dark-mode.png) ![Conference event social media graphic generated with Orshot](https://orshot.com/blog/automate-social-media-graphics/webconf-2026.png) ![Customer testimonial social media graphic generated with Orshot](https://orshot.com/blog/automate-social-media-graphics/customer-testimonial.png) Same template, different data. That's the power of parameterized templates — design once, generate thousands. ### Scale It Up Once the basic workflow runs, you can extend it: - **Automate posting too** — Add [Orshot Social Publish](https://orshot.com/blog/introducing-orshot-publish) to your API call and post directly to Instagram, X, LinkedIn, Facebook, and [10+ more platforms](https://orshot.com/blog/social-media-automation-tools). No [Buffer needed](https://orshot.com/blog/buffer-alternative). - **Trigger from your CMS** — Replace the Sheets trigger with a webhook from WordPress, Shopify, or your headless CMS. New blog post published? Social graphic generated automatically. - **Multiple sizes from one row** — Generate an Instagram square, Twitter card, and LinkedIn banner from the same data by calling multiple templates in sequence. - **Connect an RSS feed** — Use Make's RSS module to pull new blog posts and feed titles + images into Orshot automatically. If you'd rather not maintain a Make scenario at all, Orshot can run a loop like this natively. The workflow below posts a fresh quote graphic every day, and it's ready-made: one click on **Use this workflow** copies it into your workspace. [Post daily quote graphics automatically workflow on Orshot](https://orshot.com/workflows/daily-quote-graphics/embed) ## Other Ways to Generate Graphics at Scale The no-code workflow above is the most accessible method, but it's not the only one. Here are three alternatives depending on your setup: ### REST API — For Developers If you're already writing code, call Orshot's [Image Generation API](https://orshot.com/solutions/image-generation-api) directly: ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: "YOUR_TEMPLATE_ID", modifications: { headline: "Summer Sale: 50% Off", subtitle: "Limited time offer", bg_image: "https://cdn.example.com/summer.jpg", brand_name: "Acme Store", cta_text: "Shop Now", }, response: { type: "url", format: "png" }, }), }); const { data } = await response.json(); const url = data.content; // the rendered image URL ``` SDKs available for [Node.js](https://github.com/rishimohan/orshot-nodejs-sdk "target=_blank"), [Python](https://github.com/rishimohan/orshot-python-sdk "target=_blank"), [PHP](https://github.com/rishimohan/orshot-php-sdk "target=_blank"), and [Ruby](https://github.com/rishimohan/orshot-ruby-gem "target=_blank"). ### Dynamic Image URLs — Simplest Method Change URL parameters and get a new image instantly — no API call needed. Great for OG images and share cards: ```markdown https://api.orshot.com/v1/dynamic/YOUR_TEMPLATE_ID?headline=Summer+Sale&subtitle=50%25+Off ``` Embed this URL anywhere — email signatures, CMS pages, social bios — and it renders a fresh image on the fly. [Learn more about dynamic parameters](https://orshot.com/blog/dynamic-parameters-prompt-href). ### Bulk Generation from Spreadsheets If you need 100+ graphics at once (campaign launches, product catalogs), use Orshot's built-in spreadsheet import. Upload a CSV, map columns to template parameters, and generate everything in one batch. No Make or Zapier required. ### MCP Server — For AI Agent Workflows If you're building with AI agents (Cursor, Windsurf, Claude, or custom LLM pipelines), Orshot's [MCP server](https://orshot.com/blog/orshot-remote-mcp-server) lets any AI agent design templates, generate images, and manage your workspace directly. Your AI coding assistant becomes a design assistant too — create and iterate on social media templates without leaving your editor. ## What Types of Graphics Can You Automate? Pretty much anything that follows a repeatable template: - **Quote and testimonial cards** — Customer reviews, team quotes, inspirational content - **Product promotion banners** — Sale announcements, new arrivals, feature launches - **Blog post share images** — Auto-generate OG images when you publish articles - **Event announcements** — Webinar promos, conference updates, live stream alerts - **Sale and discount graphics** — Flash sale banners, seasonal promotions, coupon codes - **Job posting visuals** — Open roles formatted for LinkedIn, X, and Instagram - **Real estate listings** — Property cards with price, photos, and details → [full tutorial](https://orshot.com/blog/automate-real-estate-listings-instagram-facebook) - **eCommerce product cards** — Product shots with pricing overlays → [full tutorial](https://orshot.com/blog/automate-ecommerce-product-images) - **Tweet-to-Instagram conversions** — Screenshot tweets and repost as images → [full tutorial](https://orshot.com/blog/automate-tweet-to-instagram) If you're making the same kind of graphic more than twice a week, it's worth automating. ## Why Orshot? Most social media tools stop at scheduling. They assume you already have your visuals ready. Orshot starts where the real bottleneck is: **creating the graphics themselves**. - **Canva-like Template Editor**: Design social media templates with a drag-and-drop editor. No design skills required. Or let the AI Design Agent build one from a text prompt. - **AI Design Agent**: Describe what you need in plain text and the AI agent builds a production-ready template in seconds — layout, styling, and parameterization included. - **100+ Ready-Made Templates**: Social media graphics, product banners, certificates, and more — ready to customize and automate. - **REST API, SDKs & MCP Server**: Generate images via API with SDKs for Node.js, Python, PHP, and Ruby — or connect AI agents through the MCP server. - **No-Code Integrations**: Native integrations with Make, Zapier, and n8n. Connect to Google Sheets, CRMs, databases, and 1000+ apps. - **Built-in Social Publishing**: Post directly to 15+ platforms — Instagram, X, LinkedIn, TikTok, Facebook, and more. Schedule, draft, or publish instantly. - **$39/month — All Included**: Visual generation, template editor, API access, and social publishing. No separate subscriptions for scheduling or posting. **Pricing:** 30 free credits to start, no credit card required. Paid plans from $39/mo with social publishing included. [Try Orshot free →](https://orshot.com/pricing) **Q: What does it mean to automate social media graphics?** It means using a template-based system where you design once and generate unlimited variations by swapping text, images, and colors via an API or no-code tool. With Orshot, you can create templates manually in the visual editor, or have the AI Design Agent generate one from a text prompt. Parameterize the dynamic fields, then generate branded graphics by passing data from Google Sheets, a CMS, or any other source — no manual design work per post. **Q: Do I need to write code to set this up?** No. Orshot has native integrations with Make, Zapier, and n8n. You connect your data source (Google Sheets, Airtable, a CRM) to Orshot's module, map columns to template parameters, and every new row automatically generates a graphic. You can even use the AI Design Agent to create your template without touching the editor. The full tutorial in this guide uses Make.com with zero code. **Q: What formats can Orshot generate — just images?** Orshot generates PNG, JPEG, WebP, PDF, animated GIF, and MP4 video — all from the same template. Add entrance animations in the Studio editor and switch the format parameter from 'png' to 'gif' or 'mp4'. One template, every format. **Q: How much does this cost?** Orshot gives you 30 free credits to start — no credit card required. Paid plans start at $39/month and include the template editor, image generation API, SDK access, and built-in social publishing to 15+ platforms. Make.com and Google Sheets both have free tiers, so you can build the full workflow for $0 upfront. **Q: Can I publish directly to social media from Orshot?** Yes. Orshot Publish lets you connect Instagram, X/Twitter, LinkedIn, Facebook, TikTok, Pinterest, YouTube, and 6 more platforms. You can publish directly via the API — generate a graphic and post it in the same automation step, no Buffer or Hootsuite needed. **Q: Can I generate multiple sizes from one template?** Yes. Create separate templates for each size — Instagram square (1080×1080), Twitter/X card (1600×900), LinkedIn banner (1200×627) — and call each in a single automation run. Orshot's multi-page templates also let you store all sizes in one template and render specific pages. **Q: How do I maintain brand consistency across automated graphics?** Your brand fonts, colors, logos, and layout are locked into the Orshot template. Only the dynamic content — headlines, images, CTAs — changes per generation. Orshot also supports Brand Kits where you store brand colors, fonts, and logos that any template can reference. Every output is pixel-perfect and on-brand, no matter who triggers the automation. **Q: Can I use my own custom fonts in Orshot templates?** Yes. Upload any .ttf or .otf font file to your Orshot workspace and use it in templates. The font is embedded during rendering, so your generated graphics always display correctly — even if the font isn't installed on the viewer's device. **Q: How does Orshot's AI Design Agent work?** Describe the template you need in plain text — e.g. 'Instagram promo card with headline, logo, and CTA on a dark gradient.' The AI agent generates a fully styled, parameterized template in seconds. You can refine it further in Studio or start generating images immediately. It also works via the MCP server, so AI coding assistants like Cursor or Claude can create and edit templates on your behalf. --- ### [How to Automate Real Estate Property Listings for Instagram & Facebook](https://orshot.com/blog/automate-real-estate-listings-instagram-facebook) > Automate property listing visuals for Instagram and Facebook using Orshot. Generate professional real estate marketing images from MLS data with API or no-code tools You have 40 active listings. Each one needs an Instagram post, a Facebook ad, an "Open House" story, and a "Just Sold" graphic. That's 160+ images—before you even think about seasonal promotions or price updates Doing this manually eats hours. Doing it with [Orshot](https://orshot.com/pricing) takes seconds per listing This guide shows you how to automate real estate property listing visuals for Instagram and Facebook using Orshot's templates and API **Relevant** → [Auto-generate Real Estate Banners](https://orshot.com/use-cases/t/auto-generate-real-estate-banners) ![Designing a real estate listing template in Orshot](https://orshot.com/blog/real-estate-visuals/real-estate-template-design.webp) ## What You'll Build An automation that takes your property data (address, price, photos, bedrooms, etc.) and generates ready-to-post social media visuals—automatically - **New Listing** → Instagram post + Facebook ad generated instantly - **Price Change** → All visuals update automatically - **Sold/Closed** → "Just Sold" graphic generated and ready to post ### Bonus: Post Directly with Social Publish With [Orshot Social Publish](https://orshot.com/docs/publish/introduction), you can skip the manual posting step entirely. Add a `publish` object to your API call and Orshot posts the generated image directly to Instagram, Facebook, LinkedIn, or any of [15+ supported platforms](https://orshot.com/blog/social-media-automation-tools). No Buffer, no Zapier — just render and post. ## What You'll Need - [Orshot Account](https://orshot.com/pricing "target=_blank") (Free Trial): For real estate templates and dynamic image generation API - Property data source (Google Sheets, CRM, MLS export, or database) - Optional: [n8n](https://n8n.io), [Make](https://www.make.com), or [Zapier](https://zapier.com) for no-code automation ## Step 1: Pick a Real Estate Template Orshot has ready-to-use [real estate templates](https://orshot.com/templates/g/real-estate) designed for social media. Browse the collection and pick one that fits your brand Here's a property sale banner template you can copy to your workspace and start using right away: [Open the embed](https://orshot.com/studio?community_template_id=22) Or build your own from scratch using [Orshot Studio](https://orshot.com/features/orshot-studio). You can also import existing designs from [Canva](https://orshot.com/docs/importing-templates/import-from-canva) or [Figma](https://orshot.com/docs/importing-templates/import-from-figma) ## Step 2: Parameterize Your Template Open your template in Orshot Studio and make the dynamic fields parameterizable. For a typical property listing, you'll want: | Field | Parameter Key | Example Value | | -------------- | --------------- | ------------------------------- | | Property Image | `propertyImage` | `https://mls.com/photo-123.jpg` | | Price | `price` | `$875,000` | | Address | `address` | `123 Oak Avenue, Austin TX` | | Bedrooms | `bedrooms` | `4` | | Bathrooms | `bathrooms` | `3` | | Square Footage | `sqft` | `2,400 sq ft` | | Agent Name | `agentName` | `Sarah Johnson` | | Status Badge | `status` | `Just Listed` | To parameterize a field: 1. Select the layer in Orshot Studio 2. Toggle **"Parameterize"** in the properties panel 3. Assign the parameter key Once saved, this template becomes an API endpoint. Every property listing can now generate a unique image by passing different data to the same template ![A real estate template exposed as an Orshot API endpoint](https://orshot.com/blog/real-estate-visuals/real-estate-template-api.webp) ## Step 3: Generate Listing Images with the API With your template ready, generate images by sending property data to Orshot's [Image Generation API](https://orshot.com/solutions/image-generation-api) ### API Endpoint ```markdown POST https://api.orshot.com/v1/studio/render ``` ### JavaScript Example ```javascript async function generateListingImage(property) { const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: "YOUR_TEMPLATE_ID", modifications: { propertyImage: property.photo_url, price: property.price, address: property.address, bedrooms: `${property.beds} Beds`, bathrooms: `${property.baths} Baths`, sqft: `${property.sqft} sq ft`, agentName: property.agent, status: "Just Listed", }, response: { type: "url", format: "png", }, }), }); const result = await response.json(); return result.content; // Image URL ready to post } // Example usage const listing = { photo_url: "https://images.mls.com/property-456.jpg", price: "$875,000", address: "123 Oak Avenue, Austin TX", beds: 4, baths: 3, sqft: "2,400", agent: "Sarah Johnson", }; const imageUrl = await generateListingImage(listing); console.log(`Listing image: ${imageUrl}`); ``` ### Python Example ```python import requests def generate_listing_image(property_data): url = "https://api.orshot.com/v1/studio/render" payload = { "templateId": "YOUR_TEMPLATE_ID", "modifications": { "propertyImage": property_data["photo_url"], "price": property_data["price"], "address": property_data["address"], "bedrooms": f"{property_data['beds']} Beds", "bathrooms": f"{property_data['baths']} Baths", "sqft": f"{property_data['sqft']} sq ft", "agentName": property_data["agent"], "status": "Just Listed" }, "response": { "type": "url", "format": "png" } } response = requests.post(url, json=payload, headers={ "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }) return response.json()["content"] # Generate for a single listing listing = { "photo_url": "https://images.mls.com/property-456.jpg", "price": "$875,000", "address": "123 Oak Avenue, Austin TX", "beds": 4, "baths": 3, "sqft": "2,400", "agent": "Sarah Johnson" } image_url = generate_listing_image(listing) print(f"Listing image: {image_url}") ``` ### Batch Generation for Multiple Listings When you have dozens of listings to process at once: ```python def generate_all_listing_images(listings): results = [] for listing in listings: try: url = generate_listing_image(listing) results.append({ "address": listing["address"], "image_url": url, "status": "success" }) except Exception as e: results.append({ "address": listing["address"], "status": "failed", "error": str(e) }) return results ``` ## Step 4: Automate with No-Code (Make / n8n / Zapier) Prefer not to write any code? Use no-code platforms to connect your data source directly to Orshot **Explore integrations**: [Orshot Integrations](https://orshot.com/integrations) ### Example Workflow with Make 1. **Trigger**: New row added to Google Sheets (or CRM webhook) 2. **Action 1**: Orshot — Generate image from studio template 3. **Action 2**: Save image URL back to Google Sheets 4. **Action 3** (optional): Post to Instagram/Facebook via Buffer or Meta API ### Example Workflow with n8n 1. **Google Sheets Trigger**: New property row added 2. **Orshot Node**: Generate listing image with property data mapped to template parameters 3. **Google Drive Node**: Save the generated image 4. **Slack/Email Node**: Notify the agent with the image link Learn more: [n8n Integration Docs](https://orshot.com/docs/integrations/n8n) · [Make Integration Docs](https://orshot.com/docs/integrations/make) · [Zapier Integration Docs](https://orshot.com/docs/integrations/zapier) Before you open Make or n8n, know that this exact setup already exists as a ready-made Orshot workflow: a new row in your Google Sheet triggers a listing card render, and the result gets posted to Instagram. Adding it to your workspace takes one click, with every step connected for you [Real estate listing cards workflow on Orshot](https://orshot.com/workflows/real-estate-listing-cards/embed) ## Dynamic URLs: The Simplest Approach For email campaigns or landing pages, use [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) to generate listing images without any backend code: ```markdown https://orshot.com/v1/studio/dynamic-url/property-listing.png?price=$875,000&address=123+Oak+Avenue&bedrooms=4+Beds&status=Just+Listed ``` Change the URL parameters, and the image updates instantly. Use this in: - Property alert emails (unique image per listing) - MLS website embeds - Facebook dynamic ads ## Why This Works for Real Estate - **Speed**: Generate a listing image in under 3 seconds - **Consistency**: Every listing follows your brand guidelines via [Brand Assets Library](https://orshot.com/features/brand-assets-library) - **Scale**: 10 listings or 1,000—same effort - **Multi-format**: Generate Instagram square (1080×1080), Facebook ad (1200×628), and Story (1080×1920) from the same data - **Always current**: Price change? Regenerate the image with updated data instantly ## Common Questions **Q: Can I automatically post listings to Instagram and Facebook?** Yes, by connecting Orshot with tools like Zapier, Make (formerly Integromat), or n8n, you can create workflows that automatically generate images from your property data and post them directly to your social media accounts. **Q: How do I pull property data from my MLS or CRM?** Most Real Estate CRMs (like Follow Up Boss, LionDesk, or Salesforce) support webhooks or have APIs. You can use these to trigger image generation in Orshot whenever a new listing status is updated or added. **Q: Does this work for "Sold" and "Open House" posts too?** Absolutely. You can set up different templates for "Just Listed", "Price Reduced", "Open House", and "Sold" statuses. The logic in your automation tool (Zapier/Make) can choose the right template based on the property status. **Q: Can I generate carousels for Instagram?** Yes! Orshot supports multi-page templates. You can generate a slide for the living room, kitchen, bedroom, and details, and Orshot will export it as a multi-page PDF or separate images that you can post as a carousel. **Q: Is it possible to include the agent's photo and contact info?** Yes. You can pass dynamic images (like agent headshots) and text (phone numbers, emails) into the template just like property photos. This is great for keeping branding consistent across a team. **Q: What if my property photos are different sizes?** Orshot's Smart Object-contain/cover features and auto-resizing capabilities handle this. You can set images to "cover" their containers so they always look professional, regardless of the original aspect ratio. **Q: Do I need to know how to code?** No. While Orshot has a powerful API for developers, you can achieve full automation using "No-Code" platforms like Zapier or Make. You just map fields from your data source to the Orshot template. **Q: Can I save the images in Google Drive or Dropbox?** Yes, you can connect your Google Drive, Dropbox or S3-enabled storage in Orshot to automatically upload generated images in your account. ## Getting Started 1. **Browse templates**: Start with a [real estate template](https://orshot.com/templates/g/real-estate) or design your own in [Orshot Studio](https://orshot.com/features/orshot-studio) 2. **Parameterize fields**: Mark property data fields as dynamic 3. **Connect your data**: Use the [API](https://orshot.com/solutions/image-generation-api), [no-code integrations](https://orshot.com/integrations), or [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) 4. **Automate**: Set up workflows so every new listing automatically gets professional visuals Stop spending hours on Canva for every listing. Design one template, generate images for every property in your portfolio automatically --- ### [How to Automate Social Media Marketing with n8n](https://orshot.com/blog/n8n-marketing-automation-tutorial) > Step-by-step n8n social media marketing automation tutorial: render branded images and videos, auto-post to Instagram and LinkedIn. Free workflow template. **TL;DR:** Most n8n marketing automation guides stop at "send a Slack message." This one goes end-to-end: a new row of data → a branded **image** _and_ a **video** → auto-posted to **Instagram and LinkedIn**. n8n moves the data; [Orshot](https://orshot.com/) handles both the creation _and_ the posting — so one tool does the work of a design app, a video editor, and a social scheduler. **[📥 Download the n8n workflow (JSON)](https://orshot.com/blog/n8n-marketing-automation-orshot.json "target=_blank")** — import it into n8n and follow along. ## What we're building Take a travel company. Every time they add a new tour, they want a polished Instagram post **and** a short Reel-style video out the door, on both Instagram and LinkedIn, without anyone opening a design tool. Same pattern works for a SaaS shipping a feature, a store launching a product, or an events team announcing a webinar — anything where _new data_ should become _on-brand content_. The pipeline, at a glance: ![Pipeline: new tour data, then Orshot renders an image and video, then publishes to Instagram and LinkedIn](https://orshot.com/blog/n8n-marketing-guide/pipeline-diagram.png) Here's the actual output from one row of tour data — the **same template** produces both the static post and the animated version: ![Branded tour post (PNG) generated from one row of data](https://orshot.com/blog/n8n-marketing-guide/sample-render-image.png) [Watch the video](https://orshot.com/blog/n8n-marketing-guide/sample-render-reel.mp4) _Left: the static post (PNG). Right: the same template as an animated Reel (MP4)._ ## Why n8n needs Orshot for the visual n8n is excellent at moving data — triggers, HTTP calls, branching, hundreds of app integrations. What it can't do is _design_. You can generate copy with an LLM node in one line, but a branded graphic — right font, exact headline, your colors, a logo that doesn't drift — is where most marketing workflows give up and post plain text. You design the visual **once** in an Orshot template, mark the parts that change as parameters, and every run fills them in. The text stays real text, the colors stay your hex codes, and the output is pixel-identical every time. Then the same API call can **publish** it — so the picture never touches a human's desktop. That's the whole idea behind [social media content automation](https://orshot.com/blog/automated-content-creation-tools): one design, every format, posted automatically. | Node | What it does | | --------------------- | --------------------------------------------------------------------------- | | **Trigger** | Fires on new data (we use a manual click; swap for Sheets/Webhook/Schedule) | | **New Tour Data** | Maps your row to the template's parameters + the caption | | **Render Post Image** | `POST` to Orshot → branded PNG | | **Render Reel Video** | Same call, `format: mp4` → animated MP4 | | **Publish** | Adds a `publish` object → posts to Instagram + LinkedIn | ## What you'll need - An [Orshot account](https://orshot.com/pricing "target=_blank") and an API key (free tier = 30 credits). - An n8n instance (Cloud or self-hosted). - A template to render — we'll use a ready-made travel template (ID `12278`), but any of the [2,000+ library templates](https://orshot.com/templates) or your own design works. - Connected [social accounts](https://orshot.com/features/social-publishing) in Orshot (Instagram + LinkedIn) for the publish step. ## Step 1 — One template, image _and_ video In the Orshot Studio editor, the template is built once: a headline, a subheadline, three photo slots, a location tag, a handle, and a footer line. The layers that change per post are marked as **parameters** — everything else stays locked, so your brand can't drift. ![The travel template in the Orshot Studio editor, with an animation timeline](https://orshot.com/blog/n8n-marketing-guide/01-studio-editor.webp) This template is already animated, which is the key part: because the design has motion, the **exact same template** renders a static PNG _or_ an MP4 — you only change the output format. No separate video tool, no re-design. Open **Automate** on any template to see its parameters and the integration options. Note the **Template ID** and the parameter ids (`headline_top`, `location_text`, `hero_image`, …) — your n8n data maps onto these. ![The Integrate Template panel showing the template ID, n8n integration, and parameters](https://orshot.com/blog/n8n-marketing-guide/02-integrate-template-params.webp) We're using a travel template here, but the workflow is template-agnostic — swap in whatever your marketing calls for: ad creatives, product banners, quote cards, OG images, multi-slide carousels, certificates. You don't have to design from scratch either: pick from [2,000+ ready-made templates](https://orshot.com/templates) in the library, generate one from a prompt with the [AI Template Generator](https://orshot.com/features/ai-template-generator), or import an existing design from Canva or Figma. Parameterize it once and the same n8n flow drives it. ## Step 2 — Grab your API key In the Orshot dashboard, go to **API Keys** and copy one (or create a new one). You'll paste it into n8n in the next step. ![The Orshot API Keys page](https://orshot.com/blog/n8n-marketing-guide/04-api-keys.webp) ## Step 3 — Import the workflow into n8n The fastest way to start: [download the workflow JSON](https://orshot.com/blog/n8n-marketing-automation-orshot.json "target=_blank") and import it (**⋯ menu → Import from file**). You'll get the full pipeline wired up: ![The full n8n workflow: trigger, data, render image, render video, publish](https://orshot.com/blog/n8n-marketing-guide/06-n8n-workflow-overview.webp) Two nodes do the setup work: - **Run on a new tour** — a Manual Trigger so you can test with one click. In production, swap it for a **Google Sheets Trigger** (new row), a **Webhook** (form/CRM), or a **Schedule** node. Anything that can send data works; the rest of the flow doesn't change. - **New Tour Data** — an _Edit Fields_ node holding one tour's data. Each field name matches a template parameter, plus a `caption` and `booking_url` for publishing. ![The Edit Fields node mapping tour data to template parameters](https://orshot.com/blog/n8n-marketing-guide/07-node-new-tour-data.webp) In production you'd delete these literal values and map columns from your trigger instead — e.g. `{{ $json.tour_name }}`. ## Step 4 — Render the branded image The render node is a plain **HTTP Request**: `POST` to `https://api.orshot.com/v1/studio/render`, your key in the `Authorization` header, and a JSON body that maps the tour data onto the template. ![The HTTP Request node configured to render from Orshot](https://orshot.com/blog/n8n-marketing-guide/08-node-render-image.webp) The JSON body — note how each value pulls from the **New Tour Data** node: ```json { "templateId": 12278, "modifications": { "kicker_text": "{{ $json.category }}", "headline_top": "{{ $json.headline_top }}", "headline_bottom": "{{ $json.headline_bottom }}", "subheadline": "{{ $json.subheadline }}", "hero_image": "{{ $json.hero_image }}", "photo_two": "{{ $json.photo_two }}", "photo_three": "{{ $json.photo_three }}", "location_text": "{{ $json.location_text }}", "brand_handle": "{{ $json.brand_handle }}", "footer_note": "{{ $json.footer_note }}" }, "response": { "type": "url", "format": "png" } } ``` Prefer the terminal first? It's the same call: ```bash curl -X POST https://api.orshot.com/v1/studio/render \ -H "Authorization: Bearer YOUR_ORSHOT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": 12278, "modifications": { "headline_top": "Aegean", "headline_bottom": "Sailing", "location_text": "SANTORINI, GREECE", "footer_note": "From $1,299 · Book now" }, "response": { "type": "url", "format": "png" } }' ``` You get back a hosted PNG URL you can hand to the next node, store, or attach to a Slack message. Prefer not to hand-roll the HTTP node? Orshot ships a [verified n8n node](https://orshot.com/integrations) — search "Orshot" in the node panel, connect your API key, pick the template, and the parameter fields populate automatically. Orshot even spells out the steps in-app: ![Orshot's in-app n8n integration steps](https://orshot.com/blog/n8n-marketing-guide/03-n8n-integration-steps.webp) ## Step 5 — Render the video from the same data This is the part most tutorials skip. The reel is the **same node, same body — one field changes**: ```json "response": { "type": "url", "format": "mp4" } ``` That's it. Because the template is animated, Orshot returns a ready-to-post MP4. Want to trim it or set the frame rate? Add `videoOptions`: ```json { "templateId": 12278, "modifications": { "headline_top": "Aegean", "headline_bottom": "Sailing" }, "response": { "type": "url", "format": "mp4" }, "videoOptions": { "duration": 6, "fps": 30 } } ``` One template, two formats, zero extra design work — exactly the kind of [automated image (and video) generation](https://orshot.com/solutions/image-generation-api) that's painful to do by hand and trivial to do on a schedule. ## Step 6 — Publish to Instagram and LinkedIn Here's where Orshot replaces a second tool. Instead of piping the file into Buffer or a separate scheduler, you add a `publish` object to the **same render call** and Orshot posts it for you. First, connect your accounts in Orshot under **Social Accounts** and note each account's **ID** — that's what the workflow targets. ![Connected social accounts in Orshot with their account IDs](https://orshot.com/blog/n8n-marketing-guide/05-social-accounts.webp) Then the publish node's body is your render body plus a `publish` block: ```json { "templateId": 12278, "modifications": { "headline_top": "Aegean", "headline_bottom": "Sailing" }, "response": { "type": "url", "format": "png" }, "publish": { "accounts": [19, 15], "content": "{{ $json.caption }}", "platformOptions": { "15": { "firstComment": "Book this tour 👉 {{ $json.booking_url }}" } } } } ``` - `accounts` — the IDs from your Social Accounts page (here `19` = Instagram, `15` = LinkedIn). **Replace these with your own.** - `content` — the caption used across platforms. - `platformOptions` — per-platform tweaks. LinkedIn gets the booking link as a first comment (keeps the caption clean and the link out of the post body). Instagram uses the default caption with hashtags. You can also `isDraft: true` to stage posts, or add a `schedule` block to post later — see the [Publish docs](https://orshot.com/docs/publish/introduction). > **Safety note:** In the downloadable workflow, the **Publish** node is **deactivated** on purpose — so importing and testing never posts to your accounts by accident. n8n confirms it: _"This node is disabled, and will simply pass the input through."_ Enable it only when your account IDs and caption are set. ![The Publish node, deactivated by default so nothing posts during testing](https://orshot.com/blog/n8n-marketing-guide/10-node-publish-disabled.webp) ## Make it run on its own Right now you click **Execute workflow** to test. To make it autonomous, replace the Manual Trigger: - **Google Sheets Trigger** — a content calendar; each new row ships a post. - **Webhook** — your CRM or a form (Tally, Typeform) fires a render the moment someone submits. - **Schedule** — a daily/weekly drop from a data source. The render and publish nodes don't change — only how the flow starts. For the Google Sheets version there's a shortcut: it exists as a ready-made workflow inside Orshot, no n8n instance needed. One click on **Use this workflow** drops it into your workspace with every step already wired up. [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) ## Doing it in bulk Rendering one post per execution is the n8n-native way and keeps things simple. But if you need to fan out — a back-catalog of 200 tours, localized variants per market — call Orshot's **batch render** with an array of modification sets and get them all back in one request instead of 200 executions. For volume work that's faster and cheaper than looping in the workflow. ## What it costs n8n's self-hosted edition is free (you pay for the server); n8n Cloud starts around \$24/mo as of mid-2026. Orshot's free tier is **30 credits** with every feature included, and paid plans start at **\$39/mo for 1,500 credits** — 1 credit = 1 image, 1 PDF page, or 1 second of video. Publishing is an add-on at **\$12/mo per connected account**, with unlimited posts. 30 credits, no card needed. [Try Orshot free](https://orshot.com/signup?via=blog-n8n-tutorial) **Q: What is n8n marketing automation?** It's using n8n — an open-source workflow automation tool — to run marketing tasks without manual work: pulling data, generating content, and publishing it. n8n handles the data flow and triggers; pair it with Orshot when the workflow needs branded images or videos and direct social posting, which n8n can't do on its own. **Q: Can n8n generate images and videos?** Not by itself. n8n moves data and calls APIs, but it can't design a branded graphic. Connect it to Orshot: you design a template once, mark the dynamic parts as parameters, and every workflow run renders a pixel-accurate image or video. The same animated template outputs both a PNG and an MP4 — you only change the format field. **Q: How do I auto-post to Instagram and LinkedIn from n8n?** Add a publish object to your Orshot render call with the account IDs from your Social Accounts page. Orshot renders the image or video and posts it to the chosen platforms in one step — with scheduling, drafts, and per-platform settings. No separate scheduler like Buffer needed. **Q: Do I need to code to use this workflow?** No. Download the JSON, import it into n8n, paste your Orshot API key, and replace the example data and account IDs. The only 'code' is a JSON body in an HTTP Request node, which is included and explained above. **Q: Will importing the workflow post to my socials by accident?** No. The Publish node ships deactivated, so importing and testing only renders — it never posts. You enable it deliberately once your account IDs and caption are set. **Q: Is n8n good for social media automation?** Yes, with one caveat: n8n social media automation covers the plumbing — triggers, data, API calls — but not the content. Pair it with Orshot and the same workflow renders the branded image or Reel and posts it to Instagram, LinkedIn and 13 other platforms. If you'd rather skip n8n entirely, Orshot's built-in workflows run the same loop natively. **Q: What does it cost to start?** n8n self-hosted is free; n8n Cloud starts around $24/mo. Orshot is free for 30 credits with no card, then $39/mo for 1,500 credits. Publishing is a $12/mo per-account add-on with unlimited posts. > **Bottom line:** n8n handles the data; Orshot handles the design _and_ the posting. Parameterize one template, import the workflow, point any trigger at it, and your marketing visuals — image and video — generate and publish themselves. --- ### [How to Bulk Create from Canva Templates](https://orshot.com/blog/canva-bulk-create-alternative) > Free alternative to Canva bulk create. Import templates, automate Instagram posts & product images via spreadsheets or API. No CSV uploads. 30 free credits. I've spent way too many hours dealing with Canva's bulk create feature. You know the drill - download your CSV, upload it, wait for processing, download all the images, then manually organize everything. If you're creating 50+ Instagram posts for your product catalog or [bulk generating social media content](https://orshot.com/blog/social-media-automation-tools), it gets old fast. The worst part? You can't automate any of it. Every single batch means going through the same manual process again. No API, no integrations, just you and that CSV upload button. There are [much better tools for automated content creation](https://orshot.com/blog/automated-content-creation-tools) that handle this end-to-end. Here's what I found that actually works: import your Canva design once into Orshot, then generate as many variations as you need automatically. Whether you're using spreadsheets, hitting an API endpoint, or connecting to your favorite automation tools - it's all possible. [Orshot is a Canva alternative](https://orshot.com/blog/free-canva-alternatives), along with a Canva-like editor Orshot also gives you API and integrations for your templates In this guide, I'll walk you through exactly how I set this up. Takes about 30 minutes the first time, then it just runs. **Migrate from Canva Bulk Create to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your Canva Bulk Create API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ## How to Use This Canva Bulk Create Alternative [Orshot](https://orshot.com/) - a **free alternative to Canva bulk create** with 30 free credits to get started (no credit card required). This tutorial shows you exactly how to set up automated bulk generation from your existing Canva templates. The process is simple: import your template, make fields dynamic, and use Orshot's spreadsheet feature to generate images automatically. ## Step 1: Import Your Canva Template ![Import Canva Template](https://orshot.com/blog/canva-spreadsheet-create/import-canva-template.webp) You don't need to rebuild your design from scratch. Orshot imports your existing Canva template directly. **How to import:** 1. Open your Canva design 2. Click the Share button and copy the link 3. Paste it below and import — no signup needed to preview: Wait about 30 seconds. Your design comes over with everything intact - fonts, colors, spacing, images. Once imported, you'll see it in Orshot Studio where you can make adjustments if needed. ## Step 2: Make Fields Dynamic ![Import Canva Template](https://orshot.com/blog/canva-spreadsheet-create/parameterize-template.webp) Now tell Orshot which parts should change with each generation. Unlike Canva's bulk create (limited to basic text), you can parameterize anything - text, images, colors, even element visibility. **How to parameterize:** 1. Open your imported template in Orshot Studio 2. Click on any text or image layer you want to make dynamic 3. In the right sidebar, toggle on "Parameterize" 4. Give it a parameter name like `productName` or `productImage` 5. Repeat for all dynamic elements **Example for Instagram product posts:** - Product name text → `productName` - Product image → `productImage` - Price text → `price` - Description text → `description` Unlike Canva's bulk create, alignment stays perfect across all generated posts automatically. ## Step 3: Use Orshot's Spreadsheet Feature to Bulk Generate ![Import Canva Template](https://orshot.com/blog/canva-spreadsheet-create/generate-from-spreadsheet.webp) This is where the magic happens. Orshot has a built-in spreadsheet feature - no need for external automation tools or manual CSV uploads like Canva. ### Access the Spreadsheet Feature 1. Go to **Workspace → Integrations → Spreadsheets** in Orshot 2. Click "Generate from Spreadsheet Data" 3. Select your template from the dropdown The spreadsheet interface will automatically create columns matching your parameterized fields. ![Import Canva Template](https://orshot.com/blog/canva-spreadsheet-create/spreadsheet-generation.webp) ### Add Your Data You have two options: **Option 1: Import a file** - Click the "Import" button - Upload a CSV or Excel file with columns matching your parameters - Data populates automatically **Option 2: Manual entry** - Click "Add Row" to create entries - Type or paste directly into cells - Copy/paste from Excel or Google Sheets Example data for Instagram product posts: | productName | price | description | productImage | | ----------------- | ------ | --------------------- | ----------------- | | Gold Chain Anklet | ₹1,299 | Elegant 18k plated | https://image1... | | Silver Ring Set | ₹899 | Set of 3 adjustable | https://image2... | | Pearl Earrings | ₹1,599 | Freshwater pearl drop | https://image3... | ### Generate in Bulk 1. Set your generation options: - **Format**: PNG, JPEG, WebP, AVIF, or PDF - **Response Type**: URL or Base64 - **Row Range**: Choose which rows (e.g., rows 1-50) - **Scale**: Image resolution 2. Click **"Start Generation"** 3. Watch as images generate in real-time with preview thumbnails 4. Download all images as a ZIP file or copy individual URLs **That's it!** You've replaced Canva's manual bulk create with Orshot's automated system. Add 50 rows and generate 50 Instagram posts with one click - no external tools needed. ### Connect the Automation You'll use an automation platform ([n8n](https://orshot.com/blog/n8n-marketing-automation-tutorial), Make, or Zapier) to connect your Google Sheet to Orshot: 1. Create a new workflow in your automation platform 2. Add trigger: "Google Sheets - When row is added or updated" 3. Add action: "HTTP Request" to Orshot API 4. Add action: "Google Sheets - Update row" with generated image URL **API request format:** ```javascript POST https://api.orshot.com/v1/studio/render Headers: Authorization: Bearer YOUR_API_KEY Content-Type: application/json Body: { "templateId": "your-template-id", "modifications": { "productName": "{{row.productName}}", "price": "{{row.price}}", "description": "{{row.description}}", "productImage": "{{row.productImage}}" } } ``` Map your sheet columns to the parameters. ### Test It Add a test row to your spreadsheet. Within a few seconds, the "Generated Post" column should populate with a URL. Click it to verify the image looks correct. If it works, activate your workflow. Now every time you add or update a row, an image generates automatically. **That's it!** You've replaced Canva's manual bulk create with an automated system. Add 50 rows to your sheet and watch 50 Instagram posts generate automatically. And if you'd rather skip the wiring entirely, this whole chain ships as a ready-made workflow inside Orshot: it reads your sheet on a schedule, renders the carousel, and posts it to Instagram and LinkedIn. One click adds it to your workspace, no external tools needed. [Instagram carousels from a spreadsheet workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) ### Publish Directly to Social Media Once your images are generated, skip the download-upload-post cycle. Orshot's [Social Publishing](https://orshot.com/docs/publish/introduction) lets you post rendered images directly to 15+ platforms — Twitter/X, Instagram, LinkedIn, Facebook, TikTok, Discord, WhatsApp, and more — from the API or dashboard. Publish instantly, schedule for later, or save as a draft. $12/month per connected account, unlimited posts. --- ## More Ways to Generate Images Beyond the built-in spreadsheet feature above, here are other ways to use this **Canva bulk create alternative**: ### Via API (for Developers) If you're comfortable with code, you can generate images programmatically from any system - your app, a script, a cron job, etc. **Quick example:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: 12345, // Your template ID modifications: { productName: "Gold Chain Anklet", price: "₹1,299", description: "Elegant 18k plated", productImage: "https://example.com/anklet.jpg", }, response: { type: "url", // or "base64" format: "png", // png, jpeg, webp, avif, or pdf scale: 1, }, }), }); const data = await response.json(); console.log("Generated:", data.content); // URL to generated image ``` Perfect for integrating into your applications, processing data from databases, or building custom automation workflows. [See API docs](https://orshot.com/docs/api-reference/render-from-studio-template). ### Via Dynamic URLs Generate images just by changing URL parameters - no code needed. Great for email signatures, social sharing cards, or personalized links. **Example:** ``` https://api.orshot.com/render?template=abc123&productName=Anklet&price=1299 ``` Each URL with different parameters generates a unique image. [Learn more about dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls). ### Automate with n8n, Make, or Zapier Connect Orshot to thousands of apps for automated workflows: - **Google Sheets** → Auto-generate when rows are added/updated - **Airtable** → Generate images when records are created - **Typeform** → Create certificates from form submissions - **Shopify** → Auto-generate product images from new listings - **Webhook triggers** → Generate on-demand from any system These integrations use Orshot's API to trigger generation based on events in other apps. [Browse all integrations](https://orshot.com/integrations). --- ## Common Questions **Q: Why automate with Orshot instead of Canva Bulk Create?** Canva's Bulk Create is manual. You have to upload CSVs and download zips every time. Orshot is fully automated. Connect it to [Airtable](https://orshot.com/docs/integrations/airtable) or [Zapier](https://orshot.com/docs/integrations/zapier) so images generate instantly as data comes in. **Q: Can I use conditional logic in my bulk generation?** Yes. In Canva, your data is static merge fields. With Orshot's API and integrations, you can use conditional logic (e.g., if price is above $50, show a sale badge). This allows for much more sophisticated dynamic templates. **Q: Does Orshot support multi-page PDFs?** Yes. Unlike Canva's bulk create which outputs individual files, Orshot can generate a single [multi-page PDF](https://orshot.com/blog/introducing-carousel-templates) with all your certificates, invoices, or reports in one clean document. **Q: Can I import my Canva designs to Orshot?** Yes. Use our [Canva import tool](https://orshot.com/solutions/canva-template-to-api) to move your designs over. You get the best of both worlds: design in Canva (if you prefer), then automate with Orshot's powerful engine. **Q: Is there a limit on how many images I can generate?** Practically, no. Orshot's scalable infrastructure can process thousands of records via API. Canva's browser-based bulk create can get sluggish or crash with very large datasets. **Q: Can I generate videos in bulk with Orshot?** Yes. Canva Bulk Create is primarily for static designs. Orshot allows you to automate video generation (MP4/WebM/GIF) in bulk just as easily as images. **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools. **Q: What integrations does Orshot support?** Orshot integrates with [Zapier](https://orshot.com/docs/integrations/zapier), [Make](https://orshot.com/docs/integrations/make), [n8n](https://orshot.com/docs/integrations/n8n), [Airtable](https://orshot.com/docs/integrations/airtable), and more. We also offer Dynamic URLs for no-code generation and a full REST API. ## Wrapping Up Look, Canva is great for designing templates. But bulk create? It's painful when you're doing any real volume. The manual CSV uploads, the lack of automation, the inability to integrate with anything - it just doesn't scale. That's why so many teams are switching to **Canva bulk create alternatives** like Orshot. You import your Canva template once and then generate variations however you need - through spreadsheets if you want something simple, or via API if you're building it into an app. Takes about 30-45 minutes to set up the first time. After that, it runs on its own. And with 30 free credits, you can test this **free alternative to Canva bulk create** without any risk. ## Try This Free Canva Bulk Create Alternative Ready to switch from Canva's manual bulk create to an automated alternative? 1. [Sign up for Orshot](https://orshot.com) - 30 free credits, no credit card required 2. Import your Canva template using [this tool](https://orshot.com/solutions/canva-template-to-api) 3. Follow the spreadsheet or API steps above 4. Generate your first batch of images automatically This **free alternative to Canva bulk create** takes about 30 minutes to set up, then runs automatically. If you run into issues, use the chat button on the site and I'll help you get set up. [Try the free Canva bulk create alternative →](https://orshot.com) --- ### [How to Create and Automatically Post LinkedIn Carousels](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels) > Create a LinkedIn carousel from a template, brand it in Studio, and auto-post it on a schedule. No manual designing, exporting, or uploading. LinkedIn carousels are one of the best formats for reach right now. The catch is the **production loop**: design five or seven slides in Canva, export a PDF, open LinkedIn, upload the file, write a caption, then do it all again from scratch next week. This guide is about skipping most of that with [Orshot](https://orshot.com/). Two ideas do the heavy lifting: - **A dynamic template.** Design the carousel once, then generate new ones by just swapping the text. No redesigning, no blank canvas. - **A workflow.** Connect LinkedIn once and let a spreadsheet row, a Notion page, or a schedule turn into a finished carousel that posts itself. ![Editing a LinkedIn carousel template in Orshot Studio](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/linkedin-carousel-templates.webp) I'll build it up step by step, so you can stop wherever it fits how you work. It all rests on one detail about LinkedIn carousels that most people miss, so let's start there. ## What a LinkedIn carousel actually is LinkedIn has no "carousel" button. A carousel is a **document post**: you upload a **PDF** and LinkedIn turns each page into a swipeable card in the feed. Get that right and it reads as a real native carousel instead of a flat multi-image post. The specs worth knowing: | Spec | What to use | | | --------- | -------------------------------------------------------------------------------- | --- | | Best size | 1080 x 1350 (portrait) fills the most feed space. Square 1080 x 1080 also works. | | | Format | PDF. This is what makes it a native swipeable carousel. | | | Pages | 5 to 12 slides is the sweet spot. LinkedIn allows many more. | | One thing to clear up: this guide is about **organic** carousels, the PDF document post. LinkedIn carousel _ads_ are a separate thing you set up as individual images in Campaign Manager. ## The manual way, and why it doesn't scale If you only ever post one carousel, doing it by hand is fine. Here's the flow: 1. Design your slides in Canva, Figma, or slides. 2. Export the whole thing as a single **PDF**. 3. On LinkedIn, click **Start a post**, then the document icon. 4. Upload the PDF, give it a title, write your caption, and post. It works, but it doesn't scale, and two headaches show up constantly: - The text comes out [blurry and pixelated after you upload it](https://www.reddit.com/r/LinkedInTips/comments/1f9org8/why_do_my_pdf_carousels_look_so_pixelated_when_i/ "target=_blank nofollow"), usually because the file was exported at the wrong size and LinkedIn compresses it hard. So you go back, re-export, and guess at settings until it looks right. - Export your slides as images instead of one PDF and the post [looks haywire rather than a real carousel](https://www.reddit.com/r/canva/comments/19cxnsa/how_to_schedule_a_carousel_pdf_to_linkedin/ "target=_blank nofollow"). On top of that, nothing batches. Every small change means redesign, re-export, and re-upload, and your brand drifts a little each time a different person makes one. That's the part we're going to fix. ## 1. Start from a template Instead of a blank canvas, start from a carousel that's already designed and just change the words. Head to the [LinkedIn templates gallery](https://orshot.com/templates/g/linkedin "target=_blank") and pick a carousel you like. The multi-page ones show a slide count on the thumbnail, so you can tell a real carousel from a single graphic. ![LinkedIn carousel templates in the Orshot gallery, each showing a slide count](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/templates-gallery.webp) A few good ones to start from: - [Dark Navy Editorial Listicle](https://orshot.com/templates/1740 "target=_blank") (6 slides) - [Brutalist Black & Yellow](https://orshot.com/templates/1731 "target=_blank") (5 slides) - [Money Tips Carousel Cover](https://orshot.com/templates/2052 "target=_blank") - [Creative Carousel Cover](https://orshot.com/templates/2111 "target=_blank") Here's one of them embedded live. Edit the text right here to see how fast it is to make it yours: [Open the embed](https://orshot.com/templates/shared/u59oefjv/embed?view=play) When you edit a template like this, every slide updates together, so the design stays consistent no matter what you type. And because LinkedIn wants a PDF, you export the whole set as one file. [Here's the actual PDF](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/linkedin-carousel-example.pdf "target=_blank") this template produced, ready to drop into a LinkedIn document post. Already have carousels designed in Canva? You don't have to rebuild them. Import your design and it becomes an editable Orshot template you can brand and automate like any other. ## 2. Make it on-brand in Studio Templates get you 90% there. To make it feel like _yours_, open it in [Orshot Studio](https://orshot.com/studio "target=_blank") and bring in your brand. ![Editing a LinkedIn carousel template in Orshot Studio](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/studio-editor-carousel.webp) In Studio you can: - Swap in your **brand colors** and **fonts** from your Brand Library, so every carousel matches without fiddling. - Drop in your **logo** and change photos or icons. - Adjust layouts, then save it as your own reusable template. ## 3. Connect your LinkedIn account Before you can post from Orshot, connect LinkedIn once. In Studio, go to **Publish > Social Accounts**, pick LinkedIn, and finish the connection. ![Connecting your LinkedIn account on the Orshot Social Accounts page](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/connect-social-accounts.webp) Once it's connected, you have two ways to post: straight from Studio, or fully automated. ## 4. Post a carousel from Studio (the quick way) If you just want to ship one carousel, open it in Studio and hit **Publish**. Pick the pages, choose your LinkedIn account, write a caption, and post it now, schedule it, or save it as a draft. ![Publishing a carousel to LinkedIn from Orshot Studio, with post now, schedule, and draft options](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/publish-from-studio.webp) That alone beats exporting a PDF and uploading it by hand. But if you post regularly, you can make it hands-off. ## 5. Automate it end to end with Workflows With [Workflows](https://orshot.com/features/workflow-automation-builder "target=_blank"), carousels generate and post themselves. If you have ever wished you could [hand over your content and a template and have it fill in each carousel for you](https://www.reddit.com/r/FigmaDesign/comments/1o6bhp0/creating_linkedin_carousels_at_scale/ "target=_blank nofollow"), this is that. A workflow is just: something happens, a carousel gets rendered, and it posts to LinkedIn. The trigger can be: - **A schedule** (post a new carousel every weekday morning) - **A new Google Sheets row** (fill a row, get a posted carousel) - **A new Airtable record** or **Notion page** (great if your content calendar already lives there) ![The auto-post workflow: a schedule triggers a Google Sheet, renders each row as a PDF carousel, and posts it to LinkedIn](https://orshot.com/blog/how-to-automatically-create-linkedin-carousels/workflow-builder.webp) Here's that same workflow, ready to fork. It takes rows from a Google Sheet, renders each as a carousel, and posts it to LinkedIn on a schedule: [Open the embed](https://orshot.com/workflows/linkedin-carousels-from-sheet/embed) There are two more presets set up the same way if your content lives elsewhere: one for **Notion** and one for **Airtable**. Fork whichever matches your setup. **One important setting:** in the render step, set the format to **PDF**. That's what makes LinkedIn treat it as a real swipeable document carousel. If you render as PNG instead, it posts as a multi-image swipe, which is fine but isn't the native carousel viewer. Orshot lets you send a PDF straight to LinkedIn, so use PDF when you want the true carousel. A couple of honest notes so there are no surprises: - Auto-posting runs through Orshot's **Social Publishing** add-on ($12 per connected account) plus a connected LinkedIn account. Rendering carousels is separate and doesn't need it. - The schedule and Google Sheets triggers work on every plan. **Airtable, Notion, and webhook** triggers are on the Grow plan and up. ## For developers: do it in one API call If you'd rather wire this into your own app, you don't need the visual builder at all. Render a carousel as a PDF with a single request: ```bash curl -X POST https://api.orshot.com/v1/studio/render \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": 8321, "modifications": { "page1@headline": "5 lessons from our first launch", "page2@body": "Ship before it feels ready.", "page3@body": "Talk to 10 users before writing 100 lines." }, "response": { "type": "url", "format": "pdf" } }' ``` You get back a PDF URL. From there you can post it to LinkedIn through the same [Social Publishing](https://orshot.com/features/social-publishing "target=_blank") accounts, so rendering and posting happen from one place. The full reference is in the [render API docs](https://orshot.com/docs/api-reference/render-from-studio-template "target=_blank"). If you want a worked example, we have a full [SvelteKit walkthrough](https://orshot.com/blog/automate-linkedin-carousels-sveltekit "target=_blank") too. ## Best practices for LinkedIn carousels A few things that consistently help: - **Lead with a strong cover.** The first slide decides whether anyone swipes. - **One idea per slide.** Carousels are for pacing, not paragraphs. - **Get them to the last slide.** LinkedIn rewards dwell time, so give people a reason to keep swiping. - **Keep it portrait** (1080 x 1350) so it fills more of the feed. - **End with a clear ask,** like follow, repost, or a link in the first comment. - **Stay consistent.** Same fonts and colors every time build recognition, which is exactly what templates and your Brand Library give you for free. ## FAQ **Q: How do I actually post a carousel on LinkedIn?** Click Start a post, then the document icon, and upload a PDF. LinkedIn turns each page of the PDF into a swipeable slide. There's no separate carousel button, it's a document post under the hood. **Q: What size should a LinkedIn carousel be?** 1080 x 1350 (portrait) or 1200 x 1500 work best because they take up more space in the feed. Square 1080 x 1080 is fine too. Export the slides as a single PDF. **Q: Can I automate posting carousels to LinkedIn?** Yes. With Orshot Workflows you connect LinkedIn once, then trigger new carousels on a schedule or from a Google Sheet, Airtable, or Notion. Each one renders as a PDF and posts on its own. Auto-posting uses the Social Publishing add-on and a connected LinkedIn account. **Q: Do I need design skills?** No. Start from a template in the LinkedIn gallery, change the text, and optionally swap in your brand colors and logo. The layout is already done for you. **Q: PDF or images, what's the difference on LinkedIn?** A PDF posts as a native swipeable document carousel. A set of images posts as a multi-image swipe, which looks similar but isn't the same viewer. For a true carousel, render and post a PDF. **Q: Why does my LinkedIn carousel look blurry or pixelated?** Almost always because the PDF was exported at the wrong size, and LinkedIn compresses uploads hard. Design at 1080 x 1350 and export a real PDF. Orshot renders the PDF at the correct carousel size on its servers, so you skip the export-and-guess loop that causes most of the blur. **Q: Can I schedule a carousel to post as a PDF instead of images?** Yes, and that is the whole point of rendering as PDF. Orshot posts your carousel to LinkedIn as a native document, on a schedule or straight from a Google Sheet, so it shows up as a real swipeable carousel instead of a set of images that looks off. ## Bottom line Making one LinkedIn carousel by hand is fine. Making them every week is where it falls apart. Start from a template so you never open a blank canvas, brand it once in Studio, and then let a workflow generate and post them for you. You keep the consistency and lose the busywork. If you want to try it, you can [start for free](https://orshot.com/pricing "target=_blank") and have your first carousel out today. --- ### [How to Generate Subtitle from Video using Node.js & OpenAI](https://orshot.com/blog/generate-subtitle-from-video-nodejs) > A complete guide to adding automated subtitles to videos. Compare the easy way using Orshot's Video API versus the manual DIY approach using FFmpeg and OpenAI Whisper Video content is dominant right now, but here is a statistic that matters: **over 80% of social media videos are watched on mute**. If you aren't burning subtitles into your videos, you are losing the vast majority of your audience. If you have researched this topic—perhaps scrolling through [Reddit threads on r/ffmpeg or r/node](https://www.reddit.com/r/ffmpeg/ "target=_blank")—you likely ran into the same common pain points: 1. **FFmpeg is complex:** "Filter complex", "stream mapping", and syntax errors are nightmares. 2. **Quality Loss:** Hardcoding subtitles requires re-encoding the video. If you don't know what `CRF` or bitrate to set, your crystal clear 4K video turns into a blocky mess. 3. **Styling Limitations:** Standard SRT files are ugly. Making them look like "TikTok style" captions requires advanced `libass` configs or custom drawing filters. In this guide, we will look at two ways to solve this: the **Automated API** method (using Orshot) and the **Manual Node.js** method (building it yourself). --- ## Method 1: The Automated Way (Orshot API) If you want to skip the engineering headaches of server-side FFmpeg, GPUs, and file storage, Orshot handles the entire pipeline in a single API request. Orshot's [Video Generation API](https://orshot.com/docs/video-generation/adding-subtitles) automatically: - Extracts audio from your video. - Transcribes it using high-quality AI. - Generates the subtitles with perfect sync. - **Burns them in** with custom styling (colors, fonts, backgrounds). - Returns the final `.mp4`. ### Example: Auto-Generate Subtitles You simply pass your video URL and styling preferences. You can even use **Google Fonts** instantly. ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { "Content-Type": "application/json", Authorization: "Bearer YOUR_API_KEY", }, body: JSON.stringify({ templateId: "your-video-template", response: { format: "mp4" }, videoOptions: { // The magic happens here subtitleSource: "https://your-bucket.com/video.mp4", subtitleColor: "#FFFFFF", subtitleBackground: "rgba(0,0,0,0.6)", // Semi-transparent box subtitleFontFamily: "Inter", // Auto-loads Google Font subtitleFontSize: "32px", subtitleBottom: "80px", // Position from bottom }, }), }); ``` That's it. You get a finished URL back. No servers to manage, no `fluent-ffmpeg` callbacks to debug. - [**Get your API key**](https://orshot.com/pricing) - [**Read Documentation**](https://orshot.com/docs/video-generation/adding-subtitles) --- ## Method 2: The DIY Way (Node.js + OpenAI Whisper) If you prefer to build this pipeline yourself, we will use **Node.js**, **fluent-ffmpeg**, and **OpenAI's Whisper API**. ### Prerequisites - Node.js installed. - [FFmpeg installed](https://ffmpeg.org/download.html "target=_blank") on your system path. - An OpenAI API Key. ### Step 1: Install Dependencies ```bash npm install fluent-ffmpeg openai fs ``` ### Step 2: Extract Audio OpenAI's Whisper API accepts audio files. First, we need to strip the audio track from your video to reduce upload size and processing time. ```javascript const ffmpeg = require("fluent-ffmpeg"); function extractAudio(videoPath, audioPath) { return new Promise((resolve, reject) => { ffmpeg(videoPath) .output(audioPath) .noVideo() .audioCodec("libmp3lame") .on("end", resolve) .on("error", reject) .run(); }); } ``` ### Step 3: Transcribe with OpenAI Whisper We upload the audio to OpenAI. The pricing is **$0.006 per minute**. That means a 10-minute video costs about **$0.06** to transcribe. ```javascript const OpenAI = require("openai"); const fs = require("fs"); const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); async function transcribe(audioPath) { const transcription = await openai.audio.transcriptions.create({ file: fs.createReadStream(audioPath), model: "whisper-1", response_format: "srt", // Request SRT format directly }); return transcription; // Returns standard SRT string } ``` ### Step 4: Burn Subtitles into Video (Hardcoding) This is the tricky part. We need to take that SRT string, save it to a file, and use FFmpeg's `subtitles` filter to burn it in. **Critical Note on Quality:** By default, FFmpeg might re-encode your video at a low bitrate. To preserve quality, we use the `-crf` (Constant Rate Factor) flag. Lower is better quality. A CRF of **23** is standard, **18** is nearly visually lossless. ```javascript function burnSubtitles(videoPath, subtitlePath, outputPath) { return new Promise((resolve, reject) => { ffmpeg(videoPath) .outputOptions([ "-vf subtitles=" + subtitlePath, // The complex filter "-crf 23", // Maintain visual quality "-preset fast", // Encoding speed ]) .save(outputPath) .on("end", () => console.log("Subtitles burned successfully!")) .on("error", (err) => console.error("Error burning subs:", err)); }); } ``` ### The Full Pipeline Putting it all together, here is a complete script you can run. This handles audio extraction, transcription, and subtitle burning in one flow. ```javascript /* generate-subs.js */ const ffmpeg = require("fluent-ffmpeg"); const OpenAI = require("openai"); const fs = require("fs"); const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); async function extractAudio(videoPath, audioPath) { console.log("🔊 Extracting audio..."); return new Promise((resolve, reject) => { ffmpeg(videoPath) .output(audioPath) .noVideo() .audioCodec("libmp3lame") .on("end", resolve) .on("error", reject) .run(); }); } async function transcribe(audioPath) { console.log("🎙️ Transcribing with OpenAI Whisper..."); const transcription = await openai.audio.transcriptions.create({ file: fs.createReadStream(audioPath), model: "whisper-1", response_format: "srt", }); return transcription; } async function burnSubtitles(videoPath, subtitlePath, outputPath) { console.log("🔥 Burning subtitles (this may take a while)..."); return new Promise((resolve, reject) => { ffmpeg(videoPath) .outputOptions([ `-vf subtitles=${subtitlePath}`, "-crf 23", // Balanced quality "-preset fast", // Faster encoding ]) .save(outputPath) .on("end", resolve) .on("error", reject); }); } (async () => { try { const INPUT_VIDEO = "input.mp4"; const TEMP_AUDIO = "temp_audio.mp3"; const TEMP_SRT = "temp_subs.srt"; const OUTPUT_VIDEO = "output.mp4"; await extractAudio(INPUT_VIDEO, TEMP_AUDIO); const srtData = await transcribe(TEMP_AUDIO); fs.writeFileSync(TEMP_SRT, srtData); await burnSubtitles(INPUT_VIDEO, TEMP_SRT, OUTPUT_VIDEO); console.log("✅ Done! saved to", OUTPUT_VIDEO); // Cleanup temp files fs.unlinkSync(TEMP_AUDIO); fs.unlinkSync(TEMP_SRT); } catch (error) { console.error("❌ Error:", error); } })(); ``` ### Addressing Common Issues **Q: Why does my video quality look worse after adding subtitles?** This happens because FFmpeg re-encodes the video when burning subtitles. If you don't specify a bitrate or Constant Rate Factor (CRF), it defaults to a lower quality. Use `-crf 18` or `-crf 23` in your FFmpeg command to maintain visual quality. **Q: How can I change the subtitle font or color?** Standard SRT files don't support rich styling natively. To get custom fonts, colors, or backgrounds with FFmpeg, you typically need to convert your subtitles to **ASS (Advanced Substation Alpha)** format first, or mess with complex `drawtext` filters. Orshot handles this automatically via CSS. **Q: Is OpenAI Whisper accurate for non-English videos?** Yes, Whisper is currently state-of-the-art for multilingual transcription. It handles accents and multiple languages exceptionally well compared to older tools like Vosk or Tesseract. **Q: Can I run this on my laptop without a GPU?** Yes, but it will be slow. Transcribing is fast via API, but the 'burning' step (FFmpeg re-encoding) is CPU intensive. A 1-minute 4K video might take 5-10 minutes to render on a standard laptop CPU. **Q: Why creates the 'Stream mapping' error in FFmpeg?** This usually happens when your input video has multiple audio tracks or weird codecs. FFmpeg tries to map streams automatically and fails. You often need to explicitly map streams using `-map 0:v -map 0:a` flags. **Q: Can I adjust the subtitle timing if it's slightly off?** If you are using the manual Node.js method, you would need to parse the SRT file and shift the timestamps (e.g., add +500ms to every line) before burning it. This requires an extra parsing library/step. --- ## Conclusion Building your own subtitle generator is a great learning project. You get granular control and only pay for the OpenAI credits ($0.006/min). However, you inherit the maintenance of an FFmpeg pipeline, which includes managing file storage, server scaling for concurrent renders, and handling weird video formats. If you need a reliable, scalable solution that just works, give the [Orshot Video Generation API](https://orshot.com/pricing) a try. --- ### [How to implement WebMCP in any app](https://orshot.com/blog/webmcp-implementation) > A WebMCP tutorial from a real production rollout: working code, the auth design, tool limits, and the bugs a ChatGPT agent found in our first version. This tweet kept doing rounds on my timeline last week: I run Orshot. We spent months connecting it to agents the other way around, through a hosted MCP server that [Claude, ChatGPT, Cursor and Grok](https://orshot.com/agents) all talk to. WebMCP reverses the direction. The agent is already in your browser, it lands on your site, and the site hands it tools. I implemented WebMCP over a weekend and shipped it to production. A ChatGPT agent has used it, audited it, and found real bugs in my first version. This is the tutorial I wish existed when I started. I'll use our app as the example, but every step applies to any web app. Most of what ranks for WebMCP right now is theory. This isn't. **TL;DR** — WebMCP, implemented and shipped. Pick what you came for: - **The short version**: [22 tools on every page, zero connector setup](#what-is-webmcp) — 6 public tools for anyone plus 16 workspace tools bridged from our hosted MCP server when you are signed in. The login itself is the authorization. - **Show me the code**: [Both providers, trimmed from the real source](#step-1-expose-public-tools-for-every-visitor) — Registration on document.modelContext, same-origin cookie-less fetches, and the session-to-token bridge that reuses our MCP server verbatim. - **What broke**: [ChatGPT audited us and found real bugs](#step-4-have-an-agent-audit-your-implementation) — 90 registered tools tripped a config limit that disabled WebMCP entirely, plus validation gaps like open_template({}) navigating to /templates/undefined. - **Is my site agent-ready?**: [Test with a real runtime, not a checker](#how-to-check-if-your-website-is-ai-agent-ready) — Ask ChatGPT agent mode what tools your page exposes, or run document.modelContext.getTools() in a flagged Chrome. Static scanners cannot see imperative tools. ## What is WebMCP? WebMCP is a W3C standard, pushed mainly by Google and Microsoft. Your page calls `document.modelContext.registerTool()` with a name, a description, a JSON schema and an execute function. That's the whole idea. Instead of an agent screenshotting your UI and guessing what "Add to cart" does, your page hands it an instruction manual: here are my tools, here's what they take, here's what they return. ## WebMCP vs MCP vs browser automation The question I see most on Reddit is some version of "how is this different from Playwright, or from just running an MCP server?" Different layers, different jobs: | | Browser automation (Playwright, computer use) | MCP (hosted server) | WebMCP (on-page) | | :-- | :-: | :-: | :-: | | How the agent acts | Clicks your human UI, guesses from pixels | Calls your backend from anywhere | Calls tools your page registers | | Setup for the user | None, but slow and brittle | Connector + OAuth flow | None. Tools appear on page load | | Auth | Whatever session the browser has | OAuth tokens in the client | Your existing login session | | Reliability | Breaks when your UI changes | Stable | Stable, and UI-independent | | Where it shines | Sites that expose nothing | Automation and workflows | In-browser help while you browse | Two takeaways from shipping all three: - WebMCP doesn't replace your MCP server. Ours does automation from anywhere; WebMCP serves the person already on the site. Ship both if you can. - Compared to browser automation, WebMCP is dramatically more token-efficient. The agent reads a tool list once instead of parsing screenshots on every step. ## Who supports WebMCP right now The consumer side moved fast in the last two weeks: - **ChatGPT**: agent mode consumes site tools in the in-app and cloud browser (GPT-5.6 Sol and Terra). Click the cursor icon in the in-app browser's URL bar and expand "Available site tools" to see what a page exposes. OpenAI has [docs for site builders](https://learn.chatgpt.com/docs/webmcp "nofollow target=_blank"). - **Chrome**: API behind a flag (`chrome://flags/#enable-webmcp-testing`) with an origin trial running. Gemini in Chrome is the intended consumer, and the Chrome team published [implementation guides](https://developer.chrome.com/docs/ai/webmcp "nofollow target=_blank") this week. - **Edge**: co-authored the spec with Google; experimental support tracks Chrome. - **Claude**: not yet. Anthropic's extension still works from screenshots and DOM snapshots. When that changes, WebMCP sites need zero extra work. The Chrome team shipped guides for the three things you'll actually need: writing secure tools, building the tools themselves, and evaluating whether an agent uses them correctly. On the consumer side, OpenAI moved WebMCP support from the desktop app's in-app browser into the cloud browser, which is what agent mode uses when it goes off and works on its own. Two weeks ago none of this existed. That's the whole reason the field is still open. ## Step 1: expose public tools for every visitor Start with what a logged-out visitor can do. For us that's six tools on every page: - `search_templates` and `get_template_details` search our [template library](https://orshot.com/templates) and return each template's render parameters - `open_template` navigates to a template page - `get_pricing` returns the live [pricing page](https://orshot.com/pricing) as markdown - `read_page_markdown` fetches any page of ours as markdown, which turns the whole docs site into agent context - `connect_agent` points the agent at our [hosted MCP server](https://orshot.com/blog/orshot-remote-mcp-server) for everything WebMCP can't do The provider, trimmed to what matters: ```jsx // webmcp-provider.jsx (trimmed) const TOOLS = [ { name: "search_templates", description: "Search Orshot's library of 2,000+ image, PDF, and video templates.", inputSchema: { type: "object", additionalProperties: false, properties: { query: { type: "string" }, category: { type: "string" }, limit: { type: "number" }, }, }, annotations: { readOnlyHint: true }, execute: async ({ query, limit } = {}) => { const size = Math.min(Math.max(Math.trunc(Number(limit)) || 10, 1), 30); const params = new URLSearchParams({ pageSize: String(size) }); if (query) params.set("search", query); const res = await toolFetch(`/api/templates/community?${params}`); const data = await res.json(); return { count: data.templates.length, templates: data.templates.map(compact) }; }, }, // ...5 more tools ]; export function WebMCPProvider() { useEffect(() => { const modelContext = document.modelContext || navigator.modelContext || null; if (!modelContext?.registerTool) return; // no-op in normal browsers const controller = new AbortController(); for (const tool of TOOLS) { swallowAbort( modelContext.registerTool(tool, { signal: controller.signal }), ); } return () => controller.abort(); }, []); return null; } ``` Three things in that snippet I only know because they went wrong: 1. **It's `document.modelContext` now.** The spec moved off `navigator.modelContext` in July 2026. My first provider registered on `navigator` and no runtime ever saw a single tool. If you copied WebMCP example code from a post older than a few weeks, check this first. 2. **OpenAI requires `additionalProperties: false`** on every input schema. It's in their docs, it's easy to miss, and nothing warns you. 3. **`registerTool` returns a Promise** that rejects with an AbortError when its signal fires on unmount. We didn't catch it at first. Every route change dumped a batch of unhandled rejections into error tracking. Security rules we set for this tier: - Every tool fetch goes through a `new URL()` same-origin check - Every request is sent with `credentials: "omit"`, so logged-out tools cannot return logged-in data even if we mess something else up If you want to skip the typing, hand this to Claude Code, Cursor, Codex or whatever agent already has your repo open. It encodes every gotcha in this post, including the ones that cost me a day. [Watch the video](https://orshot.com/blog/webmcp-implementation/diagram-how-it-works.mp4) ## Step 2: let the login be the integration Here's the part I haven't seen any other site ship. If you're signed in, the page bridges tools from our hosted MCP server onto `document.modelContext`. The agent in your browser can render images, list your templates, read your brand kit and prepare social drafts. No connector. No API key. No OAuth screen. Our funnel data says most people who start an MCP connector flow in ChatGPT never finish it. WebMCP has no flow to abandon. We didn't rewrite a single tool for this. Our MCP server already answers stateless HTTP requests (that's how ChatGPT's MCP client talks to it), so the bridge discovers and proxies: ```jsx // webmcp-bridge-provider.jsx (trimmed) const mint = async () => { // Trade the user's session for a short-lived, workspace-scoped token. // First-party client, 30-minute expiry, no refresh token, memory only. const res = await fetch(`${API_URL}/v1/oauth/browser-agent-token`, { method: "POST", headers: { Authorization: `Bearer ${sessionToken}` }, body: JSON.stringify({ client_id: CLIENT_ID, workspace_ids: [workspaceId] }), }); return (await res.json()).access_token; }; // Discover once per tab, register the curated set, proxy execution const { tools } = await mcpRequest("tools/list", {}, await bearer()); for (const t of tools.filter((t) => BRIDGED_TOOL_NAMES.has(t.name))) { modelContext.registerTool({ ...t, execute: (args) => mcpRequest("tools/call", { name: t.name, arguments: args }, bearer), }); } ``` Why this design: - The MCP server stays the single source of truth. Names, schemas and annotations pass through as-is. - Tokens are scoped to your active workspace, live only in page memory, and expire after 30 minutes. Logging out kills them. - There's no consent screen on purpose. Consent screens protect you from third parties. Here the client, the authorization server and the API are all us. "Allow Orshot to access Orshot?" is not a question. [Watch the video](https://orshot.com/blog/webmcp-implementation/diagram-login-integration.mp4) ## Step 3: register fewer tools than you want to My first bridge registered all 90 of our MCP tools, several with long descriptions. ChatGPT's response: > WebMCP is disabled for this page because the site's WebMCP configuration exceeds supported limits. Not degraded. Off. Including the public six. It also explained a flaky symptom I'd been ignoring, where tools appeared for a second and vanished once the app hydrated. What works: - A curated set covering the loop people actually run. For us: find a template, read its parameters, render, publish a draft. 16 workspace tools. - Descriptions capped at 1,500 characters. - 22 tools per page, total. Everything else stays on the MCP connector. ## Step 4: have an agent audit your implementation Before a human reviews your WebMCP, ask ChatGPT agent mode to use it, then to audit it. I asked it to find a LinkedIn carousel template through WebMCP. It did, with our own `search_templates` tool: ![ChatGPT confirming the site supports the WebMCP standard and listing the six public tools it discovered on the templates page](https://orshot.com/blog/webmcp-implementation/chatgpt-tool-discovery.png) Then I asked for a full audit: ![ChatGPT's audit finding that workspace pages hit WebMCP configuration limits, with the exact error and the list of affected URLs](https://orshot.com/blog/webmcp-implementation/chatgpt-audit-gaps.png) Besides the tool-count limit, it caught: - `open_template({})` navigated to `/templates/undefined`. Runtimes don't all enforce your schema's `required` list, so validate inside execute. - `search_templates({ limit: -1 })` returned a 500. A clamp I should have written on day one. - `get_template_details` promised parameters in its description and didn't return them. Agents notice when a tool under-delivers its own description, and they say so. Every fix shipped the same day, and the same prompt re-run confirmed them. Best QA I didn't pay for, and its bug report came with exact URLs and repro steps. ## How to check if your website is AI-agent ready In order of usefulness: 1. **Ask an agent.** Open your site in ChatGPT agent mode and ask what tools the current page exposes. 2. **Ask the browser.** In Chrome with the flag on, run `await document.modelContext.getTools()` in the console. 3. **Run the ecosystem verifiers.** The [webmcp.com directory](https://webmcp.com "nofollow target=_blank") scans implementations and lists the exact tools a site exposes. The [webmcp-kit](https://github.com/nekuda-ai/webmcp-kit "nofollow target=_blank") plugin ships a headless verification driver. 4. **Test both auth states.** Logged out should never show account tools. Signed in should actually survive registration (see step 3). One warning: skip the HTML-level "AI readiness checkers". One scored our site 28/100 for having "no navigator.modelContext integration" on the same day ChatGPT was actively calling our 22 tools. Imperative WebMCP registration is invisible to static scanners. They're grading a different thing and selling you the fix. ## Does WebMCP help SEO/GEO discovery? Not directly. Tools only exist once an agent is already on your page. WebMCP converts agent visits, it doesn't create them. The second-order effects are real though: - Agents come back to sites where tasks complete. - The directories that list real implementations are exactly the kind of source generative engines cite, and the list of production sites is still short enough that shipping gets you on it. - Pages describing your agent support (ours is [Orshot for browser agents](https://orshot.com/agents/for-browser-agents)) do the discovery work WebMCP itself can't. **Q: What is WebMCP in one sentence?** WebMCP is a W3C browser standard that lets a web page register callable, schema-described tools on document.modelContext so the AI agent in a visitor's browser can act on the site directly instead of scraping pixels. **Q: Do websites need to support WebMCP for agents to use them?** For WebMCP specifically, yes: the site has to register tools. Agents can still drive non-WebMCP sites through screenshots and DOM automation, just slower and less reliably. That fallback is exactly why adding tools is worth it: your site becomes the one where the agent's task actually completes. **Q: Why not just publish an API instead?** An API needs the agent to know it exists, hold credentials, and be set up ahead of time. WebMCP tools are discovered on the page, run in the visitor's existing session, and can reflect the current page state. In practice you want both, and our WebMCP tools are thin wrappers over the same APIs. **Q: Which browsers and agents support WebMCP today?** ChatGPT's browser consumes site tools in agent mode (GPT-5.6 Sol and Terra). Chrome ships the API behind a flag with an origin trial running, with Gemini in Chrome as the intended consumer. Edge tracks Chrome. Claude does not consume WebMCP yet. **Q: How many tools should a page register?** Fewer than you think. ChatGPT disabled WebMCP entirely when we registered 90 tools with long descriptions. We settled on 22 per page: 6 public plus 16 workspace tools, with descriptions capped at 1,500 characters. **Q: Do WebMCP tools need their own auth system?** No, and they should not have one. Reuse your existing session. Our signed-in tools exchange the session for a short-lived, workspace-scoped token from a first-party OAuth client, so agents act with exactly the permissions the logged-in user already has. **Q: How do I check if my website is AI-agent ready?** Open it in ChatGPT agent mode and ask what tools the page exposes, or run document.modelContext.getTools() in a WebMCP-enabled Chrome. Runtime checks beat static checkers, which cannot see imperative tool registration at all. ## The bottom line The whole implementation took about two days, and only because the tools wrap APIs and an MCP server we already had. If you have real user actions and an existing API, WebMCP is a weekend of work. The consuming agents are already here, and the list of production sites is short enough that you'd be early. If you'd rather use the app we made agent-ready than build one, Orshot generates on-brand images, PDFs and videos from templates, automatically. [Start free and see plans](https://orshot.com/pricing). 30 free credits, no credit card. --- ### [img.ly Alternative for a Hosted Embeddable Editor](https://orshot.com/blog/imgly-sdk-alternative) > An img.ly alternative for teams who want a hosted, embeddable design and video editor. From $39/mo, white-labeled with webhooks, events and fine controls If you're looking for an img.ly alternative, you want one thing: a real design editor inside your own product. Their CreativeEditor SDK does that, and does it well — full-featured, runs in the browser or natively on mobile, and you control almost everything. No complaints there. The bill comes due around the editor. img.ly's SDK is _just_ the editor — the rest is yours to build and run: - Host the rendering engine yourself - Build the backend it needs — template storage, per-user data, uploads, auth - Ship a heavy editor bundle to every user - Get the commercial price on a sales call I built [Orshot Embed](https://orshot.com/features/orshot-embed) for teams who want the editor without running all of that. Same editor we use in Orshot, hosted by us, dropped into your app with an iframe or a React/Vue component. Your users, your branding, your domain — our storage, accounts, and rendering. [**Try Orshot Embed free**](https://orshot.com/pricing "target=_blank") ![The Orshot Studio editor — this is what loads inside your app via Orshot Embed](https://orshot.com/blog/imgly-alternative/01-studio-editor.webp) **Migrate from img.ly to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your img.ly API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ## What actually changes Same job — your users editing designs in your app. The difference is who runs the editor: | | Orshot Embed | img.ly SDK | | ------------------------------ | ------------------------------- | ------------------------------ | | Runs | On Orshot, embedded in your app | In your app, on your own infra | | Backend (storage, auth, users) | Included | You build it | | Offline / native mobile | No | Yes | | Price | Listed, from \$39/mo | Quote from sales | ## Where img.ly is still the better pick I'll be straight about it — stay on img.ly if you need: - **Offline editing** — it runs client-side, no network required - **Native mobile** — a real iOS / Android / Flutter editor - **Engine-level control** — forking the renderer, custom UI internals Orshot won't match it there. If that's your list, this is the wrong tool and I'd rather you know now. ## What you get with Orshot Embed If it's not your list, here's what's actually included: - **White-label it** — custom embed title, icon, and accent color, with Orshot branding removed on higher tiers - **Webhooks and events** — your backend gets pinged on `template.create`, `template.update`, and `template.delete`, and `postMessage` events fire on save and export so your UI can react - **The same [render API](https://orshot.com/solutions/image-generation-api) underneath** — PNG, JPG, WebP, AVIF, PDF, and MP4/WebM/GIF from one template, any size via [Smart Resize](https://orshot.com/features/smart-resize) - **A [brand library](https://orshot.com/features/brand-assets-library) and [2,000+ templates](https://orshot.com/templates)** so nobody starts on a blank canvas - **Me on the other end of the chat**, usually within the hour Basic embed is on the paid plans; white-label, webhooks, per-user data, and custom buttons turn on as you move up the [tiers](https://orshot.com/pricing). ## Try the editor right here This is the editor your users would get — embedded exactly like it'd sit in your app. Click around: [Orshot Embed demo](https://orshot.com/templates/shared/muzkxu0y/embed?view=view) Like how that feels? [**Build your own →**](https://orshot.com/pricing "target=_blank") — free to start. ## Dropping it into your app Setup lives in your Orshot workspace: - Switch the embed on and add your allowed domains - Drop in your branding — title, icon, accent color - Pass a `userId` for each person so their templates stay separate ![Orshot Embed settings — enable it, lock it to your domains, brand it, and isolate users](https://orshot.com/blog/imgly-alternative/02-embed-builder.webp) Then mount it however suits your stack: - **Iframe** — ` ``` ### Webhook Integration You can add a Webhook URL in your Embed settings. Once added, you'll get template creation and change updates on your webhook ### Try It Today Orshot Studio Embed is currently free while it's in beta. Enable it from your workspace settings and start bringing powerful design capabilities to your users right away --- ### [Introducing Flowing Content for Dynamic Page Generation](https://orshot.com/blog/introducing-flowing-content) > Text that doesn't fit on one page now flows automatically across as many pages as needed. Perfect for reports, articles, invoices, and any document where content length varies. Until now, if your text didn't fit on a page, you had three options: shrink it (Fit), clip it (Truncate), or let it overflow outside the container. None of these helped when you actually needed that text to continue on the next page. Today we're launching **Flowing Content** — a new text mode in [Orshot Studio](https://orshot.com/features/orshot-studio) that automatically splits long text across multiple pages. Design one page, and the engine generates as many overflow pages as the content needs. ## What It Does Set any text element to **Flow** mode, and it just works: - Write an article, paste an invoice body, or pass a long string via API - Orshot figures out where the page breaks fall and creates overflow pages - Headers, footers, logos — anything marked as **repeating** — shows up on every page - Page numbers (`{{_page_number}}` / `{{_total_pages}}`) update automatically You design a single template page. The engine does the rest. ## How It Works [Watch the video](https://www.youtube.com/watch?v=5mBxdJK3XLo) ## Why It Matters If you generate reports, certificates, invoices, or any document where the amount of text changes per render, you've probably hit this wall: a 3-paragraph summary fits on one page, but a 10-paragraph one needs three. Before flowing content, you'd either truncate the text or build multiple fixed-length templates. Now you don't have to think about it. One template handles 1-page and 20-page documents equally. **Common use cases:** - **Reports and articles** — quarterly summaries, blog-to-PDF pipelines, whitepapers - **Invoices and receipts** — line item lists that vary from 5 to 500 - **Certificates** — course descriptions that change per program - **Legal and compliance docs** — terms, contracts, policy documents ## How to Set It Up ![Text mode settings in Orshot Studio](https://orshot.com/docs/orshot-studio/text-modes.webp) 1. Open your template in [Orshot Studio](https://orshot.com/studio) 2. Select the text element that should flow 3. In the Styles panel, set **Text Autofit** to **Flow** 4. Mark any headers, footers, or logos as **Repeat on overflow pages** 5. Optionally add `{{_page_number}}` / `{{_total_pages}}` to a repeating text element for page numbers That's it. Preview the template and you'll see overflow pages appear as you add more text. ## How It Works via API The API request is the same as any other render — just pass your text in `modifications`: ```json { "templateId": "", "modifications": { "body": "Your long-form content goes here..." }, "response": { "format": "pdf", "type": "url" } } ``` The response tells you how many pages were generated: ```json { "data": [ { "page": 1, "content": "https://..." }, { "page": 2, "content": "https://...", "flowPage": 1 }, { "page": 3, "content": "https://...", "flowPage": 2 } ], "totalPages": 3, "flowTotalPages": 2 } ``` Works with all output formats — PNG, JPEG, WebP, PDF, and even video. ## Fine-Tuning For most templates the defaults work great. But if you need more control: - **Flow Zones** let you define exactly where text should appear on overflow pages (custom Y position and height per page) - **Page break controls** let you choose break granularity (line, word, or character) and set minimum lines before/after a break to prevent orphans and widows - **Rich text** is fully supported — bold, italic, colored text, inline styles all carry over correctly across page breaks ## Credit Costs Each page in the output costs 1 credit, same as carousel pages. A flow template that produces 5 pages costs 5 credits. Use `includePages` to render only the pages you need. --- Flowing content is available now in Orshot Studio on all plans. Read the [full documentation](https://orshot.com/docs/orshot-studio/flowing-content) for detailed setup instructions, or jump into [Studio](https://orshot.com/studio) and try it. --- ### [Introducing Orshot for ChatGPT and Codex](https://orshot.com/blog/introducing-chatgpt-plugin) > Orshot is now a plugin in ChatGPT and Codex. Install it once and ask it to render on-brand images, PDFs and video from your templates, right in chat. You can already design templates in Orshot, render them via API, and connect them to [agents over MCP](https://orshot.com/agents). Today it gets one step simpler: the **[Orshot plugin is live in ChatGPT](https://orshot.com/agents/chatgpt)**. Because ChatGPT and Codex share one plugin directory, the same plugin installs in Codex too. Add it once, then just ask, and it renders on-brand visuals straight from your workspace. [Install in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6a79affedd808191b69f2e62014b8235?q=orshot) ![Orshot in the ChatGPT app directory](https://orshot.com/blog/introducing-chatgpt-plugin/chatgpt-listing.webp) ### What you can do - Generate on-brand templates and render carousels, images, PDFs and video from your data - Manage your brand assets, colors and fonts - Plug into your API and automation workflows - Post, draft and schedule social content, and see what gets engagement - Check your best time to post and pull the numbers you need to grow It's the same hosted Orshot workspace behind the chat, so every render uses your templates, brand kit and credits. ### Add it to ChatGPT or Codex It's live in the shared ChatGPT and Codex app directory, so you can install it in one click: [Install in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6a79affedd808191b69f2e62014b8235?q=orshot) **Using Codex?** [Install it in Codex](https://chatgpt.com/plugins/plugin_asdk_app_6a79affedd808191b69f2e62014b8235?open_in_app) in one click, or run `/plugins` in Codex, search for Orshot, and select Install plugin. Prefer to add it by hand in ChatGPT? Go to Settings → Connectors → Add custom connector and paste `https://mcp.orshot.com/mcp`, then authorize. Custom connectors need a plan with connectors / developer mode enabled. ### Then just ask ![Ask your agent in plain language, Orshot renders and publishes everywhere](https://orshot.com/blog/introducing-chatgpt-plugin/ask-your-agent.webp) Once it's connected, describe the visual you want and ChatGPT calls Orshot to render it: - *"Design a 5-page carousel for The State of Web Design after AI for LinkedIn, use big and bold fonts and vibrant colors."* - *"Generate a PDF from my carousel template using this Excel data and post it to my connected LinkedIn."* - *"Create a workflow that renders my social post template from a Google Sheet and posts it to Slack every Monday."* Want the full setup, including Claude, Cursor, Codex and VS Code? See the [Orshot for agents](https://orshot.com/agents) guides. --- ### [Introducing Orshot for Developers](https://orshot.com/blog/orshot-for-developers) > Build apps and integrations on top of Orshot with OAuth 2.0. Register your app, test in development mode, publish to all users — with built-in sandbox safety. We're opening up Orshot to third-party developers. You can now build apps that connect to Orshot on behalf of users — workflow tools, IDE extensions, AI agents, and more — all powered by **OAuth 2.0**. ## What You Can Build - **Workflow tools** that generate images, PDFs, or videos from Orshot templates - **Integrations** that sync Orshot with other platforms - **IDE extensions** for VS Code, Cursor, and other editors - **AI agents** that use Orshot via [MCP (Model Context Protocol)](https://orshot.com/blog/ai-tools-for-graphic-design-with-mcp) - **Automation tools** that trigger renders from external events ## How It Works ### 1. Register Your App ![Registering an app in Orshot](https://orshot.com/docs/apps/register-app.webp) Head to the [Developer Program](https://orshot.com/register-an-app) and submit your app details — name, description, redirect URIs, and the scopes you need. You'll get a `client_id` and `client_secret` immediately. ### 2. Build in Development Mode All new apps start in **development mode**. While in this mode, only you and your [test users](https://orshot.com/docs/developers/register-app#development-mode) can authorize and use the app. This lets you build and iterate safely without affecting real users. The consent screen shows an "unverified app" warning so testers know the app hasn't been reviewed yet. If someone outside your test users list tries to authorize, they'll be blocked. ### 3. Implement OAuth We support two OAuth 2.0 flows: - **[Authorization Code + PKCE](https://orshot.com/docs/developers/authorization-code)** — for web apps, desktop apps, and IDE extensions - **[Device Flow](https://orshot.com/docs/developers/device-flow)** — for CLI tools and devices without a browser Both result in access and refresh tokens scoped to the user's chosen workspaces. ### 4. Call the API Use access tokens to make API requests — list templates, generate renders, manage assets, and more. See the full list of [available endpoints](https://orshot.com/docs/developers/oauth-endpoints) and [code examples](https://orshot.com/docs/developers/examples). ### 5. Publish When your app is ready, [submit it for review](https://orshot.com/docs/developers/publishing). Once approved, it'll be listed in Orshot's integrations directory and available to all users. Sandbox restrictions are removed automatically. ## Sandbox Safety We've built sandbox enforcement at every level to keep things safe during development: - **Authorization time** — Only the app owner and test users can go through the consent flow - **API level** — Every API call checks if the app is published. If not, only owner and test user tokens work. Others get a `sandbox_restricted` error - **Retroactive** — If you switch a published app back to private, existing tokens from non-authorized users stop working immediately This is modeled after how Google and Shopify handle app development — you get a safe environment to build in without affecting real users. ## Get Started [Register Your App →](https://orshot.com/register-an-app) Or dive into the [Developer Documentation](https://orshot.com/docs/developers) to learn more about OAuth flows, scopes, token management, and publishing. --- ### [Introducing Orshot HubSpot Integration](https://orshot.com/blog/orshot-hubspot-integration) > Connect HubSpot to Orshot and auto-generate on-brand images, PDFs, and videos from CRM data inside any workflow — no code. Orshot now connects to HubSpot. [Connect it once](https://orshot.com/integrations), and any HubSpot **workflow** can generate an on-brand **image, PDF, or video** from one of your templates — personalized with that record's CRM data, and written straight back to the contact. No code, no exporting data into a separate design tool. ![The Generate Image, PDF or Video with Orshot action inside a HubSpot workflow](https://orshot.com/blog/orshot-hubspot-integration/action.webp) ## What you can automate - **Welcome and onboarding images** with the contact's first name - **Deal-won certificates** and renewal reminders - **Per-record social and OG images** for outreach - **PDFs** (proposals, certificates) and **videos** for animated templates If you can design it once in Orshot, every field in it becomes something you can fill from HubSpot. ## How it works 1. **Connect** HubSpot from Orshot → Integrations (secure OAuth — no keys to copy). 2. In HubSpot, add the **Generate Image, PDF or Video with Orshot** action to any workflow. 3. **Map** your template's parameters to CRM values, dropping in HubSpot **personalization tokens** (First name, Company, any property). 4. Pick the output: return just the file URL, or **save it to your File Manager and write the URL onto the record**. Drop a HubSpot personalization token into any field value, and every record renders its own version: ![Inserting a HubSpot First name personalization token into a field value](https://orshot.com/blog/orshot-hubspot-integration/personalize.webp) Every enrolled record renders its own visual at runtime, so a thousand contacts get a thousand personalized files — automatically. Each one is saved to your File Manager: ![Renders saved to your HubSpot File Manager in the Orshot Renders folder](https://orshot.com/blog/orshot-hubspot-integration/result.webp) > **No workflow needed for emails:** you can also drop a personalized Orshot image straight into a HubSpot **marketing email** with a dynamic image URL that carries HubSpot tokens — each recipient's email renders their own image. ## Who it's for [Marketing and RevOps teams](https://orshot.com/solutions/ai-marketing-automation-for-agencies) who want personalized creative at scale — without exporting CRM data, hiring a designer for every variant, or writing a line of code. ## Get started It takes about a minute to connect. Renders run through your Orshot workspace and use its credits; serving an already-generated URL again is free. - **[Set it up — the HubSpot guide](https://orshot.com/help/generate-visuals-with-hubspot)** — connect, add the action, personalize, and ship. - **[HubSpot integration docs](https://orshot.com/docs/integrations/hubspot)** — full reference for the Orshot HubSpot app. --- ### [Introducing Orshot Publish](https://orshot.com/blog/introducing-orshot-publish) > Post directly to your social media accounts from Orshot. Connect your accounts, publish from the dashboard or automate via the API — all without leaving your workflow. We built Orshot to make generating images and PDFs at scale dead simple. But once you've generated the perfect visual, posting it somewhere meant stitching together [another service](https://orshot.com/blog/social-media-automation-tools) — [Buffer](https://orshot.com/blog/buffer-alternative), SocialBee, or some other third-party API — just to get the image out. That's extra cost, extra setup, and one more thing to maintain. So we built **Orshot Publish** — a way to post directly to your social media accounts from your Orshot dashboard or via the API. Generate and publish in the same place. No more juggling between tools. [Watch the video](https://www.youtube.com/watch?v=ec05xj2sXp8) ### How It Works ![Connecting social accounts in Orshot Publish](https://orshot.com/blog/orshot-publish-social-accounts.webp) 1. Head to the **Publish > Social Accounts** section in your workspace. 2. Connect any of your social accounts — Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Pinterest, Reddit, Bluesky, Threads, Telegram, Snapchat, or Google Business. 3. Generate renders and publish to your socials — right from the template playground. That's it. Your generated images go straight to your audience. ### Publish, Draft, or Schedule You don't have to post everything immediately. Orshot Publish gives you three options: - **Publish now** — send it out immediately. - **Save as draft** — come back to it later. - **Schedule** — pick a date and time, and Orshot handles the rest. ### Post from Template Playground ![Publishing a post from the Orshot template playground](https://orshot.com/blog/publish-from-playground.png) Here's where it gets really useful. When you're generaring a render, the renders be it Images, PDF or Videos are directly pulled from the template and attached to your post automatically. You can customize the caption and specific platform settings too. ### Automate with the API If you're already using Orshot's API to generate renders programmatically, you can now publish them too. The Orshot API now lets you send a `publish` object in your request, where you can configure which socials to post, the caption(we support per platform captions), and other settings. Orshot API will automatically process the render, and publish it on all the selected socials. You can also draft or schedule these posts on your socials This means you can build end-to-end pipelines: generate a product banner, a certificate, or an OG image, and post it directly to your social channels without any manual steps. ### Supported Platforms Orshot Publish supports 15 platforms out of the box: - Twitter/X - Instagram - Facebook - LinkedIn - TikTok - YouTube - Pinterest - Reddit - Bluesky - Threads - Telegram - Snapchat - Discord - WhatsApp - Google Business You can connect multiple accounts from the same platform in one workspace and target each account by its unique account ID. ### Pricing Orshot Publish is available as an add-on to any paid plan. Each connected social account costs **$12/month**, and you get unlimited posts. No per-post fees, no hidden limits. ### Get Started If you're on a paid plan, head to **Publish > Social Accounts** in your workspace and connect your first account. Check out the [Publish documentation](https://orshot.com/docs/publish/introduction) for a full walkthrough of the dashboard and the API. --- ### [Introducing Orshot's AI Design Agent](https://orshot.com/blog/introducing-design-agent) > Tell the AI what you want to create, and it will generate customizable templates and designs in seconds. Build social posts, ads, and certificates with simple text prompts Orshot has always been about making bulk image and PDF generation efficient and fast. But creating the perfect baseline template from scratch can still take time. Enter the **Orshot Design Agent**. Our new AI-powered agent lives right inside your Orshot Studio and builds templates for you. Just describe what you need, and it handles the layout, typography, colors, and element positioning automatically. [Orshot Design Agent](https://www.youtube.com/watch?v=t-Xt1W5XzEY) ### What is the Orshot Design Agent? The Design Agent is an interactive AI assistant integrated directly into the canvas. Instead of manually dragging and dropping shapes, text, and images, you can simply chat with the AI. Ask it to scaffold a layout, insert dynamic placeholders for the API, or re-theme an entire design instantly. Once the agent generates your template, you can still manually tweak any detail or immediately connect the template to our REST API, Zapier, or Make. ![The Orshot AI Design Agent generating a template](https://orshot.com/blog/orshot-design-agent.png) ### How to Use It 1. Open a new or existing template in the **Orshot Studio**. 2. Click on the **Design Agent / Chat** panel. 3. Type your request into the chat box. (e.g., _"Create a modern real estate Instagram post..."_) 4. Watch the agent drop elements and build the template right on your canvas. 5. Ask for revisions (e.g., _"Make the background darker"_) or manually fine-tune the finalized canvas. ### Actionable Workflows You Can Try Today The Design Agent isn't just a party trick—it's built to accelerate your content automation pipelines. Instead of starting from a blank canvas, let the AI scaffold your layout, then immediately connect it to your favorite automation tools for bulk generation. Here is how you can use it: - **Automate E-commerce Product Banners:** Ask the agent to _"Create a minimal product sale banner with a large image placeholder and a price tag."_ Once generated, you can use our [REST API to automate e-commerce product images](https://orshot.com/blog/automate-ecommerce-product-images) matching your catalog. - **Bulk Generate Certificates:** Prompt the agent with _"Design a modern course completion certificate with placeholders for student name and date."_ From there, scale it up and [bulk generate PDF certificates](https://orshot.com/tools/certificate-generator) via API or Make. - **No-Code Social Media Pipelines:** Generate a base template for Twitter or Instagram quotes. Then, connect your new template via our [Make integration](https://orshot.com/blog/orshot-make-integration) or Zapier to [automatically generate and post](https://orshot.com/blog/social-media-automation-tools) new images every time you add a row in Google Sheets or Airtable. - **Programmatic SEO Graphics:** Need thousands of unique OG images for your content? Ask the agent to _"Create an Open Graph image with a dynamic title and background."_ Once complete, use it as part of your [programmatic SEO](https://orshot.com/blog/programmatic-seo-tools) workflow rather than doing it by hand. - **Scale Any Visual Content:** Combine the Design Agent with [automated content creation tools](https://orshot.com/blog/automated-content-creation-tools) to go from idea to hundreds of branded variations without manual design work. The Orshot Design Agent is available now on all plans. Head over to your workspace, spin up a new template, and let the AI do the heavy lifting! --- ### [Introducing Smart Resize: One Template, Render Any Size](https://orshot.com/blog/introducing-smart-resize) > Smart Resize adapts one Orshot studio template to any size — Story, Square, OG image, thumbnail — right in the editor and on demand via the API. No per-channel redesign. Every asset needs to exist in five sizes. You design a beautiful Instagram post, then rebuild it as a Story, a landscape ad, an OG image, a YouTube thumbnail — same content, same brand, redone by hand for every channel. **Smart Resize** ends that. Design once in Orshot Studio and render the same template at any size — the layout re-flows to fit automatically. Use it right in the editor, or request any size on demand from the [API](https://orshot.com/docs/api-reference/render-from-studio-template#smart-resize). Here's a quick demo: [Watch the video](https://www.youtube.com/watch?v=86dkIZybbdw) ## What it does ![Smart Resize adapts one design to every size](https://orshot.com/blog/smart-resize/panel.webp) Add the sizes you need and Orshot adapts the layout to each one — **deterministically** (the same design and size always look the same): - Everything scales together, so proportions and spacing are preserved. - Elements re-anchor to the edge they were designed against — a top-left logo stays top-left, a footer stays pinned to the bottom. - Backgrounds and full-bleed images stretch to cover the new canvas. - A safety guard keeps elements from overlapping. Each size gets an instant, true-to-render preview with a status badge — **Auto**, **AI** (recomposed), or **Edited**. ## How to use it in Studio 1. Open your template and click **Smart Resize** in the top toolbar. 2. **+ Add Size** — pick a preset (Story, Square, OG image…) or enter a custom width × height. 3. Reuse each size two ways: **Add as new page** / **Replace current page**, or fine-tune it with **Adjust Variant**. 4. **Save** — a saved size renders exactly as you approved it. [How to resize a design →](https://orshot.com/help/resize-elements-and-canvas) ## Render any size from the API Designed it once? Pull any size on demand. Add `size` to your render's `response` to replace the output size: ```bash curl -X POST "https://api.orshot.com/v1/studio/render" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "YOUR_TEMPLATE_ID", "response": { "type": "url", "format": "png", "size": "instagram-story" } }' ``` `size` takes a preset slug (`instagram-story`, `og-image`, `youtube-thumbnail`…) or a plain `"WIDTHxHEIGHT"` like `"1080x1920"`. ![The API Usage tab gives you a ready-to-run request for any size](https://orshot.com/blog/smart-resize/api-usage.webp) ### Multiple sizes in one call Need a whole set at once? `extraSizes` returns the same design at several sizes from a single request: ```bash "response": { "type": "url", "format": "png", "extraSizes": ["1080x1920", "1080x1080", "1200x630"] } ``` Each extra size comes back nested beside your render. [Full API reference →](https://orshot.com/docs/api-reference/render-from-studio-template#smart-resize) ## Where it shines - **Social campaigns** — one design becomes a Story, a Feed post, and a landscape ad, all on brand. - **Programmatic OG images** — render per-page OG and Twitter cards from a single template. - **Ad variants** — generate every ad size from one source through the API. - **Embed customers** — on Scale plans, your embedded-studio users can resize designs and add pages too ([embed guide](https://orshot.com/docs/orshot-embed/smart-resize)). ## Start resizing Smart Resize is live in Orshot Studio. Open any template, hit **Smart Resize**, and ship every size from one design. [Resize a design](https://orshot.com/help/resize-elements-and-canvas) · [Smart Resize in Studio](https://orshot.com/docs/orshot-studio/smart-resize) · [API reference](https://orshot.com/docs/api-reference/render-from-studio-template#smart-resize) --- ### [Introducing Smart Stacking for Relative Positioning of Elements](https://orshot.com/blog/smart-stacking) > Stack elements relative to each other for truly dynamic layouts that adapt automatically when content changes We're excited to introduce **Smart Stacking** - a powerful new feature in [Orshot Studio](https://orshot.com/features/orshot-studio) that lets you position elements relative to each other, creating dynamic layouts that automatically adapt when content changes ## What is Smart Stacking? [Smart Stacking](https://orshot.com/docs/orshot-studio/smart-stacking) allows elements to maintain their position relative to other elements. When the target element moves, resizes, or changes content, stacked elements automatically adjust their position No more manual repositioning when text length changes or images are swapped out. With this, you can generate position aware images/pdfs at scale from your [Orshot templates](https://orshot.com/templates) Specially with text layers, previously there was no way to position text relatively and so it caused issues like overlapping, or uneven spacing. Smart Stacking fixes that and much more letting you create adaptive designs that look stunning and professional ### Demo [Smart Stacking in Orshot Studio](https://www.youtube.com/watch?v=1nae0-zEjDc) ### Key Features - **Dynamic Positioning**: Elements automatically follow their target element - **Real-time Updates**: Changes happen instantly as you edit content - **Multipage Support**: Works seamlessly across all pages in your templates - **Chain Stacking**: Create complex relationships by stacking elements to other stacked elements - **Content-Aware**: Calculates positions based on actual content size, not just container dimensions - Get stacked designs [generated as images](https://orshot.com/solutions/image-generation-api)/[pdfs](https://orshot.com/solutions/pdf-generation-api) from API or [integrations](https://orshot.com/integrations) ### How It Works 1. **Enable Smart Stacking** on any element in the element editor 2. **Select a target element** to stack relative to 3. **Choose your position** from 9 options (top-left, center, bottom-right, etc.) 4. **Fine-tune with offsets** using X and Y pixel adjustments 5. **Generate images** with dynamic content without thinking about text length etc. Implementation-wise, it was a complicated feature to design as it has to work correctly both in Orshot Studio as well as in Orshot API to make sure the stacking works exactly the same based on set offset and positions. Even popular [automated image generation services like BannerBear or Placid](https://orshot.com/blog/bannerbear-api-alternative) do not have this smart stacking feature Smart Stacking is available now in Orshot Studio. Simply select any element and look for the "Smart Stacking" toggle in the element editor to start creating dynamic, adaptive layouts [Try Smart Stacking in Studio →](https://orshot.com/studio) --- ### [Introducing Social Analytics with API & Agent support](https://orshot.com/blog/introducing-social-analytics) > A social analytics platform for every account: impressions, engagement, follower growth and best time to post, via dashboard, API or agents. On Orshot. You can already design templates in Orshot, render them via API, and publish straight to your social accounts. Today we're closing the loop: **[Social Analytics](https://orshot.com/features/social-analytics)** is live for every workspace with connected accounts. Publishing without measuring is guesswork. Now the same dashboard that schedules your posts tells you what they earned: impressions, engagement, clicks, and follower growth, across every platform, side by side. ![Orshot Social Analytics dashboard showing cross-platform impressions, engagement, posts and follower growth](https://orshot.com/blog/introducing-social-analytics/analytics.webp) ### What you get - **One view across platforms.** Impressions, engagement, posts, followers, and clicks for all connected accounts, compared against the previous period. Filter by channel, account, or how the post was published. - **Per-post breakdowns.** Click any post to see its impressions, reach, likes, comments, shares, saves, clicks, and engagement rate, with day-by-day charts. Right in the Posts Log, no page hopping. - **Best time to post.** A day-by-hour heatmap built from your own engagement history, not generic advice. It surfaces your peak window once you have posting history. - **Top posts, ranked.** Your best performers sorted by engagement (or impressions, likes, clicks), so "make more of what works" is a list, not a hunch. - **Accounts side by side.** Posts, impressions, engagement rate, and follower change per account, to show where your effort actually pays off. - **A daily digest email.** Yesterday's numbers, follower changes per account, platform breakdown, and your top posts, in your inbox every morning. Toggle it per workspace in settings. ![Follower growth, per-account comparison and ranked top posts in Orshot Social Analytics](https://orshot.com/blog/introducing-social-analytics/insights.webp) There's data from day one: analytics also covers posts synced from your connected platforms, not just the ones published through Orshot. ### How we run our own LinkedIn and X with it This isn't a feature we built and hoped someone would use. It's how we run [@Orshot on LinkedIn](https://www.linkedin.com/company/orshot) and [@orshotapp on X](https://x.com/orshotapp) right now, with exactly two tools: Orshot and Claude. Here's the whole pipeline: 1. **Claude fills the calendar.** We ask Claude to plan the week from our published blog posts and solution pages. Through [Orshot for agents](https://orshot.com/agents), it writes the captions and schedules everything itself. This week that was 28 posts across 7 days, two per day per platform. 2. **Orshot renders every cover.** Each post's image comes from one Orshot template, filled with that post's title and stat via the [API](https://orshot.com/docs/api-reference/social-publish). No design tool was opened. 3. **Orshot publishes on schedule.** Same social publishing every customer uses. 4. **Analytics closes the loop.** The dashboard shows which topics and time slots earn engagement, and the daily digest lands in the inbox each morning. Next week's calendar gets planned off this week's numbers. ![Per-post analytics inside the Post Details panel in Orshot](https://orshot.com/blog/introducing-social-analytics/post-sheet.webp) No social media tool subscriptions, no manual posting, no screenshot-your-stats rituals. A template, an agent, and this dashboard. ### The API underneath Everything the dashboard shows is available over the API with your existing API key. Five endpoints, all documented in the [API reference](https://orshot.com/docs/api-reference/social-analytics-list): | Endpoint | Returns | Docs | | :-------------------------------- | :----------------------------------------------------- | :--------------------------------------------------------- | | `GET /v1/social/analytics` | Every post with metrics, plus follower counts | [See API](https://orshot.com/docs/api-reference/social-analytics-list) | | `GET /v1/social/analytics/daily` | Day-by-day series with a per-platform breakdown | [See API](https://orshot.com/docs/api-reference/social-analytics-daily) | | `GET /v1/social/analytics/insights` | Best time to post, posting frequency, engagement decay | [See API](https://orshot.com/docs/api-reference/social-analytics-insights) | | `GET /v1/social/analytics/accounts` | Follower history and growth per account | [See API](https://orshot.com/docs/api-reference/social-analytics-accounts) | | `GET /v1/social/analytics/posts/:id` | One post's full metrics and daily timeline | [See API](https://orshot.com/docs/api-reference/social-analytics-post) | Filter by platform, account, source, and date range. Responses are cached and refreshed in the background, with a `refresh=1` switch when you need live numbers. ### Agents can use it too Because the analytics sit on the same API, any agent connected through [Orshot for agents](https://orshot.com/agents) can read them and act. Some things you can ask Claude with Orshot connected: - _"What earned the most engagement this week? Post two more variations of the winner next week."_ - _"When does our LinkedIn audience actually engage? Move next week's schedule to those slots."_ - _"How did followers change per account this month? Draft a plan for the account that's lagging."_ The agent pulls real numbers, plans from them, renders the covers from your templates, and schedules the posts. That's the whole loop in one conversation, and it's how this week's calendar got filled. ### Works with your whole stack Analytics is part of [Social Posting](https://orshot.com/solutions/ai-marketing-automation-for-agencies): $12/month per connected account on any paid plan, with analytics included at no extra cost. Connect accounts across 15+ platforms, publish from the dashboard, the [API](https://orshot.com/docs/api-reference/social-publish), or any agent via [Orshot for agents](https://orshot.com/agents), and measure everything in one place. ![Connected social accounts with follower counts and growth in Orshot](https://orshot.com/blog/introducing-social-analytics/accounts.webp) Head to **Social Posting → Analytics** in your workspace to see yours. --- ### [Introducing the Agency Partner Program](https://orshot.com/blog/agency-partner-program) > A free program for automation agencies and consultants to scale client work with unlimited sandbox workspaces, pooled credits, and dedicated support. We're launching the **Agency Partner Program** — a free program designed for [automation agencies and consultants](https://orshot.com/agencies) who build visual content solutions for multiple clients. ## Who Is It For? - **Zapier Solution Partners** building automation workflows for clients - **Make (Integromat) Partners** implementing visual automation in scenarios - **No-code automation consultants** specializing in workflow automation - **Marketing automation agencies** creating dynamic social images, PDFs, and videos at scale If you're managing image, PDF, or video generation for multiple clients, this program is for you. It simplifies the process compared to building custom solutions with an [image editor SDK](https://orshot.com/blog/image-editor-sdk). ## Key Benefits - **Free to join** — No cost, no hidden fees - **Unlimited sandbox workspaces** — Build and test templates without affecting client quotas - **Unlimited team seats** — Add as many team members as you need - **Pooled credit quota** — Up to 100,000 credits/month shared across all sandboxes - **Priority support** — Faster responses from our team - **Client handoff tools** — Seamlessly transfer workspaces when clients are ready ![The Orshot agency partner dashboard](https://orshot.com/blog/partner-dashboard.webp) ## How It Works 1. **Apply** — [Fill out a quick application](https://orshot.com/partner-program) 2. **Get approved** — You'll recieve an email from us within 24 hours 3. **Onboard** — Set up your agency profile and first sandbox 4. **Build** — Design unlimited templates in sandbox workspaces 5. **Integrate** — Integrate templates for your client via Rest API or 10+ integrations for Image/PDF/Video Generation 6. **Test and Review** — Generate renders, iterate with your client and test workflows 7. **Handoff** — Transfer workspaces to clients when ready When clients subscribe, they count toward your active client count, unlocking higher tiers and more renders. ## Apply Now Ready to scale your agency's visual automation? [Apply for the Partner Program →](https://orshot.com/partner-program) Questions? Reach out at [partners@orshot.com](mailto:partners@orshot.com). You can [learn more about the Partner Program](https://orshot.com/docs/partner-program) in Orshot Docs --- ### [Introducing Video Generation API in Orshot](https://orshot.com/blog/introducing-video-generation) > Create dynamic videos from your Orshot templates using the REST API. Add video elements, control playback, trim clips, and generate MP4, WebM, or GIF outputs programmatically You can now generate videos from your Orshot Studio templates. Add video elements to your designs, make them dynamic with parameters, and render MP4, WebM, or GIF outputs via the REST API ### Key Features - **Video Elements** - Add video layers to your templates just like images or text - **Dynamic Video URLs** - Pass custom video URLs at render time using parameters - **Trim Controls** - Set start and end times to use specific portions of videos - **Playback Options** - Control loop, mute, and autoplay settings per video - **Multiple Formats** - Generate MP4, WebM, or GIF outputs - **Audio Support** - Include or exclude audio from your video renders - **[Layer Animations](https://orshot.com/blog/introducing-animations-in-studio)** - Add enter/exit animations (fade, slide, scale), visibility timing, and staggered choreography to any layer. Every animation renders frame-perfectly into your video output ### How It Works 1. Create a template in [Orshot Studio](https://orshot.com/studio) 2. Add a video element and configure its settings 3. Set a parameter ID to make the video URL dynamic 4. Call the render API with `response.format: "mp4"` and pass your video URL ### API Example ```bash curl -X POST https://api.orshot.com/v1/render \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "template_id": "your-template-id", response : { "type": "url", "format": "mp4", }, "modifications": { "videoElement": "https://example.com/your-video.mp4", "videoElement.trimStart": 0, "videoElement.trimEnd": 10, "videoElement.muted": false, "title.enterType": "fadeIn", "title.enterDuration": 0.8, "title.showAt": 0.5 } }' ``` ### Video Tutorial [Watch the video](https://www.youtube.com/watch?v=RQPHJY3bkZk) ### Pricing Video generation is billed at **1 credit per second of video** (per second or part thereof). A 10-second video uses 10 credits. You can generate video lengths from 3 minutes upto 10 minutes based on plan Videos are also supported in [multi-page/carousel templates](https://orshot.com/blog/introducing-carousel-templates), so you can basically have multiple pages, each having multiple videos in a single template. This helps in generating a series of videos from a single API call (Pricing and limits can be revised later based on cost and performance improvements) ### Get Started Video generation is [available today](https://orshot.com/pricing) on all paid plans. Open Studio, add a video element to your template, and start generating dynamic videos programmatically. You can check the [Rest API documentation here](https://orshot.com/docs/api-reference/render-from-studio-template) Once generated, you can also publish videos directly to TikTok, Instagram Reels, YouTube, LinkedIn, and more using [Social Publish](https://orshot.com/docs/publish/introduction) — no extra tools needed. With this addition, Orshot now generates Images + PDFs + Videos. Since launch, we've added a [full video timeline with page-level audio tracks and auto-generated subtitles](https://orshot.com/blog/video-timeline-audio-subtitles), plus [per-layer animations](https://orshot.com/blog/introducing-animations-in-studio) — all configurable visually in Studio and controllable via API --- ### [Introducing Video Timeline, Audio and Subtitle Controls](https://orshot.com/blog/video-timeline-audio-subtitles) > Orshot Studio now includes a visual video timeline with drag-and-drop layer management, page-level audio tracks, and built-in subtitle support — in Studio and via API. Creating videos in Orshot used to mean setting durations and timings in side panels, then previewing to see if the choreography felt right. That loop was slow, especially for templates with many layers. Today we're shipping three features that make video creation in [Orshot Studio](https://orshot.com/features/orshot-studio) significantly faster and more expressive: a **visual timeline**, **page-level audio**, and **subtitle controls**. ## Video Demo [Watch the video](https://www.youtube.com/watch?v=xecbCvew_uM) ## Video Timeline ![The video timeline bar in Orshot Studio](https://orshot.com/blog/video-timelines-bar.webp) The timeline sits at the bottom of Studio and gives you a full picture of your video composition at a glance. - **Drag layers** to reposition them in time — no more typing start/end values manually - **Resize handles** to trim layer duration by dragging edges - **Layer stacking** shows the visual order and overlap of every element - **Scrub the playhead** to jump to any point in the video Every layer — text, image, video, shape — appears on the timeline. You see exactly when each element enters, how long it stays, and when it exits. Adjustments that used to take multiple clicks now take a single drag. ## Multi-Track Page Audio ![Multi-track page audio in the Orshot video timeline](https://orshot.com/blog/video-timeline-audio.webp) Each page now supports multiple audio tracks — layer background music with a voiceover, or combine ambient sound with narration. This is useful for: - **Background music + voiceover** on the same page - **Sound effects** layered with narration - **Per-page audio** in multi-page videos (intro music, chapter themes) Each track has independent controls: volume, trim, offset, fade, loop, and mute. Tracks appear as collapsible sections in the audio panel and as separate draggable bars in the timeline. ## Subtitle Support ![Subtitle support in the Orshot video editor](https://orshot.com/blog/video-timeline-subtitle.webp) Add subtitles to your videos directly in Studio. You can: - **Write subtitles manually** or paste an existing script - **Auto-generate subtitles** from audio using AI transcription - **Style subtitle text** — font, size, color, background, position - **Time each subtitle** to appear and disappear precisely on the timeline Subtitles render into the final video output, so they work everywhere your video plays — no separate subtitle files needed. ## API Support Audio tracks and subtitles configured in Studio are automatically included when you render a video. For more control, the API lets you override audio, provide custom subtitle sources, and style subtitles per request. ### Custom Audio via API Use `videoOptions.audioSource` to provide a custom audio URL at render time: ```json { "templateId": "", "modifications": { "headline": "Welcome to Our Product" }, "response": { "format": "mp4", "type": "url" }, "videoOptions": { "audioSource": "https://example.com/background-music.mp3" } } ``` ### Custom Subtitles via API Use `videoOptions.subtitleSource` to provide a subtitle file: ```json { "templateId": "", "modifications": { "headline": "Welcome to Our Product" }, "response": { "format": "mp4", "type": "url" }, "videoOptions": { "audioSource": "https://example.com/voiceover.mp3", "subtitleSource": "https://example.com/captions.srt", "subtitleFontSize": "30px", "subtitleColor": "#ffffff", "subtitleBackground": "rgba(0,0,0,0.5)", "subtitlePosition": "bottom" } } ``` ### Multi-Page Video with Per-Page Audio and Subtitles For multi-page videos, pass per-page audio and subtitle sources as arrays. Each entry can use `page` (number) or `pageId` (UUID) — `pageId` is stable when pages are reordered: ```json { "templateId": "", "modifications": { "intro_text": "Chapter 1", "body_text": "The full story" }, "response": { "format": "mp4", "type": "url", "includePages": [1, 2, 3] }, "videoOptions": { "combinePages": true, "pageTransition": "fade", "pageTransitionDuration": 0.5, "audioSource": [ { "page": 1, "url": "https://example.com/intro-music.mp3" }, { "page": 2, "url": "https://example.com/chapter-1-music.mp3" }, { "page": 3, "url": "https://example.com/outro-music.mp3" } ], "subtitleSource": [ { "page": 1, "url": "https://example.com/intro.srt" }, { "page": 2, "url": "https://example.com/chapter-1.srt" }, { "page": 3, "url": "https://example.com/chapter-2.srt" } ], "subtitleFontSize": "28px", "subtitleColor": "#ffffff", "subtitleBackground": "rgba(0,0,0,0.6)" } } ``` ### Muting Audio To render a video without any audio (page audio tracks and video element audio), set `videoOptions.muted`: ```json { "templateId": "", "response": { "format": "mp4", "type": "url" }, "videoOptions": { "muted": true } } ``` ### Audio Controls in Studio Each audio track supports fine-grained controls applied automatically during rendering: | Control | Description | | ---------- | --------------------------------------------------- | | **Volume** | Mix level from 0% to 100% | | **Trim** | Start and end points to use a specific portion | | **Offset** | Delay when the audio starts playing within the page | | **Fade** | Fade in and fade out duration in seconds | | **Loop** | Repeat the audio to fill the full page duration | These settings are configured visually in the timeline and respected during API renders. ## What This Changes Before today, precise video choreography required switching between panels and previewing repeatedly. Now you design video timing the way editors expect: visually, on a timeline. Multi-track audio, custom audio sources via API, and subtitles round out what was missing for production-ready video output. --- The video timeline and subtitles are available now in Orshot Studio on all plans. Multi-track audio is available on paid plans. Read the [video generation docs](https://orshot.com/docs/video-generation) for API details, or open [Studio](https://orshot.com/studio) and try it. --- ### [Introducing Workflow Automations](https://orshot.com/blog/introducing-workflow-automations) > Turn a data source into finished visuals on autopilot: connect Google Sheets or Airtable, render a template for every row, and deliver the results anywhere. No Zapier chain required. Orshot can now run your whole visual pipeline, not just the rendering step. **[Workflow Automations](https://orshot.com/workflows)** live right inside your workspace: pick a trigger, connect a data source, choose a template, and tell Orshot where to send the results. From then on it runs by itself, on a schedule, on a webhook, or the moment new data shows up. ![The workflow builder](https://orshot.com/solutions/workflow-builder.png) ## What a workflow looks like Every workflow is the same simple shape: **trigger → data → render → deliver.** 1. **Trigger**: on a schedule, from an incoming webhook, manually, or when new rows appear in your source 2. **Data**: rows from Google Sheets or Airtable, files from Google Drive, or the webhook payload itself 3. **Render**: any Orshot template, one image, PDF, or video per row, with columns mapped to template fields 4. **Deliver**: write links back to your sheet or base, save files to Drive or Dropbox, post to Slack or your social accounts, push to S3 or WordPress, or just keep a URL One run can process a whole batch of rows, so a single workflow covers anything from a daily quote graphic to a few thousand certificates. ## What you can plug together | Building block | What you can use | | --- | --- | | Triggers | `Schedule` `Incoming webhook` `Manual run` `New Sheets row` `New Airtable record` `New Drive file` `New HubSpot contact` `New deal` `New company` | | Data sources | `Google Sheets` `Airtable` `CSV from a URL` `JSON from any API` `Webhook payload` | | Transforms | `Filter` `Sort` `Limit` `Dedupe` `Merge` `Delay` | | Destinations | `Sheets write-back` `Airtable write-back` `Google Drive` `Dropbox` `Slack` `S3 / R2` `WordPress` `HubSpot` `Outgoing webhook` `Hosted Orshot URL` | | Social publishing | `Instagram` `LinkedIn` `X` `TikTok` `YouTube` `Pinterest` `and more` | ## First-class Google Sheets and Airtable Both integrations now connect with one click through OAuth. No API keys to create, no tokens to paste. Once connected, the builder shows your actual spreadsheets, bases, and tables in live pickers, previews your columns, and can write render links back to the same row when a run finishes. ## Steal a working setup Every template below is a public workflow you can copy into your workspace and turn on: - [Post daily quote graphics automatically](https://orshot.com/workflows/daily-quote-graphics) - [Turn spreadsheet rows into Instagram carousels](https://orshot.com/workflows/instagram-carousels-from-sheet) - [Create product marketing images from your catalog](https://orshot.com/workflows/product-marketing-images) - [Issue certificates for everyone on your list](https://orshot.com/workflows/certificate-generator) - [Give every blog post an on-brand share image](https://orshot.com/workflows/blog-og-images) Here's what one looks like. This is the live Sheets-to-carousels workflow; hit **Use this workflow** and it lands in your workspace with every step in place. [Turn spreadsheet rows into Instagram carousels workflow on Orshot](https://orshot.com/workflows/instagram-carousels-from-sheet/embed) Browse the full gallery at [orshot.com/workflows](https://orshot.com/workflows). ## Included in every plan Workflow runs use automation credits, and every plan includes a monthly allowance. The free plan comes with 15 runs to try it out, and one credit is only spent when a run actually produces something. Idle checks are free. ## Get started ![The workflows dashboard: every automation with its flow, status, and one-click Run and Logs](https://orshot.com/blog/introducing-workflow-automations/workflows-dashboard.webp) Open **Workflows** in your workspace sidebar and hit **New Workflow**, or start from a [ready-made template](https://orshot.com/workflows). Workflows are also fully supported in the [Orshot MCP server](https://orshot.com/agents): agents like Claude can discover the building blocks, create and validate workflows, run them, and check their logs for you. If you can design it in Orshot, you can now ship it on autopilot. --- ### [New Text Layer Features: Multi-line, Gradients & Inline Params](https://orshot.com/blog/multiline-gradient-inline-text-layers) > Create richer text designs in Orshot Studio with multi-line support, gradient colors, and inline parameters for dynamic text replacement We're rolling out three powerful updates to text layers in [Orshot Studio](https://orshot.com/features/orshot-studio) that give you more control over typography and dynamic content. ![New text layer upgrades in Orshot Studio](https://orshot.com/blog/text-layer-upgrades.webp) ## Multi-line Text Support Text layers now support multi-line content for creating structured text layouts. ### In Studio Press `Shift+Enter` while editing text to insert a line break. The text content field will show `\n` where line breaks are placed. ### In API Use `\n` in your text content for line breaks: ```json { "modifications": { "headline": "Welcome to Orshot\n\nThe best image generation API" } } ``` Multi-line text works seamlessly with all text modes - Overflow, Truncate, and Fit. In Fit mode, the font size automatically adjusts to accommodate all lines within the container. ## Gradient Text Colors Text layers now support gradient colors, letting you create eye-catching typography. ### In Studio Click the color picker for Text Color and switch to the gradient tab. Choose from linear or radial gradients with custom color stops. ### In API Use standard CSS gradient syntax: ```json { "modifications": { "title.color": "linear-gradient(90deg, #FF6B6B, #4ECDC4)", "subtitle.color": "linear-gradient(to bottom, #667eea, #764ba2)" } } ``` Note: Gradient colors don't work with text stroke or text background color. ## Inline Parameters Inline parameters let you replace specific placeholders within text content using the `{{paramName}}` syntax. ### In Studio Type `{{paramName}}` directly in your text content. When you parameterize the layer, the detected inline parameters will appear in the API examples panel. ### In API Use the colon (`:`) separator to target inline parameters: **Template text:** ``` Hi {{name}}, welcome to {{company}}! ``` **API request:** ```json { "modifications": { "greeting:name": "Sarah", "greeting:company": "Acme Inc" } } ``` **Result:** ``` Hi Sarah, welcome to Acme Inc! ``` The colon (`:`) separator distinguishes inline parameters from regular ones. This is perfect for personalized content where you want to maintain consistent formatting while swapping specific values. ### Combining Features All three features work together. Here's an example using multi-line text with inline parameters: ```json { "modifications": { "message": "Dear {{recipient}},\n\nYour order #{{orderId}} has shipped!\n\nThank you for shopping with us.", "message:recipient": "John", "message:orderId": "12345", "message.color": "linear-gradient(135deg, #1a1a2e, #16213e)" } } ``` ## Getting Started These features are available now in [Orshot Studio](https://orshot.com/studio). When you parameterize a text layer, you'll see API usage examples showing exactly how to use each feature. --- ### [New Ways To Share Templates in Orshot](https://orshot.com/blog/sharing-orshot-templates) > Learn how you can share templates in Orshot. You can share via public link, embed code or email, and in three different view modes Orshot now has new ways to share templates. Now you can share your templates publicly in 3 different ways: - Share via Public Link - Embed Template in your app using Embed Code - Share via Email ## How to Share Templates Click on the Share icon in the template's Studio. You'll see option to toggle sharing on or off. Turn it on and you'll see multiple ways to share the template ![Template sharing options in Orshot](https://orshot.com/blog/template-sharing-1.webp) You can share the public link or embed the template using the embed code For both of these, you can share the template in different views: - **View Mode**: User can view the template - **Play Mode**: User can play with the template - **Presentation Mode**: User views the template in presentation focussed view Below is an example of an template embed in Presentation mode: [Open the embed](https://orshot.com/templates/shared/s30ws7it/embed?view=presentation) ## Video Tutorial [Watch the video](https://www.youtube.com/watch?v=RXEU7WmR97Q) This lets you share templates with your audience, and they can even play with it. The best part is, you can quickly present your template to anyone with the public link, or even better use the embed code internally to let your users see and play with it This is useful if you're use case involves [presentation slides](https://orshot.com/use-cases/t/auto-generate-presentation-slides) or documents, but also works for any kind of template You can [learn more about sharing templates](https://orshot.com/docs/orshot-studio/sharing-templates) in Orshot Studio documentation --- ### [Orshot 2.0 — A New Look, Same Fast API](https://orshot.com/blog/redesigned-orshot-v2) > Our biggest release yet. A refreshed brand, a unified design system, and a consistent UI across the marketing site, Studio, dashboard, and onboarding — so every part of Orshot feels like one product. Orshot 2.0 is here. It's the biggest release we've shipped — not in new features, but in how the product feels end to end. Over the last year we grew fast: Studio, embedded editors, signed URLs, social publishing, storage integrations, AI template generation. Every piece worked, but the surfaces around them drifted. 2.0 pulls everything back together around a single brand and a consistent experience. ## A refreshed brand ![The redesigned Orshot homepage](https://orshot.com/blog/new-design/home.webp) A warmer, more confident visual identity. An editorial serif for display, a precise sans for interface, and a tight palette anchored on a deep ink neutral and a cobalt accent we call **Tide**. It's the same Orshot — just more recognizably itself. ## One design system, everywhere ![The redesigned Orshot integrations page](https://orshot.com/blog/new-design/integrations.webp) Every screen in Orshot — from the homepage to the Studio canvas to your billing page — now shares the same type scale, color palette, cards, buttons, and spacing. No more context-switching when you move between reading, building, and shipping. ## Marketing site, rebuilt ![The redesigned Orshot open startup page](https://orshot.com/blog/new-design/open-startup.webp) The [homepage](https://orshot.com/) leads with what you actually get — design, automate, embed. Feature pages for [Studio](https://orshot.com/features/orshot-studio), [Embed](https://orshot.com/features/orshot-embed), [Signed URLs](https://orshot.com/features/signed-url), and [Social Publishing](https://orshot.com/features/social-publishing) each make a direct case. Customers, Agencies, Enterprise, and Pricing were rebuilt with the same discipline. ## A calmer dashboard ![The redesigned Orshot dashboard](https://orshot.com/blog/new-design/dashboard.webp) Billing and usage got a proper redesign — you can actually see what you're paying for and where your renders are going. Logs, integrations, team, settings, and socials were all tightened up. Same hierarchy everywhere means less to learn as you move around. ## A more consistent Studio ![The redesigned Orshot Studio](https://orshot.com/blog/studio-preview.webp) Panels, toolbars, dialogs, and controls now share their look with the rest of the product. The work surface is quieter so your template takes the focus. ## Dark mode, properly ![Orshot Studio in dark mode after the redesign](https://orshot.com/blog/new-design/studio-dark-mode.webp) ![Redesigned Orshot social post templates](https://orshot.com/blog/new-design/social-posts.webp) Every surface — marketing, Studio, dashboard, onboarding — works in dark mode. No seams, no washed-out chips, no accidental contrast. ## What hasn't changed Your API, your templates, your keys, your integrations, your workflows. Nothing you built on Orshot changes. 2.0 is a surface rewrite — render endpoints, modifications, and output formats are identical. Upgrade is a page refresh. ## See it The quickest way to feel the difference is to [sign in](https://orshot.com/login) and move around. If you're new, [sign up](https://orshot.com/signup) — you'll be making real API calls before you finish reading this post. As always, write back if anything feels off. A release this broad gets sharper with feedback. --- ### [Orshot API now works with dual-provider for better uptime](https://orshot.com/blog/orshot-api-dual-provider) > Orshot's API now runs on a dual-provider setup with automatic failover. If one host goes down, traffic seamlessly switches to the backup — no customer impact. Orshot is a visual automation platform — businesses use our API and studio to generate images, PDFs, and videos at scale. When our API goes down, our customers' workflows break. That's not acceptable. Earlier today, our primary hosting provider (Railway) had an outage. Our API was completely unreachable. While the provider recovered within a few hours, it exposed a single point of failure we needed to fix immediately. ## What changed We've moved to a **dual-provider architecture** with automatic failover: - **Primary API** runs on one cloud provider (Railway) - **Standby API** runs on a completely separate provider (Render), with its own infrastructure - **Cloudflare Load Balancer** sits in front, health-checking both every 60 seconds - **Provider-independent caching** via a dedicated managed service — no single provider can take down the cache layer When the primary goes down, Cloudflare detects the failure and routes all traffic to the standby within ~2 minutes. When the primary recovers, traffic switches back automatically. No manual intervention, no customer impact. ![Orshot's dual-provider API failover with Cloudflare routing](https://orshot.com/blog/orshot-api-dual-provider.webp) ## What this means for you - **API calls keep working** even during provider outages - **No action needed** on your end — the failover is transparent - **Same endpoints, same behavior** — `api.orshot.com` stays the same We also migrated our caching layer to a provider-independent managed service, so even partial infrastructure issues at any single provider won't affect response times. ## Our commitment Orshot powers production workflows for agencies, developers, and businesses. Reliability isn't a feature — it's the baseline. This upgrade is part of our ongoing investment in making Orshot infrastructure you can depend on. If you have questions about our infrastructure or uptime, reach out at [hi@orshot.com](mailto:hi@orshot.com). --- ### [Orshot for IDE: Design Templates with AI Agents](https://orshot.com/blog/orshot-ide-extension) > Edit Orshot templates inside VS Code using natural language. Works with GitHub Copilot, Claude, Cursor, and any MCP-compatible AI tool. We just shipped the **Orshot VS Code Extension** (Cursor, Antigravity soon) — and it turns your code editor into a design tool. Open any Orshot template, describe what you want in plain English, and watch the AI make it happen. No context switching. No manual dragging. Just say what you need. ## Get Started 1. Install **Orshot** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Orshot.orshot-vscode) 2. Sign in with your Orshot account (Cmd/Ctrl + P > Orshot: Sign In) 3. Open a template from the sidebar (Cmd/Ctrl + Shift + O) 4. Start chatting with `@orshot` in Copilot Chat or use agent mode [Watch the video](https://www.youtube.com/watch?v=XHG1Q8GCUcg) ## What Can You Do With It? - **Edit templates with natural language** — "Make the headline bigger", "Change the background to a gradient", "Add a new text element with the company tagline" - **Browse and manage templates** — Your workspaces and templates show up right in the VS Code sidebar - **Visual editing** — A built-in studio panel lets you see your template live as changes are applied ## Works With the AI Tools You Already Use The extension isn't locked to one AI provider. It works with: - **GitHub Copilot** — Tools auto-register when you open a template. Just chat with Copilot and it can read, edit, and verify your designs. - **Claude Desktop & Cursor** — A built-in MCP server exposes all editing tools to any MCP-compatible client. - **Copilot Agent Mode** — The extension registers as a full agent, so Copilot can autonomously plan and execute multi-step design changes. Ask `@orshot` in Copilot Chat, or use agent mode — either way, the AI understands your template structure, makes changes, and takes screenshots to verify the result. ## The AI Actually Sees Your Design This isn't blind text manipulation. The agent captures a screenshot of your template before and after changes, analyzes the visual output, and course-corrects if something looks off. It understands: - **Layout and spacing** — Element positions, dimensions, and alignment - **Typography** — Font families, sizes, weights, and line heights - **Color** — Hex values, contrast, and visual hierarchy - **Multi-page templates** — Applies consistent changes across all pages ## Batch Changes in One Shot Need to update fonts across 10 elements, reposition everything, and change the background? The agent batches all operations into a single atomic update. No flickering, no partial states. ``` "Switch all text to Inter, increase font sizes by 20%, and add a warm gradient background" ``` One prompt. Every element updated. ## Built for Automation Workflows If you're using Orshot templates with the [API](https://orshot.com/docs/api-reference), the extension helps you: 1. **Design visually** — Edit templates in the studio panel 2. **Parameterize** — Mark elements as dynamic so they can be swapped via API 3. **Generate code** — Ask the agent to write rendering code in your language of choice 4. **Test** — Preview renders without leaving VS Code The extension is free and works with any Orshot plan. --- ### [Orshot has crossed 500k Renders](https://orshot.com/blog/500k-renders) > Orshot just crossed 500,000 renders. A quick look back at how we got here, what the numbers look like, and what's next. Orshot just crossed 500,000 renders. Images, PDFs, videos — generated from templates via API, integrations, and the studio. Felt worth pausing to share. ## The Numbers Here's where things stand today: - **549,050+** renders all time - **4,592** users - **3.1s** average render time, aiming to be sub 2s - **0.27%** error rate over the last 90 days - **238** updates shipped in the last 30 days - **Team size: 1** All of this is live on the [open startup page](https://orshot.com/open) — updated every 12 hours since launch. ## How We Got Here It took us almost an year to reach this 500k renders mark. Serving various creators from individuals to teams, it's been amazing building the right set of features for various use cases and see it work for the customers. There was no single moment. It was a lot of small things compounding — a better studio, smarter templates, faster rendering, and more integrations. Some highlights from the past year: - [MCP support](https://orshot.com/agents) so AI agents can generate templates and renders - [Orshot Embed](https://orshot.com/features/orshot-embed) for putting the editor inside your own app - [30+ integrations](https://orshot.com/integrations) that connect with thousands of apps - and more, [see the changelog](https://orshot.com/docs/changelog) Each feature unlocked new use cases — and more renders. ## What's Next The focus hasn't changed: make it easier to [generate templates](https://orshot.com/agents) and visual content programmatically. Faster renders, more output formats, better templates, and deeper integrations. If you're already using Orshot — thank you. If you haven't tried it yet, [start for free](https://orshot.com/pricing). Here's to the million. --- ### [Orshot Now Available on Make (Integromat)](https://orshot.com/blog/orshot-make-integration) > Generate dynamic images automatically in your Make scenarios with Orshot's new integration. Connect with thousands of apps and automate image creation. We're excited to announce that Orshot is now available on Make (formerly Integromat)! You can now automate image generation directly in your Make scenarios using our extensive template library and custom Studio templates. ## What You Can Do - **Generate Images from Library Templates**: Use our pre-designed templates for social media, certificates, banners, and more - **Generate Images from Studio Templates**: Automate your custom Figma designs imported via our plugin - **Multiple Output Formats**: Get images as PNG, JPG, WEBP, AVIF, or PDF - **Flexible Response Types**: Receive images as URLs, base64 data, or binary files - **Dynamic Customization**: Modify text, colors, images, and other elements with data from your scenarios - **Social Publishing**: Auto-post generated images to 15+ social platforms (Instagram, LinkedIn, TikTok, Twitter/X, and more) directly from your workflow — [learn more](https://orshot.com/docs/publish/introduction) ## Getting Started 1. **Sign up** at [Orshot.com](https://orshot.com) and get your free API key 2. **In your Make scenario**, add a new module and search for "Orshot" 3. **Connect your account** using your API key from Orshot Dashboard → Settings → API Key 4. **Choose your template** and configure modifications 5. **Set output preferences** and run your scenario ## Perfect for Automation Whether you're creating personalized [social media graphics](https://orshot.com/blog/social-media-automation-tools), certificates, product images, or marketing materials, the Make integration lets you [automate it all](https://orshot.com/blog/automated-content-creation-tools). Connect Orshot with your CRM, databases, forms, and thousands of other apps available on Make. ## Available Now The Orshot app is live on Make's platform. [Check it out here](https://www.make.com/en/integrations/orshot) and start automating your image generation today! You can check the [Integration documentation here](https://orshot.com/docs/integrations/make) --- ### [Orshot's Library just crossed 1,000 Templates](https://orshot.com/blog/1000-templates) > Orshot's template library crossed 1,000 ready-to-render templates — social media, e-commerce, certificates, ads, and more, all API-ready The [Orshot templates library](https://orshot.com/templates) just crossed **1,000 templates** — every one of them parameterized, API-ready, and free to customize Pick a template, wire it to your data, and render. Social media posts, e-commerce banners, certificates, ads, presentations — there are a lot of starting points now and we're actively growing this catalog every week ### Every template is a starting point You're not locked into using a template as-is. Open any template in [Orshot Studio](https://orshot.com/features/orshot-studio), change the layout, swap fonts, add pages, set up smart stacking — then save it to your workspace and render from the [API](https://orshot.com/docs/quick-start/generate-images) If nothing in the library fits, the [AI Design Agent](https://orshot.com/agents) can generate a custom template from a text prompt in seconds ### Browse the library Head to [Templates Library](https://orshot.com/templates) to explore. Every template is free to customize and comes with 30 free credits to test with If there's a category or style you'd like to see, [let us know](mailto:hi@orshot.com) --- ### [Remove Background from Images using Rest API](https://orshot.com/blog/remove-image-background-api) > Dynamically remove background from images via Rest API or integrations. Use background removal directly in Orshot Studio to improve template designs Removing backgrounds from images used to be a tedious manual process requiring expensive software and design skills. Not anymore. Orshot's AI-powered background removal feature can instantly remove backgrounds from any image with just a single click in Studio or API call This is not available just as a feature but we also have a [**Background Removal Rest API**](https://orshot.com/templates/image-background-removal-api) or automate through integrations You can also [**play with the template here**](https://orshot.com/templates/image-background-removal-api/generate) ## How to use the Rest API? **First, [signup on Orshot](https://orshot.com/signup) to get your API key** Remove backgrounds programmatically with a simple API call: ```javascript const response = await fetch("https://api.orshot.com/v1/generate/image", { method: "POST", headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "image-background-removal-api", modifications: { inputImage: "https://example.com/your-image.jpg", // or use base64: 'data:image/jpeg;base64,/9j/4AAQ...' }, responseType: "url", // or 'base64' responseFormat: "webp", }), }); const result = await response.json(); console.log("Background removed:", result.data.content); ``` ### Input Options - **Image URL**: Direct link to your image - **Base64**: Upload image data directly - **Binary**: Raw image file data - **Multiple formats**: Supports JPG, PNG, WebP, and more ### Output Options - **URL**: Get a hosted link to the processed image - **Base64**: Receive image data for immediate use - **Binary**: Raw file data for direct processing ## Automate using Integrations You can use Background Removal API template with various integrations like n8n, Zapier, Make, Airtable, Pipedream and more You can view the integrations guides on the [template page here](https://orshot.com/templates/image-background-removal-api) ## Image Background Removal in Orshot Studio Orshot users can directly use this feature in [Studio](https://orshot.com/studio) to improve their marketing images. It's useful in many cases be it e-commerce photos, or creating that perfect design [![Removing an image background in Orshot Studio](https://orshot.com/blog/background-removal-studio.webp)](/studio) Here's how you can use it in Orshot Studio **In the Canvas:** 1. Add an image element to your canvas 2. Select the image element 3. In the Element Editor panel, click the "Remove Background" button 4. Wait for AI processing (usually takes a few seconds) 5. The image background will be removed automatically 6. The processed image is saved to your brand assets **In the Layer List:** 1. Right-click on any image layer 2. Select "Remove Background" from the context menu 3. The AI will process and update the image instantly Note that this feature uses your Orshot account's render credits to process background removal. It basically uses the same Background Removal API that's mentioned in start of the article --- ### [RenderForm Alternative – No Watermarks, Better Editor](https://orshot.com/blog/renderform-api-alternative) > Switch from RenderForm to Orshot. No watermarks, images never expire, video generation included. White-label embed, multi-page templates. Start free RenderForm offers a straightforward image generation API. They've built something functional - design templates, call the API, get images. The basics work. But if you've been using RenderForm, you've noticed some friction. Watermarks on free tier images that make testing awkward. Images that disappear after 14 days on lower plans. A template editor that feels dated compared to modern design tools. The pay-as-you-go pricing that seems cheap until you do the monthly math. I built Orshot because I needed something more complete. Same core concept (turn templates into API endpoints), but with an editor that feels like Figma and pricing without the gotchas. [**Try Orshot Free**](https://orshot.com/signup "target=_blank") **(30 free credits, no watermarks, no card needed)** **Migrate from RenderForm to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your RenderForm API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) ![Orshot's template dashboard](https://orshot.com/blog/canva-alternative-tools/orshot.webp) ## What's Different If you're on RenderForm, here's what changes when you switch: | Feature | Orshot | RenderForm | | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :------------------------- | | **Watermarks** | Never, even on free tier | Yes, on free tier | | **Image Retention** | Permanent (or bring your own S3/R2) | 14 days on free tier | | **Video Generation** | MP4/WebM/GIF with per-layer controls | No | | **Multi-page Templates** | Carousels, PDFs & videos in [one API call](https://orshot.com/blog/introducing-carousel-templates) | No | | **Embed Editor in App** | [White-label Studio Embed](https://orshot.com/blog/orshot-studio-embed) | No | | **Free Tier** | 30 free credits, no watermarks, all features | Watermarked images only | | **Starter Plan** | \$39/month for 1,500 credits (1 credit = 1 image) | €9/month for 250 credits | | **Mid Plan** | \$99/month for 5,000 credits | €89/month for 10,000 (Pro) | | **Template Editor** | [Orshot Studio](https://orshot.com/studio) - Figma-like with [Smart Stacking](https://orshot.com/blog/smart-stacking) | RenderForm Editor | | **Template Import** | [Canva](https://orshot.com/solutions/canva-template-to-api), [Figma](https://orshot.com/solutions/figma-automation-via-rest-api), [AI](https://orshot.com/features/ai-template-generator) | Editor only | | **Own Storage** | AWS S3, Cloudflare R2, Dropbox, Google Drive | RenderForm hosting only | | **Social Publishing** | [Built-in — 15+ platforms](https://orshot.com/docs/publish/introduction) | No | ## The Real Problems with RenderForm Based on what I've seen from users switching over: ### 1. Watermarks on Free Tier RenderForm's free tier adds watermarks to your images. If you're testing with real use cases or need to show stakeholders, watermarked images don't work. You're forced to pay before you can properly evaluate. Orshot's free tier gives you 30 credits with all features, no watermarks. Test with real content, show real results. ### 2. Images Disappear After 14 Days On RenderForm's free and lower tiers, your generated images are deleted after 14 days. If you're using images for anything long-term - blog posts, product pages, documentation - this is a dealbreaker. Orshot images are permanent. Or bring your own S3/R2 storage if you want full control. ### 3. No Video Generation RenderForm is images only. No animated exports, no GIFs, no video. If your workflow needs motion, you need another tool. Orshot does images, PDFs, and video (MP4, WebM, GIF) with per-layer controls for trimming, muting, and looping. ### 4. No Multi-Page Templates Need Instagram carousels, LinkedIn slideshows, or multi-page PDFs? RenderForm can't do it. You'd generate each page separately and combine them yourself. Orshot has native [multi-page template support](https://orshot.com/blog/introducing-carousel-templates). Design once, generate the whole carousel with one API call. ### 5. No Embeddable Editor Want to let your users design their own images within your app? RenderForm doesn't offer this. Orshot's [Studio Embed](https://orshot.com/blog/orshot-studio-embed) lets you integrate a full white-label design editor into your product - complete with custom branding, permission controls, and webhook events. ### 6. Pay-As-You-Go Gets Expensive RenderForm's pay-as-you-go seems flexible: €9 for 250 credits, €19 for 500, up to €349 for 25,000. But do the math: - 1,500 images/month = roughly €55-60 in credits - 5,000 images/month = €180-200 Orshot's subscription model is cleaner: $39 for 1,500 credits, $99 for 5,000 — and 1 credit is always 1 image. Predictable costs, better value at volume. ## What You Get Extra with Orshot Beyond solving RenderForm's limitations: **No watermarks ever** - Free tier, paid tier, doesn't matter. Your images are clean. **Permanent storage** - Images don't expire. Or use your own S3/R2 for complete control. **Modern editor** - [Orshot Studio](https://orshot.com/studio) feels like Figma or Canva. Drag-and-drop, [Smart Stacking](https://orshot.com/blog/smart-stacking) for relative positioning, keyboard shortcuts. Your designers can use it directly. **White-label embed** - [Studio Embed](https://orshot.com/blog/orshot-studio-embed) is a full Canva-like editor you can drop into your app. Custom branding, permission controls, webhook events. **Multi-page templates** - Create carousels, multi-page PDFs, and multi-page videos. [See how it works](https://orshot.com/blog/introducing-carousel-templates). **Video generation with animations** - Export to MP4, WebM, or GIF. Control each video layer with `.trimStart`, `.trimEnd`, `.muted`, and `.loop` parameters. Add [per-layer animations](https://orshot.com/blog/introducing-animations-in-studio) like fade in, slide, and scale with visibility timing and staggered choreography. Support for multiple videos per page, multiple pages per template - generate all with one API call. [Learn more](https://orshot.com/docs/dynamic-parameters/video) **More integrations** - [MCP Server](https://orshot.com/docs/integrations/mcp-server) for AI apps, [CLI](https://orshot.com/docs/integrations/orshot-cli) for terminal workflows, plus Make, Zapier, n8n. [Full list here](https://orshot.com/integrations). **Import from design tools** - Clone from Canva, import from Figma, or use AI to generate templates. Way faster than starting from scratch. Try it now — paste a public Canva share link and see it as an Orshot template: **Social Publishing** - Render and [publish to 15+ social platforms](https://orshot.com/docs/publish/introduction) in one API call. No need for a third-party scheduler — post instantly, schedule, or save as draft. **Actual support** - I respond to chat messages. Usually within an hour. Sometimes I'll hop on a call if something's complicated. ![Customer testimonial from Mihai about using Orshot](https://orshot.com/blog/mihai-testimonial.webp) ## Utility Templates (The Handy Extras) We've got pre-built API templates that solve common problems: - [Twitter Screenshot API](https://orshot.com/templates/tweet-image) - Clean tweet screenshots with customization - [Website Screenshot API](https://orshot.com/templates/website-screenshot) - Full page captures, any viewport - [Dynamic Image Resizer API](https://orshot.com/templates/dynamic-image-resizer) - Resize on the fly These work great on their own or combined with your custom templates. ## Switching from RenderForm Here's how most people do it: ### Step 1: Recreate Your Templates (15-30 min) **Use the visual editor** - Open [Orshot Studio](https://orshot.com/studio) and recreate your designs. The editor is more capable, so you might actually improve your templates in the process. **Use AI** - Screenshot your RenderForm output, drop it into the [AI Template Generator](https://orshot.com/features/ai-template-generator). It'll recreate the layout, you fine-tune. **Import from design tools** - If you have source files in Canva or Figma: - [Clone from Canva](https://orshot.com/solutions/canva-template-to-api) - [Import from Figma](https://orshot.com/solutions/figma-automation-via-rest-api) You can create multi-page templates, [share through public links or embeds](https://orshot.com/blog/sharing-orshot-templates) like the one below with different view modes. You can also [invite your team to collaborate](https://orshot.com/features/team-collaboration) on design + template integration. [Open the embed](https://orshot.com/templates/shared/8zfweezu/embed?view=view) ### Step 2: Update Your API Calls (10 min) Here's what changes: **RenderForm API Call:** ```javascript const response = await fetch("https://get.renderform.io/api/v2/render", { method: "POST", headers: { "X-API-KEY": "YOUR_RENDERFORM_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ template: "renderform_template_id", data: { title: { text: "Hello World" }, image: { src: "https://example.com/photo.jpg" }, }, }), }); ``` **Orshot API Call:** ```javascript const response = await fetch("https://api.orshot.com/v1/studio/render", { method: "POST", headers: { Authorization: "Bearer YOUR_ORSHOT_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "orshot_template_id", modifications: { title: "Hello World", image: "https://example.com/photo.jpg", // Dynamic parameters - override any style property // Docs: https://orshot.com/docs/dynamic-parameters "title.fontFamily": "Space Mono", "image.borderRadius": "32px", }, response: { type: "url", // url, base64, binary format: "png", // png, jpg, webp, avif, pdf, mp4, webm, gif }, }), }); ``` **Main differences:** - Bearer token authentication (industry standard) - Flat modifications object (simpler) - Explicit response format specification **Helpful docs:** - [API Reference](https://orshot.com/docs/api-reference) - Complete API documentation - [Render from Template](https://orshot.com/docs/api-reference/render-from-studio-template) - Main endpoint you'll use - [SDKs](https://orshot.com/docs/sdks) - Node, Python, Ruby, PHP libraries - [Setting Parameters](https://orshot.com/docs/orshot-studio/setting-parameters) - How to make templates dynamic ### Step 3: Test It (5 min) 1. Make a few test calls 2. Compare the output 3. Tweak styling if needed in Studio 4. Deploy You can run both RenderForm and Orshot in parallel. Most people switch fully within a day or two. ### Need Help? Just hit the chat button on bottom right. I or someone from the team will help you migrate templates, check your API calls, whatever you need. ## Common Questions **Q: Why choose Orshot's Subscription over RenderForm's Pay-as-you-go?** For businesses, predictability is key. Subscriptions mean you don't have variable bills spiking during busy months. Our plans give you a generous allowance (e.g., 1,500 credits for $39, where 1 credit = 1 image) which is meaningfully cheaper per-image than typical pay-as-you-go rates. **Q: Is the Orshot editor easier to use than RenderForm?** We believe so. Our [visual editor](https://orshot.com/studio) features Smart Stacking, which behaves like flexbox for designers. It ensures that when you swap short text for long names, your layout adjusts automatically without breaking. **Q: Can I switch my Make/Zapier workflows from RenderForm?** Yes. Orshot is a plug-and-play replacement in [Make](https://orshot.com/docs/integrations/make) and [Zapier](https://orshot.com/docs/integrations/zapier) workflows. The logic of mapping data to template fields is exactly the same. **Q: Does Orshot support video generation?** Yes. RenderForm is primarily an image/PDF tool. Orshot allows you to use the same parameterization concepts to generate dynamic videos (MP4/WebM/GIF) with [per-layer animations](https://orshot.com/blog/introducing-animations-in-studio), opening up new marketing channels for you. **Q: Can I generate images via URL without API calls?** Yes. We support [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) (Signed or Unsigned). This is great for personalized open graph images or email headers where you can't make an API call. **Q: Does Orshot support multi-page templates?** Yes. Unlike RenderForm, Orshot supports [multi-page templates](https://orshot.com/blog/introducing-carousel-templates) for generating PDF reports, Instagram carousels, and slide decks in a single API call. **Q: Is there an agency partner program?** Yes. Our [Agency Partner Program](https://orshot.com/partner-program) is free to join and includes unlimited sandbox workspaces, pooled credits up to 100k/month, and client handoff tools for agencies managing multiple clients. **Q: Can I embed the Orshot editor in my own app?** Yes. We offer a [White-label Studio Embed](https://orshot.com/blog/image-editor-sdk) on all paid plans. This lets your users design templates directly inside your SaaS product with your own branding. ## Pricing (The Real Comparison) Here's what you're actually paying (on Orshot, 1 credit = 1 image): | Monthly Volume | RenderForm (Subscription) | Orshot | Yearly Savings | | -------------- | ------------------------- | --------------------------------- | -------------- | | Testing | Free (watermarked) | Free (30 credits, no watermarks) | - | | 1,500 images | ~€55/month pay-as-you-go | \$39/month | \$250+ | | 5,000 images | €89/month (~\$97) Pro | \$99/month | Parity — more included | | 25,000 images | Custom | \$280/month (40,000 credits) | Significant | | 50,000 images | Custom | \$349/month (75,000 credits) | Significant | | 100,000 images | Custom | \$480/month (150,000 credits) | Significant | Note: RenderForm's pay-as-you-go is more expensive per image than subscription. Also worth noting: - 30 free credits to test, no watermarks, no card required - Images never expire - All features available on all plans (including free) - Video generation included - White-label embed included on all paid plans [Full pricing details here](https://orshot.com/pricing) ## The Editor ![The Orshot Studio visual template editor](https://orshot.com/blog/orshot-studio.webp) [Orshot Studio](https://orshot.com/studio) is more capable than RenderForm's editor. **Key features:** - **[Smart Stacking](https://orshot.com/blog/smart-stacking)** - Position elements relative to each other. They auto-adjust when content changes - **Brand Assets** - Save your logos, colors, and fonts. Use across all templates for consistency - **Custom Fonts** - Upload any font. No limits on typography - **Personalization** - Make any element dynamic - text, images, colors, styling - **[Studio Embed](https://orshot.com/blog/orshot-studio-embed)** - Integrate the editor into your own app with custom branding - **Multi-page Support** - Create carousels and PDF templates with different pages ## How It Works [Watch the video](https://www.youtube.com/watch?v=3bR-lWT5EFY) Every template becomes an API endpoint. You can: - Generate templates with AI or import from Canva/Figma - Automate with REST API, SDKs, Zapier, Make, n8n, or [Dynamic URLs](https://orshot.com/docs/integrations/dynamic-urls) - Bulk generate with parallel processing - Generate multi-page PDFs and carousels - Export video (MP4, WebM, GIF) If there's an integration missing, just ask. We'll probably add it. ## Examples and Tutorials ### Carousel Templates How to create multi-page templates and automate them: [Watch the video](https://www.youtube.com/watch?v=EXJoMeGyEhM) ### Import from Canva Clone your existing Canva designs and [turn them into API endpoints](https://orshot.com/solutions/canva-template-to-api): [Watch the video](https://www.youtube.com/watch?v=P4AHj3dpJXw) ### Import from Figma [Use the Figma plugin](https://orshot.com/solutions/figma-automation-via-rest-api) to import your designs directly: [Watch the video](https://www.youtube.com/watch?v=ggvLR0HLJ7Q) ### eCommerce Automation Example workflow - [automating product images](https://orshot.com/blog/automate-ecommerce-product-images) from your data sources: [Watch the video](https://www.youtube.com/watch?v=S5qNb4mmUdc) ### Dynamic URLs Generate images just by changing URL parameters - no API calls needed: [Watch the video](https://www.youtube.com/watch?v=a2I69Qb2hts) ## Bottom Line RenderForm works for basic image generation, but the watermarks, expiring images, and lack of video/embed features hold it back. Orshot does the same core thing (turn templates into API endpoints) but with a modern Figma-like editor, white-label embed capabilities, video generation, and pricing without gotchas. The switch takes a couple hours. You can test everything free with 30 credits, no watermarks. If you're also weighing PDF-first tools, the [APITemplate.io comparison](https://orshot.com/blog/apitemplate-io-alternative) covers that side of the market. ## Try It 1. [Sign up](https://orshot.com/signup) - no card needed 2. Recreate one of your templates (or use AI to do it) 3. Test with your actual data 4. See if it works for you If you get stuck, hit the chat button. I'll help you out. --- ### [Renders Are Now Credits](https://orshot.com/blog/renders-to-credits) > We've renamed renders to credits — the industry-standard term. 1 credit = 1 image, 1 PDF page, or 1 second of video. Your limits, pricing, and API stay exactly the same. We've renamed the unit Orshot bills in: **renders are now credits**. This is a change in terminology, not in what you get — your plan's capacity, your pricing, and the API are exactly the same as yesterday. ## The Change Previously, 1 image/pdf page/or a video second used to consume 2 renders, which was confusing. Now, 1 image/pdf page/or a video second consumes 1 credit. In gist, 1 credit is 2 renders. **It doesn't change the number of images, pdfs or videos you can generate in your plan**, it just renames the billing unit to simplify understanding. ## The new model One credit always means one thing: | You generate | Previously | Now | | :----------- | :------------------- | :------------------ | | **Image** | 2 renders | 1 credit | | **PDF** | 2 renders per page | 1 credit per page | | **Video** | 2 renders per second | 1 credit per second | No multipliers, no per-format math, no surprises. A 10-second video is 10 credits. A 5-page PDF is 5 credits. An image is 1 credit. ## Nothing about your plan changed Every quota now shows half the number with **identical value**: - The free tier's 60 renders is now **30 credits** — same 30 images - A plan with 3,000 renders is now **1,500 credits** — same 1,500 images - Prices, rate limits, features, and overage behavior are all unchanged If your usage page looks like the numbers halved overnight: they did, and so did the cost of everything you generate. Nothing was taken away. ## Why we did this "Render" meant well, but it made you do math: an image was 2 renders, a PDF page was 2 renders, a video second was 2 renders. Every time you compared us to another tool — most of which price in credits — you had to convert. Now the unit matches the industry standard _and_ maps 1:1 to what you actually produce. We think it's the simplest credit definition out there. ## For developers: zero breaking changes The API is untouched. Fields like `renders_used` and `render_count` still return the same values they always did — they count renders, and 2 renders = 1 credit. No endpoints, parameters, or responses changed, so nothing in your integration needs updating. The mapping is documented in [Credit Usage](https://orshot.com/docs/definitions/credits-usage). One small detail: in your logs, historical activity may show half credits (like 15.5) — that's the exact conversion of old render counts, kept accurate rather than rounded. Questions? Hit the chat button — I'm usually the one answering. --- ### [The 10 best MCP servers for marketing](https://orshot.com/blog/best-mcp-servers-for-marketing) > The MCP servers that run marketing at Orshot — analytics, SEO, creative, revenue attribution — with real setups, honest limits, and what each costs. Almost every list ranking MCP servers for marketing was written by a vendor that put itself first — and none of them tell you. So here's the deal with this one: I run Orshot, it's on this list, and I'll tell you exactly where it sits and why. Nearly everything else here is a server I pay for or use to market Orshot itself — the two newest additions are marked as such. Where something broke on me, I've written that down too. **TL;DR** — Pick by the job, not by the list: - **Ask your product analytics questions in plain English**: [PostHog](#1-posthog--made-for-asking-your-analytics-questions-in-plain-english) — Free hosted MCP over your real events and funnels. The rebuilt code-mode server chains its own SQL and costs a fraction of the old tool-schema approach. - **Branded images, PDFs and video from a chat**: [Orshot](#2-orshot--made-for-branded-creatives-your-agent-can-actually-ship) — Template-based rendering over OAuth. Your agent picks a template, fills it from your data, renders and publishes — deterministic output, on brand every time. This one is ours. - **SEO data your agent can act on**: [Ahrefs](#3-ahrefs--made-for-seo-data-your-agent-can-act-on) — Keywords, backlinks, rank tracking and your GSC data over one remote server. Paid plans only, and it draws from the same API-unit budget as everything else — plan for that. - **Know which page actually made money**: [DataFast](#4-datafast--made-for-knowing-which-page-actually-made-money) — Revenue attribution over MCP — ask which blog post drove last month's Stripe payments and get an answer, not a dashboard. - **Know when Reddit or Hacker News talks about you**: [Octolens](#7-octolens--made-for-hearing-reddit-before-it-hears-you) — Mention listening across Reddit, HN, GitHub and 11 more sources, queryable from the chat. It reads and analyzes — it cannot post, which keeps it clean with Reddit's rules. ## Quick comparison | Server | Best for | Official | Auth | Works in Claude web | Free to start | | :-- | :-: | :-: | :-: | :-: | :-: | | PostHog | Product analytics | Yes | OAuth | Yes | Yes | | Orshot | Branded creative automation | Yes | OAuth | Yes | Yes | | Ahrefs | SEO data | Yes | OAuth | No | No | | DataFast | Revenue attribution | Yes | API key (Bearer) | No | No | | Stripe | Revenue truth | Yes | OAuth | Yes | Yes | | Search Console | Rank feedback loop | No | Google OAuth (self-setup) | No | Yes | | Octolens | Reddit + community listening | Yes | OAuth | Yes | No | | Clay | Enrichment and prospecting | Yes | OAuth | Yes | No | | Senja | Testimonials and social proof | Yes | OAuth | Yes | Yes | | Slack | Reports and comms | Yes | OAuth | Yes | Yes | The "Works in Claude web" column is the one nobody prints. The rule: servers with OAuth connect to claude.ai in the browser as custom connectors. Servers that authenticate with a Bearer header — DataFast is the one on this list — only work in Claude Code or Claude Desktop, where you control the config file. Ahrefs documents Claude Code; I haven't gotten it into claude.ai web. ## What an MCP server is, in one paragraph MCP (Model Context Protocol) is the plug socket for AI assistants: a vendor ships a server, you connect it, and your assistant can query analytics, render an image or schedule a post instead of just talking about doing it. A vendor ships an MCP server; you connect it to Claude, ChatGPT, Cursor or [any agent](https://orshot.com/agents); the assistant can then read your data and take actions with your permission. That's the whole idea. The interesting question isn't the protocol, it's which servers are worth the context they consume. ## How I picked these Three rules, learned the slightly expensive way: - **Vendor-maintained or nothing.** Security audits keep finding public MCP servers with no auth at all. If a server can write to a tool you care about, it should be the vendor's own. The one exception on this list (Search Console) is read-only. - **It has to be in our actual stack.** Most of these run our marketing daily — this post's own research went through several of them. Two entries (Octolens, Senja) are newer: I trialed both while writing this rather than pretending long experience. No entry is here because it appears on other lists. - **Read-only wherever money moves.** A recurring report on Reddit: an agent fumbles a tool call near a live ad budget. Our Stripe connection can read everything and change nothing, and Supabase ships a `read_only=true` flag for exactly this reason. My bias is on the table: **I make Orshot.** It's the number-two entry, the catches listed under it are real ones, and you can judge whether it earned the slot. ## 1. PostHog — made for asking your analytics questions in plain English ![PostHog MCP feature image — chat composer asking which pages had the highest signup conversion, with Orshot connected as a tool](https://orshot.com/blog/best-mcp-servers-for-marketing/01-posthog.webp) [Link to PostHog MCP docs ↗](https://posthog.com/docs/model-context-protocol "target=_blank nofollow") Product analytics is where every marketing question ends up eventually. PostHog's MCP means the question can stay a question — "which marketing pages had the highest signup conversion last month?" — instead of becoming twenty minutes of dashboard archaeology. ### Why it earns the slot - **A free remote server** at `mcp.posthog.com/mcp` — OAuth sign-in, auto-routes to your US or EU region, and it sits in the Claude connector directory. No server to run. - **The code-mode rework is clever.** Instead of a wall of tool schemas, it exposes a single `exec` tool the agent drives with CLI-style commands. A user on r/mcp walked through a real query days ago: the agent chained schema-read → docs → four SQL queries on its own, at a fraction of the old token cost. - **It reaches everything** — events, funnels, session data, feature flags, experiments — so "why did signups dip Tuesday" is answerable in one place. ### Setup ```bash npx @posthog/wizard@latest mcp add ``` Or connect it straight from Claude's connector directory — first use prompts a PostHog login and OAuth handles the rest. Claude Desktop can also add it manually via `mcp-remote` pointing at `https://mcp.posthog.com/mcp`. ### Queries we run - "Compare signup conversion for visitors landing on competitor-alternative posts vs free-tool pages, last 30 days." - "Which referrers sent visitors who reached the pricing page this week?" - "Did signup-to-activation move after the last homepage deploy?" ### The catches - **The minimal-tool design can briefly confuse clients** — early users reported Claude expecting "a bunch of tools" and finding one. It settles once the agent reads the docs tool. - **Some MCP tools call LLMs internally** and can show up as PostHog AI spend. Watch the first bill. ## 2. Orshot — made for branded creatives your agent can actually ship ![Orshot MCP feature image — chat composer asking to render the weekly changelog as a branded announcement image](https://orshot.com/blog/best-mcp-servers-for-marketing/02-orshot.webp) **All images in this blog were generated using Orshot MCP in <1 min** [Start free](https://orshot.com/signup?via=blog-mcp-marketing-proof) [Link to Orshot MCP ↗](https://orshot.com/agents) Full disclosure: this one is ours. Orshot is a creative automation suite, not just a render endpoint. There's a studio editor where the template gets built once, with the changing parts flagged as parameters; an API that renders images, PDFs and video from that template with data from anywhere — a spreadsheet, your product database, a form, a webhook, an agent; and delivery built in, so the output can publish straight to social platforms, land in cloud storage, or come back as a URL you drop anywhere. For marketing, that turns the repetitive creative into a pipeline: product visuals at catalog scale, launch and changelog announcements, weekly report graphics, localized ad variants — one template each, rendered on demand with the right data. The MCP server puts that whole loop inside a chat. ### Why it earns the slot - **Deterministic output.** The agent fills a template; it doesn't improvise pixels. Same brand, same layout, correct price on every variant — which is the requirement in marketing, where "close enough" isn't. - **Any data source, bulk by default.** Point it at a product feed, a spreadsheet or a CRM view and get one on-brand render per row — the job that eats design weeks when done by hand. - **OAuth remote server** at `mcp.orshot.com/mcp` — works in claude.ai web, Claude Code, Cursor, ChatGPT and ten other agents. OAuth end to end — nothing to paste. - **It finishes the job.** Render and publish to Instagram, LinkedIn, TikTok and 10+ platforms from the same conversation, or hand the file back for review first. - **2,000+ ready templates** plus your own imports, so the agent has somewhere to start. ### Setup ```bash claude mcp add orshot --transport http https://mcp.orshot.com/mcp ``` Or in claude.ai: Settings → Connectors → Add custom connector → paste the URL. OAuth handles the rest. [Orshot MCP Server Tutorial](https://www.youtube.com/watch?v=OhgdZtqEQK0) ### Queries we run - "Render this week's changelog as a branded announcement image and give me the file." - "Make five variants of the launch template with these five headlines." ### The catches - **The editor has real limits.** A Reddit user testing us this month put it plainly: "their image editor is the weak point. Font rendering and text effects feel limited." Fair, and we're on it — but if your templates lean on heavy text effects, check yours renders the way you want before wiring up an agent. - **Past a few hundred renders a month, use the REST API instead.** The MCP is for conversational and agent-driven work; bulk pipelines belong on [the API](https://orshot.com/solutions/image-generation-api), where you control batching and retries. - **Rendering draws plan credits.** Connecting is free and every account starts with 30 free credits, but an agent that renders all day needs a plan sized for it. ## 3. Ahrefs — made for SEO data your agent can act on ![Ahrefs MCP feature image — chat composer asking for top keywords ranking 5 to 15 and what each page is missing](https://orshot.com/blog/best-mcp-servers-for-marketing/03-ahrefs.webp) [Link to Ahrefs MCP docs ↗](https://docs.ahrefs.com/en/mcp "target=_blank nofollow") The most useful SEO workflow we run: pull every query where we rank position 5–15, sort by impressions, and ask what's missing from each page. With the Ahrefs MCP that's one prompt, and the answer comes from live index data plus your own connected Search Console. ### Why it earns the slot - **The full dataset over one remote server** — keywords, SERPs, backlinks, rank tracking, site audit, and GSC endpoints once you've linked Search Console to your project. - **OAuth sign-in** on first connect. The old npm-installed local server is archived; the remote one is the way in. - **Agent-shaped answers.** "Which of our competitors' pages gained referring domains this quarter" comes back as a ranked table with URLs — pulling that used to cost me an afternoon of exports and pivots. ### Setup ```bash claude mcp add ahrefs --transport http https://api.ahrefs.com/mcp/mcp ``` Sign in with your Ahrefs account on first connect. Paid plans (Lite and up) only. ### Queries we run - "Pull our top organic keywords where position is 5–15 and impressions are over 500, and list what each page is missing." - "Volume and difficulty for these 12 keyword candidates, US." ### The catches - **It shares your plan's API-unit budget** — Lite is 100,000 units a month, minimum 50 per request, and cost scales with rows returned. We exhausted the entire month's budget in one heavy research week while writing this. The units reset monthly; your research calendar should know that. - **Paid gate.** No free tier at all — the MCP starts at the $129/mo Lite plan. ## 4. DataFast — made for knowing which page actually made money ![DataFast MCP feature image — chat composer asking which blog posts drove paying customers in the last 90 days](https://orshot.com/blog/best-mcp-servers-for-marketing/04-datafast.webp) [Link to DataFast MCP docs ↗](https://datafa.st/docs/mcp-introduction "target=_blank nofollow") Analytics tells you what got traffic. DataFast tells you what got _revenue_ — it ties Stripe payments back to the page and source that brought the customer. We used to drive its CLI from Claude Code; they now ship a proper MCP server, and I retired the CLI wrapper the same week. ### Why it earns the slot - **Revenue per page, per source, per campaign** — the number most marketing dashboards can't give you, because they stop at conversions. - **~40 tools with sensible guardrails** — irreversible operations require an explicit confirm flag. - **A website-scoped read-only key option**, so an agent can analyse one site without holding your whole account. ### Setup ```bash claude mcp add datafast --transport http https://datafa.st/api/mcp \ --header "Authorization: Bearer dft_YOUR_TOKEN" ``` The account token comes from Account Settings (shown once). Bearer-header auth means Claude Code and Claude Desktop, not claude.ai web. ### Queries we run - "Which blog posts drove paying customers in the last 90 days, and what did each visitor cohort convert at?" - "Revenue by referrer source this month vs last." ### The catches - **Bearer-only auth** keeps it out of browser Claude for now. - **It's only as good as your Stripe wiring.** Attribution needs the payment link set up properly per site — do that first or the answers will be confidently empty. ## 5. Stripe — made for revenue truth ![Stripe MCP feature image — chat composer asking for MRR movement over the last 30 days](https://orshot.com/blog/best-mcp-servers-for-marketing/05-stripe.webp) [Link to Stripe MCP docs ↗](https://docs.stripe.com/mcp "target=_blank nofollow") Our weekly metrics review starts here: every Monday the same conversation asks Stripe for MRR movement — new, expansion, churn — and the answer comes from the ledger instead of a chart I'd otherwise screenshot. Setup took about a minute. ### Why it earns the slot - **Official, free, OAuth** at `mcp.stripe.com` — works in claude.ai web as a connector. - **Admin-controllable** — you can enable or disable MCP access for the whole account in dashboard settings, sandbox and live managed separately. - **Pairs with everything above.** Traffic from analytics, attribution from DataFast, truth from Stripe — one conversation. ### Setup ```bash claude mcp add --transport http stripe https://mcp.stripe.com/ ``` ### Queries we run - "New customers this week, with plan and amount." - "MRR movement over the last 30 days — new, expansion, churn." ### The catches - **Give it read-only scope.** Stripe supports restricted keys and recommends human confirmation on write tools. An agent has no business creating refunds unsupervised — scope it like you mean it. ## 6. Google Search Console — made for closing the publish-and-rank loop ![Google Search Console MCP feature image — chat composer asking for queries with impressions at position 5 to 15 but under 1 percent CTR](https://orshot.com/blog/best-mcp-servers-for-marketing/06-gsc.webp) There's no official Google MCP server for Search Console — this is the one community-server exception on the list, and it earns the slot because the workflow it unlocks is the single best marketing loop I've seen agents run: find queries with impressions but no clicks, fix the page, watch the delta. ### Why it earns the slot - **The loop.** A 340-point r/n8n thread documented a solo operator going from zero to 6,000+ impressions in 30 days with exactly this: Claude reads GSC, spots pages ranking 8–15 with no clicks, rewrites titles and meta, remeasures. - **The API itself is free** and read-only by nature — low blast radius. ### Setup Community wrappers like `ahonn/mcp-server-gsc` run locally with Google OAuth credentials you provision. Honest alternative: if you're already paying for Ahrefs, its MCP exposes your GSC data through their `gsc-*` endpoints once Search Console is linked — that's how ours flows, one less server to run. ### Queries we run - "Queries where we get impressions at position 5–15 but under 1% CTR, sorted by impressions." - "Which pages gained or lost clicks after the last deploy?" ### The catches - **Community-maintained** means you check the repo before you trust it, and you set up Google OAuth yourself. - **Data lags** a couple of days, like GSC itself. Don't let an agent conclude anything from yesterday. ## 7. Octolens — made for hearing Reddit before it hears you ![Octolens MCP feature image — chat composer asking for new Reddit mentions of us or our competitors this week](https://orshot.com/blog/best-mcp-servers-for-marketing/07-octolens.webp) [Link to Octolens MCP ↗](https://octolens.com/mcp "target=_blank nofollow") Reddit is a real acquisition channel for us — founder replies in the right thread beat most paid campaigns. The hard part is knowing the thread exists. Octolens watches Reddit, Hacker News, GitHub, DEV, Stack Overflow and nine more sources for your keywords, and its MCP makes all of it queryable from the chat. A note on the tool everyone used to name here: GummySearch shut down in November 2025. The Reddit-listening slot is genuinely open, and no other list seems to have noticed. ### Why it earns the slot - **The source mix is a founder's map** — Reddit plus HN, GitHub, DEV and Stack Overflow is exactly where developer-adjacent buyers talk. - **OAuth remote server** at `app.octolens.com/api/mcp/v2` — sign in from claude.ai, Claude Code, Cursor or ChatGPT dev mode; no keys. - **It cannot post.** 14 read tools, 9 config tools, zero publish tools — the ToS-safe shape for Reddit by construction. Automated posting is how accounts get banned; listening is how threads get found. ### Setup ```text https://app.octolens.com/api/mcp/v2 ``` Add it as a connector and sign in. MCP is included on every plan; the 7-day trial needs no card. ### Queries we run - "Any new mentions of us or our competitors on Reddit this week, sorted by engagement?" - "Which subreddits mention template image generation most, and what's the sentiment?" ### The catches - **It listens for keywords; it doesn't browse.** No "show me this week's top posts in r/SaaS" — for raw subreddit mining, the free community server `jordanburke/reddit-mcp-server` (maintained, Safe-Mode defaults, needs your own Reddit script-app credentials, local only) covers what Octolens doesn't. - **$159/mo after the trial** — priced for teams that treat mentions as pipeline, not as curiosity. ## 8. Clay — made for enriching anyone you're about to talk to ![Clay MCP feature image — chat composer asking to enrich a list of signups with company size and industry](https://orshot.com/blog/best-mcp-servers-for-marketing/08-clay.webp) [Link to Clay MCP docs ↗](https://clay.com/guides/clay-mcp "target=_blank nofollow") Clay turns "who signed up yesterday?" into "who signed up yesterday, what do their companies do, and which ones match our ICP?" — enrichment against 150+ data providers, driven from the chat. It shows up on exactly one other list, and that one is about sales tools. For marketing it's just as useful: partner research, lookalike hunting, guest-post prospecting. ### Why it earns the slot - **Signup triage before outreach.** I run yesterday's signups through it before writing personal welcome notes — company size, what they do, whether they're an agency — so the note can mention something real instead of "saw you signed up." - **Your workspace's custom Functions are callable** — admins choose which ones the MCP exposes, per user, with credit budgets. The most granular agent-permission model on this list. - **OAuth remote** at `api.clay.com/v3/mcp`, works as a claude.ai connector; a separate CLI variant serves Claude Code. ### Setup ```text https://api.clay.com/v3/mcp ``` Add it as a connector and sign in. Admins: Functions need "Enable for MCP" toggled, and per-user MCP credit budgets live under Settings → MCP users. ### Queries we run - "Enrich this list of signups with company size, industry and tech stack, and flag the agencies." - "Find marketing leads at companies similar to our five best customers." ### The catches - **The most expensive tool on this list.** MCP needs a paid plan — from $167/mo — and the free plan's credits don't unlock it. - **An agent can burn credits fast.** Enrichment costs the same via MCP as in-app; set the per-user budgets Clay provides before letting an agent loose. ## 9. Senja — made for putting your customers' words to work ![Senja MCP feature image — chat composer asking for the best API testimonial and its embed code](https://orshot.com/blog/best-mcp-servers-for-marketing/09-senja.webp) [Link to Senja ↗](https://senja.io "target=_blank nofollow") The social-proof category is missing from every MCP list I read, which is odd, because it's the most chat-shaped marketing job there is: "find our best quote about the API" is a search problem, and Senja's MCP makes your testimonial library searchable from the conversation. ### Why it earns the slot - **Search testimonials by keyword, tag or rating** and get links or embed codes for walls, widgets and forms back. - **The two-connector trick.** This is where the stack composes: ask for the best 5-star quote mentioning the API, then have Orshot render it into a branded testimonial graphic — one conversation, two connectors, a social post that used to take an afternoon. - **A real free plan** (up to 15 testimonials, paid from $29/mo), and the setup is literally claude.ai's connector UI with `https://mcp.senja.io` pasted in. ### Setup ```text https://mcp.senja.io ``` Settings → Connectors → Add custom connector → paste the URL → sign in to Senja. That's the whole thing. ### Queries we run - "Find our highest-rated testimonial that mentions automation and give me the embed code." - "Which testimonials mention a competitor by name?" ### The catches - **Narrow by design** — testimonials in, embeds out. No analytics, no workflow tools. - **Young server** (April 2026) and MCP plan limits aren't documented yet — assume your Senja plan's limits apply. ## 10. Slack — made for where the reports land ![Slack MCP feature image — chat composer asking to post the weekly metrics summary to the general channel](https://orshot.com/blog/best-mcp-servers-for-marketing/10-slack.webp) [Link to Slack MCP docs ↗](https://docs.slack.dev/mcp/ "target=_blank nofollow") The quiet workhorse. Every automated report, alert and "hey, this page just converted" ping ends up in Slack, so the agent that writes those messages needs to be able to post them. ### Why it earns the slot - **Official server** (shipped February 2026) at `mcp.slack.com/mcp`, OAuth, with workspace admins in control of which MCP clients are approved. - **Where our reports already end.** The weekly metrics conversation finishes by posting its summary to Slack — the query below is copied from that transcript, not invented for this post. - **Read and summarize** is the underrated half: "what did I miss in #marketing this week" beats scrolling. ### Setup In claude.ai, Slack is available directly as a connector — approve it from the workspace admin side and you're done. ### Queries we run - "Post the metrics summary above to #general as a thread." ### The catches - **Posting as an agent needs a norm.** Decide as a team what agents may post where, or someone's channel fills with robot enthusiasm. - **Free-workspace availability is unclear** — Slack's docs don't state a plan requirement either way. ## Worth knowing about Servers that didn't make the ten but earn a mention: - **HubSpot** — the most-listed marketing MCP anywhere, and rightly so if you run HubSpot. We don't — a CRM that size isn't part of a two-person stack — so it stays here, unreviewed by us. - **n8n** — not a data source; a server _builder_. Its MCP Server Trigger turns any workflow into a custom MCP endpoint, which is how you wire up tools that don't ship their own. The community server that builds n8n workflows from chat is popular for good reason; the top caveat from its own mega-thread applies — generated workflows cover the happy path. - **Notion** — official hosted server, OAuth, solid if your marketing docs live there. Ours don't. - **Supabase** — official OAuth server with a `read_only=true` flag worth copying. If your leads and content queues live in Postgres, this is your database-as-CRM entry. - **Autosend** — the OAuth email server our weekly metrics report actually sends through; it left the main list only to make room for less-covered categories. - **Scheduling (Metricool / Postiz / Buffer)** — the most crowded MCP category. Metricool's works on their free plan, Postiz is self-hostable with 18 networks, Buffer's is free on every plan. Pick whichever already holds your accounts. - **Firecrawl / Tavily** — research and scraping. Firecrawl even has a keyless free mode now. We covered both in [our marketing platforms roundup](https://orshot.com/blog/best-ai-marketing-platforms). - **For template and brand-kit workflows specifically**, see our separate deep-dive on [AI design tools with MCP](https://orshot.com/blog/ai-tools-for-graphic-design-with-mcp) — different job, different toolset. ## What this stack costs us The number no listicle prints. Line items, monthly, as of this writing: - **PostHog** — free tier covers us; MCP endpoint itself is free - **Orshot** — MCP free; renders draw plan credits ([plans from $39/mo](https://orshot.com/pricing), 30 free credits to start) - **Ahrefs** — $129/mo Lite, and the MCP shares its API-unit budget - **DataFast** — from $9/mo, priced by monthly events; MCP access included on every plan - **Stripe, Slack, Search Console** — free / included with accounts we'd have anyway - **Senja** — free plan covers a small testimonial library (15 testimonials); paid from $29/mo - **Octolens** — $159/mo after the 7-day trial - **Clay** — from $167/mo, the priciest line here The daily core — analytics, SEO, attribution, revenue, rendering — runs **roughly $180/mo**, with Ahrefs most of it. Octolens and Clay are the two big-ticket adds: another $326/mo, worth it only if listening and enrichment are jobs you'd otherwise hire for. ## One warning before you connect anything A story from r/SEO worth knowing: a user connected an SEO vendor's MCP, and when a call failed, the error message that came back contained instructions telling the assistant not to mention any competing tools. Claude flagged it to the user instead of complying. That's the new reality of vendor-run servers: the tool responses are input to your assistant. It's why "vendor-maintained or nothing" isn't enough by itself — connect vendors you'd trust with a seat in the meeting, keep write access scoped, and read the occasional transcript. **Q: Do these MCP servers work with ChatGPT too?** Most of them. Orshot, Stripe, Firecrawl and Octolens document ChatGPT support alongside Claude. DataFast's Bearer-header auth needs a client with editable config, so check its docs for ChatGPT specifics. **Q: Which of these are free?** PostHog's MCP and free tier, Stripe, Slack, Search Console and Senja's free plan cost nothing. Orshot is free to connect with 30 render credits included. Ahrefs, Octolens and Clay all need paid plans — $129, $159 and $167 a month respectively. **Q: Why do some servers work in claude.ai web and others only in Claude Code?** Auth. claude.ai custom connectors handle OAuth sign-ins, so OAuth servers (PostHog, Orshot, Stripe, Octolens, Clay, Senja, Slack) connect in the browser. Ahrefs uses OAuth too but only documents Claude Code — I haven't gotten it working as a browser connector. Servers that authenticate with an API key in a header (DataFast) need a client where you control the config — Claude Code or Claude Desktop. **Q: Is it safe to give an AI agent write access to marketing tools?** Selectively. The community consensus matches our practice: read-only wherever money or a live audience is involved (ads, Stripe, production databases), write access only where a human approves the output before it lands (email drafts, scheduled posts). Supabase's read_only flag and Stripe's restricted keys exist for exactly this. **Q: What's the smallest setup worth having?** Two servers: your analytics plus whatever you ship most. Ours was PostHog and Orshot; a content team's might be Search Console and a scheduler. Everything after that earns its place when a question you keep answering by hand gets old. **Q: What's the difference between an MCP server and a Zapier or n8n integration?** A Zapier/n8n workflow runs a fixed sequence you built. An MCP server gives the agent tools and lets it decide the sequence — which is more flexible and occasionally more creative than you'd like. Plenty of stacks use both: MCP for conversational work, n8n for pipelines that must run the same way every time. ## The bottom line You don't need ten of these. You need the few that close your loops — PostHog for traffic, DataFast and Stripe for money, Orshot for creative, in our case — and once they're wired up, most weeks I open the actual dashboards only to screenshot something. That last loop — turning data into on-brand creative without a human in the middle — is the one we build. The MCP server connects free, and [plans start at $39/mo](https://orshot.com/pricing) when you outgrow the 30 free credits. Get stuck connecting anything on this list? Hit the chat on the site — I'll help you out. One URL and your agent ships on-brand creative. Free to connect, 30 render credits included. [Connect the Orshot MCP](https://orshot.com/signup?via=blog-mcp-marketing-footer) --- ### [The 9 best AI video generation APIs](https://orshot.com/blog/ai-video-generation-api) > A developer guide to video generation APIs and AI video models: Veo, Runway, Orshot, Shotstack and more. Which lane you need, and what each costs. Search for a video generation API and you get two different products wearing the same name. One invents footage from a text prompt. The other renders a design you already made, filled with your data. Only one will do the job you have. Almost every roundup covers the first kind and stops. Google's own AI Overview defines the category as text-to-video models, the most-linked listicle explicitly excludes template renderers, and searching the comparison directly returns a "Missing: template" warning from Google itself. So if you came here to turn 200 spreadsheet rows into 200 branded vertical videos, page one sent you to the wrong aisle. This maps both lanes. **TL;DR** — Pick the lane first, then the tool: - **Invent footage from a prompt**: [Google Veo, Runway or fal.ai](#1-google-veo-gemini-api--made-for-the-highest-fidelity-generation) — Generative models. You describe a scene and get novel video. Priced per second, non-deterministic, and you cannot pin the layout. - **Bulk video generation from any data source**: [Orshot](#2-orshot--made-for-bulk-video-generation-from-any-data-source) — Template-based. Design once in a visual editor, mark the layers that change, then render MP4, WebM or GIF from an API call, an agent or a no-code step. One video per row, whatever the row lives in. - **Assemble clips programmatically in JSON**: [Shotstack, JSON2Video or Remotion](#4-shotstack--made-for-engineering-owned-video-pipelines) — Timeline-as-JSON, or React components if you pick Remotion. Most control, if you are happy describing an edit in code rather than designing it. - **After Effects output without After Effects**: [Plainly](#8-plainly--made-for-a-motion-designers-output) — Renders real .aep projects via API. The right answer when a motion designer already built the asset. ## Quick comparison | Platform | Type | Design UI | Deterministic | Pricing model | Best for | | :-- | :-: | :-: | :-: | :-: | :-: | | [Google Veo](#1-google-veo-gemini-api--made-for-the-highest-fidelity-generation) | Generative | No | No | Per second | Highest-fidelity generation | | [Orshot](#2-orshot--made-for-bulk-video-generation-from-any-data-source) | Template | Yes | Yes | Subscription | Bulk video from any data source | | [Creatomate](#3-creatomate--made-for-no-code-automation-builders) | Template | Yes | Yes | Subscription | No-code video automation | | [Shotstack](#4-shotstack--made-for-engineering-owned-video-pipelines) | Timeline JSON | No | Yes | Per minute | Programmatic editing | | [Runway](#5-runway--made-for-people-who-edit-for-a-living) | Generative | Yes | No | Credits | Creative and editorial work | | [JSON2Video](#6-json2video--made-for-small-scripted-jobs) | Timeline JSON | No | Yes | Per minute | Lightweight scripted edits | | [Remotion](#7-remotion--made-for-teams-whod-rather-write-react-than-json) | Code (React) | Yes | Yes | Open source | React codebases | | [Plainly](#8-plainly--made-for-a-motion-designers-output) | Template | No | Yes | Subscription | After Effects at scale | | [fal.ai](#9-falai--made-for-trying-models-before-you-commit) | Model host | No | No | Per second | Many models, one key | ## Do you need a generative or a template video API? Answer this before you compare a single price. Three lanes: - **Generative** — a model invents pixels from your prompt, differently every run. Right for an establishing shot of a city at dusk; wrong when your logo has to land in the same corner of 500 videos. - **Template** — a renderer fills a design you built. Identical every run except the values you passed, which is why it works for anything with a brand attached. - **Avatar** — HeyGen, Synthesia. A script becomes a talking presenter. Different problem, out of scope here. Cost follows from the mechanism: - Generative bills **per second** — roughly $0.02 to $0.10. A 15-second vertical is $0.30–$1.50, so 500 of them is **$150–$750 every time you run the batch**. - Template renderers bill **per render**, duration-independent. At one-off volumes the gap is noise; at campaign volumes it decides the project. **The test:** if the output has to look the same every time, you want a template API. If it has to look new every time, a generative one. Need both? Run both. Most serious setups do. --- ## 1. Google Veo (Gemini API) — made for the highest-fidelity generation ![Video generation in the Gemini API documentation showing Gemini Omni Flash and Veo 3.1](https://orshot.com/blog/ai-video-generation-api/01-google-veo.webp) [Link to the Gemini API video docs ↗](https://ai.google.dev/gemini-api/docs/video "target=_blank rel=nofollow") Google's video models, served through the Gemini API, are the reference point for generative video and the thing most people mean by "AI video API". The docs now put **Gemini Omni Flash** forward as the default model, with **Veo 3.1** for scene extension, last-frame control and legacy pipelines. ### What makes it stand out - Excellent motion coherence and lighting - Sits inside the wider Gemini API, so one key covers text, image and video - Strong image-to-video conditioning ### API setup Standard Gemini API request with a video model, returning an operation you poll. If you already use Google's SDKs this is the lowest-friction generative option available. ### Agentic capabilities - **No first-party Veo MCP server.** Agents reach the models through the Gemini API's function calling, Google Cloud's Agent Platform, or third-party Gemini/Veo MCP servers - Google's own agent tooling — Gemini CLI, Antigravity — can call the video models directly - Generation is asynchronous, so an agent gets an operation ID and has to poll for the file ### Where it falls short The same structural limits as every generative model: non-deterministic output, per-second cost, no layout control, no editor. Availability and quota also vary by region and tier more than the docs let on. --- ## 2. Orshot — made for bulk video generation from any data source ![Orshot video generation API landing page showing template rendering to MP4, WebM and GIF](https://orshot.com/blog/ai-video-generation-api/02-orshot.webp) [Link to Orshot ↗](https://orshot.com/solutions/video-generation-api "target=_blank") Full disclosure: this is ours, which is why it's at number two and not number one. Orshot is a template-based renderer. Design once in a Canva-like editor, mark any layer as a dynamic parameter, then render it as video through [one REST endpoint](https://orshot.com/solutions/video-generation-api), an n8n or Make step, or an AI agent. It belongs in a list next to Veo because it answers the other half of the question. Veo invents footage. Orshot renders the video you already designed, the same way, a thousand times. ### What makes it stand out - **A visual editor, not just JSON.** Non-developers can change the template without touching the API, which is usually where template-in-code tools stall. - **Per-layer video control** via modifications: `bgVideo.trimStart`, `bgVideo.trimEnd`, `bgVideo.muted` and `bgVideo.loop`, plus swapping the source clip by URL. - **Automatic subtitles.** Attach page audio and Orshot transcribes it with Whisper, or upload an `.srt`/`.vtt` and skip transcription when the wording has to be exact. There is a [word-by-word mode](https://orshot.com/blog/video-timeline-audio-subtitles) for lyric-style captions. - **Five output formats** from the same design: MP4, WebM, MOV, MKV and GIF, with `videoOptions` for fps, quality and duration. - **Multi-page templates become slideshows** with transitions, so a carousel design and a reel come from one file. - **It publishes.** Render and post to Instagram, TikTok, LinkedIn and 15+ platforms in the same call — which removes the separate publishing API most people bolt onto the end of this pipeline. - **One REST call to ship it.** `POST /v1/studio/render` with a template ID, the values you want swapped and a format. No queue to babysit, no render farm to run. ### Agentic capabilities - **Ask for the video in words.** "Make a reel from this week's top five products" — your agent picks the template, fills it from your data and hands back the file, on brand. - **The agent can build the template too.** Describe the design you want and you get an API-ready one back, with the changing fields already set up as parameters. - **Point it at your data and walk away.** A spreadsheet, a CRM view, a webhook — one video per row, with no loop to write and no per-row cost surprise. - **It finishes the job.** The same agent posts the render to Instagram, TikTok or LinkedIn, so nothing waits in a bucket for a human. - **Works where you already are** — [Claude, Cursor, ChatGPT, Codex, VS Code and five more](https://orshot.com/agents). Connecting is free, and each agent is scoped to one workspace, so a client's brand assets never leak into another's renders. ### Where it falls short - **It doesn't generate footage.** Need a shot that doesn't exist yet? We have nothing for you; go to Veo or Runway. Plenty of teams run both, generating B-roll with a model and putting the branded layer on top in Orshot. - **Not built for long-form.** Short social video, ads, product clips. Not a twenty-minute edit. - **Rendering draws credits.** A heavy video workload needs a plan sized for it. The 30 free credits every account starts with won't carry a campaign. --- ## 3. Creatomate — made for no-code automation builders ![Creatomate homepage showing its video and image creation API with Zapier, Make and n8n integrations](https://orshot.com/blog/ai-video-generation-api/03-creatomate.webp) [Link to Creatomate ↗](https://creatomate.com/ "target=_blank rel=nofollow") If you live in n8n or Make, this is probably the one you'll hit first. The integrations are the best part. ### What makes it stand out - n8n, Make and Zapier integrations that work first try - A visual template editor with a solid timeline - Good docs, and a large library of starting templates ### API setup Template ID plus a `modifications` object, same shape as most of this category. Renders are asynchronous with webhook delivery. ### Agentic capabilities - **No native MCP server.** Nothing in Creatomate's own docs exposes it to agents directly - Agents reach it second-hand through generic wrappers — Zapier MCP, viaSocket or Pipedream - That works, but you inherit another vendor in the path and their auth model rather than Creatomate's ### Where it falls short Cost, once you're running daily. There's a salon owner in that r/automation thread generating Instagram reels through Creatomate and n8n. He liked it. He also watched the bill climb, and ended up asking the thread whether anything cheaper was just as good. That question comes up a lot. We compete here, so read this with that in mind — we wrote a [Creatomate alternative comparison](https://orshot.com/blog/creatomate-api-alternative) rather than pretend the products don't overlap. --- ## 4. Shotstack — made for engineering-owned video pipelines ![Shotstack homepage showing its AI-powered video editing API and white label editor](https://orshot.com/blog/ai-video-generation-api/04-shotstack.webp) [Link to Shotstack ↗](https://shotstack.io/ "target=_blank rel=nofollow") The most complete programmatic editing API here. You describe a timeline in JSON (tracks, clips, transitions, filters) and it renders. ### What makes it stand out - Real edit-decision-list power: layered tracks, transitions, audio mixing - Ingest, transform and serve in one platform - Predictable per-minute pricing ### API setup You POST a timeline object. It's expressive, and it's verbose. Expect to write a helper that generates the JSON rather than hand-rolling it. ### Agentic capabilities - **Native MCP server**, installed with `npx @shotstack/shotstack-mcp-server` and an API key - Roughly a dozen tools covering render, asset management and status - Documented for Claude, Cursor, Windsurf and ChatGPT - The agent gains awareness of the JSON schema, so it can scaffold a whole pipeline rather than one call ### Where it falls short No design surface a marketer can use. Every change is a code change — fine when engineering owns the pipeline, painful when the brief comes from the brand team. If your templates change weekly, that round trip is your bottleneck. --- ## 5. Runway — made for people who edit for a living ![Runway homepage showing its Creative, Dev and Robotics platforms](https://orshot.com/blog/ai-video-generation-api/05-runway.webp) [Link to Runway ↗](https://runwayml.com/ "target=_blank rel=nofollow") Runway is the one artists actually use. The API is a thin layer over a product built for craft, not for pipelines. ### What makes it stand out - Gen-4 quality with unusually good motion control - Real editing tools around the model, not just generation - Video-to-video and style transfer worth having ### API setup Credit-based API access to the same models as the app. Fine for moderate volume; less obviously built for a firehose. ### Agentic capabilities - **Official hosted MCP server**, launched May 2026 — the most agent-ready generative option here - Added as a custom connector by URL; you sign in with your Runway account, so **no separate API key** - One connection routes to Gen-4.5, Seedance 2.0, Kling 3.0, Veo 3.1 and more, depending on plan - Works in Claude, ChatGPT, Cursor and any MCP-compatible agent ### Where it falls short Priced and shaped for creative work, not for rendering 500 variants overnight. If the job is "one great video", it's excellent. If it's "one video per row of a database", it's the wrong tool. --- ## 6. JSON2Video — made for small scripted jobs ![JSON2Video homepage showing its video editing API that converts JSON to video](https://orshot.com/blog/ai-video-generation-api/06-json2video.webp) [Link to JSON2Video ↗](https://json2video.com/ "target=_blank rel=nofollow") A lighter, cheaper take on the Shotstack idea. Describe scenes and elements in JSON, get a video back. ### What makes it stand out - Simple, readable schema you can learn in an afternoon - Built-in subtitles, text animation and stock media - Cheap enough for hobby and side-project volume ### API setup A single JSON movie object with scenes and elements. The fastest of the timeline-JSON tools to get a first render out of. ### Agentic capabilities - **Official MCP server** shipped inside `@json2video/cli`, run via `npx` - Around a dozen tools — render, status polling, movie validation, template listing and media management - Configured for Claude Code, Cursor and Windsurf; stdio transport, API key required - `validate_movie` is the useful one: the agent can check its JSON before spending a render ### Where it falls short Less depth than Shotstack once edits get complicated, and no visual editor either, so the same marketer-can't-touch-it problem applies. Smaller team behind it, which matters if you're betting a product on it. --- ## 7. Remotion — made for teams who'd rather write React than JSON ![Remotion homepage showing programmatic video creation with React and coding agents](https://orshot.com/blog/ai-video-generation-api/07-remotion.webp) [Link to Remotion ↗](https://www.remotion.dev/ "target=_blank rel=nofollow") Remotion is the one that treats video as code properly. You build compositions as React components and it renders real MP4s. 55k GitHub stars, and the only genuinely open-source option on this list. ### What makes it stand out - Video as React components, using the component library and state you already have - Open source and self-hostable, so no per-render fee if you run it yourself - Remotion Studio adds a visual timeline that saves back to code - Bulk rendering on your own infrastructure or on Remotion Lambda ### API setup `npx create-video@latest`, then render locally, on Lambda, or through Cloud Run. There's no hosted "template ID plus modifications" endpoint. You own the pipeline, which is rather the point. ### Agentic capabilities - **Agent Skills, not MCP.** Remotion deprecated its MCP server and shipped Agent Skills instead; the hosted MCP is due to shut down no earlier than 31 August 2026 - "Make videos agentically" here means your agent writes the React composition and Remotion renders it — generating code, not calling a render tool - The docs MCP that remains is a knowledge server for grounding agents in the framework, not a renderer - Excellent if your agent already writes TypeScript. Useless to a marketer. ### Where it falls short You're adopting a framework, not calling an API. Someone has to own the React code, the render infrastructure and the upgrades. If your team already ships React that's a fair trade. If you wanted a URL to POST to, this is the heaviest option here. --- ## 8. Plainly — made for a motion designer's output ![Plainly homepage showing data-driven video rendering from After Effects templates](https://orshot.com/blog/ai-video-generation-api/08-plainly.webp) [Link to Plainly ↗](https://www.plainlyvideos.com/ "target=_blank rel=nofollow") Plainly renders real After Effects projects through an API. Narrow trick, done well. ### What makes it stand out - Your motion designer's `.aep` file becomes the template, effects intact - Nothing else here matches its animation ceiling - Straightforward parameter mapping onto AE layers ### API setup Upload the project, map the dynamic layers, then POST data per render. Setup is heavier than the rest of this list, but it is a one-time cost per template. ### Agentic capabilities - **Official MCP server**, open source at `plainly-videos/mcp-server` - Four focused tools: list renderable items, get item details, submit a render, check render status - Enough for an agent to pick an After Effects template and render it, but not to build one ### Where it falls short You need After Effects, and someone who knows it. Renders take longer, and the pricing assumes a business is paying. If nobody on the team opens AE, this lane is closed. --- ## 9. fal.ai — made for trying models before you commit ![fal.ai homepage showing its generative media platform for developers](https://orshot.com/blog/ai-video-generation-api/09-fal-ai.webp) [Link to fal.ai ↗](https://fal.ai/ "target=_blank rel=nofollow") Not a video product but a fast inference host that gives you many video models behind one API key. ### What makes it stand out - Model choice without a separate integration each time - Fast cold starts and sensible developer ergonomics - Good for benchmarking models against each other before committing ### API setup One key, model name in the request, webhook back. The easiest way to try several generative models without nine accounts. ### Agentic capabilities - **No official first-party MCP server** — the ones in circulation are community or aggregator builds - Those cover model discovery, schema retrieval and execution across the catalogue - Reasonable for letting an agent explore and benchmark models; less so as production plumbing you depend on ### Where it falls short It inherits every limitation of the models it serves, and adds a dependency. There is no editor, no templating and no brand layer — it is infrastructure, not a solution. --- ## Which video generation API should you pick? - **You need footage that doesn't exist** — Google Veo or Runway, with fal.ai if you want to compare models before committing. - **You need the same branded video with different data, at volume** — Orshot, or Creatomate if its pricing works for you. - **Your team writes edits in code and no marketer will ever touch the template** — Shotstack, or JSON2Video for something lighter. - **You already ship React and want video in the same codebase** — Remotion. - **A motion designer already built the asset in After Effects** — Plainly. - **You need a person on screen reading a script** — an avatar API like HeyGen or Synthesia. None of them are on this list. - **You're doing both** — generate B-roll with a model, then put the branded layer on top with a template renderer. That's the most common serious setup, and the two lanes stop competing once you see it that way. ## Frequently asked questions **Q: What is a video generation API?** An API that returns a rendered video file from a request instead of from a human opening an editor. It splits into two kinds: generative APIs that invent footage from a text prompt, and template APIs that render a design you built using data you supply. They are not interchangeable, and picking the wrong kind is the most common mistake in this category. Most definitions only describe the generative half. **Q: What is the best AI API for video creation?** It depends which half of the problem you have. For inventing footage, Google Veo and Runway lead on quality, and fal.ai lets you compare several models behind one key. For creating branded video from data at volume, a template renderer such as Orshot, Creatomate or Shotstack is the right category — a generative model cannot guarantee your logo lands in the same place twice. Note that OpenAI's Sora API, which older roundups still recommend, is being discontinued on 24 September 2026. **Q: Can generative AI generate videos I can use for a brand?** It can generate the footage, but not the consistency. Generative models are non-deterministic by design, so layout, typography and logo placement shift between runs. The usual production answer is to use a model for the raw footage and a template renderer for the branded layer on top, which keeps the parts that must stay fixed under your control. **Q: Which video generation API is best for bulk video generation?** A template-based one. Generative models are priced per second and produce a different result every run, so 500 videos means 500 unpredictable outputs and a large bill. A template renderer like Orshot, Creatomate or Shotstack produces identical output apart from the values you pass, which is what bulk actually requires. **Q: How do I turn a spreadsheet into videos automatically?** Design a template with the changing parts marked as parameters, then loop your rows through a render call. With Orshot you can wire this in n8n, Make or Zapier without code — each row becomes one render — or call the API directly if you would rather own the loop. The same pattern works for images and [PDFs](https://orshot.com/blog/best-pdf-generation-apis). **Q: Can a video generation API post to Instagram or TikTok for me?** Most cannot, and you end up bolting a separate publishing API onto the end of the pipeline. Orshot renders and publishes to Instagram, TikTok, LinkedIn, X and more in the same call, so the finished file never needs to land in your storage just to be picked back up by another tool. **Q: Can an AI agent generate videos from my templates?** Yes. Orshot exposes rendering over MCP, so Claude, Cursor, ChatGPT and other MCP clients can render video from your templates by asking in plain language, with OAuth scoped to one workspace. Setup is at [Orshot for AI agents](https://orshot.com/agents). **Q: Do these APIs add subtitles automatically?** Some do. Orshot transcribes page audio with Whisper and burns styled subtitles into the render, and accepts an .srt or .vtt when the wording must be exact. Shotstack and JSON2Video support caption tracks. Generative models generally do not — you add captions in a second pass, which is one more thing to automate. **Q: How much does a video generation API cost?** Generative APIs bill per second of output, so cost scales with volume and length and gets expensive quickly at scale. Template renderers bill per render or per credit, which is far more predictable when you know you need a fixed number of videos per month. Compare on the volume you will actually run, not the headline price. ## The bottom line There is no best video generation API, because two different products share the name. Decide first whether you need footage invented or a design rendered — that single question eliminates most of this list for you. If your videos need to look the same every time, carry your brand, and come from data you already have — that is the template lane. It is what [Orshot's video generation API](https://orshot.com/solutions/video-generation-api) is built for. Design the template once. Render MP4, WebM or GIF from an API call, a no-code step or an AI agent. Publish it without a second tool. Start free with 30 render credits, no credit card. **Render your first video from a template** — Design it once, then generate every variant from the API, n8n, Make or your AI agent. [Start free](https://orshot.com/pricing) --- ### [Turn any Orshot template into a Template Form](https://orshot.com/blog/template-forms) > Turn any Orshot Studio template into a Template Form you can share or embed. Anyone with the link can tweak parameters and download images, PDFs, or videos — no Orshot account needed. You can now share any Orshot Studio template as a live form through [**Template Forms**](https://orshot.com/docs/orshot-studio/template-forms). Share a link or embed it on your site for any of your Orshot templates — anyone can tweak parameters, pick a format be it image, PDF or any video format, and download the result from the Template Form. No Orshot account required. [Watch the video](https://www.youtube.com/watch?v=T89Z6wC6xE4) ## How it works Open a template in Studio, click **Share**, and create a new Template Form. You get a unique link and an embed snippet you can paste anywhere. ![Creating a Template Form from the Share menu in Orshot Studio](https://orshot.com/docs/orshot-studio/share-embed.webp) Each form has its own controls: - **Formats** — choose which outputs are available (PNG, JPEG, WebP, AVIF, PDF, MP4, WebM, GIF) - **Daily and lifetime limits** — cap how many times the Generate button can be clicked - **Expiration** — auto-disable after a set period - **Scale** — limit resolution up to 4x - **Enable / Disable** — toggle anytime without losing the URL ![Template Form settings in Orshot Studio](https://orshot.com/docs/orshot-studio/embed-settings.webp) You can create multiple forms per template with different settings — one for a client with tight limits, another for your team with more room. ## Demo Here's a demo of the Template Form in real-time: [Open the embed](https://orshot.com/templates/shared/1de7ck1v/playground) ## Who it's for - **Agencies** — send clients a link to generate their own assets from approved templates, instead of going back and forth over email - **SaaS teams** — embed a Template Form inside your app or internal tool so your team or users can produce visuals on demand - **Course creators** — let students generate and download their own certificates - **Event organizers** — share a badge form link with attendees ## Secure by default Your API key is never exposed. Generations are proxied through Orshot's servers, every request uses a single-use token, and IP-based rate limiting runs automatically. ## Get started Open any template in [Orshot Studio](https://orshot.com/studio), click **Share**, and create your first Template Form. Full docs at [Template Forms](https://orshot.com/docs/orshot-studio/template-forms). --- ### [TweetPik Alternative for Twitter Screenshot API](https://orshot.com/blog/tweetpik-api-alternative) > TweetPik is shutting down. Discover Orshot's Twitter Screenshot API - a powerful alternative with better customization, integrations and free plan So TweetPik is shutting down and if you're their user, you might already know about it. If you've been using their API to generate Twitter screenshots, you're probably scrambling to find a replacement Good news — [Orshot's Twitter Screenshot API](https://orshot.com/templates/tweet-image) is not just an alternative, it's actually better **Migrate from TweetPik to Orshot quickly with AI** Install the Orshot agent skill in Claude Code, Cursor, or Windsurf to automatically translate your TweetPik API calls to Orshot. The skill knows both APIs and handles the mapping for you. ```bash npx skills add orshot-hq/orshot-agent-skills ``` [Learn more about the agent skill](https://orshot.com/agents/orshot-skills) **Relevant** → [Automatically Post Tweets to Instagram](https://orshot.com/blog/automate-tweet-to-instagram) ## What Made TweetPik Popular TweetPik was great for taking clean Twitter screenshots with their API. Simple REST calls, decent customization, and Zapier integration. But they're done maintaining it and pointing people to TweetHunter instead ## Why Orshot is Better While TweetPik gave you basic styling, Orshot lets you customize everything: - **Google Fonts support** - Use any Google Font for tweet text - **Font sizes** and colors - **Background colors** or images - **Hide/show** metrics, verified icons, quoted tweets, media, header, date/time - **Show replied-to tweets** - Display the original tweet being replied to - **Custom padding** and image dimensions - **Shadow effects** - **Tweet text color** customization ### Better Integration Support Orshot works with way more platforms: - **Zapier** (like TweetPik) - **Make** for visual automation - **n8n** for advanced workflows - **Pipedream** for serverless automation - **Airtable** for database triggers - **MCP Server** for AI workflows - **Orshot CLI** for terminal-based generation - **Dynamic/Signed URLs** for no-code image generation - **Direct API** with SDKs for Node, Python, Ruby, PHP ### Multiple Output Formats - **Supports multiple formats**: PNG, JPG, WEBP, AVIF, PDF - **Supports different types**: URL, Binary, base64 ### Simple API Migration ```javascript // Old TweetPik approach const response = await fetch("tweetpik-api-url", { // their params }); // New Orshot approach const response = await fetch("https://api.orshot.com/v1/generate/images", { method: "POST", headers: { Authorization: "Bearer ", "Content-Type": "application/json", }, body: JSON.stringify({ templateId: "tweet-image", modifications: { tweetUrl: "https://x.com/user/status/123", backgroundColor: "#ffffff", tweetBackgroundColor: "#fff", tweetTextColor: "#111", googleFont: "Inter", hideMetrics: false, hideHeader: false, hideDateTime: false, hideShadow: false, }, response: { format: "png", type: "url", }, }), }); ``` ## Quick Comparison | Feature | Orshot | TweetPik | | -------------------- | ------------------------------------------------- | ----------- | | Tweet Screenshots | Yes | Yes | | Rest API | Yes | Yes | | Custom Themes | Yes | Limited | | No-Code Integrations | Zapier, Make, n8n, Pipedream, Airtable | Zapier only | | Background Images | Yes | ❌ | | Quote Tweets | Yes | ❌ | | Replied to tweets | Yes | ❌ | | Google Fonts Support | Yes | ❌ | | Font Customization | Yes | ❌ | | Text Color Control | Yes | ❌ | | Hide/Show Header | Yes | ❌ | | Hide/Show DateTime | Yes | ❌ | | MCP Server | Yes | ❌ | | CLI Tool | Yes | ❌ | | Signed URLs | Yes | ❌ | | Still Maintained | Yes | ❌ | | Output Formats | PNG, JPG, WEBP, AVIF, PDF | PNG | | Social Publishing | [Yes — 15+ platforms](https://orshot.com/docs/publish/introduction) | ❌ | ## Getting Started 1. Sign up at [Orshot](https://orshot.com) 2. Check out the [Twitter Screenshot Template](https://orshot.com/templates/tweet-image) 3. Test it in the [playground](https://orshot.com/templates/tweet-image/generate) first 4. Grab your API key from Settings → API Keys and start making calls 5. Use Zapier, Make or your preferred integration to start automating 6. You can [find the integration guides here](https://orshot.com/integrations) ![A Twitter image template in the Orshot playground](https://orshot.com/blog/twitter-image-template-playground.webp) ## The Bottom Line TweetPik served its purpose, but Orshot gives you more control, better integrations, and active development. Plus, you can try it free to see if it fits your workflow No need to panic about the TweetPik shutdown - this is actually an upgrade --- ## Docs > 199 documentation pages, linked below. For the complete REST API reference in one machine-readable file, fetch https://orshot.com/openapi.json (or /openapi.yaml). - [API Reference](https://orshot.com/docs/api-reference): Complete REST API documentation for rendering templates, managing assets, and controlling your Orshot workspace - [Cancel a Render Job (Api Reference)](https://orshot.com/docs/api-reference/async-render-job-cancel): Cancel an async render job that has not started yet. Running renders complete and bill normally. - [Get a Render Job (Api Reference)](https://orshot.com/docs/api-reference/async-render-job-get): Poll a single async render job by id until it finalizes, then read its result or its actionable error. - [List Render Jobs (Api Reference)](https://orshot.com/docs/api-reference/async-render-jobs-list): List your workspace's async render jobs, newest first, with optional status filter and cursor pagination. - [Start an Async Render (Api Reference)](https://orshot.com/docs/api-reference/async-render-start): POST /studio/render with response.mode "async" runs the render in the background. Collect the result by polling or webhook. - [Delete Brand Image (Api Reference)](https://orshot.com/docs/api-reference/brand-assets-delete): Learn how to delete brand assets from your workspace - [Get Brand Images (Api Reference)](https://orshot.com/docs/api-reference/brand-assets-get): Learn how to retrieve brand assets from your workspace - [Upload Brand Image (Api Reference)](https://orshot.com/docs/api-reference/brand-assets-post): Learn how to upload brand assets to your workspace - [Search Brand Assets (Api Reference)](https://orshot.com/docs/api-reference/brand-assets-search): Search across all brand asset types (images, colors, fonts, videos, audio) in your workspace - [Update Image Tags (Api Reference)](https://orshot.com/docs/api-reference/brand-assets-update): Learn how to update tags on a brand asset image - [Delete Audio (Api Reference)](https://orshot.com/docs/api-reference/brand-audio-delete): Learn how to delete a brand audio file from your workspace - [Get Audio (Api Reference)](https://orshot.com/docs/api-reference/brand-audio-get): Learn how to retrieve brand audio from your workspace - [Upload Audio (Api Reference)](https://orshot.com/docs/api-reference/brand-audio-post): Learn how to upload brand audio to your workspace - [Update Audio Tags (Api Reference)](https://orshot.com/docs/api-reference/brand-audio-update): Learn how to update tags on a brand audio file - [Delete Color (Api Reference)](https://orshot.com/docs/api-reference/brand-colors-delete): Learn how to delete a saved brand color from your workspace - [Get Colors (Api Reference)](https://orshot.com/docs/api-reference/brand-colors-get): Learn how to retrieve saved brand colors from your workspace - [Add Color (Api Reference)](https://orshot.com/docs/api-reference/brand-colors-post): Learn how to save brand colors to your workspace - [Update Color Tags (Api Reference)](https://orshot.com/docs/api-reference/brand-colors-update): Learn how to update tags on a saved brand color - [Delete Video (Api Reference)](https://orshot.com/docs/api-reference/brand-videos-delete): Learn how to delete a brand video from your workspace - [Get Videos (Api Reference)](https://orshot.com/docs/api-reference/brand-videos-get): Learn how to retrieve brand videos from your workspace - [Upload Video (Api Reference)](https://orshot.com/docs/api-reference/brand-videos-post): Learn how to upload brand videos to your workspace - [Update Video Tags (Api Reference)](https://orshot.com/docs/api-reference/brand-videos-update): Learn how to update tags on a brand video - [Delete Font (Api Reference)](https://orshot.com/docs/api-reference/custom-fonts-delete): Learn how to delete a custom font from your workspace - [Get Fonts (Api Reference)](https://orshot.com/docs/api-reference/custom-fonts-get): Learn how to retrieve custom fonts from your workspace - [Upload Font (Api Reference)](https://orshot.com/docs/api-reference/custom-fonts-post): Learn how to upload custom fonts to your workspace - [Update Font Tags (Api Reference)](https://orshot.com/docs/api-reference/custom-fonts-update): Learn how to update tags on a custom font - [Generate Template Variants (Api Reference)](https://orshot.com/docs/api-reference/enterprise-generate-variants): Generate multiple size variants of a template using AI - [Bulk Create Studio Templates (Api Reference)](https://orshot.com/docs/api-reference/enterprise-template-bulk-create): Create multiple studio templates at once via CSV or JSON - [Create Studio Template (Api Reference)](https://orshot.com/docs/api-reference/enterprise-template-create): Create a single studio template programmatically via API - [Update Template (Api Reference)](https://orshot.com/docs/api-reference/enterprise-template-update): Update template metadata, dimensions or complete page structure - [Update Template Modifications (Api Reference)](https://orshot.com/docs/api-reference/enterprise-update-modifications): Update text, images, videos, styles and spoken narration in template layers - [Generate Signed URL (Api Reference)](https://orshot.com/docs/api-reference/generate-signed-url): Learn how you can make a POST request to generate a signed URL - [Get Profile and Workspaces (Api Reference)](https://orshot.com/docs/api-reference/get-profile-workspace): Retrieve your profile and workspace details using your API key or OAuth token - [Update Profile (Api Reference)](https://orshot.com/docs/api-reference/profile-update): Update your profile name, work role and work URL using your API key or OAuth token - [Render from Studio Template (Api Reference)](https://orshot.com/docs/api-reference/render-from-studio-template): Render any template you've designed in Orshot Studio by making a POST request — as an image, PDF, or video, at any size, and optionally publish it. - [Render from a Utility Template (Api Reference)](https://orshot.com/docs/api-reference/render-from-template): Learn how you can make a POST request to render from a template - [List Social Accounts (Api Reference)](https://orshot.com/docs/api-reference/social-accounts-list): Retrieve connected social accounts for your workspace - [Social Analytics Accounts (Api Reference)](https://orshot.com/docs/api-reference/social-analytics-accounts): Follower counts, growth and daily follower history per connected account - [Social Analytics Daily (Api Reference)](https://orshot.com/docs/api-reference/social-analytics-daily): Day-by-day metrics across your accounts, with a per-platform breakdown - [Social Analytics Insights (Api Reference)](https://orshot.com/docs/api-reference/social-analytics-insights): Best time to post, posting frequency and engagement decay, computed from your own history - [Social Analytics Overview (Api Reference)](https://orshot.com/docs/api-reference/social-analytics-list): Cross-account analytics for your social posts. Totals, per-post metrics and follower counts - [Social Analytics for a Post (Api Reference)](https://orshot.com/docs/api-reference/social-analytics-post): One post's full metrics plus its day-by-day timeline - [Discard a Social Post (Api Reference)](https://orshot.com/docs/api-reference/social-post-discard): Delete a draft or cancel a scheduled post - [Get a Social Post (Api Reference)](https://orshot.com/docs/api-reference/social-post-get): Read one social post, including per-account status and live post URLs - [Publish a Held Post (Api Reference)](https://orshot.com/docs/api-reference/social-post-publish): Send a draft or scheduled post to its platforms now - [Edit a Social Post (Api Reference)](https://orshot.com/docs/api-reference/social-post-update): Change a draft or scheduled post before it goes out - [List Social Posts (Api Reference)](https://orshot.com/docs/api-reference/social-posts-list): List the social posts in your workspace, newest first - [Publish to Social (Api Reference)](https://orshot.com/docs/api-reference/social-publish): Publish images or videos directly to connected social accounts - [Delete Studio Template (Api Reference)](https://orshot.com/docs/api-reference/studio-template-delete): Learn how to delete a studio template from your workspace - [Duplicate Studio Template (Api Reference)](https://orshot.com/docs/api-reference/studio-template-duplicate): Duplicate a studio template to create a new one - [Get Studio Template (Api Reference)](https://orshot.com/docs/api-reference/studio-template-get): Retrieve a specific studio template by ID - [Get All Studio Templates (Api Reference)](https://orshot.com/docs/api-reference/studio-templates-list): Retrieve studio templates from your workspace with pagination - [Move Template to Folder (Api Reference)](https://orshot.com/docs/api-reference/template-folder-assign): Move a studio template into a folder, or out of its current folder - [Delete Template Folder (Api Reference)](https://orshot.com/docs/api-reference/template-folders-delete): Delete a template folder from your workspace - [List Template Folders (Api Reference)](https://orshot.com/docs/api-reference/template-folders-get): List all template folders in your workspace - [Create Template Folder (Api Reference)](https://orshot.com/docs/api-reference/template-folders-post): Create a new template folder in your workspace - [Rename Template Folder (Api Reference)](https://orshot.com/docs/api-reference/template-folders-update): Rename a template folder in your workspace - [Get Template Sharing (Api Reference)](https://orshot.com/docs/api-reference/template-sharing-get): Get the public sharing state, links and stats for a studio template - [Update Template Sharing (Api Reference)](https://orshot.com/docs/api-reference/template-sharing-post): Enable or disable public sharing and duplication for a studio template - [Create Workflow (Api Reference)](https://orshot.com/docs/api-reference/workflow-create): Create a workflow programmatically - [Delete Workflow (Api Reference)](https://orshot.com/docs/api-reference/workflow-delete): Delete a workflow from your workspace - [Get Workflow (Api Reference)](https://orshot.com/docs/api-reference/workflow-get): Get a single workflow with its full steps - [Run Workflow (Api Reference)](https://orshot.com/docs/api-reference/workflow-run): Trigger a workflow run manually - [Get Workflow Run (Api Reference)](https://orshot.com/docs/api-reference/workflow-run-get): Get one run's step-by-step detail to see which step failed and why - [List Workflow Runs (Api Reference)](https://orshot.com/docs/api-reference/workflow-runs-list): List recent runs of a workflow with their results - [Get Workflow Sharing (Api Reference)](https://orshot.com/docs/api-reference/workflow-sharing-get): Get the public sharing state and links for a workflow - [Update Workflow Sharing (Api Reference)](https://orshot.com/docs/api-reference/workflow-sharing-post): Enable or disable public sharing for a workflow - [Update Workflow (Api Reference)](https://orshot.com/docs/api-reference/workflow-update): Update a workflow's steps, status or details - [List Workflows (Api Reference)](https://orshot.com/docs/api-reference/workflows-list): List all workflows in your workspace - [Get Workspace (Api Reference)](https://orshot.com/docs/api-reference/workspace-get): Retrieve the active workspace's details - [List Workspace Logs (Api Reference)](https://orshot.com/docs/api-reference/workspace-logs): Retrieve a paginated, trimmed list of render and API logs for your workspace - [Update Workspace (Api Reference)](https://orshot.com/docs/api-reference/workspace-update): Rename the workspace or change its slug - [Orshot key concepts](https://orshot.com/docs/definitions): The four things every Orshot API call involves: a template ID, modifications, a response format and credits. - [What is a credit in Orshot? (Definitions)](https://orshot.com/docs/definitions/credits-usage): 1 credit = 1 image = 1 PDF page = 1 video second. Video and multi-page renders bill per second and per page. - [What are modifications? (Definitions)](https://orshot.com/docs/definitions/modifications): Modifications are the key-value pairs you send to change text, images, video, spoken narration and styles at render time. - [What is a render? (Definitions)](https://orshot.com/docs/definitions/render): A render is the internal unit the Orshot API reports. 2 renders make up 1 credit. - [What is a render type? (Definitions)](https://orshot.com/docs/definitions/render-type): Render type picks the output family for a template: image, PDF or video. Set it per API call. - [What response formats are supported? (Definitions)](https://orshot.com/docs/definitions/response-format): PNG, JPEG, WebP and AVIF for images, PDF for documents, and MP4, WebM, MOV, MKV or GIF for video. - [How do I receive the rendered file? (Definitions)](https://orshot.com/docs/definitions/response-type): Three options: a hosted URL, a Base64 string, or raw binary. URL is the default and the cheapest to handle. - [What is an Orshot template made of? (Definitions)](https://orshot.com/docs/definitions/template-anatomy): A template is pages, layers, audio and parameters. Pages become outputs, layers hold content, and parameters are what the API can change. - [What is a template ID? (Definitions)](https://orshot.com/docs/definitions/template-id): The template ID is the unique string that tells the API which template to render. One per Studio template. - [Build on Orshot with OAuth 2.0](https://orshot.com/docs/developers): Register an app, request scopes and call the Orshot API on behalf of other users. - [Authorization Code flow (Developers)](https://orshot.com/docs/developers/authorization-code): Step-by-step PKCE flow: build the authorize URL, exchange the code, refresh the token. - [Device flow (Developers)](https://orshot.com/docs/developers/device-flow): Authenticate CLI tools without a browser: poll the device endpoint while the user approves elsewhere. - [OAuth code examples (Developers)](https://orshot.com/docs/developers/examples): Working requests for the authorize, token, refresh and introspect calls. - [Which endpoints accept OAuth tokens? (Developers)](https://orshot.com/docs/developers/oauth-endpoints): Which Orshot API endpoints are callable with an OAuth token rather than an API key. - [How does OAuth work with Orshot? (Developers)](https://orshot.com/docs/developers/oauth-overview): Authorization Code with PKCE for web apps, Device Flow for CLIs. Tokens bill the workspace owner. - [How do I list my app on Orshot? (Developers)](https://orshot.com/docs/developers/publishing): Submit your app for review to appear in the Orshot integrations directory. - [How do I register an OAuth app? (Developers)](https://orshot.com/docs/developers/register-app): Request client credentials from developer settings. Your redirect URI identifies the app. - [What OAuth scopes can I request? (Developers)](https://orshot.com/docs/developers/scopes): The full list of Orshot OAuth scopes and what each grants read or write access to. - [How do I manage OAuth tokens? (Developers)](https://orshot.com/docs/developers/token-management): Refresh, introspect and revoke Orshot OAuth tokens, plus expiry behaviour. - [What are dynamic parameters?](https://orshot.com/docs/dynamic-parameters): Change styles, fonts, colors, positions and content type at render time using dot notation on any parameter. - [Alt text with .alt (Dynamic Parameters)](https://orshot.com/docs/dynamic-parameters/alt-text): Set accessibility alt text on an image element, either in Studio or per render call. - [Render as with .contentType (Dynamic Parameters)](https://orshot.com/docs/dynamic-parameters/content-type): Render a text element as an image, or an image element as text, with the contentType parameter. - [Interactive links with .href (Dynamic Parameters)](https://orshot.com/docs/dynamic-parameters/link): Make text or image elements clickable in PDF output with the href parameter. - [The .prompt parameter (Dynamic Parameters)](https://orshot.com/docs/dynamic-parameters/prompt): Syntax, accepted values and limits for generating text or image content at render time. - [Video element parameters (Dynamic Parameters)](https://orshot.com/docs/dynamic-parameters/video): Trim, loop, mute and control audio on video layers dynamically per render. - [Orshot API error reference](https://orshot.com/docs/error-reference): Every Orshot API error code, what triggers it and the fix. Covers auth, quota, template and render failures. - [Build a polaroid app with Next.js (Examples)](https://orshot.com/docs/examples/instant-polaroid-app): Build a working polaroid-photo app with Next.js and the Orshot API. Full source included. - [Image rendering: formats and options](https://orshot.com/docs/image-generation): Render PNG, JPEG, WebP and AVIF from a template. Formats, multi-page carousels, dynamic styling and AI-filled layers. - [How do I generate images with AI at render time? (Image Generation)](https://orshot.com/docs/image-generation/ai-generated-content): Pass a prompt on an image layer and Orshot fills it during the render, instead of you pre-generating assets. - [How do I change styles without editing? (Image Generation)](https://orshot.com/docs/image-generation/dynamic-styling): Override fonts, colors, sizes and positions at render time using dot-notation parameters. - [How do I render a carousel? (Image Generation)](https://orshot.com/docs/image-generation/multi-page-images): Render specific pages, batch a full carousel, or produce an image set from a single multi-page template. - [Which image format should I use? (Image Generation)](https://orshot.com/docs/image-generation/response-formats): PNG for transparency, JPEG for the smallest file, WebP for both, AVIF for the best compression. - [How to import templates in Orshot?](https://orshot.com/docs/importing-templates): Bring existing Canva, Figma or Polotno designs into Orshot Studio and turn them into API templates. - [How to import a Canva design (Importing Templates)](https://orshot.com/docs/importing-templates/import-from-canva): Export from Canva and import into Studio. Text, images and layout carry over; some effects need a pass. - [How to import a Figma design (Importing Templates)](https://orshot.com/docs/importing-templates/import-from-figma): Use the Orshot Figma plugin to send a frame straight into Studio as an editable template. - [How to import a Polotno design (Importing Templates)](https://orshot.com/docs/importing-templates/import-from-polotno): Paste Polotno Studio JSON into Orshot Studio to convert it into an API-renderable template. - [Integration guides](https://orshot.com/docs/integrations): Setup guides for Zapier, Make, n8n, Airtable, Sheets, HubSpot, Notion, Shopify, Webflow and WordPress. - [Airtable (Integrations)](https://orshot.com/docs/integrations/airtable): Generate images, PDFs, and videos directly from Airtable records - [Dropbox (Integrations)](https://orshot.com/docs/integrations/dropbox): Automatically store rendered files in your Dropbox folders - [What is a dynamic URL? (Integrations)](https://orshot.com/docs/integrations/dynamic-urls): A signed URL that renders an image on request. Change the query parameters and the image changes. No API call. - [Figma plugin (Integrations)](https://orshot.com/docs/integrations/figma): Send a Figma frame straight into Orshot Studio as an editable, API-renderable template. - [Google Drive (Integrations)](https://orshot.com/docs/integrations/google-drive): Automatically store rendered files in your Google Drive folders - [Google Forms (Integrations)](https://orshot.com/docs/integrations/google-forms): Run Orshot workflows when your Google Form gets a new response and turn submissions into images, PDFs, and videos automatically - [Google Sheets (Integrations)](https://orshot.com/docs/integrations/google-sheets): Read spreadsheet rows into Orshot workflows, render a visual per row, and write the results back to your sheet - [HubSpot (Integrations)](https://orshot.com/docs/integrations/hubspot): Auto-generate personalized images, PDFs, and videos from your HubSpot CRM data with an Orshot workflow action — no code - [Make (Integromat) (Integrations)](https://orshot.com/docs/integrations/make): Render images, PDFs and videos from an Orshot template inside a Make scenario. - [MCP server (Integrations)](https://orshot.com/docs/integrations/mcp-server): Connect Orshot to Claude, Cursor, VS Code, ChatGPT and any MCP client to design templates, render and publish by chatting. - [n8n (Integrations)](https://orshot.com/docs/integrations/n8n): Render images, PDFs and videos from an Orshot template inside an n8n workflow. - [Notion (Integrations)](https://orshot.com/docs/integrations/notion): Run Orshot workflows when pages are added or edited in a Notion database, render images, PDFs, and videos from them, and write the results back - [Orshot CLI (Integrations)](https://orshot.com/docs/integrations/orshot-cli): Render templates from your terminal. Install with npm i -g @orshot/cli and authenticate once. - [Pipedream (Integrations)](https://orshot.com/docs/integrations/pipedream): Render images, PDFs and videos from an Orshot template inside a Pipedream workflow. - [S3 Compatible Storage (Integrations)](https://orshot.com/docs/integrations/s3-storage): Store rendered files in your own S3 or Cloudflare R2 bucket - [Shopify (Integrations)](https://orshot.com/docs/integrations/shopify): Automatically store rendered files in your Shopify store - [Slack (Integrations)](https://orshot.com/docs/integrations/slack): Get real-time render notifications and alerts in your Slack channels - [How do I bulk generate from a spreadsheet? (Integrations)](https://orshot.com/docs/integrations/spreadsheets): Upload a sheet and render one image, PDF or video per row from a Studio template. - [Webflow (Integrations)](https://orshot.com/docs/integrations/webflow): Auto-generate Open Graph and social images for your Webflow CMS items from your Orshot templates — uploaded to your site and written onto the item - [Webhooks (Integrations)](https://orshot.com/docs/integrations/webhooks): Trigger image, PDF and video generation from a form, an automation tool, or any HTTP client. - [WordPress (Integrations)](https://orshot.com/docs/integrations/wordpress): Auto-generate featured images, Open Graph images, and insert renders into posts from Orshot templates - [Zapier (Integrations)](https://orshot.com/docs/integrations/zapier): Render images, PDFs and videos from an Orshot template inside any Zap, and route the output to 7,000+ apps. - [What is Orshot?](https://orshot.com/docs/introduction): Orshot turns a template into an API: generate images, PDFs and videos, auto-publish them to 15+ social platforms, and track how each post performs. - [Subscription and billing states (Misc)](https://orshot.com/docs/misc/cancelling-subscription): What happens to renders, templates and seats when a subscription is cancelled, paused or downgraded. - [How do I clear the render cache? (Misc)](https://orshot.com/docs/misc/clearing-cache): Renders are cached by template and modification set. Bust the cache or clear from Studio to force a fresh render. - [What happens when I run out of credits? (Misc)](https://orshot.com/docs/misc/overage-renders): Renders keep working past your plan limit and bill as overage. Set a spending cap in Billing & Usage to control it. - [What can each workspace role do? (Misc)](https://orshot.com/docs/misc/team-collaboration): Owner, admin and member permissions across templates, brand assets, billing and API keys. - [How do I whitelist Orshot traffic? (Misc)](https://orshot.com/docs/misc/whitelisting-orshot): Identify Orshot's renderer by its request headers and allow it through your firewall or bot protection. - [How do I transfer workspace ownership? (Misc)](https://orshot.com/docs/misc/workspace-transfer): Transfer a workspace to another user from Workspace Settings. Templates, assets and billing move with it. - [Embed appearance parameters (Orshot Embed)](https://orshot.com/docs/orshot-embed/appearance): URL parameters and config for accent color, name, icon, language and hiding individual editor panels. - [What can I configure on the embed? (Orshot Embed)](https://orshot.com/docs/orshot-embed/configuration): Settings, permissions and customization options available per embed instance. - [How do I control the embed from my app? (Orshot Embed)](https://orshot.com/docs/orshot-embed/controlling-embed): Use postMessage to update template content, switch templates and navigate pages programmatically. - [How do I use my own asset library? (Orshot Embed)](https://orshot.com/docs/orshot-embed/custom-asset-picker): Replace Orshot's picker so users choose images, videos, fonts and colors from your library. - [How do I add custom toolbar buttons? (Orshot Embed)](https://orshot.com/docs/orshot-embed/custom-buttons): Add your own toolbar actions and receive a callback when a user clicks one. - [How do users export from the embed? (Orshot Embed)](https://orshot.com/docs/orshot-embed/downloads): Export as PNG, PDF or HTML directly from the embedded editor. - [What events does the embed emit? (Orshot Embed)](https://orshot.com/docs/orshot-embed/events): Listen for save, export and change events, and request template content on demand. - [How do I add Orshot Embed to my app? (Orshot Embed)](https://orshot.com/docs/orshot-embed/integration): Enable the embed, allowlist your domains, and drop in the iframe or SDK component. - [What is Orshot Embed? (Orshot Embed)](https://orshot.com/docs/orshot-embed/introduction): Embed the full Orshot Studio editor inside your own product so your users design and render without leaving it. - [How do I authenticate the embed with JWT? (Orshot Embed)](https://orshot.com/docs/orshot-embed/jwt-authentication): Sign a JWT to secure your embed and keep it loading in Safari and privacy-blocking browsers. - [How do I scope brand assets to one user? (Orshot Embed)](https://orshot.com/docs/orshot-embed/per-user-brand-assets): Scope colors, images, fonts, videos and audio to a single embed user instead of the workspace. - [What is embed multi-tenancy? (Orshot Embed)](https://orshot.com/docs/orshot-embed/per-user-data): Pass a userId and each embed user gets a private template library, scoped and isolated from other users. - [React SDK (Orshot Embed)](https://orshot.com/docs/orshot-embed/react-sdk): Drop the OrshotEmbed component into a React app and configure it with props. - [Smart Resize embed configuration (Orshot Embed)](https://orshot.com/docs/orshot-embed/smart-resize): Config flags and events for in-editor resizing by embed users. No API call needed. Scale plans only. - [How do I protect my master templates? (Orshot Embed)](https://orshot.com/docs/orshot-embed/template-protection): Let embed users work from your master templates and save their own copies, leaving the originals untouched. - [Vue SDK (Orshot Embed)](https://orshot.com/docs/orshot-embed/vue-sdk): Drop the Orshot embed component into a Vue 3 app and configure it with props. - [How do I get embed events server-side? (Orshot Embed)](https://orshot.com/docs/orshot-embed/webhooks): Receive template events on your own endpoint instead of in the browser. - [How do I animate template layers? (Orshot Studio)](https://orshot.com/docs/orshot-studio/animations): Add enter and exit animations, visibility timing and staggered choreography for video and GIF output. - [Canvas background parameters (Orshot Studio)](https://orshot.com/docs/orshot-studio/api-specs): Set canvas background color and background image per render with canvas parameters. - [How do I add audio and subtitles? (Orshot Studio)](https://orshot.com/docs/orshot-studio/audio-subtitles): Add music, voiceovers, ambient audio and captions to a video template. - [How do I flow text across pages? (Orshot Studio)](https://orshot.com/docs/orshot-studio/flowing-content): Let text overflow into additional pages automatically, for articles, reports and long-form PDFs. - [How do I replace part of a text layer? (Orshot Studio)](https://orshot.com/docs/orshot-studio/inline-parameters): Use placeholder tokens inside a text element to swap words without replacing the whole string. - [How do I style individual words? (Orshot Studio)](https://orshot.com/docs/orshot-studio/inline-text-styles): Apply separate colors, fonts, sizes and gradients to words inside a single text element. - [What is Orshot Studio? (Orshot Studio)](https://orshot.com/docs/orshot-studio/introduction): A visual template editor where you design once and generate thousands of image, PDF and video variations via API. - [What is a layer group? (Orshot Studio)](https://orshot.com/docs/orshot-studio/layer-groups): A group moves and organizes layers together. Grouping never changes renders, parameters or API behaviour. - [How do I add cinematic motion to templates? (Orshot Studio)](https://orshot.com/docs/orshot-studio/motion): Choreographed text reveals, counters, camera moves, film texture and per-render motion control for video templates, via Studio or the API. - [What is a template parameter? (Orshot Studio)](https://orshot.com/docs/orshot-studio/setting-parameters): A parameter marks a text, image or color layer as changeable, so the API can set its value on every render. - [How do I share a template? (Orshot Studio)](https://orshot.com/docs/orshot-studio/sharing-templates): Share via public link, embed or email. Viewers can render without an Orshot account. - [How does Smart Resize work? (Orshot Studio)](https://orshot.com/docs/orshot-studio/smart-resize): Render one design at any canvas size. The layout is re-solved deterministically instead of being scaled. - [How do I stack elements that grow? (Orshot Studio)](https://orshot.com/docs/orshot-studio/smart-stacking): Anchor one element to another so it moves when the first grows. Keeps dynamic layouts from colliding. - [How do I override styles at render time? (Orshot Studio)](https://orshot.com/docs/orshot-studio/style-parameters): Send dot-notation style parameters to change fonts, colors and sizes per render without editing the template. - [How do I let others generate from my template? (Orshot Studio)](https://orshot.com/docs/orshot-studio/template-forms): Publish a template as a form so anyone can fill it in and render, embedded on your site or shared as a link. - [How do I stop text overflowing? (Orshot Studio)](https://orshot.com/docs/orshot-studio/text-modes): Four modes -- fit, truncate, overflow and flow -- control what happens when dynamic text is longer than its box. - [What can I build with Studio templates? (Orshot Studio)](https://orshot.com/docs/orshot-studio/use-cases): Common builds: social sets, ad variants, certificates, reports and reels, all from one template. - [How do custom fonts work in renders? (Orshot Studio)](https://orshot.com/docs/orshot-studio/using-custom-fonts): Uploaded fonts are embedded at render time, so API output matches the editor exactly. Supported formats and fallbacks. - [What is the Orshot Partner Program?](https://orshot.com/docs/partner-program): Agency pricing, pooled credits and client workspace handoff for teams running Orshot for clients. - [How do I join the Partner Program? (Partner Program)](https://orshot.com/docs/partner-program/getting-started): Apply for partner access and finish onboarding to unlock partner pricing and the partner dashboard. - [Using the partner dashboard (Partner Program)](https://orshot.com/docs/partner-program/partner-dashboard): Manage client workspaces, track usage per client, and hand a workspace over when a project ends. - [Generating PDFs with the API](https://orshot.com/docs/pdf-generation): Render print-ready PDFs from templates with control over margins, DPI, color mode and page ranges. - [How do I add clickable links to a PDF? (Pdf Generation)](https://orshot.com/docs/pdf-generation/interactive-links): Set the href parameter on a text or image element to make it a live link in the PDF output. - [How do I generate a multi-page PDF? (Pdf Generation)](https://orshot.com/docs/pdf-generation/multi-page-pdfs): Combine template pages into one document for reports, catalogs and multi-page certificates. - [What PDF options can I control? (Pdf Generation)](https://orshot.com/docs/pdf-generation/pdf-options): Title metadata, margins, DPI, color mode, image compression and page range, all set per render. - [How does social account auth work? (Publish)](https://orshot.com/docs/publish/connect-account): Each platform is authorized once per workspace. Tokens refresh automatically; here is what happens when one expires. - [Social publishing (Publish)](https://orshot.com/docs/publish/introduction): Render and post directly to 15+ platforms including Instagram, LinkedIn, X, TikTok and YouTube, then pull back per-post analytics. - [How much does social publishing cost? (Publish)](https://orshot.com/docs/publish/pricing): Social publishing is a paid add-on on all paid plans, billed per connected account. Not available on Free. - [How do I publish to social via the API? (Publish)](https://orshot.com/docs/publish/publish-from-api): Render and post in one call, or post an existing render, with per-platform caption and scheduling fields. - [How do I publish from the dashboard? (Publish)](https://orshot.com/docs/publish/publish-from-playground): Render in the Playground and post or schedule it to any connected account. - [What are the limits for each platform? (Publish)](https://orshot.com/docs/publish/social-posting-guidelines): Per-platform caption length, image dimensions, video length and posting-frequency restrictions. - [Orshot quick start](https://orshot.com/docs/quick-start): Design a template, grab your API key, and make your first render call. About five minutes end to end. - [How do I build a template for the API? (Quick Start)](https://orshot.com/docs/quick-start/design-template): Create a template in Studio and mark the layers the API should change on every render. - [How do I make my first API render call? (Quick Start)](https://orshot.com/docs/quick-start/generate-images): POST your template ID and modifications to /v1/generate/images and get back a hosted image URL. - [How do I get an Orshot API key? (Quick Start)](https://orshot.com/docs/quick-start/get-api-key): Sign up, open Workspace Settings and copy the key from the API section. No card required on the free plan. - [Orshot SDKs](https://orshot.com/docs/sdks): Official Orshot client libraries for Node.js, Python, PHP and Ruby. Each wraps the render API with typed helpers. - [Node.js SDK (Sdks)](https://orshot.com/docs/sdks/node): Install with npm i orshot, then call renderFromTemplate() with a template ID and modifications. - [PHP SDK (Sdks)](https://orshot.com/docs/sdks/php): Install with composer require orshot/orshot, then call renderFromTemplate() with a template ID and modifications. - [Python SDK (Sdks)](https://orshot.com/docs/sdks/python): Install with pip install orshot, then call render_from_template() with a template ID and modifications. - [Ruby SDK (Sdks)](https://orshot.com/docs/sdks/ruby): Install the orshot gem, then call render_from_template with a template ID and modifications. - [Generating video with the API](https://orshot.com/docs/video-generation): Render MP4, WebM, MOV, MKV and GIF with video, voiceovers, captions and multi-page slideshows. - [How do I add subtitles to a video? (Video Generation)](https://orshot.com/docs/video-generation/adding-subtitles): Set subtitleSource to auto for speech-derived captions, or supply your own cue list. - [How do I control video playback? (Video Generation)](https://orshot.com/docs/video-generation/video-elements): Trim, loop, mute and set playback rate on a video layer using dot-notation parameters. - [What video output options can I set? (Video Generation)](https://orshot.com/docs/video-generation/video-options): fps, quality, trim, subtitle source and multi-page combine transitions, all per render. ## AI Agents - [Orshot for AI Agents — MCP Server & Agent Skills](https://orshot.com/agents/orshot-skills): Connect any MCP client to Orshot and generate images, PDFs and video from templates - [Use Orshot with Claude](https://orshot.com/agents/claude): Connect Orshot to Claude over MCP and render from your templates - [Use Orshot with Cursor](https://orshot.com/agents/cursor): Connect Orshot to Cursor over MCP and render from your templates - [Use Orshot with Codex](https://orshot.com/agents/codex): Connect Orshot to Codex over MCP and render from your templates - [Use Orshot with VS Code](https://orshot.com/agents/vscode): Connect Orshot to VS Code over MCP and render from your templates - [Use Orshot with ChatGPT](https://orshot.com/agents/chatgpt): Connect Orshot to ChatGPT over MCP and render from your templates - [Use Orshot with Antigravity](https://orshot.com/agents/antigravity): Connect Orshot to Antigravity over MCP and render from your templates - [Use Orshot with Lovable](https://orshot.com/agents/lovable): Connect Orshot to Lovable over MCP and render from your templates - [Use Orshot with Replit](https://orshot.com/agents/replit): Connect Orshot to Replit over MCP and render from your templates - [Use Orshot with Warp](https://orshot.com/agents/warp): Connect Orshot to Warp over MCP and render from your templates - [Use Orshot with Zed](https://orshot.com/agents/zed): Connect Orshot to Zed over MCP and render from your templates - [Use Orshot with OpenCode](https://orshot.com/agents/opencode): Connect Orshot to OpenCode over MCP and render from your templates - [Use Orshot with Hermes](https://orshot.com/agents/hermes): Connect Orshot to Hermes over MCP and render from your templates - [Use Orshot with Grok Bot](https://orshot.com/agents/grok-bot): Connect Orshot to Grok Bot over MCP and render from your templates - [Use Orshot with Browser Agents](https://orshot.com/agents/for-browser-agents): Connect Orshot to Browser Agents over MCP and render from your templates ## API - [OpenAPI 3.1 spec (JSON)](https://orshot.com/openapi.json): Machine-readable spec for the Orshot REST API — every endpoint, auth scheme, path/query params and request-body fields - [OpenAPI 3.1 spec (YAML)](https://orshot.com/openapi.yaml): The same spec in YAML - [API Reference](https://orshot.com/docs/api-reference): Human-readable REST API documentation for rendering templates, managing brand assets, workflows and social publishing - [Agent authentication (auth.md)](https://orshot.com/auth.md): How agents register and authenticate via OAuth2 or an API key to act on behalf of a user - [Remote MCP server](https://mcp.orshot.com/mcp): Tool access for MCP clients like Claude and Cursor ## Help Center > 59 help articles ### [How render credits and usage work](https://orshot.com/help/render-usage-and-credits) > What counts as a credit, where to track your balance, and what happens at the limit Open **Billing & Usage** from your workspace sidebar to see where you stand: ![The billing overview with credits, seats and limits](https://orshot.com/help/account-billing/credits-1-overview.webp) ## What uses credits - **Image and PDF renders** — every render request (API, Playground, or integrations), including repeat requests served from cache - **Video renders** — these scale with length (roughly 1 credit per second of video), so a 10-second MP4 costs more than an image - **MP4 downloads** from Orshot Studio (same per-second rule) - **[Smart Resize](https://orshot.com/help/resize-elements-and-canvas) sizes** — each size in a render counts on its own: `response.size` is one render at the new size, and every entry in `response.extraSizes` adds another. Saving sizes in Studio is free — you're only charged when you render them. ## What doesn't - Editing and saving templates in Orshot Studio - Image downloads of the current canvas (PNG, PDF, etc.) - **Serving an existing render URL** — once rendered, the output URL is a hosted file; embedding or sharing it costs nothing ## Voice usage AI voiceovers use a separate voice-minute allowance instead of render credits. The allowance is shared across all workspaces on the account and resets with the billing period. Generating new spoken narration uses voice time. Rendering a template with narration that has already been generated does not use it again. Dynamic narration uses voice time when new spoken copy needs to be generated. Your plan controls the included minutes, available voice models, and maximum script length. Open **Voiceover** in Studio to see current usage, or compare plans on the [pricing page](https://orshot.com/pricing). For high-traffic visuals like OG images, render once and reuse the **output URL** — serving the file again never triggers a new render. ## At the limit Configure **Overage Settings** on the billing page to decide what happens past your plan's credits — see [overage renders](https://orshot.com/docs/misc/overage-renders). ## Related - **[Render usage definitions](https://orshot.com/docs/definitions/credits-usage)**: The precise accounting rules - **[Cancel or pause your subscription](https://orshot.com/help/cancel-your-subscription)**: Manage your plan anytime --- ### [How saving works in Orshot Studio](https://orshot.com/help/how-saving-works) > The save indicator, ⌘S, and what the unsaved-changes prompt means Open any template in Studio — the cloud icon in the top bar always shows where you stand: ![The save-state cloud indicator in the top bar](https://orshot.com/help/studio/saving-1-indicator.webp) ## Saving - Press **`⌘S`** anytime, or - **File → Save Template**: ![Save Template in the File menu](https://orshot.com/help/studio/saving-2-file-menu.webp) ## The unsaved-changes prompt If you navigate away with unsaved edits, Studio asks before letting you go: - **Save** — keeps your changes (renders will use the new design) - **Continue without saving** — discards everything since your last save The API and Playground always render your last save. If a render looks outdated, save first — then check [why renders aren't updating](https://orshot.com/help/renders-not-updating-after-template-changes) if it persists. ## Related - **[Create your first template](https://orshot.com/help/create-your-first-template)**: The full design-to-save walkthrough - **[Renders not updating?](https://orshot.com/help/renders-not-updating-after-template-changes)**: Cache vs unsaved changes --- ### [How to add shadows, blur and effects](https://orshot.com/help/add-shadows-blur-and-effects) > Adjust opacity, blur, blend mode and drop shadow for any layer from the Effects panel in Orshot Studio. Every layer has an **Effects** section near the bottom of the **Styles** panel — **opacity**, **blur**, **blend mode** and a **drop shadow**. Select a layer to reveal it. ## 1. Opacity and blur **Opacity** fades a layer from solid to see-through; **Blur** softens it. Drag a slider or type an exact value. ![The Effects section in the Styles panel with opacity, blur, blend mode and drop shadow](https://orshot.com/help/studio/effects-1-section.webp) ## 2. Blend modes **Blend Mode** controls how a layer's colors mix with the layers behind it — **Multiply** to darken, **Screen** to lighten, **Overlay** for punchy contrast, and more. ![The Blend Mode menu open with Multiply, Screen, Overlay and other modes](https://orshot.com/help/studio/effects-2-blend.webp) ## 3. Drop shadow **Drop Shadow** lifts a layer off the canvas. Set the horizontal and vertical **offset**, the **blur**, and a **Drop Shadow Color**. ![The drop shadow offset, blur and color controls](https://orshot.com/help/studio/effects-3-shadow.webp) Opacity, blur, blend modes and shadows are built for image and video renders. As the panel notes, **they may not appear in PDF output** — preview a PDF render before relying on them. ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: Fonts, colors, borders and the rest of the Styles panel - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to add text, images, and shapes](https://orshot.com/help/add-elements) > Build your design from the Orshot Studio toolbar — text, images, video, shapes and dynamic elements Everything you can place on the canvas lives in the **toolbar at the bottom** of Orshot Studio. ![The element toolbar at the bottom of Orshot Studio](https://orshot.com/help/studio/add-elements-1-toolbar.webp) ## Add an element 1. Click a tool — **Text**, **Image**, **Video**, or **Shapes** 2. The element appears on your canvas (or an insert panel opens for media) 3. Drag it into place, then [style it](https://orshot.com/help/style-an-element) Press **T** for text, **I** for image, **V** for video — and for shapes: **R** rectangle, **O** circle, **L** line, **A** arrow. ## Shapes The caret next to the shapes tool lists all of them, with their shortcuts: ![The shapes dropdown with keyboard shortcuts](https://orshot.com/help/studio/add-elements-2-shapes.webp) ## Images and video Media tools open an insert panel — pick something you've already uploaded, or upload new files right there. Everything you upload is reusable across templates from your library. ![The insert panel with library and upload tabs](https://orshot.com/help/studio/add-elements-3-insert-panel.webp) ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: Fonts, colors, alignment and effects for any layer - **[Quick Start: design a template](https://orshot.com/docs/quick-start/design-template)**: The full template-building walkthrough --- ### [How to align and arrange layers in Orshot Studio](https://orshot.com/help/align-and-arrange-layers) > Stack layers front to back and line them up neatly — with the layer-order controls and the alignment buttons in the Styles panel Two separate things control how layers sit together: **stacking order** — which layer is in front — and **alignment** — how layers line up with the canvas or each other. Both are a click away once a layer is selected. ## 1. Change the stacking order Select a layer. A small toolbar floats above it — use **↓** to **Send Backward** and **↑** to **Bring Forward** one step at a time. ![The floating layer-order toolbar above a selected layer in Orshot Studio](https://orshot.com/help/studio/arrange-1-layer-order.webp) For a precise jump, set the **Z-Index (Layer Order)** value in the **Position & Size** section of the **Styles** panel — a higher number sits in front. You can also **right-click** any layer for **Bring to Front** and **Send to Back**, which skip straight to the top or bottom of the stack. ## 2. Align a layer to the canvas With a layer selected, the **Align Selected Layers to Canvas** row sits at the top of the **Styles** panel. The first three buttons snap the layer to the canvas's left edge, horizontal center, or right edge; the next three handle the top, middle, and bottom. ![The Align Selected Layers to Canvas buttons in the Styles panel](https://orshot.com/help/studio/arrange-2-align-canvas.webp) ## 3. Align layers to each other Select two or more layers — **Shift-click** (or **⌘/Ctrl-click**) each one. A new **Align Selected Layers to Each Other** row appears with the same six controls, but now they line the layers up relative to the selection instead of the canvas. ![Two layers selected with the Align Selected Layers to Each Other row showing](https://orshot.com/help/studio/arrange-3-align-each-other.webp) ## 4. Distribute layers evenly Select three or more layers and the **Distribute Selected Layers** row adds **Tidy Up** — even spacing in both directions — alongside buttons for even horizontal or vertical spacing. To set an exact distance instead, type a value into the **Gap** fields just below. ![The Distribute Selected Layers row with Tidy Up and the Gap fields](https://orshot.com/help/studio/arrange-4-distribute.webp) The alignment rows only appear once at least one layer is selected — click a layer on the canvas (or in the **Layers** panel) first. ## Related - **[Resize elements and the canvas](https://orshot.com/help/resize-elements-and-canvas)**: Set exact sizes and positions for any layer - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to cancel or pause your subscription](https://orshot.com/help/cancel-your-subscription) > Cancel — or temporarily pause — your Orshot subscription right from your billing page You can cancel (or pause) your subscription at any time from your billing page. No emails, no calls needed. ## Steps 1. Open **Billing & Usage** from your workspace sidebar 2. Click the menu icon (⋮) in the top right of the **Billing** section ![The menu icon on the Billing page](https://orshot.com/help/account-billing/cancel-1-billing-menu.webp) 3. Pick **Cancel Subscription** — or **Pause Subscription** if you just need a break ![The billing menu with cancel and pause options](https://orshot.com/help/account-billing/cancel-2-update-subscription.webp) Pausing keeps your templates, workspace and settings ready for when you're back — without the monthly charge while you're away. ## What happens after you cancel - Your subscription stays **active until the end of the current billing cycle** - You will **not be charged again** - Your templates and workspace data remain intact — if you resubscribe later, you pick up where you left off ## Before you go If something wasn't working for you, we'd genuinely like to know — reach out via the in-app support and we'll try to fix it. ## Related - **[Overage renders](https://orshot.com/docs/misc/overage-renders)**: How renders beyond your plan limit are billed - **[Workspace transfer](https://orshot.com/docs/misc/workspace-transfer)**: Move a workspace to another account --- ### [How to check your render history](https://orshot.com/help/view-render-logs) > Every render, its status and output — find, inspect and reuse past renders Open **All Renders** from your workspace sidebar — every render across templates, with status and output: ![The render history page](https://orshot.com/help/generate/logs-1-page.webp) ## What you can do here - **Inspect a render** — the exact parameters used, the output file, timing - **Copy the output URL** — the output is a hosted file; embedding or sharing that URL never triggers a new render - **Debug API calls** — failed or odd-looking renders show what was actually received - **Per-template history** — each template also has its own **Renders** tab Repeat requests serve from cache. If you changed the template and the log shows old output, [clear the render cache](https://orshot.com/help/renders-not-updating-after-template-changes). ## Related - **[Render usage and credits](https://orshot.com/help/render-usage-and-credits)**: What each render costs - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: Where renders come from --- ### [How to connect your social media accounts](https://orshot.com/help/connect-your-social-media-accounts) > Link social accounts to your workspace so you can publish renders directly from Orshot Before you can publish renders to social media, connect at least one account to your workspace. ## Connect an account 1. Open **Social Accounts** from your workspace sidebar (under "Publish") 2. Select a platform from the dropdown and click **Connect** 3. Authorize Orshot with the platform when redirected 4. The account appears in your connected list, ready for publishing ![The connected social accounts list](https://orshot.com/blog/orshot-publish-social-accounts.webp) ## Good to know - **Multiple accounts per platform** — each workspace can connect and target multiple accounts from the same platform - **Billing starts when you connect** — each connected account adds $12/mo, and the charge stops from the next billing cycle when you disconnect. See [Publish pricing](https://orshot.com/docs/publish/pricing). If you see a **Reconnect required** warning (e.g. after a password change on the platform), click **Reconnect** — your setup is kept. ## Related - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: Create the renders you'll publish - **[Publishing docs](https://orshot.com/docs/publish/introduction)**: Playground, API and posting guidelines --- ### [How to connect Zapier, Make, n8n and other tools](https://orshot.com/help/connect-no-code-tools) > Automate renders from your existing workflows — no code required Open **Integrations** from your workspace sidebar — each tile has a setup guide and one-click connect: ![The integrations page](https://orshot.com/help/generate/integrations-1-page.webp) ## The fastest setup: Quick Connect Click **Connect** on any template card — the integration tabs give you a ready-made setup for that exact template (n8n workflows are downloadable, Zapier and Make come pre-mapped): ![Integration tabs in the Quick Connect sheet](https://orshot.com/help/getting-started/quick-connect-3-integrations.webp) ## How it fits together 1. [Parameterize your template](https://orshot.com/help/make-your-template-dynamic) 2. Connect the integration — each dynamic parameter becomes a mappable field 3. Map your data (sheet rows, form answers, CMS entries) to the dynamic parameters 4. Every trigger renders a fresh image automatically Sheet row → personalized certificate · New blog post → OG image · Form submission → branded social card ## Related - **[Integration guides](https://orshot.com/docs/integrations)**: Tool-by-tool documentation - **[Make your template dynamic](https://orshot.com/help/make-your-template-dynamic)**: The dynamic parameters integrations map to --- ### [How to create your first template](https://orshot.com/help/create-your-first-template) > Design a reusable template in Orshot Studio in a few minutes — add elements, make them dynamic, and save Templates are reusable designs with dynamic parts. You design once, then generate thousands of variations by changing the text, images, or colors each time. ## 1. Create the template From your dashboard, click **New Template** — then start blank, pick a size preset, generate with AI, or [import an existing design](https://orshot.com/help/import-templates-from-canva-figma-or-polotno). ![The Create New Template dialog with size presets](https://orshot.com/help/getting-started/create-template-1-dialog.webp) Common sizes if you go blank: | Use case | Dimensions (px) | | --- | --- | | Social media post | 1200 × 630 | | Instagram post | 1080 × 1080 | | Twitter header | 1500 × 500 | | Certificate | 1584 × 1224 | ## 2. Build your design - [Add text, images and shapes](https://orshot.com/help/add-elements) from the bottom toolbar - [Style each layer](https://orshot.com/help/style-an-element) from the Styles panel - [Parameterize the parts that should change](https://orshot.com/help/make-your-template-dynamic) via the API tab ## 3. Save Click **Save Template** in the **File** menu (or press `⌘S`). The same menu handles renaming, tags, export and download. ![The File menu with save and template options](https://orshot.com/help/getting-started/create-template-2-file-menu.webp) Your template is now ready to render via the Playground, API, or integrations. ## Related - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: Render this template from the Playground or API - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to crop an image](https://orshot.com/help/crop-an-image) > Trim any image to exactly the part you want — without affecting its layer styles Open your template in Studio, then: 1. **Select the image** on the canvas 2. In the Styles panel, find the **Crop** row and click **Crop Image** ![The Crop Image button for a selected image](https://orshot.com/help/studio/crop-1-button.webp) 3. **Drag the edges** of the crop frame to keep just the part you want 4. **Confirm** to apply — or press `Esc` to cancel The layer's position, size and styles stay put; only the visible part of the image changes. If cropping isn't enough, [replace the image](https://orshot.com/help/replace-an-image) — the picker includes your assets, stock photos, URLs and AI generation. ## Related - **[Replace an image](https://orshot.com/help/replace-an-image)**: Swap the image, keep the layout - **[Resize elements and the canvas](https://orshot.com/help/resize-elements-and-canvas)**: Sizing at every level --- ### [How to design with AI](https://orshot.com/help/design-with-ai) > Build, restyle and batch-create templates by describing what you want — in the editor or from your AI client via MCP Two ways to let AI do the design work: ## In the editor: the Agent tab Open any template and switch to the **Agent** tab in the right panel — describe a change in plain language ("make the headline red, add a second page with a CTA") and it's applied to your design. ## From your AI client: Design via AI (MCP) The **Design via AI** button in the top bar connects your favorite AI client — Claude, Cursor, and others — to Orshot via MCP: ![The Design via AI panel with MCP connection options](https://orshot.com/help/studio/design-ai-1-panel.webp) - **Connect with MCP** — one click for supported clients - Or copy the **MCP Server URL** (`https://mcp.orshot.com/mcp`) / CLI command into your client manually - Ready-made prompts get you started: redesign the template, create color variations for A/B testing, add placeholders Once connected, your AI client can design templates, edit layers, and generate renders by chatting — see the [Agents & MCP docs](https://orshot.com/docs/integrations/mcp-server). The Create New Template dialog also has **Create with AI** — describe the design and a starting template is generated for you. ## Related - **[MCP Server docs](https://orshot.com/docs/integrations/mcp-server)**: Setup for Claude, Cursor and every client - **[Create your first template](https://orshot.com/help/create-your-first-template)**: All the ways to start a template --- ### [How to download and export your renders](https://orshot.com/help/download-and-export-your-renders) > Get your generated images, PDFs, and videos out of Orshot — as files, URLs, or base64 There are a few ways to get renders out of Orshot, depending on whether you're in the Studio, the Playground, or the API. ## From Orshot Studio While designing, **File → Download** exports what's on your canvas — handy for quick one-off exports: ![The Download option in the Orshot Studio File menu](https://orshot.com/help/generate/download-export-1-file-menu.webp) Clicking it opens the download options — copy to clipboard or save the current page as **PNG**, **AVIF**, **PDF**, **HTML**, even **MP4** for animated templates: ![The download options popover with all export formats](https://orshot.com/help/generate/download-export-2-options.webp) ## From the Playground After [generating a render](https://orshot.com/help/generate-your-first-image), the **Preview** panel gives you the file directly — download it, or **copy the render URL** to use anywhere (the URL serves the generated file). ## From the API Control the output with the `response` object in your render request: ```json { "templateId": "your-template-id", "modifications": { "title": "Hello" }, "response": { "type": "url", "format": "png" } } ``` - **`type`** — `url` (hosted link), `base64` (inline data), or `binary` (raw file) - **`format`** — `png`, `jpg`, `webp`, `avif`, `pdf` — plus `mp4`, `webm` and `gif` for video templates See the full options in the [Image Generation](https://orshot.com/docs/image-generation), [PDF Generation](https://orshot.com/docs/pdf-generation), and [Video Generation](https://orshot.com/docs/video-generation) docs. ## Renders showing old content? Orshot caches renders so they load fast. If you're seeing an outdated render after changing your template, see [Why are my renders not updating?](https://orshot.com/help/renders-not-updating-after-template-changes) ## Related - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: The full Playground walkthrough - **[Image Generation docs](https://orshot.com/docs/image-generation)**: Every response type and format --- ### [How to find your API key and template ID](https://orshot.com/help/find-your-api-key-and-template-id) > The two values every render call needs — and the two places to grab them Every API render needs two values: your **API key** and the **template ID**. ## The quick way: Quick Connect Click **Connect** on any template card — both values sit at the top of the sheet, ready to copy: ![Template ID and API key in the Quick Connect sheet](https://orshot.com/help/getting-started/quick-connect-2-ids.webp) ## All your keys: the API Keys page Open **API Keys** from your workspace sidebar to create, label, copy or revoke keys: ![The API Keys page](https://orshot.com/help/generate/api-keys-1-page.webp) Anyone with your key can render on your credits. Use separate labeled keys per integration so you can revoke one without breaking the rest. ## Related - **[Render images via the API](https://orshot.com/help/render-images-via-api)**: Use both values in your first call - **[API quick start docs](https://orshot.com/docs/quick-start)**: Full authentication reference --- ### [How to fix "Access Denied" in your embed (JWT)](https://orshot.com/help/embed-fix-access-denied) > Safari and privacy tools strip referrer headers — JWT authentication keeps your embed loading for everyone Your embed validates domains using the browser's referrer header. Safari, privacy extensions and mobile webviews sometimes strip it — and those users see **Access Denied** even from an allowed domain. JWT authentication fixes this. ## 1. Generate a signing secret In **Orshot Embed** settings, expand **Authentication (JWT)** and generate your **Signing Secret**: ![The Authentication section with the signing secret](https://orshot.com/help/embed/auth-1-jwt.webp) ## 2. Sign a token on your server ```javascript const jwt = require("jsonwebtoken"); const token = jwt.sign( { embedId: "YOUR_EMBED_ID", nonce: Math.random() }, process.env.ORSHOT_SIGNING_SECRET, { expiresIn: "1h" } ); ``` ## 3. Pass it in the embed URL ```text https://orshot.com/embeds/YOUR_EMBED_ID?token=YOUR_JWT ``` A valid token bypasses referrer validation entirely. Invalid or expired tokens fall back to standard domain checking — nothing breaks. Sign tokens on your backend only — never expose the Signing Secret in client code. Short expiries (1h or less) keep tokens low-risk. ## Related - **[Set up Orshot Embed](https://orshot.com/help/set-up-orshot-embed)**: Domains and embed code basics - **[JWT authentication docs](https://orshot.com/docs/orshot-embed/jwt-authentication)**: Full setup with more languages --- ### [How to fix a resized layout that looks wrong](https://orshot.com/help/fine-tune-a-resized-layout) > When an auto-fit needs a creative pass: adjust a size's layout by hand, or let AI recompose it. Smart Resize adapts your layout automatically, but a big aspect-ratio change (say, square → tall story) sometimes needs a human touch. You have two ways to fix it. ## Adjust Variant — edit a size by hand On any size card, click **Adjust Variant**: ![The Adjust Variant action on a size card](https://orshot.com/help/studio/smart-resize-4-adjust-variant.webp) Your canvas switches to that size's pages, and you move between them with the **same page arrows** you use normally. Reposition elements, resize them, tweak font sizes — your text, images, and colors stay shared with the base design; only the layout changes here. ![Editing a variant's layout, with Save Changes and Discard](https://orshot.com/help/studio/smart-resize-8-variant-editing.webp) When you're happy, click **Save Changes** (or **Discard**). Saved adjustments render **exactly** the way you arranged them, every time. ## Recompose with AI For a one-click creative re-layout, open the size's **⋯** menu and choose **Recompose with AI**: ![The size's ⋯ menu with Recompose with AI](https://orshot.com/help/studio/smart-resize-5-actions-menu.webp) The card's status badge updates to **AI** so you can tell at a glance how each size was laid out. ## Related - **[Why a resize looks wrong](https://orshot.com/help/why-my-resize-looks-wrong)**: Fix layouts and rejected sizes - **[Smart Resize in Studio (docs)](https://orshot.com/docs/orshot-studio/smart-resize)**: The full panel reference --- ### [How to generate images with AI in Orshot Studio](https://orshot.com/help/generate-images-with-ai) > Create an image from a text prompt right inside the editor — from the asset picker's AI Generator tab You can generate an image from a text prompt without leaving the editor. It lives in the **asset picker** — the panel that opens whenever you add or replace an image. ## 1. Open the AI Generator Add a new image, or right-click an existing image and choose **Replace Image**. In the **Use Asset** picker, switch to the **AI Generator** tab. ![The AI Generator tab in the Use Asset picker](https://orshot.com/help/studio/ai-image-1-tab.webp) ## 2. Describe and generate Type a description of the image you want, then click **Generate Image** — the result drops straight into your layer. ![The AI Generator prompt field and Generate Image button](https://orshot.com/help/studio/ai-image-2-prompt.webp) AI generation uses an AI request from your plan. The same picker also has **Stock** and **From URL** tabs if you'd rather use an existing photo. ## Related - **[Design with AI](https://orshot.com/help/design-with-ai)**: Generate a whole template layout from a prompt - **[AI-generated content docs](https://orshot.com/docs/image-generation/ai-generated-content)**: How AI image generation works under the hood --- ### [How to generate visuals in HubSpot with Orshot](https://orshot.com/help/generate-visuals-with-hubspot) > Connect HubSpot to Orshot and auto-generate personalized images, PDFs, and videos from your CRM data inside a workflow — no code Connect HubSpot to Orshot once, and any HubSpot **workflow** can auto-generate an **image, PDF, or video** from one of your templates using that record's CRM data — a personalized quote card with the contact's name, a deal-won certificate, a renewal reminder — then return the file URL, save it to your File Manager, and write it straight onto the record. No code. ## 1. Connect HubSpot to Orshot From your workspace sidebar, open **Integrations**, find **HubSpot**, and click **Connect**. ![The HubSpot card on the Orshot Integrations page with the Connect button](https://orshot.com/help/automations/hubspot-0-connect.webp) You'll be taken to HubSpot to choose the account you want to connect and approve access. ![The HubSpot authorization screen — choose your account and approve access](https://orshot.com/help/automations/hubspot-1-authorize.webp) Back in Orshot, HubSpot now shows **Connected**. You only do this once per workspace. ![The HubSpot card showing a Connected status in Orshot](https://orshot.com/help/automations/hubspot-2-connected.webp) Connecting uses HubSpot's secure OAuth — you don't create a HubSpot app or copy any keys. Orshot requests only what it needs: read your contacts, companies and deals, write a property, and upload to your File Manager. While the Orshot app is being reviewed for the HubSpot Marketplace, HubSpot shows a one-time _"You're connecting an unverified app"_ screen asking you to type **I accept the risk** before continuing. That's HubSpot's standard notice for any app not yet listed — it's safe to proceed, and it goes away once the app is verified. ## 2. Know your template's parameters Open your template in **Orshot Studio** and press **⌘]** (Toggle Parameter View; **Ctrl + ]** on Windows). Every editable element shows its **parameter** name — for this quote template that's `quote_text`, `portrait_image`, and `handle`. These names are exactly the fields you'll fill from HubSpot. Note the **Template ID** too (here, `13652`). ![An Orshot template in Studio with parameter labels turned on](https://orshot.com/help/automations/hubspot-3-studio-params.webp) Any text or image can be turned into a parameter — see [Make your template dynamic](https://orshot.com/help/make-your-template-dynamic). ## 3. Add the Orshot action to a workflow In HubSpot, go to **Automation → Workflows** and create or open a workflow (contact-, company-, or deal-based). Add an action, search for **Orshot**, and choose **Generate Image, PDF or Video with Orshot** under your connected apps. ![The HubSpot workflow action picker showing the Orshot action](https://orshot.com/help/automations/hubspot-4-action.webp) ## 4. Configure the action Everything is set on one panel: - **Orshot template ID** — the template to render (e.g. `13652`). - **Field values (JSON)** — map template parameters to values, e.g. `{"quote_text": "The strongest growth is quiet.", "handle": "@orshot"}`. - **Output format** — PNG, JPG, WebP, PDF, or video (GIF / MP4 / WebM) for animated templates. - **Where should the output go?** — return the file URL only, or **save to File Manager and write the URL to a property**. - **Write file URL to this property** — the property to store the URL on (shown when you save to File Manager). ![The Orshot workflow action's fields — template ID, field values, output format, and destination](https://orshot.com/help/automations/hubspot-5-node.webp) Video formats (GIF / MP4 / WebM) require a video-enabled Orshot plan, and play best when delivered as a File Manager link rather than inline in an email. ## 5. Personalize with CRM data This is what makes each run unique. In any **Field values** value, place your cursor where you want CRM data and insert a HubSpot **personalization token** — First name, Company name, or any property. HubSpot fills it in per-record at runtime, so every contact gets their own visual. ![Inserting a HubSpot First name personalization token into a field value](https://orshot.com/help/automations/hubspot-6-token.webp) For example, `"quote_text": "The strongest growth is quiet, {{ contact.firstname }}."` renders each contact's first name into the card. ## 6. Turn it on and see the result Save, turn the workflow on, and enroll a record. Orshot renders the personalized visual, saves it to **Files → Orshot Renders**, and writes the URL to your property: ![The rendered files saved to your HubSpot File Manager in the Orshot Renders folder](https://orshot.com/help/automations/hubspot-9-property.webp) The action also returns a **Generated file URL** and **HubSpot File ID** you can use in later workflow steps — attach the image to an email, post it to Slack, or update another property. Each run renders through your connected Orshot workspace and uses its credits (video bills per second). Serving an already-generated URL again is free. You can also drop a personalized Orshot image directly into a HubSpot **marketing email** with a dynamic image URL that carries HubSpot tokens — each recipient's email renders their own image, no workflow required. ## Related - **[Make your template dynamic](https://orshot.com/help/make-your-template-dynamic)**: Turn any text or image into a parameter you can fill - **[HubSpot integration docs](https://orshot.com/docs/integrations/hubspot)**: Full reference for the Orshot HubSpot app --- ### [How to generate visuals with Make](https://orshot.com/help/generate-images-with-make) > Render images, PDFs, and videos from your Orshot templates in a Make scenario — import a ready-made workflow or build it yourself Make (formerly Integromat) builds visual automation **scenarios**. A scenario can render an **image, PDF, or video** from your Orshot template — and Orshot gives you a ready-made workflow to import, so you're running in about a minute. Here's the template we'll automate: ![The Orshot template we'll render from Make](https://orshot.com/help/automations/make-output.webp) ## 1. Know your template's parameters Open your template in **Orshot Studio** and press **⌘]** (Toggle Parameter View). Every editable element is labelled with its **parameter** name — `headline`, `hero_food_photo`, `brand_name`, and so on. These are the values you'll set from Make. Any element can be made dynamic — see [Make your template dynamic](https://orshot.com/help/make-your-template-dynamic). ![The template in Orshot Studio with parameter labels turned on](https://orshot.com/help/automations/make-studio-params.webp) ## 2. Grab the ready-made workflow On the template's card, click **Connect**, then open the **Make** tab. You'll find your **Template ID**, **API key**, and — under *Skip manual setup* — a **Copy Make workflow** button and a **Download Make .json** file. New to API keys? See [Find your API key and template ID](https://orshot.com/help/find-your-api-key-and-template-id). ![The Quick Connect sheet on the Make tab, with Copy and Download workflow options](https://orshot.com/help/automations/make-connect.webp) ## 3. Import the workflow into Make In Make, create a new scenario. Open the **⋯** menu (top-right) and choose **Import blueprint**, then drop in the `.json` you downloaded (or paste the copied workflow). ![The ⋯ menu open with Import blueprint highlighted](https://orshot.com/help/automations/make-import-menu.webp) ## 4. Your scenario is ready The blueprint loads a scenario that already calls Orshot's render endpoint with your template and its modifications — no wiring required. ![The imported scenario with the Orshot render module](https://orshot.com/help/automations/make-scenario.webp) ## 5. Prefer to build it yourself? You can also add the step by hand: add a module, pick **Orshot → Generate Image from Studio Template**, and fill in the fields: - **Connection** — your Orshot account (added once with your API key). - **Template** — pick the template to render; its parameters appear as fields you can fill or map. - **Response Type** — `URL` (easiest to use downstream), `Base64`, or `Binary`. - **Image Format** — `png`, `jpg`, `webp`, `pdf`, or `mp4`/`webm`/`gif` for animated templates. - **Scale** — `1` for the template's size, `2` for 2× resolution. ![The Orshot module configuration in Make](https://orshot.com/help/automations/make-config.webp) ## 6. Run it Click **Run once**. Orshot renders your template with its modifications and returns the result — a hosted URL when **Response Type** is `URL`. With the format set to `gif`/`mp4`, an **animated** template returns video: ![The same template rendered as a short animation](https://orshot.com/help/automations/make-animated.webp) ## 7. Use it downstream Add more modules after Orshot and pass the returned image along — upload it to Google Drive, post it to a channel, attach it to an email — then turn the scenario on to run it on a schedule or trigger. Keep **Response Type** on `URL` so the next module can use Orshot's output directly. ## Related - **[Generate visuals with Zapier](https://orshot.com/help/generate-images-with-zapier)**: The same idea, in a Zapier Zap - **[Make integration docs](https://orshot.com/docs/integrations/make)**: Full reference for the Orshot Make integration --- ### [How to generate visuals with n8n](https://orshot.com/help/generate-images-with-n8n) > Render images, PDFs, and videos from your Orshot templates in an n8n workflow — import a ready-made workflow or build it yourself n8n is a workflow-automation tool you can self-host or run in the cloud. A workflow can render an **image, PDF, or video** from your Orshot template — and Orshot gives you a ready-made workflow you can paste straight onto the n8n canvas. Here's the template we'll automate: ![The Orshot template we'll render from n8n](https://orshot.com/help/automations/n8n-output.webp) ## 1. Know your template's parameters Open your template in **Orshot Studio** and press **⌘]** (Toggle Parameter View). Every editable element is labelled with its **parameter** name — `headline`, `restaurant_name`, `hero_image`, and so on. These are the values you'll set from n8n. Any element can be made dynamic — see [Make your template dynamic](https://orshot.com/help/make-your-template-dynamic). ![The template in Orshot Studio with parameter labels turned on](https://orshot.com/help/automations/n8n-studio-params.webp) ## 2. Grab the ready-made workflow On the template's card, click **Connect**, then open the **n8n** tab. You'll find your **Template ID**, **API key**, and a **Copy n8n workflow** button plus a **Download n8n .json** file. The same panel also lists the manual steps if you'd rather build it yourself. New to API keys? See [Find your API key and template ID](https://orshot.com/help/find-your-api-key-and-template-id). ![The Quick Connect sheet on the n8n tab, with Copy/Download workflow and manual steps](https://orshot.com/help/automations/n8n-connect.webp) ## 3. Import it into n8n Create a new workflow in n8n. Click **Copy n8n workflow** in Orshot, then **paste it onto the n8n canvas** (`⌘V` / `Ctrl+V`). (Or use **Download n8n .json** and import the file from the workflow menu.) ## 4. Your workflow is ready The workflow loads with a **Manual Trigger** wired to an **Orshot · Render** step that already targets Orshot's render endpoint with your template and its modifications. ![The imported n8n workflow: a manual trigger connected to the Orshot render node](https://orshot.com/help/automations/n8n-scenario.webp) ## 5. Check the render step Open the **Orshot · Render** node to review it — and to tweak anything: - **Method / URL** — `POST` to Orshot's render endpoint. - **Headers** — your API key as `Authorization: Bearer …`, and `Content-Type: application/json`. - **Body** — the render request itself: the `templateId` and a `modifications` object (see below). ![The Orshot render node's parameters in n8n](https://orshot.com/help/automations/n8n-config.webp) ### Set your modifications Open the node and scroll to **Send Body → Body Content Type: JSON**. The **JSON** field is where you set your modifications: it holds the `templateId` and a `modifications` object with **one key per template parameter** (the names from step 1). ![The n8n node's JSON body, showing the modifications object](https://orshot.com/help/automations/n8n-modifications.webp) Edit any value, add the parameters you want to change, and set the output with `"responseType"` and `"format"`: ```json { "templateId": 11147, "modifications": { "headline": "Savor the Moment", "restaurant_name": "THE GOLDEN TABLE", "hero_image": "https://images.unsplash.com/photo-1414235077428" }, "responseType": "url", "format": "png" } ``` To make a value dynamic, switch that field from **Fixed** to **Expression** (top-right of the JSON box) and reference data from your trigger or an earlier node, e.g. `{{ $json.name }}`. Prefer not to import? Add a node, search **Orshot**, choose **Generate Image from Studio Template**, connect your account with your API key, then pick your template and fill its parameters — the manual steps are listed right in the Connect sheet. ## 6. Run it Click **Execute workflow**. n8n calls Orshot, which renders your template with its modifications and returns the result. With the body's format set to `gif`/`mp4`, an **animated** template returns video: ![The same template rendered as a short animation](https://orshot.com/help/automations/n8n-animated.webp) ## 7. Use it downstream Add more nodes after Orshot and pass the rendered image along — save it, upload it, post it, or email it — then activate the workflow to run it on a schedule or trigger. ## Related - **[Generate visuals with Make](https://orshot.com/help/generate-images-with-make)**: The same idea, in a Make scenario - **[n8n integration docs](https://orshot.com/docs/integrations/n8n)**: Full reference for the Orshot n8n integration --- ### [How to generate visuals with Pipedream](https://orshot.com/help/generate-images-with-pipedream) > Render images, PDFs, and videos from your Orshot templates in a Pipedream workflow — using the Orshot app step Pipedream is a developer-friendly automation platform. A workflow can render an **image, PDF, or video** from your Orshot template using the built-in **Orshot** app step — no code required. Here's the template we'll automate: ![The Orshot template we'll render from Pipedream](https://orshot.com/help/automations/pipedream-output.webp) ## 1. Know your template's parameters Open your template in **Orshot Studio** and press **⌘]** (Toggle Parameter View). Every editable element is labelled with its **parameter** name — `quote`, `customer_name`, `stat_value`, and so on. These are the values you'll set from Pipedream. Any element can be made dynamic — see [Make your template dynamic](https://orshot.com/help/make-your-template-dynamic). ![The template in Orshot Studio with parameter labels turned on](https://orshot.com/help/automations/pipedream-studio-params.webp) ## 2. Grab your Template ID and API key On the template's card, click **Connect**, then open the **Pipedream** tab. You'll find your **Template ID**, **API key**, and the exact step-by-step to add the Orshot step to a Pipedream workflow. New to API keys? See [Find your API key and template ID](https://orshot.com/help/find-your-api-key-and-template-id). ![The Quick Connect sheet on the Pipedream tab, with the step-by-step](https://orshot.com/help/automations/pipedream-connect.webp) ## 3. Add the Orshot step In the Pipedream workflow editor, start with a trigger (any trigger works — an incoming webhook, a schedule, a new row, etc.). Then click the **+** below it to add a step. ![The Pipedream workflow editor with a trigger and the + to add the next step](https://orshot.com/help/automations/pipedream-editor.webp) In the step search, type **Orshot**, select it, and choose the action **Generate Image from Studio Template**. The first time, click **Connect Account** and paste your **API key**. ## 4. Configure the render The Orshot step exposes the same fields as the Orshot action in every other tool: - **Template** — pick the template to render (its ID is in the Connect sheet). - **Response Type** — `URL` (easiest to use in later steps), `Base64`, or `Binary`. - **Image Format** — `png`, `jpg`, `webp`, `pdf`, or `mp4`/`webm`/`gif` for animated templates. - **Modifications** — your template's parameters as fields (the names from step 1). Type a value, or reference data from your trigger to make each run dynamic. The modification fields and dynamic mapping work identically across Zapier, Make, n8n and Pipedream. See [Generate visuals with Zapier](https://orshot.com/help/generate-images-with-zapier#5-fill-in-the-modifications) for a step-by-step of filling each field and mapping trigger data into it. ## 5. Run it **Deploy** the workflow (or use **Test**). Orshot renders your template with its modifications and returns the result — a hosted URL when **Response Type** is `URL`. With the format set to `gif`/`mp4`, an **animated** template returns video: ![The same template rendered as a short animation](https://orshot.com/help/automations/pipedream-animated.webp) ## 6. Use it downstream Add more steps after Orshot and pass the returned image along — upload it, post it, email it, or store it — then the workflow runs automatically on every trigger. Keep **Response Type** on `URL` so the next step can use Orshot's output directly. ## Related - **[Generate visuals with Zapier](https://orshot.com/help/generate-images-with-zapier)**: The same Orshot action, in a Zapier Zap - **[Pipedream integration docs](https://orshot.com/docs/integrations/pipedream)**: Full reference for the Orshot Pipedream integration --- ### [How to generate visuals with Zapier](https://orshot.com/help/generate-images-with-zapier) > Automatically render images, PDFs, and videos from your Orshot templates with a Zapier Zap — no code Zapier connects Orshot to thousands of apps. With a **Zap**, any trigger — a new spreadsheet row, a form submission, a schedule — can render an **image, PDF, or video** from one of your templates automatically, with no code. Here's the template we'll automate: ![The Orshot template we'll render from Zapier](https://orshot.com/help/automations/zapier-output.webp) ## 1. Know your template's parameters Open your template in **Orshot Studio** and press **⌘]** (Toggle Parameter View). Every editable element is labelled with its **parameter** name — `kicker_text`, `headline_top`, `hero_image`, and so on. These names are exactly the fields you'll fill from Zapier, so it helps to know them up front. ![The template in Orshot Studio with parameter labels turned on](https://orshot.com/help/automations/zapier-studio-params.webp) Any element can be made dynamic — see [Make your template dynamic](https://orshot.com/help/make-your-template-dynamic). ## 2. Grab your Template ID and API key On the template's card, click **Connect**. The sheet gives you the **Template ID** and **API key** to paste into Zapier, a **Zapier** tab with the exact steps, and a **Live Preview**. New to API keys? See [Find your API key and template ID](https://orshot.com/help/find-your-api-key-and-template-id). ![The Quick Connect sheet open on the Zapier tab](https://orshot.com/help/automations/zapier-0-connect.webp) The **n8n** and **Make** tabs in this same sheet include a prebuilt workflow you can **Copy** or **Download as `.json`** and import directly. Zapier doesn't import workflows — but it only takes a few clicks to build, below. ## 3. Add the Orshot action Create a Zap and pick a trigger — the event that starts your workflow (any trigger works; here we use a simple **Schedule**). Add an action step, search for **Orshot**, and choose **Render From Studio Template** (use **Render From Template** for library templates). The first time, connect your Orshot account with your API key. ![Choosing the Orshot Render From Studio Template action in a Zap](https://orshot.com/help/automations/zapier-1-action.webp) ## 4. Select your template In the **Template ID** field, pick the template you want to render. ![Selecting the template from the Template ID dropdown](https://orshot.com/help/automations/zapier-1b-select-template.webp) Once a template is selected, the action expands to show **one input for every parameter in that template** — the same names you saw in Studio. ![The Orshot action showing one input per template parameter](https://orshot.com/help/automations/zapier-2-node.webp) ## 5. Fill in the modifications **Modifications are the heart of the automation** — they're how each run produces a different image. Every parameter from your template (step 1) shows up here as its own field. For each one you want to change: - **Text fields** (`Kicker Text`, `Headline Top`, `Subheadline`…) — type a fixed value, or map in data from your trigger (next). - Leave any field blank to keep the template's default. ![The template's text fields shown as individual modification inputs in Zapier](https://orshot.com/help/automations/zapier-2-modifications.webp) **Image fields** (`Hero Image`, `Photo Two`…) take a public image URL — a brand image, an Unsplash link, or a URL mapped from your trigger. ![An image parameter filled with a public image URL](https://orshot.com/help/automations/zapier-3-images.webp) ### Map dynamic data into a modification To make a field change on every run, click it and use the **data button** to pull a value from a previous step instead of typing one. The picker lists your trigger's output fields — pick one and Zapier inserts it as a data token. That's how you turn a static template into, say, a personalised image per spreadsheet row or form submission. ![The Zapier data picker mapping a trigger field into a modification](https://orshot.com/help/automations/zapier-2b-mapping.webp) ## 6. Set the output options Below the parameter fields: - **Response Type** — how the result comes back: `URL` (a hosted link, easiest to use later), `Base64`, or `Binary`. - **Response Format** — the output format. Everything Orshot renders is here: `png`, `jpg`, `jpeg`, `webp`, `pdf`, and `mp4`, `webm`, `gif` for animated templates. ![The Response Format dropdown listing image, PDF and video formats](https://orshot.com/help/automations/zapier-3-formats.webp) - **Scale** — the resolution multiplier. `1` renders at the template's size; `2` doubles it for crisp retina or print output (larger file). ## 7. Test the step Click **Test step**. Zapier sends your settings to Orshot and renders the visual. ![The Test step button in the Zapier action](https://orshot.com/help/automations/zapier-5-test.webp) A moment later, the **Data out** panel shows the result — the rendered file as **Content** (a URL here), plus its **Type** and **Format**. ![The test response showing the rendered image URL, type and format](https://orshot.com/help/automations/zapier-6-response.webp) ## 8. The result Open that URL and you've got your render — generated entirely from the Zap. With the format set to `gif`/`mp4`/`webm`, an **animated** template returns video instead: ![The same template rendered as a short animation](https://orshot.com/help/automations/zapier-animated.webp) ## 9. Use it downstream Add more steps after Orshot and pass the returned URL along — save it to Google Drive, post it to Slack, attach it to an email, or upload it wherever you need it. Then turn the Zap on. Keep **Response Type** on `URL` — most apps accept an image URL directly, so you can drop Orshot's output straight into the next action. ## Related - **[Connect no-code tools](https://orshot.com/help/connect-no-code-tools)**: Make, n8n, Pipedream and other automation platforms - **[Zapier integration docs](https://orshot.com/docs/integrations/zapier)**: Full reference for the Orshot Zapier app --- ### [How to generate your first image](https://orshot.com/help/generate-your-first-image) > Render an image from your template with Quick Connect or the Playground — no code needed Once you have a [template](https://orshot.com/help/create-your-first-template), the fastest way to render it is **Quick Connect** — right from your dashboard. ## The quick way: Quick Connect From **Your Templates**, click **Connect** on any template card: ![The Connect button on a template card](https://orshot.com/help/getting-started/quick-connect-1-card.webp) The Quick Connect sheet has everything in one place — your **Template ID** and **API key**, ready to copy: ![Template ID and API key in the Quick Connect sheet](https://orshot.com/help/getting-started/quick-connect-2-ids.webp) The request body below is pre-filled with your template's parameters. Tweak any value, pick a format, and hit **Run API Request**: ![The pre-filled request and Run API Request button](https://orshot.com/help/getting-started/quick-connect-4-run.webp) The tabs above the request switch to ready-made setups for n8n, Make, Zapier, Airtable and MCP — same template, no code. ![Integration tabs in the Quick Connect sheet](https://orshot.com/help/getting-started/quick-connect-3-integrations.webp) ## The full Playground For more room — live preview, format options, API response inspector — open the **Playground** from the Quick Connect header: ![Playground and Renders links in the sheet header](https://orshot.com/help/getting-started/quick-connect-5-header.webp) Fill in the parameter fields and click **Generate Render**: ![The Playground parameter form](https://orshot.com/help/getting-started/generate-image-1-parameters.webp) Your render lands in the **Preview** panel — download it or copy its URL: ![The rendered result in the Preview panel](https://orshot.com/help/getting-started/generate-image-3-preview.webp) The **REST API** tab shows your exact render as a copy-paste request: ![The ready-made API request in the REST API tab](https://orshot.com/help/getting-started/generate-image-4-rest-api.webp) ## Related - **[Download and export your renders](https://orshot.com/help/download-and-export-your-renders)**: Formats, URLs, base64 and binary output - **[Image Generation docs](https://orshot.com/docs/image-generation)**: Every render option in the API --- ### [How to group layers in Orshot Studio](https://orshot.com/help/group-layers) > Combine layers into a group that selects, moves and organizes as one — without changing your renders Groups keep related layers together: **select the layers, group them, and they move as one**. Grouping is pure organization — it never changes how your template renders or how the API sees it. ## 1. Group the layers Select two or more layers (drag a selection box, or **⌘/Ctrl + click** them one by one), then right-click and choose **Group Selection** — or just press **⌘G** (Ctrl+G on Windows). ![Right-click menu with the Group Selection action on two selected layers](https://orshot.com/help/studio/group-layers-1-group-selection.webp) ## 2. Select and move the group Clicking any layer in a group now selects the **whole group** — you'll see a single purple ring around it and the group's name underneath. Drag any layer to move the entire group together; alignment tools also treat the group as one block. ![A selected group with its purple ring and name pill](https://orshot.com/help/studio/group-layers-2-group-selected.webp) ## 3. Edit a single layer inside **Double-click** a layer to step inside the group and work on just that layer — move it, style it, or edit its text while the rest of the group stays put. A dashed outline reminds you which group you're in. Press **Esc** to step back out to the whole group. ![Editing one layer inside a group after double-clicking it](https://orshot.com/help/studio/group-layers-3-drill-in.webp) ## 4. Rename the group Click the name in the pill below the selected group and type a new one — **Enter** saves it. You can also rename from the group's row in the **Layers** panel. ![Renaming a group inline from the name pill under the selection](https://orshot.com/help/studio/group-layers-4-rename.webp) ## 5. Manage groups in the Layers panel Groups show up as purple folders in the **Layers** panel. Expand one to reorder, hide, lock, or style the layers inside; the group row's own controls hide or lock every member at once. Drag the group row to move the whole group up or down the stack. ![The Layers panel showing groups as expandable folders](https://orshot.com/help/studio/group-layers-5-layers-panel.webp) ## 6. Ungroup anytime Right-click a grouped layer and choose **Ungroup**, or press **⌘⇧G**. Every layer stays exactly where it is — only the grouping goes away. ![The Ungroup action in the right-click menu](https://orshot.com/help/studio/group-layers-6-ungroup.webp) Grouping is a Studio-only convenience. Renders, dynamic parameters, and API responses are identical whether layers are grouped or not — see [Layer groups](https://orshot.com/docs/orshot-studio/layer-groups) for the technical details. ## Related - **[Align and arrange layers](https://orshot.com/help/align-and-arrange-layers)**: Position layers precisely — groups align as one block - **[Layer groups (docs)](https://orshot.com/docs/orshot-studio/layer-groups)**: How groups behave in template JSON and the API --- ### [How to import from Canva, Figma or Polotno](https://orshot.com/help/import-templates-from-canva-figma-or-polotno) > Bring existing designs into Orshot Studio and turn them into dynamic, API-driven templates. Layout and styles are preserved. Already have designs in another tool? You don't need to recreate them. Orshot imports designs from Canva, Figma, and Polotno with layout and styles preserved — ready to parameterize and automate. ## Where to import 1. From your workspace dashboard, click **New Template** ![The New Template button on the workspace dashboard](https://orshot.com/help/templates/import-1-new-template.webp) 2. Pick your source from the tabs at the top: **Figma**, **Canva**, or **Polotno** ![The import source tabs in the Create New Template dialog](https://orshot.com/help/templates/import-2-sources.webp) 3. Paste your design's public share link and click **Import Design** — the dialog shows you exactly where to find the share link in your design tool ![The Canva import pane with the share-link field](https://orshot.com/help/templates/import-3-canva-url.webp) ## Per-source guides Each source works a little differently — **Canva** takes a public share link directly, **Figma** uses the Orshot plugin to export your frames, and **Polotno** imports via a JSON export. Follow the guide for yours: - [Import from Canva](https://orshot.com/docs/importing-templates/import-from-canva) — bring Canva designs in with layout and styles preserved - [Import from Figma](https://orshot.com/docs/importing-templates/import-from-figma) — convert Figma frames into editable templates - [Import from Polotno](https://orshot.com/docs/importing-templates/import-from-polotno) — migrate Polotno projects ## After importing Your imported design is now a normal Orshot template: 1. Review the layers — text, images, and shapes are editable 2. [Make the parts you want to change dynamic](https://orshot.com/help/make-your-template-dynamic) 3. [Generate your first image](https://orshot.com/help/generate-your-first-image) from it ## Something look off after import? Imports translate designs automatically, but complex effects can differ between tools — see [why a template can look different after import](https://orshot.com/help/template-looks-different-after-import) for the quick fixes. ## Related - **[After importing a design](https://orshot.com/help/after-importing-a-design)**: Check, parameterize, render — the post-import checklist - **[Importing Templates docs](https://orshot.com/docs/importing-templates)**: Per-source steps and limitations --- ### [How to invite your team to a workspace](https://orshot.com/help/invite-your-team) > Add team members to collaborate on templates, brand assets, and content generation Workspaces are shared — invite teammates to design templates, manage brand assets, and generate content together. ## Invite a team member 1. Open **Team Members** from your workspace sidebar 2. Enter their email address and pick a role — **Member** or **Admin** (permissions for each are listed right above the form) 3. Click **Send Invite** — they'll get an email with steps to join ![The invite form on the Team page](https://orshot.com/help/account-billing/invite-team-1-invite-form.webp) ## Manage your team The members list shows each invite's status. From here you can change roles, remove members, or transfer workspace ownership. ![The members list with roles and invite status](https://orshot.com/help/account-billing/invite-team-2-members.webp) Team collaboration is available on paid plans — your seat count is shown next to the invite form. ## Related - **[Team Collaboration docs](https://orshot.com/docs/misc/team-collaboration)**: Full permission breakdown for members and admins - **[Workspace transfer](https://orshot.com/docs/misc/workspace-transfer)**: Move a workspace to another account --- ### [How to isolate templates and assets per user](https://orshot.com/help/embed-multi-tenancy) > Multi-tenancy in the embed: pass a userId and every user gets a private library of templates, images, videos, fonts, colors and audio. By default, everyone using your embed shares the workspace's templates. **Per-User Data & Templates** isolates them: each user gets their own templates, images, videos, fonts and colors — User A can never see or modify User B's work. ## 1. Turn it on In **Orshot Embed** settings, expand **Users & Data** and enable **Per-User Data & Templates**: ![The Per-User Data & Templates switch with the user counter](https://orshot.com/help/embed/users-1-per-user-data.webp) ## 2. Pass a userId Add your app's user identifier to the embed URL — users are created automatically on first visit: ```html ``` Optional extras: `userName`, `userEmail`, and `metadata` (URL-encoded JSON for plan, company, role…). Without a `userId`, saves go to the shared workspace. The `userId` must be unique per user — it's securely hashed and never exposed. ## What your users see Two template sections inside the editor: **My Templates** (theirs alone) and **Workspace Templates** (the ones you share). Pair this with [override protection](https://orshot.com/help/embed-protect-your-templates) so your originals stay untouched. ## User limits Each plan includes a maximum number of embed users (the counter shows yours, e.g. `0 / 800`). At the limit, new users see a "User Limit Reached" message; existing users keep working. ## Fetch a user's templates via API ```bash curl "https://api.orshot.com/v1/studio/templates/all?embedId=YOUR_EMBED_ID&embedUserId=user_123" \ -H "Authorization: Bearer YOUR_API_KEY" ``` ## Related - **[Protect your workspace templates](https://orshot.com/help/embed-protect-your-templates)**: Stop users overwriting your originals - **[Per-user data docs](https://orshot.com/docs/orshot-embed/per-user-data)**: All parameters and API details --- ### [How to keep text from overflowing (Text Autofit)](https://orshot.com/help/text-sizing-modes) > Choose how text behaves when it doesn't fit its box — so dynamic content never breaks your design When text changes — especially [via API](https://orshot.com/help/make-your-template-dynamic) — a long value can outgrow its box. **Text Autofit** decides what happens then, per layer. ## Set it in two clicks 1. Select a **text layer** on the canvas 2. In **Styles**, find **Text Autofit** and pick a mode ![The Text Autofit control in the Styles panel](https://orshot.com/help/studio/text-sizing-1-autofit-control.webp) ## The four modes ![The four Text Autofit modes in the dropdown](https://orshot.com/help/studio/text-sizing-2-modes.webp) | Mode | What happens | Best for | | --- | --- | --- | | **Overflow** | Text displays in full, extending beyond the box | Fixed text you control | | **Truncate** | Text clips with an ellipsis (…) | Titles from feeds or user input | | **Fit** | Text auto-shrinks to fit the box | Headlines that change via API | | **Flow** | Text continues across pages automatically | Long documents and PDFs | ## Set a minimum size for Fit With **Fit**, also set **Min. Font Size** — text shrinks no further than this, keeping it readable even with very long values. ![Min Font Size input below Text Autofit](https://orshot.com/help/studio/text-sizing-3-min-font-size.webp) Use **Fit** on any parameterized headline. A 60-character product name will shrink to fit instead of spilling over your design — no manual fixes needed. ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: All the text and layer styling controls explained - **[Make your template dynamic](https://orshot.com/help/make-your-template-dynamic)**: Parameterize text so it changes per render --- ### [How to know when users save or export](https://orshot.com/help/embed-react-to-user-actions) > Events, webhooks and custom buttons — wire the embed into your product's workflows When a user saves a design in your embed, your app probably wants to do something — store it, render it, move them to the next step. Three mechanisms, from light to heavy: ## 1. Events (in the browser) Expand **Events & Integrations** and turn on **Enable Events** — the embed then posts messages to your page: ![The Events & Integrations settings with webhook URL](https://orshot.com/help/embed/events-1-settings.webp) ```javascript window.addEventListener("message", (event) => { if (!event.origin.includes("orshot.com")) return; const { type, data } = event.data; if (type === "orshot:template:update") { // data.id, data.name — the user just saved } }); ``` Events fire for template create/update, every download format, and more — see the [events reference](https://orshot.com/docs/orshot-embed/events). You can also *request* the current design as PNG, PDF or HTML at any moment. ## 2. Webhooks (on your server) Add a **Webhook URL** in the same section — Orshot POSTs `template.create`, `template.update` and `template.delete` to your endpoint with the template data. Best for syncing to your database; respond within 10 seconds. ## 3. Custom buttons (in the toolbar) **Custom Buttons** adds your own actions to the editor toolbar — like a **Save to App** button that emits the design as base64 PNG/PDF straight to your code, no download dialog. Configure label, colors and action type per button — see the [custom buttons docs](https://orshot.com/docs/orshot-embed/custom-buttons). In-page reactions → events. Database sync and deletes → webhooks. A branded "Save" flow → custom buttons. They compose — most products use two of the three. ## Related - **[Set up Orshot Embed](https://orshot.com/help/set-up-orshot-embed)**: Get the embed running first - **[Webhooks docs](https://orshot.com/docs/orshot-embed/webhooks)**: Payloads, security and retries --- ### [How to let embed users resize a design](https://orshot.com/help/smart-resize-in-embed) > A no-API, in-editor Smart Resize for embed customers on Scale plans. Inside the embedded studio, **Smart Resize** lets your customers take a design and render it at any size — then **add it as a new page or update an existing one**. It's the same adaptive engine as [Smart Resize in Studio](https://orshot.com/help/resize-elements-and-canvas), tuned for a customer-facing surface: it works purely with pages, with **no API-facing controls**. When your plan includes it, the **Smart Resize** button appears in the embed toolbar automatically — there's nothing to toggle. Your customers click **Smart Resize** in the embed toolbar: ![Smart Resize in the embed toolbar](https://orshot.com/help/embed/smart-resize-1-button.webp) Each size card leads with **Add as new page** and **Replace current page**. There's no "API Usage" tab and no test-via-API — resizing here is only about producing pages: ![Pages-only actions on a size card in embed](https://orshot.com/help/embed/smart-resize-2-page-actions.webp) **Adjust Variant** (fine-tune a size's layout) lives in the card's **⋯** menu, and Recompose with AI is hidden: ![Adjust Variant in the embed ⋯ menu](https://orshot.com/help/embed/smart-resize-3-actions-menu.webp) Even though your customer never touches the API, the sizes they save are stored on the template — so **you, the workspace owner, can render those exact sizes via the [API](https://orshot.com/help/render-any-size-via-api)**. ## Related - **[Set up Orshot Embed](https://orshot.com/help/set-up-orshot-embed)**: Get the editor into your product - **[Smart Resize in Embed (docs)](https://orshot.com/docs/orshot-embed/smart-resize)**: Embed-specific reference --- ### [How to lock and hide layers in Orshot Studio](https://orshot.com/help/lock-and-hide-layers) > Hide a layer to keep it out of the render, or lock it so it can't be moved by accident — both from the Layers panel Both controls live in the **Layers** panel on the right: **hide** a layer to keep it in your template but out of the render, and **lock** it so it can't be selected or moved by accident. Open the panel with the **Layers** tab. ## 1. Hide a layer Click the **eye** next to any layer to hide it. ![The eye control next to a layer in the Layers panel](https://orshot.com/help/studio/lock-hide-1-eye.webp) ## 2. What hiding does The layer dims in the panel and disappears from the canvas — it stays in your template but is left out of every render. Click the eye again (now a slash) to bring it back. ![A hidden layer dimmed in the panel and gone from the canvas](https://orshot.com/help/studio/lock-hide-2-hidden.webp) You can also right-click a layer on the canvas and choose **Hide Layer** — handy when the panel is scrolled. ## 3. Lock a layer Click the **lock** to protect a layer. A locked layer can't be selected or moved on the canvas — useful for backgrounds you keep nudging by mistake. Since you can no longer click it on the canvas, **unlock it from the same spot** in the **Layers** panel. ![The lock control next to a layer in the Layers panel](https://orshot.com/help/studio/lock-hide-3-lock.webp) ## Related - **[Align and arrange layers](https://orshot.com/help/align-and-arrange-layers)**: Stack, align and distribute layers on the canvas - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to make the embed match your brand](https://orshot.com/help/embed-customize-appearance) > Your accent color, name, icon and language — plus URL parameters to hide any part of the editor The embedded editor should feel like *your* product. Two layers of control: ## Brand settings (General) In **Orshot Embed** settings, expand **General**: ![The General section with brand styling options](https://orshot.com/help/embed/general-1-branding.webp) - **Accent color** — buttons, highlights and interactive elements match your brand - **Embed title** — your product's name instead of the workspace name - **Custom icon** — your square logo (min 128×128px) replaces the Orshot icon - **Default language** — initial interface language (users can switch if you allow it) ## Hide parts of the editor (URL parameters) Add `hide=` to the embed URL with any of these, comma-separated: | Token | Hides | | --- | --- | | `templateBar` | Top-left menu, save and template actions | | `pagesBar` | Page controls (add, duplicate, reorder) | | `toolsBar` | Bottom toolbar (zoom + insert tools) | | `stylesSidebar` | The styling sidebar | | `videoBar` | Video timeline/playback controls | | `metaBar` | The template-info button | ```text https://orshot.com/embeds/YOUR_ID?hide=templateBar,pagesBar,metaBar ``` The styles sidebar opens from the Menu button inside `templateBar` — hiding `templateBar` also removes the way to open the sidebar. ## Related - **[Set up Orshot Embed](https://orshot.com/help/set-up-orshot-embed)**: The basics, if you haven't yet - **[Appearance docs](https://orshot.com/docs/orshot-embed/appearance)**: All tokens and behaviors --- ### [How to make your template dynamic](https://orshot.com/help/make-your-template-dynamic) > Turn any text, image, or color in your template into a parameter you can change via API or integrations Dynamic parameters are what make Orshot templates powerful — the same design can produce thousands of variations by changing values at render time. **To get there:** open your template from **Your Templates** on the dashboard — it opens in Orshot Studio. ## The quick way: right on the canvas Select any layer — a small pill appears under it. Toggle it on and edit the parameter ID right there: ![The on-canvas parameter pill under a selected layer](https://orshot.com/help/templates/make-dynamic-1-canvas-pill.webp) That's it — the layer is now dynamic. ## Full options: the API tab For everything else (usage examples, advanced options), select the layer and open the **API** tab in the right panel: 1. Turn on **Parameterize** ![The Parameterize switch in the API tab](https://orshot.com/help/templates/make-dynamic-2-parameterize.webp) 2. Give it a clear, descriptive ID — like `headline`, `userName`, or `productImage` ![The Parameter ID field](https://orshot.com/help/templates/make-dynamic-3-parameter-id.webp) Use IDs that describe the content (`price`, `avatarUrl`) and keep them consistent across templates. On multi-page templates, target a page with a prefix like `page1@headline`. ## Use the parameters The API tab shows ready-to-copy usage for the selected layer — including **dynamic style parameters** like `headline.color` and `headline.fontSize`, so you can change styling per render, not just content: ![Usage examples with dynamic style parameters](https://orshot.com/help/templates/make-dynamic-4-usage.webp) The same parameters appear automatically as fields in [Quick Connect and the Playground](https://orshot.com/help/generate-your-first-image), and as mappable fields in Zapier, Make, and other [integrations](https://orshot.com/docs/integrations). ## Related - **[Dynamic Parameters docs](https://orshot.com/docs/dynamic-parameters)**: Every parameter type and option - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: Render this template via Quick Connect or Playground --- ### [How to organize templates with tags](https://orshot.com/help/organize-templates-with-tags) > Tag templates by channel, client or campaign — then filter your dashboard and API calls by tag Tags keep a growing template collection manageable — and they show up on every template card. ## Add tags 1. Open the template in Studio 2. **File → Manage Tags** — search existing tags or create new ones ![The Manage Tags list with searchable tags](https://orshot.com/help/templates/tags-1-manage.webp) Use tags like `instagram`, `client-acme`, or `q3-campaign`. ## Use tags On the dashboard, the **Tags** filter narrows **Your Templates** to one channel or client — and the API can list templates by tag to drive automations per campaign: ![The Tags filter on the dashboard](https://orshot.com/help/templates/tags-2-filter.webp) Pick one scheme (channel, client, or campaign) and stick to it — your future automations will thank you. ## Related - **[Create your first template](https://orshot.com/help/create-your-first-template)**: Where templates come from - **[Templates API](https://orshot.com/docs/api-reference/studio-templates-list)**: List and filter templates programmatically --- ### [How to remove an image background in Orshot Studio](https://orshot.com/help/remove-an-image-background) > Cut the background out of any image with one click — the subject stays, the background goes transparent Orshot can cut the background out of an image for you with one click — the subject stays and the background becomes transparent. It's AI-powered and works on images only. ## 1. Click Remove BG Select an image on the canvas, then in the **Styles** panel click **Remove BG** (under **AI**). ![The Remove BG button in an image's Styles panel](https://orshot.com/help/studio/remove-bg-1-button.webp) ## 2. Or use the right-click menu Right-click the image and choose **Remove Background** — same result. ![Remove Background in the image right-click menu](https://orshot.com/help/studio/remove-bg-2-menu.webp) Background removal uses an AI request and replaces the image with a transparent version. Export your render as `png` (or `webp`) to keep that transparency — `jpg` has no transparent areas and will fill them with white. ## Related - **[Replace an image](https://orshot.com/help/replace-an-image)**: Swap the image in a layer without restyling it - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to render a template at any size via the API](https://orshot.com/help/render-any-size-via-api) > Use response.size to render a studio template at any size on demand: a preset slug or exact pixels. Designed your template with [Smart Resize](https://orshot.com/help/resize-elements-and-canvas)? The **API Usage** tab shows the exact request to render it at any size. Open Smart Resize in Studio and switch to **API Usage**: ![The API Usage tab in the Smart Resize panel](https://orshot.com/help/studio/smart-resize-7-api-usage.webp) Add a **`size`** to your render's `response` object to **replace** the output size: ```bash curl -X POST "https://api.orshot.com/v1/studio/render" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "1227", "response": { "type": "url", "format": "png", "size": "instagram-story" } }' ``` `size` accepts a **preset slug** (`instagram-story`, `og-image`, `youtube-thumbnail`, …) or **`"WIDTHxHEIGHT"`** (e.g. `"1080x1920"`). One request returns one render at that size — and if you saved the size in Studio, it reproduces your tuned layout exactly. `scale` multiplies on top of the new size — `"size": "1080x1920"` with `"scale": 2` outputs 2160×3840. ## Related - **[Render multiple sizes in one call](https://orshot.com/help/render-multiple-sizes)**: Get several sizes from one request - **[Render from Studio Template (docs)](https://orshot.com/docs/api-reference/render-from-studio-template#smart-resize)**: Smart Resize API reference --- ### [How to render images via the API](https://orshot.com/help/render-images-via-api) > A complete worked example — from template to rendered image URL in one request The fastest way to your first API render: open your template's **Playground** (via [Quick Connect](https://orshot.com/help/generate-your-first-image)) and switch to the **REST API** tab — your exact render as a copy-paste request: ![The ready-made API request in the REST API tab](https://orshot.com/help/getting-started/generate-image-4-rest-api.webp) ## The anatomy of a render call ```bash curl -X POST "https://api.orshot.com/v1/studio/render" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "12307", "modifications": { "headline": "INBOX ZERO IS A MYTH" }, "response": { "type": "url", "format": "png" } }' ``` - **`templateId`** + **API key** — [where to find both](https://orshot.com/help/find-your-api-key-and-template-id) - **`modifications`** — your template's [dynamic parameters](https://orshot.com/help/make-your-template-dynamic) - **`response`** — `url`, `base64` or `binary`; formats `png`, `jpg`, `webp`, `avif`, `pdf` (plus `mp4`, `webm`, `gif` for video templates) The response contains a URL to your rendered image — [cached for speed](https://orshot.com/help/renders-not-updating-after-template-changes) on repeat calls. Parameters accept style overrides too: `"headline.color": "#FF5733"` changes the color for that render only. ## Related - **[API reference: render from template](https://orshot.com/docs/api-reference/render-from-studio-template)**: Every option, all SDKs - **[Download and export your renders](https://orshot.com/help/download-and-export-your-renders)**: Response types explained --- ### [How to render multiple sizes in one API call](https://orshot.com/help/render-multiple-sizes) > Use response.extraSizes to get the same design at several sizes from a single render request. Need a Story, a Square, and an OG image from one design? **`extraSizes`** renders them all in a single call. Where [`size`](/help/render-any-size-via-api) *replaces* the output, `extraSizes` is purely *additive* — your normal render is unchanged, and each output gains an `extraSizes` array beside it. Pass an **array of sizes**: ```bash curl -X POST "https://api.orshot.com/v1/studio/render" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "1227", "response": { "type": "url", "format": "png", "extraSizes": ["1080x1920", "1080x1080", "1200x630"] } }' ``` …or a **named object**, when you want a label to route on: ```js "extraSizes": { "story": "1080x1920", "square": "1080x1080" } ``` Each extra size comes back nested beside your render — self-describing its `size`, `width`, `height`, and `content` URL (and `name`, for a named object). On multi-page templates, every page carries its own `extraSizes`. `extraSizes` works on `png`, `jpg`, `webp`, and `avif` — not PDF or video. **Each extra size is billed as its own render.** ## Related - **[How render credits work](https://orshot.com/help/render-usage-and-credits)**: What each size costs - **[Render from Studio Template (docs)](https://orshot.com/docs/api-reference/render-from-studio-template#render-multiple-sizes-in-one-call)**: extraSizes reference & response shapes --- ### [How to replace an image](https://orshot.com/help/replace-an-image) > Swap any image in your design — from your library, stock photos, a URL, or AI-generated Open your template in Studio, then: ## 1. Select the image and hit Replace Click the image on the canvas — the **Replace Image** button appears in the Styles panel on the right: ![The Replace Image button for a selected image layer](https://orshot.com/help/studio/replace-image-1-button.webp) ## 2. Pick the new image The **Use Asset** picker opens with four sources: - **Assets** — your uploaded library (reusable across all templates) - **AI Generator** — generate an image from a prompt - **Stock** — free stock photos and videos from Pixabay and Unsplash - **From URL** — paste any image link ![The Use Asset picker with all four sources](https://orshot.com/help/studio/replace-image-2-picker.webp) The layer keeps its size, position and styles — only the image swaps. If the image should be different on every render, [parameterize the layer](https://orshot.com/help/make-your-template-dynamic) instead and pass an image URL in your API call. ## Related - **[Add text, images, and shapes](https://orshot.com/help/add-elements)**: All the ways to add elements - **[Upload and manage brand images](https://orshot.com/help/upload-brand-images)**: Build your reusable asset library --- ### [How to resize elements, the canvas, and any design](https://orshot.com/help/resize-elements-and-canvas) > Set exact element sizes, switch canvas presets, and use Smart Resize to render one design at any size. Open your template in Studio. You can resize at three levels: a single **element**, the whole **canvas**, or your entire **design at once** with Smart Resize. ## Resize an element Select it and drag the corner handles — or set exact values in **Position & Size**: ![Position and size controls for a selected element](https://orshot.com/help/studio/resize-1-element.webp) ## Resize the canvas Switch to the **Canvas** tab for the artboard's width and height: ![Canvas size controls in the Canvas tab](https://orshot.com/help/studio/resize-2-canvas.webp) The **Size Preset** dropdown covers every platform — Instagram, YouTube, TikTok, LinkedIn, all the way to A4 documents: ![The size preset dropdown](https://orshot.com/help/studio/resize-3-presets.webp) ## Smart Resize — design once, render any size Need the same design at several sizes — a Story, a Square, an OG image, a YouTube thumbnail? **Smart Resize** takes one design and renders it at any size, without rebuilding it for each channel. Click **Smart Resize** in the top toolbar (it carries a **New** badge): ![The Smart Resize button in the Studio toolbar](https://orshot.com/help/studio/smart-resize-1-button.webp) In the **Variants** tab, click **+ Add Size** and pick a preset (Story / Reel, Square Post, …) or enter a custom **width × height**: ![Adding a preset or custom size](https://orshot.com/help/studio/smart-resize-2-add-size.webp) Each size becomes a card with an instant, true-to-render preview of your design at that size: ![A size card with an adaptive preview](https://orshot.com/help/studio/smart-resize-3-size-card.webp) The adaptation is **deterministic** — elements scale together, re-anchor to the edge they were designed against (a top-left logo stays top-left), and never overlap. From there you can: - **[Fine-tune a size](https://orshot.com/help/fine-tune-a-resized-layout)** by hand, or recompose it with AI. - **[Save sizes and turn them into pages](https://orshot.com/help/save-sizes-as-pages)** in your template. - **[Render any size from the API](https://orshot.com/help/render-any-size-via-api)** on demand. ## Related - **[Fine-tune or fix a resized layout](https://orshot.com/help/fine-tune-a-resized-layout)**: Adjust a size by hand, or recompose with AI - **[Smart Resize in Studio (docs)](https://orshot.com/docs/orshot-studio/smart-resize)**: The full panel reference --- ### [How to save a resized design as a page](https://orshot.com/help/save-sizes-as-pages) > Reuse a resized design as a new page, or save the size so every API render reproduces it exactly. A size you add in Smart Resize can become part of your template in two ways. On any size card, open the **⋯** menu: ![The size card actions menu](https://orshot.com/help/studio/smart-resize-5-actions-menu.webp) - **Add as new page** — append that size to your template as a brand-new page. - **Replace current page** — swap the current page's canvas to that size in place. ## Save the size set To keep all your sizes with the template, click **Save N sizes** at the bottom of the panel: ![Saving the size set to the template](https://orshot.com/help/studio/smart-resize-6-save.webp) Saving matters: a render that requests a **saved** size reproduces your approved preview **exactly** — automatic adaptation is only used for sizes you haven't saved yet. Saved sizes are available to your whole workflow — your own backend, your [no-code automations](https://orshot.com/help/connect-no-code-tools), and your [embed customers](https://orshot.com/help/smart-resize-in-embed). ## Related - **[Render any size from the API](https://orshot.com/help/render-any-size-via-api)**: Pull saved sizes on demand - **[Smart Resize in Studio (docs)](https://orshot.com/docs/orshot-studio/smart-resize)**: The full panel reference --- ### [How to see how your posts are performing](https://orshot.com/help/track-post-performance) > Impressions, engagement and follower growth for the posts you publish from Orshot, per post or across an account Open **Analytics** under Social Posting in your workspace sidebar. ![The Analytics page with cross-platform totals for the last 30 days](https://orshot.com/blog/introducing-social-analytics/analytics.webp) ## The overview Pick a range at the top right: **7d**, **30d** or **90d**. Every number is compared with the previous period of the same length. Four totals sit across the top: - **Impressions**: how many times your posts were shown - **Engagement**: likes, comments, shares and saves combined - **Posts published**: how many went out in the range - **Followers**: total across every connected account Narrow the view with the filters: a single channel, a single account, or a single post. **Export CSV** downloads whatever the filters are currently showing. Two panels underneath answer the questions people ask most: - **Share of impressions**: which platform actually earned the reach this period - **Best time to post**: median engagement by publish slot in UTC, with your peak window named underneath ## One post's numbers Open **Posts Log**, then click any published post. ![A published post with its metrics panel open in the Posts Log](https://orshot.com/blog/introducing-social-analytics/post-sheet.webp) The panel shows that post's impressions, reach, likes, comments, shares, clicks, views and engagement rate, plus a per-day chart for impressions and engagement. **Refresh** pulls the latest numbers from the platform straight away. You see whatever each platform reports for that post. Metrics a platform doesn't return simply don't appear, so a blank is a platform limit rather than a problem with your post. ## Compare accounts and find top posts Scroll further down the Analytics page. ![Follower growth, an account comparison table and the top posts list](https://orshot.com/blog/introducing-social-analytics/insights.webp) - **Follower growth**: total followers across connected accounts over the range - **Accounts side by side**: posts, impressions, engagement rate and follower change per account, so you can see where the effort is paying off - **Top posts**: your best performers, sortable by engagement and searchable ## When the numbers update Orshot caches platform metrics so the page loads instantly, then refreshes in the background. How stale a number can be before that refresh fires: | What you're looking at | Refreshes after | | --- | --- | | A single post | 5 minutes | | Posts Log chips and top posts | 10 minutes | | The daily chart | 30 minutes | | Best time to post | 3 hours | | Follower counts | 1 hour | Follower counts also depend on each platform's own daily snapshot, so they move once a day rather than continuously. Use **Refresh** on a post if you need its numbers right now. ## Get it by email Every workspace that publishes gets a daily digest of yesterday's numbers. ![The Orshot daily social digest email](https://orshot.com/help/publish/analytics-daily-digest.webp) It arrives around 07:40 UTC with impressions, engagements and posts (each against the day before), a per-platform breakdown, your top posts, and follower counts per account. A few things worth knowing: - **It's on by default.** Nothing to set up. - **It goes to the workspace owner.** - **Quiet days stay quiet.** If nothing published in the last 24 hours and yesterday drew no impressions, no email is sent. A missing digest usually means a quiet day, not a fault. To turn it off, open **Settings → Notifications** and switch off **Daily Social Digest**. Only the workspace owner can change it. The unsubscribe link in the footer opts you out of the whole recap email group, not just the daily digest. Use the setting above if you only want to stop this one. ## Related - **[Connect your social accounts](https://orshot.com/help/connect-your-social-media-accounts)**: Link accounts before you can publish or measure - **[Publish from the API](https://orshot.com/docs/publish/publish-from-api)**: Render and post in a single call --- ### [How to set a canvas background in Orshot Studio](https://orshot.com/help/set-a-canvas-background) > Give your whole template a background color or image — and an optional border — from the Canvas tab Your template's background — the color or image behind every layer — lives in the **Canvas** tab, not on any single layer. Open the **Canvas** tab in the right panel to set it. ## 1. Set a background color Click the **Background** swatch and choose a color, or paste a hex value. ![The Background color control in the Canvas tab](https://orshot.com/help/studio/canvas-bg-1-color.webp) ## 2. Use a background image To fill the canvas with an image instead, use **Background Image** — click **Pick Asset** to choose from your brand images or uploads. ![The Background Image control with the Pick Asset button](https://orshot.com/help/studio/canvas-bg-2-image.webp) ## 3. Add a canvas border Optionally frame the whole canvas: set the **Border Width**, **Border Color**, and **Border Style** — solid, dashed, dotted or double. ![The canvas border width, color and style controls](https://orshot.com/help/studio/canvas-bg-3-border.webp) This sets the background for the **entire** canvas. To color a single shape or text box, select it and change its **Fill** in the [Styles panel](https://orshot.com/help/style-an-element) instead. ## Related - **[Resize elements and the canvas](https://orshot.com/help/resize-elements-and-canvas)**: Change the canvas size and presets in the same tab - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to set up Orshot Embed](https://orshot.com/help/set-up-orshot-embed) > Put the full design editor inside your own product — enable, allowlist your domains, paste the embed code Orshot Embed puts the design editor inside your app — your users design, your product stays in control. Open **Orshot Embed** from your workspace sidebar. ## 1. Enable and secure it Flip on **Enable Embed**, then add the **Allowed Domains** that may load your embed (use `localhost:PORT` for testing). Only these domains can load it: ![Enable Embed and Allowed Domains settings](https://orshot.com/help/embed/setup-1-enable.webp) ## 2. Add it to your app The **Embed Code** tab gives you the snippet: ```html ``` Add `?templateId=123` to open a specific template. Using React or Vue? The [React SDK](https://orshot.com/docs/orshot-embed/react-sdk) and [Vue SDK](https://orshot.com/docs/orshot-embed/vue-sdk) wrap this in a component with events and methods. ## 3. Test in the live preview The **Preview** tab next to your settings shows exactly what your users will see — verify before going live. Brand color, name, icon and language live in the [General settings](https://orshot.com/help/embed-customize-appearance) — and [per-user data](https://orshot.com/help/embed-multi-tenancy) gives every user their own template library. ## Related - **[Give each user their own library](https://orshot.com/help/embed-multi-tenancy)**: Multi-tenancy with one switch - **[Embed configuration docs](https://orshot.com/docs/orshot-embed/configuration)**: Every setting in detail --- ### [How to start from a library template](https://orshot.com/help/use-library-templates) > Skip the blank canvas — pick a professionally designed template and make it yours Open **Template Library** from your workspace sidebar — every template there is a complete, editable starting point: ![The template library grid](https://orshot.com/help/templates/library-1-grid.webp) ## Make it yours 1. Click a template to preview it, then add it to your workspace 2. It opens in Studio like any of [your own templates](https://orshot.com/help/create-your-first-template) 3. Swap the [images](https://orshot.com/help/replace-an-image), adjust the [styles](https://orshot.com/help/style-an-element), keep the layout 4. The dynamic parameters usually come pre-configured — check the pills under each layer Templates shared by other users (File → Share With Community publishes yours) work the same way — import, edit, render. ## Related - **[Create your first template](https://orshot.com/help/create-your-first-template)**: Blank canvas, AI or import - **[Template library](https://orshot.com/templates)**: Browse what's available --- ### [How to stop users overwriting your templates](https://orshot.com/help/embed-protect-your-templates) > Override protection and template permissions — your originals stay yours, users work on their own copies Your workspace templates are the masters — here's how to make sure embed users can't change them. ## Turn on override protection In **Orshot Embed** settings, expand **Templates** and enable **Prevent Workspace Template Overriding** — it requires [Per-User Data](https://orshot.com/help/embed-multi-tenancy) to be on first (user edits need somewhere of their own to go): ![The Prevent Workspace Template Overriding switch](https://orshot.com/help/embed/templates-2-override.webp) With both on, users who edit a workspace template save into **their own** library — your original never changes. ## The other template permissions The rest of the **Templates** section controls what users can do day to day: ![The full Templates permission switches](https://orshot.com/help/embed/templates-1-permissions.webp) | Switch | What it controls | | --- | --- | | **Show All Workspace Templates** | Whether users see your shared templates at all — off means they start from scratch | | **Show Templates Sidebar** | The left panel for browsing and creating templates | | **Allow Template Delete** | Users can delete *their own* templates | | **Allow Template Rename** | Users can rename their templates | | **Allow Multipage Templates** | Carousel/multi-page creation | | **Allow Import Template via JSON** | Importing template JSON (off by default) | Show workspace templates **on** + override protection **on**: users start from your branded masters, personalize freely, and every save lands in their own My Templates. ## Related - **[Multi-tenancy](https://orshot.com/help/embed-multi-tenancy)**: The per-user foundation this builds on - **[Embed configuration docs](https://orshot.com/docs/orshot-embed/configuration)**: Every permission explained --- ### [How to style an element in Orshot Studio](https://orshot.com/help/style-an-element) > Select a layer and change its font, size, color, alignment and more from the Styles panel Every element on your canvas — text, image, or shape — is a **layer**. Styling always works the same way: **select the layer first**, then edit it in the **Styles** panel on the right. ## 1. Select a layer Click any element directly on the canvas. Selection handles appear around it. ![Selecting a layer on the canvas in Orshot Studio](https://orshot.com/help/studio/style-element-1-select-layer.webp) ## 2. The Styles panel opens The right panel switches to **Styles** automatically, showing everything about the selected layer: - **Position & Size** — X/Y, width/height, rotation, layer order - **Text Content** — the text itself (for text layers) - **Styles** — color, font, alignment and effects ![The Styles tab opens automatically with the layer's properties](https://orshot.com/help/studio/style-element-2-styles-tab.webp) ## 3. Change the styles For text layers you can adjust: - **Text Color** — hex value or color picker - **Font Family / Size / Weight** - **Text Autofit** — how text behaves when content changes (see the [API](https://orshot.com/help/make-your-template-dynamic) angle: autofit keeps dynamic text inside its box) - **Alignment, case, line height, letter spacing** - **Stroke, background and border** ![Typography controls in the Styles panel](https://orshot.com/help/studio/style-element-3-typography.webp) If this element will change via API, prefer **Text Autofit: Fit** with a minimum font size — long values then shrink to fit instead of overflowing. ## Panel looks empty? The Styles panel needs a selection. If nothing is selected, it lists your layers — pick one there or click it on the canvas. ![The Styles panel with no layer selected shows a layer list](https://orshot.com/help/studio/style-element-4-empty-state.webp) ## Related - **[Make your template dynamic](https://orshot.com/help/make-your-template-dynamic)**: Turn the styled element into an API parameter - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [How to upload and manage brand images](https://orshot.com/help/upload-brand-images) > Build a reusable image library — upload once, use in every template and API call Open **Brand Library** from your workspace sidebar — the **Images** tab is your reusable asset collection: ![The brand images library](https://orshot.com/help/templates/brand-images-1.webp) ## Upload and use 1. Click **Upload Images** (top right) 2. Tag assets so they're easy to find later 3. Use them anywhere: - In Studio via the [insert panel](https://orshot.com/help/add-elements) or [Replace Image](https://orshot.com/help/replace-an-image) - In API calls — **Copy Link** gives you a direct URL for any `modifications` value Assets are workspace-wide. Upload your logo once and every template, teammate and automation can use it. ## Related - **[Upload custom fonts](https://orshot.com/help/upload-custom-fonts)**: Brand typography in every text layer - **[Brand assets API](https://orshot.com/docs/api-reference/brand-assets-get)**: Manage assets programmatically --- ### [How to upload custom fonts](https://orshot.com/help/upload-custom-fonts) > Bring your brand typography into Orshot — your fonts appear in every Font Family picker Open **Brand Library** from your workspace sidebar and switch to the **Fonts** tab: ![The brand fonts library](https://orshot.com/help/templates/brand-fonts-1.webp) ## Upload and use 1. Upload your font files (per weight/style you need) 2. They appear in the **Font Family** dropdown of every [text layer](https://orshot.com/help/style-an-element), alongside the built-in fonts 3. Renders use them automatically — API output matches Orshot Studio exactly Make sure your license covers server-side rendering — most brand and open-source licenses do. ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: Where fonts get applied - **[Custom fonts API](https://orshot.com/docs/api-reference/custom-fonts-post)**: Upload fonts programmatically --- ### [How to use brand colors](https://orshot.com/help/use-brand-colors) > Save your palette once — it shows up in every color picker across Orshot Studio Open **Brand Library** from your workspace sidebar and switch to the **Colors** tab: ![The brand colors library](https://orshot.com/help/templates/brand-colors-1.webp) ## Save and use 1. Add your brand colors (hex values), with names and tags 2. They appear in every color picker — [text color, backgrounds, borders](https://orshot.com/help/style-an-element) 3. In API calls, pass them as values: `"headline.color": "#3E5CEB"` Teammates pick from the same palette instead of eyeballing hex codes — every template stays on brand. ## Related - **[Upload brand images](https://orshot.com/help/upload-brand-images)**: The rest of your brand kit - **[Brand colors API](https://orshot.com/docs/api-reference/brand-assets-get)**: Manage colors programmatically --- ### [How to use Orshot with AI agents (MCP)](https://orshot.com/help/use-orshot-with-ai-agents) > Let Claude, ChatGPT, Cursor or any MCP client design, render and publish Orshot templates by chatting Open **Agents & MCP** from your workspace sidebar — setup guides for every client: ![The Agents & MCP page](https://orshot.com/help/generate/agents-1-page.webp) ## Connect your client The fastest path is from any template: **Design via AI** in the Orshot Studio top bar offers one-click **Connect with MCP**, the server URL, and a CLI command: ![The Design via AI panel with MCP options](https://orshot.com/help/studio/design-ai-1-panel.webp) Once connected, your AI client can: - **Design** — create and restyle templates from a prompt - **Add media** — use stock images and video, voiceovers, ambient audio, captions and waveforms - **Render** — generate images, PDFs and videos with specific parameter values - **Personalize** — create batches with different visuals, text and spoken narration - **Publish** — send finished renders to connected social accounts "Create a 15-second launch reel with a voiceover and animated captions, then publish it to my connected social account" — that's a complete workflow in one message. ## Related - **[Design with AI](https://orshot.com/help/design-with-ai)**: The in-editor AI options - **[MCP Server docs](https://orshot.com/docs/integrations/mcp-server)**: Client-by-client setup reference --- ### [How to work with multi-page templates](https://orshot.com/help/multi-page-templates) > Add, duplicate, rename and reorder pages — for carousels, stories and documents Pages turn one template into a carousel, a story sequence, or a multi-page document. Open your template in Studio and switch to the **Pages** tab in the right panel. ## The Pages tab Every page is a slide with its own canvas. Give pages meaningful names — they make API targeting easier later: ![The Pages tab with named pages](https://orshot.com/help/studio/multi-page-1-pages-panel.webp) ## Add a page Click **Add Page** at the top of the panel: ![The Add Page button](https://orshot.com/help/studio/multi-page-2-add-page.webp) ## Duplicate, rename, reorder Each page row has a menu (⋮) — duplicate a page to reuse its layout, rename it, or drag rows to reorder: ![The per-page menu with rename, duplicate and delete](https://orshot.com/help/studio/multi-page-3-page-menu.webp) Target a specific page's parameters with a page prefix: `page1@headline`, `page2@headline`. One render call fills the whole carousel. ## Related - **[Make your template dynamic](https://orshot.com/help/make-your-template-dynamic)**: Parameterize layers across pages - **[Dynamic Parameters docs](https://orshot.com/docs/dynamic-parameters)**: Multi-page parameter syntax in detail --- ### [Keyboard shortcuts in Orshot Studio](https://orshot.com/help/keyboard-shortcuts) > Open the full shortcut list any time, plus the ones worth memorizing for faster editing Orshot Studio has shortcuts for the things you do most — adding layers, nudging them, switching panels. You can open the complete list any time without leaving the editor. ## 1. Open the shortcut list In the top toolbar, open the **File** menu and choose **Keyboard Shortcuts**. ![The Keyboard Shortcuts item in the File menu](https://orshot.com/help/studio/shortcuts-1-menu.webp) ## 2. The full reference The dialog groups every shortcut by what it does — general actions, moving and adding layers, zoom, navigation and selection. ![The Keyboard Shortcuts dialog listing every shortcut by group](https://orshot.com/help/studio/shortcuts-2-dialog.webp) ## The ones worth memorizing | Action | Shortcut | | --- | --- | | Undo / Redo | `⌘Z` / `⌘⇧Z` | | Save | `⌘S` | | Add text / image / rectangle | `T` / `I` / `R` | | Add circle / line / arrow | `O` / `L` / `A` | | Multi-select layers | `⌘`-click | | Nudge 1px / 15px | Arrow keys / `⇧`+Arrow | | Switch tabs — Pages / Canvas / Styles / Layers | `⌥1` – `⌥4` | | Toggle the sidebar | `⌘\` | Use **Ctrl** wherever these show **⌘** — the dialog automatically shows the right modifier for your device. ## Related - **[Add text, images, and shapes](https://orshot.com/help/add-elements)**: The toolbar behind the T, I and R shortcuts - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full reference for every editor feature --- ### [What the editor panels do](https://orshot.com/help/editor-panels-explained) > Agent, Pages, Canvas, Styles, Layers — and the Design, Animate, API tabs inside them Everything in Orshot Studio happens in the right panel. Open any template and you'll see five tabs: ![The five main editor panels](https://orshot.com/help/studio/editor-tabs-1-main.webp) - **Agent** — describe changes in plain language, AI applies them - **Pages** — your slides/pages, for [multi-page templates](https://orshot.com/help/multi-page-templates) - **Canvas** — the artboard itself: [size](https://orshot.com/help/resize-elements-and-canvas), background, borders - **Styles** — everything about the **selected layer** (it opens automatically when you select one) - **Layers** — the full stack, for selecting, hiding or locking layers ## Inside Styles: Design, Animate, API Select a layer and three sub-tabs appear: ![The Design, Animate and API sub-tabs](https://orshot.com/help/studio/editor-tabs-2-sub.webp) - **Design** — position, size, [fonts and styling](https://orshot.com/help/style-an-element) - **Animate** — entrance animations for video/MP4 output - **API** — [parameterize the layer](https://orshot.com/help/make-your-template-dynamic) for dynamic renders Styles needs a selection — click a layer on the canvas, or pick one from the list it shows you. ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: The Design tab in depth - **[Orshot Studio docs](https://orshot.com/docs/orshot-studio/introduction)**: Full editor reference --- ### [What to do right after importing a design](https://orshot.com/help/after-importing-a-design) > Three steps from imported design to automated template — check, parameterize, render Your [import](https://orshot.com/help/import-templates-from-canva-figma-or-polotno) landed in Orshot Studio as a normal template — every layer editable. Three steps make it production-ready: ## 1. Check the layers Open the **Layers** tab and click through your elements. Imports translate designs automatically — if something looks off, [fix its styles](https://orshot.com/help/style-an-element) or [replace the image](https://orshot.com/help/replace-an-image) directly. ## 2. Make the changing parts dynamic Select each layer that should change per render — the pill under it toggles [parameterization](https://orshot.com/help/make-your-template-dynamic): ![The on-canvas parameter pill under a selected layer](https://orshot.com/help/templates/make-dynamic-1-canvas-pill.webp) ## 3. Save, then render **`⌘S`** to [save](https://orshot.com/help/how-saving-works), then click **Connect** on the template card to [run your first render](https://orshot.com/help/generate-your-first-image). Make sure dynamic text layers use [Fit](https://orshot.com/help/text-sizing-modes) so long API values shrink instead of overflowing your design — a quick check per headline saves render surprises later. ## Related - **[Import templates](https://orshot.com/help/import-templates-from-canva-figma-or-polotno)**: Canva, Figma and Polotno guides - **[Generate your first image](https://orshot.com/help/generate-your-first-image)**: Quick Connect and the Playground --- ### [Why a resize looks wrong or was rejected](https://orshot.com/help/why-my-resize-looks-wrong) > What to do when an adapted layout looks off, and why a size or extraSizes request can be rejected ## The layout looks off at a new size Big aspect-ratio changes (a square design stretched to a tall story, or a wide banner) stay safe, but elements can land small or loosely spaced. Fix it in Studio: open **Smart Resize**, then either use **Adjust Variant** to nudge the layout by hand, or **⋯ → Recompose with AI** for a fresh pass. [Fine-tune a resized layout](https://orshot.com/help/fine-tune-a-resized-layout) walks through both. A **saved** size always renders exactly as you arranged it — an unsaved size falls back to automatic adaptation, so save the sizes you care about. ## A size was rejected when adding it When adding a size in Studio: - Width and height must each be between **10 and 5000px**. - A size that exactly matches one already in the list is skipped. - A template can hold up to **24 sizes**. ## An API request failed - **`size`** must be a preset slug (e.g. `instagram-story`) or `"WIDTHxHEIGHT"`. For explicit pixels, send `width` + `height` together instead. - **`extraSizes` works on image formats only** — `png`, `jpg`, `webp`, `avif`. On a PDF or video format it returns an error (and it isn't supported on templates with flowing elements). ## Related - **[Fine-tune or fix a resized layout](https://orshot.com/help/fine-tune-a-resized-layout)**: Adjust by hand or recompose with AI - **[Render from Studio Template (docs)](https://orshot.com/docs/api-reference/render-from-studio-template#smart-resize)**: Smart Resize API reference --- ### [Why are my renders not updating?](https://orshot.com/help/renders-not-updating-after-template-changes) > Renders are cached for speed. Here is how to clear the cache and force a fresh render after editing a template. If you've edited a template but the API or Playground still returns the old design, you're almost certainly seeing a **cached render**. The first render is generated fresh; repeat renders are served from cache for speed. ## Fix: clear the image cache 1. Open **Preferences** from your workspace sidebar 2. Find the **Improve Render Speed by Caching** section 3. Click **Clear Workspace Image Cache** ![The render caching section in workspace Preferences](https://orshot.com/help/troubleshooting/cache-1-settings.webp) All renders are generated fresh from your template on the next request. ## Adjust how long renders are cached The dropdown in the same section sets the cache duration — from 10 minutes up to 30 days, "Keep Cached Forever", or "Do Not Cache". Shorter durations mean fresher renders; longer durations mean faster repeat loads. ## Still seeing old content? - Make sure you saved in Orshot Studio (**File → Save Template** or `⌘S`) after editing - If you're displaying a render **URL** in a browser or behind a CDN, that layer may cache the old file too — a hard refresh (or a throwaway `?v=2` on the displayed URL) bypasses *that* cache; it doesn't affect Orshot's render cache - If the issue persists, contact us via the in-app support with your template ID ## Related - **[Clearing Cache docs](https://orshot.com/docs/misc/clearing-cache)**: How render caching works in detail - **[Download and export your renders](https://orshot.com/help/download-and-export-your-renders)**: Files, URLs, base64 and binary output --- ### [Why does my template look different after import?](https://orshot.com/help/template-looks-different-after-import) > Imports translate designs between tools — here's what can shift and how to fix it fast Imports from [Canva, Figma and Polotno](https://orshot.com/help/import-templates-from-canva-figma-or-polotno) translate designs automatically. Most come through clean — when something shifts, it's usually one of these: ## Fonts If the original font isn't available, a fallback is substituted. **Fix:** [upload the font](https://orshot.com/help/upload-custom-fonts) to your Brand Library, then set it on the affected [text layers](https://orshot.com/help/style-an-element): ![The Brand Library fonts tab where missing fonts get uploaded](https://orshot.com/help/templates/brand-fonts-1.webp) ## Effects and filters Tool-specific effects (complex shadows, blend modes, filters) don't always have an exact equivalent. **Fix:** select the layer and rebuild the effect with [Orshot's style controls](https://orshot.com/help/style-an-element) — shadows, strokes and blurs are all there. ## Text sizing Edited or dynamic text can outgrow the box it was imported with. **Fix:** check that dynamic text layers use [Text Autofit: Fit](https://orshot.com/help/text-sizing-modes) so long values shrink instead of overflowing. ## Spacing and alignment Auto-layout from the source tool becomes fixed positions. **Fix:** drag elements or use exact values in [Position & Size](https://orshot.com/help/resize-elements-and-canvas). Reach out via the in-app support with your template ID and the original file — import fidelity reports help us improve the importers. ## Related - **[After importing a design](https://orshot.com/help/after-importing-a-design)**: The post-import checklist - **[Import guides](https://orshot.com/docs/importing-templates)**: Per-source limitations --- ### [Why is the Styles panel empty?](https://orshot.com/help/styles-panel-empty) > The panel shows the selected layer — nothing selected, nothing to style The **Styles** panel always describes the **currently selected layer**. If nothing is selected, there's nothing to show — so it lists your layers instead: ![The Styles panel with no layer selected shows a layer list](https://orshot.com/help/studio/style-element-4-empty-state.webp) ## Fix in one click - **Click any element on the canvas**, or - **Pick a layer from the list** the panel shows you The panel fills with that layer's [style controls](https://orshot.com/help/style-an-element) immediately. ## Clicks not selecting anything? - The layer may be **locked** — check the **Layers** tab and unlock it - You may be clicking a transparent area — click directly on the visible part, or select via the **Layers** tab ## Related - **[Style an element](https://orshot.com/help/style-an-element)**: What the panel does once a layer is selected - **[Editor panels explained](https://orshot.com/help/editor-panels-explained)**: Agent, Pages, Canvas, Styles, Layers --- ## Templates - [Templates – Orshot](https://orshot.com/templates): Explore a variety of marketing, social media, branding templates. Pick a template, customize it, and automate image generation with Rest API and integrations ## Use-cases - [Use Cases & Guides - Orshot](https://orshot.com/use-cases): Guides on automating image and pdf generation from social media, certificate, marketing and more templates with REST API, Zapier, Make, n8n - [Auto-Generate Invoice Templates from Templates](https://orshot.com/use-cases/t/auto-generate-invoice-templates): Design and integrate invoice templates generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Social Media Images from Templates](https://orshot.com/use-cases/t/auto-generate-social-media-images): Design and integrate social media images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Instagram Posts from Templates](https://orshot.com/use-cases/t/auto-generate-instagram-posts): Design and integrate instagram posts generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Tiktok Posts from Templates](https://orshot.com/use-cases/t/auto-generate-tiktok-posts): Design and integrate tiktok posts generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Pinterest Pins from Templates](https://orshot.com/use-cases/t/auto-generate-pinterest-pins): Design and integrate pinterest pins generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Presentation Slides from Templates](https://orshot.com/use-cases/t/auto-generate-presentation-slides): Design and integrate presentation slides generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Marketing Images from Templates](https://orshot.com/use-cases/t/auto-generate-marketing-images): Design and integrate marketing images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate E Commerce Images from Templates](https://orshot.com/use-cases/t/auto-generate-e-commerce-images): Design and integrate e commerce images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Ads Banners from Templates](https://orshot.com/use-cases/t/auto-generate-ads-banners): Design and integrate ads banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Certificate PDFs from Templates](https://orshot.com/use-cases/t/auto-generate-certificate-PDFs): Design and integrate certificate PDFs generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Finance Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-finance-graphics): Design and integrate finance graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Real Estate Banners from Templates](https://orshot.com/use-cases/t/auto-generate-real-estate-banners): Design and integrate real estate banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Events Banners from Templates](https://orshot.com/use-cases/t/auto-generate-events-banners): Design and integrate events banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Education Banners from Templates](https://orshot.com/use-cases/t/auto-generate-education-banners): Design and integrate education banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Corporate Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-corporate-graphics): Design and integrate corporate graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Web Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-web-graphics): Design and integrate web graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Graph Images from Templates](https://orshot.com/use-cases/t/auto-generate-graph-images): Design and integrate graph images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Mockup Images from Templates](https://orshot.com/use-cases/t/auto-generate-mockup-images): Design and integrate mockup images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Graphics Images from Templates](https://orshot.com/use-cases/t/auto-generate-graphics-images): Design and integrate graphics images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Photography Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-photography-graphics): Design and integrate photography graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Art Banners from Templates](https://orshot.com/use-cases/t/auto-generate-art-banners): Design and integrate art banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Technology Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-technology-graphics): Design and integrate technology graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Travel Images from Templates](https://orshot.com/use-cases/t/auto-generate-travel-images): Design and integrate travel images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Food Images from Templates](https://orshot.com/use-cases/t/auto-generate-food-images): Design and integrate food images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Lifestyle Images from Templates](https://orshot.com/use-cases/t/auto-generate-lifestyle-images): Design and integrate lifestyle images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Sports Banners from Templates](https://orshot.com/use-cases/t/auto-generate-sports-banners): Design and integrate sports banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Fashion Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-fashion-graphics): Design and integrate fashion graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Gaming Banners from Templates](https://orshot.com/use-cases/t/auto-generate-gaming-banners): Design and integrate gaming banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Non Profit Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-non-profit-graphics): Design and integrate non profit graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Automotive Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-automotive-graphics): Design and integrate automotive graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Construction Banners from Templates](https://orshot.com/use-cases/t/auto-generate-construction-banners): Design and integrate construction banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Government Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-government-graphics): Design and integrate government graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Retail Banners from Templates](https://orshot.com/use-cases/t/auto-generate-retail-banners): Design and integrate retail banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Sales Banners from Templates](https://orshot.com/use-cases/t/auto-generate-sales-banners): Design and integrate sales banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Branding Assets from Templates](https://orshot.com/use-cases/t/auto-generate-branding-assets): Design and integrate branding assets generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Startup Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-startup-graphics): Design and integrate startup graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Apps Banners from Templates](https://orshot.com/use-cases/t/auto-generate-apps-banners): Design and integrate apps banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Youtube Thumbnails from Templates](https://orshot.com/use-cases/t/auto-generate-youtube-thumbnails): Design and integrate youtube thumbnails generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Linkedin Posts from Templates](https://orshot.com/use-cases/t/auto-generate-linkedin-posts): Design and integrate linkedin posts generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Twitter Posts from Templates](https://orshot.com/use-cases/t/auto-generate-twitter-posts): Design and integrate twitter posts generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Facebook Posts from Templates](https://orshot.com/use-cases/t/auto-generate-facebook-posts): Design and integrate facebook posts generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Blog Images from Templates](https://orshot.com/use-cases/t/auto-generate-blog-images): Design and integrate blog images generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Invitation Cards from Templates](https://orshot.com/use-cases/t/auto-generate-invitation-cards): Design and integrate invitation cards generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Testimonial Cards from Templates](https://orshot.com/use-cases/t/auto-generate-testimonial-cards): Design and integrate testimonial cards generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Quote Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-quote-graphics): Design and integrate quote graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Healthcare Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-healthcare-graphics): Design and integrate healthcare graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Fitness Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-fitness-graphics): Design and integrate fitness graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Beauty Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-beauty-graphics): Design and integrate beauty graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Music Graphics from Templates](https://orshot.com/use-cases/t/auto-generate-music-graphics): Design and integrate music graphics generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Wedding Cards from Templates](https://orshot.com/use-cases/t/auto-generate-wedding-cards): Design and integrate wedding cards generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Email Templates from Templates](https://orshot.com/use-cases/t/auto-generate-email-templates): Design and integrate email templates generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Restaurant Banners from Templates](https://orshot.com/use-cases/t/auto-generate-restaurant-banners): Design and integrate restaurant banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Ticket Templates from Templates](https://orshot.com/use-cases/t/auto-generate-ticket-templates): Design and integrate ticket templates generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start - [Auto-Generate Shopify Banners from Templates](https://orshot.com/use-cases/t/auto-generate-shopify-banners): Design and integrate shopify banners generation from templates. Automate via REST API, Zapier, Make, n8n. Export PNG, JPG, WebP, AVIF, PDF. Free to start