RendShot

Zapier Integration — Automate Image Generation

Generate images from HTML and capture URL screenshots using Zapier webhooks. Connect RendShot to 5,000+ apps.

Zapier connects 5,000+ apps without writing code. Use the built-in Webhooks by Zapier action to call the RendShot API from any trigger — no backend required.

Common use cases: generate OG images when a blog post is published, render product cards when a Shopify item goes live, or capture URL screenshots when a form is submitted.

Prerequisites

  • A RendShot API key — sign up at rendshot.ai, then create a key at Dashboard — API Keys. Keys start with rs_live_.
  • A Zapier account — the free tier supports Webhooks by Zapier.

Step 1: Choose your trigger

Create a new Zap and pick the trigger that starts your workflow. A few common choices:

  • Google Sheets — "New or Updated Row" fires when you add content to a sheet
  • WordPress — "New Post" fires when a post is published
  • Shopify — "New Product" fires when a product is created
  • Typeform / Jotform — "New Submission" fires on form responses
  • RSS — "New Item in Feed" fires when a blog or feed has a new entry

Configure and test your trigger so Zapier has sample data to reference in later steps.

Step 2: Add Webhooks by Zapier action

In the action step, search for Webhooks by Zapier and select Custom Request as the action event.

Fill in the fields:

FieldValue
MethodPOST
URLhttps://api.rendshot.ai/v1/image
HeadersAuthorization: Bearer rs_live_...
Content-Type: application/json
Data Pass-Through?false
DataRaw JSON body (see below)

Example JSON body:

{
  "html": "<div style=\"font-family:sans-serif;padding:60px;background:#1a1816;color:#fff;width:1200px\"><h1 style=\"font-size:48px;margin:0 0 16px\">My Article Title</h1><p style=\"color:#888;font-size:20px\">rendshot.ai</p></div>",
  "width": 1200,
  "height": 630,
  "format": "png"
}

Set the Content Type dropdown to json so Zapier sends the body as raw JSON rather than form-encoded data.

Step 3: Map dynamic data from the trigger

Replace static strings in the JSON body with field references from your trigger step. In the Zapier editor, click inside any value and select the field you want to insert.

For example, if your trigger is a new Google Sheets row with a Title column and a Description column, the body becomes:

{
  "html": "<div style=\"font-family:sans-serif;padding:60px;background:#1a1816;color:#fff;width:1200px\"><h1 style=\"font-size:48px;margin:0 0 16px\">[[Title from Google Sheets]]</h1><p style=\"color:#aaa;font-size:20px\">[[Description from Google Sheets]]</p></div>",
  "width": 1200,
  "height": 630
}

Replace [[Title from Google Sheets]] with the actual field pill Zapier inserts — it will look like {{1. Title}} in the Zapier editor. Zapier substitutes the live value each time the Zap runs.

Keep the HTML well-formed. Use inline styles; external stylesheets are not loaded.

Step 4: Use the result

The RendShot API responds with a JSON object containing a url field:

{
  "id": "img_01jqxyz...",
  "url": "https://assets.rendshot.ai/images/img_01jqxyz....png",
  "width": 1200,
  "height": 630,
  "format": "png"
}

In Zapier, the response body is parsed automatically. Add a subsequent action step and reference the url field from the Webhooks step to use the generated image:

  • Update a row in Airtable — store the image URL in an OG Image field
  • Send a Slack message — attach the URL as a message attachment
  • Update WordPress post meta — write the URL back to the post as its featured image
  • Send an email via Gmail — include <img src="..."> in the email body

URL Screenshots

To capture a screenshot of an existing webpage instead of rendering HTML, use the /v1/screenshot endpoint with the same Webhooks action setup:

FieldValue
MethodPOST
URLhttps://api.rendshot.ai/v1/screenshot

Example JSON body:

{
  "url": "https://example.com/my-page",
  "width": 1280,
  "height": 800,
  "full_page": false
}

Map the url field to a dynamic value from your trigger — for example, the permalink from a WordPress "New Post" trigger or the product URL from a Shopify trigger.

The response structure is identical: extract the url field to get the CDN-hosted screenshot.

Example Zaps

New WordPress post → OG image → update post meta

  1. Trigger: WordPress — New Post
  2. Action: Webhooks by Zapier — POST /v1/image with the post title and excerpt in the HTML
  3. Action: WordPress — Update Post, set the _og_image meta field to the image URL from step 2

New Shopify product → product card → save to Google Drive

  1. Trigger: Shopify — New Product
  2. Action: Webhooks by Zapier — POST /v1/image with the product name and price rendered in a card template
  3. Action: Google Drive — Upload File (use the image URL as the source)

New Typeform response → certificate image → email to respondent

  1. Trigger: Typeform — New Entry
  2. Action: Webhooks by Zapier — POST /v1/image with the respondent's name rendered in a certificate layout
  3. Action: Gmail — Send Email, attach the image URL in the body

Troubleshooting

401 Unauthorized

Your API key is missing or incorrect. Open the Webhooks action, go to Headers, and verify the Authorization header is exactly Bearer rs_live_... with no extra spaces or line breaks.

Invalid JSON / 400 Bad Request

  • Make sure you selected Custom Request as the action event, not "POST" or "GET".
  • Set the Content Type dropdown in the Webhooks action to json.
  • The body must be valid JSON. Use a validator like jsonlint.com to check your template before running the Zap.
  • Avoid smart quotes (") in your HTML — use straight ASCII quotes (").

No image URL in response

Check the Zap run history and open the Webhooks step result. If the url field is absent, look at the full response body for an error object — it will contain a code and message explaining what went wrong (e.g. usage limit reached, invalid HTML dimensions).

Image looks wrong

The width and height fields set the viewport, not a crop. Make sure your HTML content fills the intended area using fixed widths and explicit heights on the root element.


See the API Reference for all parameters and error codes, or the Integrations Overview for other platforms.

On this page