Ribbon Leads
API & CSV

Pull the feed into your own tools

Every paid plan gets a CSV link. National plans also get a JSON API and webhook delivery. All three unlock with your first payment; during the free trial the morning email carries every filing. Your key is on your account page and in your welcome email.

CSV export Market + National

GET https://ribbonleads.com/csv/<your-key>?days=30
GET https://ribbonleads.com/csv/<your-key>?days=7&category=bar
GET https://ribbonleads.com/csv/<your-key>?days=30&stage=plan_review

Columns: id, state, stage, stage_label, category, category_label, name, owner, address, city, county, zip, phone, email, website, runs_on, runs_on_note, status, licence_type, event_date, first_seen, source, source_url, url, lat, lng, google_rating, previous_business. previous_business is filled on rows at the Changed hands stage (stage=ownership_change, an existing venue under new owners) with the business that held the licence or the address before. runs_on names the tools behind the venue's website (POS and online ordering, reservations, site builder, email tool), e.g. Toast (ordering / pos), Squarespace (website); when the site on record turned out to belong to the previous business at that address, website is blank and runs_on_note says so. Market plans are limited to their state. stage takes one or more of plan_review, application, temporary, pre_permit, issued and ownership_change, separated by commas. The column is still named licence_type so existing imports keep working.

JSON API National

GET https://ribbonleads.com/api/v1/venues?key=<your-key>&days=7
GET https://ribbonleads.com/api/v1/venues?key=<your-key>&state=TX&category=restaurant&limit=200
GET https://ribbonleads.com/api/v1/states
{
  "count": 2,
  "days": 7,
  "venues": [
    {
      "id": 18231, "state": "TX", "stage": "issued", "stage_label": "License issued",
      "category": "bar", "category_label": "Bar / nightlife",
      "name": "Southern Yankee Crafthouse", "owner": "The Nelson Team LLC",
      "address": "1312 West Alabama Street", "city": "Houston", "county": "Harris", "zip": "77006",
      "phone": "(713) 555-0100", "email": "", "website": "https://…",
      "runs_on": "Toast (ordering / pos), Squarespace (website)", "runs_on_note": "",
      "status": "Active", "licence_type": "MB", "event_date": "2026-08-31",
      "first_seen": "2026-09-01T11:02:44Z", "source": "tx_tabc_issued",
      "source_url": "https://…", "url": "https://ribbonleads.com/venue/southern-yankee-crafthouse-houston-tx",
      "lat": 29.74, "lng": -95.39, "google_rating": null, "previous_business": ""
    }
  ]
}

Limits: days up to 365, limit up to 5000, and please no more than one request a minute, since the data changes once a day. Keys are revoked when a subscription ends.

Webhook National

Set an https:// URL on your account page. Every morning after the daily email we POST {"event":"venues.new","count":N,"venues":[…]} with the same objects as the API. We don't retry; the API is the source of truth if a delivery is missed.

Zapier, Make, Sheets

Point a scheduled HTTP step at the API URL, or import the CSV link directly into Google Sheets with =IMPORTDATA("https://ribbonleads.com/csv/<key>?days=30"). Both refresh every morning.

Get a key