SnapAPI + Zapier
Complete Integration Guide

Add screenshot capture, PDF generation, and content extraction to any Zapier workflow in under 5 minutes — no native Zapier app needed. Use "Webhooks by Zapier" to call the SnapAPI REST API directly.

No native app yet.

SnapAPI does not currently have a listed Zapier app. Instead, use the free Webhooks by Zapier action (available on all plans) to make HTTP requests to SnapAPI. This guide explains exactly how.

How it Works

Every Zap that calls SnapAPI follows the same pattern:

🔴
Trigger
Any Zapier Trigger
New Google Sheets row, Typeform submission, Stripe payment, schedule, webhook — anything that provides a URL or data.
Action — Webhooks by Zapier
POST to api.snapapi.pics/v1/screenshot
Sends the URL from your trigger to SnapAPI. Receives a hosted screenshot URL in the response.
💾
Action — Any App
Use the Screenshot URL
Save to Google Drive, Dropbox, or S3. Send via email or Slack. Write to a database. The screenshot URL is valid for 24 hours.

Prerequisites

Free tier:

SnapAPI's free plan includes 200 requests per month. For active Zaps, consider the Starter plan ($19/month for 5,000 requests). Rate limits apply: 60 requests/minute on free, 300/minute on paid plans.

Step 1: Create a New Zap

1

Open Zapier and click "Create Zap"

Log in to zapier.com. Click the + Create Zap button at the top left. Give your Zap a descriptive name like "Screenshot new Google Sheets rows".

Step 2: Choose Your Trigger

2

Pick any trigger that provides a URL

Click the Trigger box and search for your trigger app. Common examples:

TriggerUse caseURL source
Google Sheets — New RowScreenshot URLs from a spreadsheetA column containing URLs
Typeform — New EntryScreenshot submitted URLsA "website" field
Schedule by ZapierMonitor a site dailyHardcoded URL in the action
Webhooks by Zapier — Catch HookScreenshot on-demand via webhookPayload url field
Airtable — New RecordScreenshot URLs in a baseA URL field
Notion — New Database ItemScreenshot page URLsA URL property

Connect your trigger account, configure it, and test it to get sample data. Zapier will show you what fields are available — you will map these to the SnapAPI request body in Step 4.

Step 3: Add "Webhooks by Zapier" Action

3

Add a new action step: Webhooks by Zapier → Custom Request

Click the + button to add an action. Search for "Webhooks" and select Webhooks by Zapier. Choose the event Custom Request. This lets you make any HTTP request — POST, GET, etc.

Why "Custom Request" not "POST"?

The "Custom Request" event lets you set the Content-Type header and send a JSON body, which is required by SnapAPI. The simpler "POST" event sends form-encoded data, which will not work.

Step 4: Configure the Request

4

Fill in the Webhooks configuration fields exactly as shown

Zapier will show a form with Method, URL, Headers, and Data. Copy the values from the table below.

Zapier FieldValue to Enter
MethodPOST
URLhttps://api.snapapi.pics/v1/screenshot
Headers — NameX-Api-Key
Headers — ValueYOUR_API_KEY (from dashboard)
Headers — Name 2Content-Type
Headers — Value 2application/json
DataJSON body (see below)
Unflattenyes

In the Data field, enter the JSON body. Use Zapier's variable syntax {{step.field}} to map fields from your trigger. Replace {{1.url}} with the actual field from your trigger step:

Zapier Data field — JSON body
{
  "url": "{{1.url}}",
  "format": "png",
  "width": 1280,
  "height": 800,
  "fullPage": false,
  "responseType": "url"
}
Always use responseType: "url" in Zapier.

Without it, SnapAPI returns raw binary image data, which Zapier cannot pass to downstream steps easily. With "responseType": "url", you receive a JSON response containing a hosted URL — easy to map to email, Drive, Slack, etc.

Common request parameters

