⚙️ Securely call Google Cloud Run APIs with service account auth (main-workflow)

543 views · ⚙️ DevOps & CI/CD

💡 Pro Tip — HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it — it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.

View All Scrapers

Description

Who it’s for?

Anyone who wants a simple, secure way to call a Google Cloud Run endpoint from n8n—without exposing it publicly.

People who want a cheap/free-tier way to run custom API logic without hosting n8n or spinning up servers. Example: you’ve got scraping code that needs specific system/python libs—build it into a Dockerfile on Cloud Run, then call it as a secure endpoint from n8n.

How it works

This is a conjunctive workflow: the main workflow calls Service Auth (sub-workflow) to get a Google ID token, merges that auth with your context, then calls your Cloud Run URL with Authorization: Bearer <id_token>. Works great for single calls or looping over items.

How to set up

General instructions below—see my detailed guide for more info:

Build a Secure Google Cloud Run API, Then Call It from n8n (Free Tier)

Setup:

  1. Create a Cloud Run service and enable Require authentication (Cloud IAM).
  2. Create a Google Service Account and grant Cloud Run Invoker on that service.
  3. In n8n, import the workflows and update the Vars node (service_url, optional service_path).
  4. Create a JWT (PEM) credential from your service account key, then run.
  5. Make sure to read the sticky notes in the workflows—they contain helpful pointers and optional configurations.

Requirements

How to customize

Change the HTTP method/path/body in Cloud Run Request, or drop the Service Auth (sub-workflow) into other workflows to reuse the same auth pattern.

More details

Full write-up (minimal + modular flows), screenshots, and more:

Build a Secure Google Cloud Run API, Then Call It from n8n (Free Tier) — by Marco Cassar

🔗 Nodes Used

HTTP Request, Execute Sub-workflow

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup