Supabase
Keep a Supabase table filled with live web data. SpecStream sends the records each request finds to an Edge Function, which checks the signature and upserts them into Postgres with the source page behind every value. Saved requests send only what's new or changed, and Realtime pushes each record to your app.
What you need
- A SpecStream account and an API key from Settings > API keys. Starting is free.
- A Supabase project and the Supabase CLI, linked to it.
- 1
1. Create the table
One row per record.
fieldsholds the values by their label;sourcesholds the page each value came from and when it was read. Run this in the SQL editor.SQLRow level security is on with no policies, so only the Edge Function's service role writes. Add a select policy for the people or apps that should read the table.
- 2
2. Deploy the Edge Function
The function rejects any body whose signature doesn't match, then upserts each record by its
entity_id, so a record sent twice updates the same row.typescriptSpecStream signs each delivery itself, so deploy without Supabase's JWT check:
Terminal - 3
3. Send records to it
Register the function's URL as a webhook.
find.completedsends every result of a finished request;monitor.foundsends the new and changed records of each scheduled run.TerminalThe response includes the signing secret once. Store it where the function reads it:
Terminal
Keep it current
Ask for the data in the workspace, the API or your agent over MCP, like "dental clinics in Austin rated 4.5 or better, with their phone" or "companies that filed with the SEC to raise $5M or more this week". Then save it with a schedule, from hourly to yearly. Each run sends only records that are new or changed since the last one, so the table follows the live web without a scraper or a cron job of your own. See schedules.
Each delivery carries a Specstream-Event-Id header. A delivery that doesn't get a 2xx answer is tried again with the same id and the same records.
Query the records
Every value sits next to its source, so a screen or a report can link straight to the page behind it.
Cost
Webhooks cost nothing. Requests are paid from your SpecStream balance, only for the results that fit, and each one shows the most it can cost before it starts. Scheduled rechecks cost half. See balance, quotes and billing. For help, email [email protected].