← All posts

How to Add Web Search and Scraping to Zapier With No Code

Quick answer: Zapier cannot scrape a webpage on its own, but it does not need to. Add a Webhooks by Zapier action (or a Code by Zapier step) that sends one POST request to a scraping API like link.sc, and the clean page content, search results, or extracted data flow straight into the rest of your Zap. No servers, no headless browsers, no Python on your laptop. This post shows the exact setup for both approaches.

Zapier is brilliant at moving data between apps it already knows about. Where it falls down is reading the open web: there is no native "scrape this page" or "search Google" action, and the community "extract from webpage" tools break the moment a site renders with JavaScript or sits behind Cloudflare. The fix is to hand that one hard job to an API and let Zapier do what it is good at.

Why Zapier needs help with the web

A Zap is a trigger plus one or more actions. Triggers and actions are almost always tied to a specific app: a new row in Google Sheets, a new email in Gmail, a new lead in HubSpot. The web at large is not an app, so there is no first-party connector for "go read this URL and give me the text."

You can point Zapier at a URL with Webhooks by Zapier, but a raw GET returns whatever the server sends, which is often an empty shell of HTML that fills in later via JavaScript, or a bot-check page. Parsing that mess inside a Code step is exactly the infrastructure work you picked a no-code tool to avoid. A scraping API absorbs it: rendering, proxies, retries, and HTML-to-markdown all happen behind a single call, and Zapier just receives clean text.

Option 1: Webhooks by Zapier (the pure no-code path)

This is the route for anyone who does not want to touch a line of code. It needs a paid Zapier plan (Webhooks is a Premium action), and it takes about three minutes.

Add an action step, choose Webhooks by Zapier, and pick the POST event. Then fill in the fields:

  • URL: https://api.link.sc/v1/fetch
  • Payload Type: json
  • Data: add url set to the page you want (map it from an earlier trigger step), and format set to markdown. Add render_js set to true for JavaScript-heavy pages.
  • Headers: add x-api-key with your link.sc key, and Content-Type set to application/json.

That is the whole configuration. When the Zap runs, link.sc fetches the page, renders it if needed, escalates through proxies if the site blocks datacenter IPs, and returns clean markdown. The response lands in the step output, so the next action can drop content into a Google Doc, a Slack message, an Airtable field, or a ChatGPT step.

To search the web instead of fetching one URL, point the same POST at https://api.link.sc/v1/search and send a query field. You get back ranked results with page content already included, ready to summarize or file.

Option 2: Code by Zapier (when you want to shape the data)

Webhooks gives you the raw response. If you want to trim it, pull out one field, or loop over search results before handing them on, a Code by Zapier step with a few lines of JavaScript is cleaner. This runs on Zapier's servers, so there is still nothing to host.

const res = await fetch("https://api.link.sc/v1/fetch", {
  method: "POST",
  headers: {
    "x-api-key": inputData.apiKey,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    url: inputData.url,
    format: "markdown",
    render_js: true,
  }),
});

const data = await res.json();
return { content: data.content };

Map apiKey and url in the step's Input Data fields so you are not pasting secrets into code, then return whatever slice you need. Everything you return becomes available to later steps by name. A search variant is the same shape: POST to /v1/search with a query, then return the titles and URLs you care about.

A concrete marketing Zap

Here is a workflow a marketing team can build this afternoon, no engineer required:

  1. Trigger: Schedule by Zapier, every Monday at 8am.
  2. Action: Webhooks by Zapier POST to /v1/fetch on a competitor's pricing page, render_js true.
  3. Action: a ChatGPT or Claude step that reads the returned markdown and answers "did any price or plan change since last week."
  4. Action: post the summary to a Slack channel, or append a row to a Google Sheet.

Now a human reads a one-line summary on Monday morning instead of manually checking five pricing pages. Swap the fetch for a search step and you have a weekly "what is being written about our category" digest. If price tracking is your main goal, we go deeper in monitoring competitor pricing changes.

Other patterns that drop into the same skeleton: enrich new CRM leads by fetching the company's homepage and extracting a description, turn a new RSS item into a full-text archive, or feed fresh search results into a content-idea backlog.

Where Zapier ends and code begins

Zapier is the right home for this when the run is scheduled or event-driven, the volume is modest, and a human or another app consumes the output. It is a poor fit when you need to crawl thousands of pages in a tight loop, because Zapier bills per task and per-step timeouts are short. At that point you are better off calling the same link.sc endpoints from a small script or backend. The nice part is that nothing you built is wasted: it is the identical API call, just in a different runner. For the wider picture of visual tools versus an API, see our no-code web scraping guide.

Getting your key

Everything above needs one thing: an API key. Create a free link.sc account, copy the key from the dashboard, and paste it into your Webhooks header or Code input. The free tier includes 500 requests a month, which is plenty to build and test a real Zap before it costs anything. If you would rather see the wiring in a full agent context first, our guide to giving an AI agent internet access uses the same two endpoints.

The point is simple. You do not need to become a scraping engineer to put live web data inside your automations. You need one POST request, and Zapier already knows how to make it.


Ready to wire it up? Create a free link.sc account and get 500 requests a month to power your first Zap.