ParameterTypeDefaultDescription
urlstringrequiredFull URL to screenshot (must include https://)
formatstring"png"Output format: png, jpeg, webp, pdf
widthinteger1280Viewport width in pixels (100–3840)
heightinteger800Viewport height in pixels (100–2160)
fullPagebooleanfalseCapture the full scrollable page
delayinteger0Wait N milliseconds after load (0–30000)
blockAdsbooleanfalseBlock ads and trackers for cleaner screenshots
blockCookieBannersbooleanfalseHide cookie consent popups
responseTypestring"binary"Use "url" to get a hosted URL instead of binary
cachebooleantrueReturn cached result if available (10-minute TTL)

Step 5: Map the Response and Use the Result

5

Test the step to see the response, then add downstream actions

Click Test Step in Zapier. If successful, you will see a response with a url field. Copy the field name to map it in the next action.

The SnapAPI response (with responseType: "url") looks like this:

SnapAPI response
{
  "url":     "https://cdn.snapapi.pics/screenshots/xk92mf.png",
  "width":   1280,
  "height":  800,
  "format":  "png",
  "cached":  false,
  "credits": 1
}

Now add a third action to your Zap. In any field that accepts a URL, click inside and select the Webhooks step, then url from the available fields. Examples:

Generate PDFs

Change the endpoint URL and body to generate PDF files instead of screenshots:

PDF generation — Zapier Data field
// URL field:
https://api.snapapi.pics/v1/screenshot

// Body:
{
  "url": "{{1.url}}",
  "format": "pdf",
  "fullPage": true,
  "pdfOptions": {
    "pageSize": "a4",
    "printBackground": true,
    "marginTop": "1cm",
    "marginBottom": "1cm"
  },
  "responseType": "url"
}

Extract Content for AI Processing

Use SnapAPI's Extract endpoint to turn any web page into clean Markdown, then feed it to OpenAI or another AI step in your Zap:

Extract content — Zapier Data field
// URL field:
https://api.snapapi.pics/v1/extract

// Body:
{
  "url": "{{1.url}}",
  "format": "markdown"
}

// Response:
{
  "markdown": "# Article Title\n\nIntroductory paragraph...",
  "title": "Article Title",
  "wordCount": 842
}

Map the markdown field from the SnapAPI response as input to an OpenAI — Send Prompt or ChatGPT Zap action for summarization, classification, or data extraction.

Workflow Recipes

Zapier + Google Sheets

Screenshot URLs from a spreadsheet

Trigger: New row in Google Sheets (column B = URL). Action: Webhooks → POST to SnapAPI screenshot. Action: Google Drive upload with dated filename.

Zapier + Stripe + Gmail

PDF invoices on payment

Trigger: Stripe new payment. Action: POST to SnapAPI PDF with invoice URL built from payment metadata. Action: Gmail send with PDF URL as attachment link.

Zapier + Schedule

Daily website monitoring

Trigger: Schedule daily at 9am. Action: POST to SnapAPI with your site URL. Action: Slack message with screenshot URL. Action: Google Sheets append with timestamp.

Zapier + RSS + OpenAI

AI content summarization

Trigger: RSS new item. Action: POST to SnapAPI Extract (markdown). Action: OpenAI — summarize markdown. Action: Notion append to database with summary + source URL.

Zapier + Typeform

Screenshot form submissions

Trigger: Typeform new entry with "website" field. Action: POST to SnapAPI full-page screenshot. Action: Dropbox upload. Action: Typeform response update with Drive link.

Zapier + HubSpot

Screenshot lead websites

Trigger: HubSpot new contact with website field. Action: SnapAPI screenshot of website. Action: HubSpot update contact with screenshot URL in custom field.

Troubleshooting

401 Unauthorized

Your API key is missing or incorrect. Double-check:

400 Bad Request

The request body has a validation error. Common causes:

429 Too Many Requests

You have exceeded your plan's rate limit. Add a Zapier Delay for step of 1–2 seconds between requests, or upgrade to a paid plan for higher limits.

The screenshot URL is empty / step fails

Make sure you are using the Custom Request event, not the simpler "POST" event. The response from Custom Request is parsed as JSON, making the url field accessible as a Zapier variable.

Dynamic pages:

If a page uses heavy JavaScript and the screenshot looks incomplete, add "delay": 2000 to the request body. This waits 2 seconds after the page load event before taking the screenshot.

Make.com Quick Setup

The pattern for Make.com is identical — use the HTTP → Make a request module instead of Webhooks by Zapier. The full Make.com guide is available at:

Read the Make.com Guide