Skip to main content
All use cases
Developers & integrators

A webhook receiver with GKit SheetsAPI

Use GKit SheetsAPI as a webhook endpoint - receive POST payloads from any service straight into a Google Sheet row.


Log webhook payloads straight into a Google Sheet

Any service that fires a webhook POST can target a GKit SheetsAPI endpoint. Each incoming payload becomes a new row - no server, no database, no glue code.

Setup in three steps

  1. Create a Google Sheet with a header row matching the payload fields you care about - e.g. event, email, amount, status.
  2. Connect the sheet to GKit and copy your endpoint URL.
  3. Paste the endpoint into the webhook config of whatever service you're using.

That's it. Payloads start landing as rows immediately.

How the mapping works

// Stripe sends something like:
// { "type": "charge.succeeded", "email": "user@example.com", "amount": 4900, "currency": "usd" }
 
// Your sheet header row:
// | event              | email             | amount | currency |
 
// POST the fields you want logged:
await fetch("https://sheetsapi.gkit.mreshank.com/api/spreadsheets/{userKey}/Payments", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    event: payload.type,
    email: payload.email,
    amount: payload.amount / 100,
    currency: payload.currency,
  }),
});

You can add this call inside your own webhook handler, a Zapier/Make HTTP step, or a lightweight edge function - whatever sits between the source and GKit.

Works with

Mailchimp, Mailgun, Stripe, Pipedrive, Typeform, GitHub, any Zapier or Make webhook step, and anything else that fires a standard HTTP POST.

Securing private endpoints

Add your GKit API key as a header to restrict who can write to the sheet:

headers: {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_GKIT_API_KEY",
}

Public endpoints work fine for low-risk logging. For payment events or anything sensitive, enable key auth in your GKit dashboard.


This pattern comes up regularly on r/webdev whenever someone wants a lightweight audit log or event feed without spinning up a database. A Sheet your whole team can already read is often the right call.

SheetsAPI · Get started free → · Pricing · More use cases · How to build a webhook receiver with Google Sheets