BaseloopDocs

Webhooks

Send rows into a table by posting JSON to its webhook URL.

A webhook table has a URL that turns every JSON object you post into a new row. Use it to send data in from your own code, a form, or tools like Zapier, Make and n8n.

Get the URL

  1. In the app, click Create and pick Inbound webhook. This creates a table with a webhook column.
  2. Open the menu of the webhook column and click Copy URL.

The webhook comes with the table when you create it. An existing table cannot get one later.

Send rows

Post one object:

curl -X POST <webhook-url> \
  -H "Content-Type: application/json" \
  -d '{ "email": "jane@acme.com", "firstName": "Jane", "company": "Acme" }'

Or several at once, as an array or under data:

curl -X POST <webhook-url> \
  -H "Content-Type: application/json" \
  -d '{ "data": [ { "email": "jane@acme.com" }, { "email": "sam@globex.com" } ] }'

Each object can have any keys, nested or not; none are required. The response confirms how many rows are on their way:

{ "success": true, "message": "Processing 2 records" }

What happens next

  • Each object becomes one row. Rows appear about 5 seconds after your last request; while requests keep arriving, it can take up to about 30 seconds. Check the table before sending again, or rows are added twice.
  • The webhook column keeps the whole object.
  • Map keys of the object to columns in the app, and those columns fill in for every new row.

Limits

  • Up to 500 objects and 1 MB per request.
  • Up to 100 requests a second.
  • Empty objects are skipped. A request with nothing left to add returns 400.

Keep the URL private

Webhooks take no API key: anyone with the URL can add rows to the table. Keep it out of browser code and public repositories, like a password.

Check a URL

A HEAD request to the URL returns 200 when the webhook exists, without adding a row. Some tools use this to test a URL before sending data.

On this page