← Back to Developer Hub

How to Add ZipCheckup to Your Zapier/Make Workflow

Automate water quality alerts and property data enrichment using ZipCheckup API with Zapier or Make (Integromat)

Why Automate Water Quality Data

Manual ZIP code lookups work fine for one-off checks. But if you're processing property listings, triaging insurance applications, or monitoring water quality across a portfolio of addresses, you need automation.

ZipCheckup's REST API returns structured JSON for any U.S. ZIP code — no API key required on the free tier. That makes it a perfect fit for no-code platforms like Zapier and Make (formerly Integromat), where you can wire up a trigger, call the API, and route the results to any destination in minutes.

Common automation scenarios:

  • A new lead enters your CRM → enrich the record with water quality score and flood risk
  • A property listing is added to your sheet → auto-fill environmental risk columns
  • Weekly check on 50 ZIP codes → alert Slack if any score drops below a threshold
  • Insurance application received → flag high-risk ZIPs before underwriting review

Setting Up a Zapier Zap

Step 1: Choose Your Trigger

Start a new Zap and pick the trigger that matches your data source:

Trigger App Example Event When It Fires
Google Sheets New Spreadsheet Row A new property is added to your tracker
HubSpot New Contact A lead fills out a form with their ZIP
Webhooks by Zapier Catch Hook Your app sends a POST to Zapier's URL
Schedule Every Week Run a batch check on a fixed list of ZIPs

The key requirement: your trigger must provide a ZIP code value. Map it to a variable you'll use in the next step.

Step 2: Add the ZipCheckup API Call

Add a Webhooks by Zapier action (not to be confused with the Webhooks trigger). Choose Custom Request and configure:

Method:  GET
URL:     https://zipcheckup.com/api/v1/zip/{{zip_code}}
Headers: Accept: application/json

Replace {{zip_code}} with the mapped field from your trigger (e.g., the ZIP column from Google Sheets).

Full Zapier HTTP configuration:

{
  "method": "GET",
  "url": "https://zipcheckup.com/api/v1/zip/{{steps.trigger.zip}}",
  "headers": {
    "Accept": "application/json"
  }
}

The API returns a JSON object. Zapier will auto-parse the fields so you can use them in subsequent steps:

{
  "zip": "90210",
  "score": 72,
  "grade": "B",
  "violations": 3,
  "lead_level": "low",
  "radon_zone": 2,
  "flood_claims": 148,
  "components": {
    "water_quality": 78,
    "lead_risk": 85,
    "radon_risk": 62,
    "flood_risk": 55,
    "air_quality": 71
  }
}

Step 3: Route the Results

Add one or more action steps after the API call:

Google Sheets — Update a row:

Map the parsed JSON fields to columns in your spreadsheet:

Column D (Score):       {{steps.webhooks.score}}
Column E (Grade):       {{steps.webhooks.grade}}
Column F (Lead Level):  {{steps.webhooks.lead_level}}
Column G (Flood Risk):  {{steps.webhooks.components__flood_risk}}

Slack — Send a notification:

Channel:  #property-alerts
Message:  🏠 ZIP {{steps.webhooks.zip}} scored {{steps.webhooks.grade}}
          ({{steps.webhooks.score}}/100).
          Lead: {{steps.webhooks.lead_level}} |
          Violations: {{steps.webhooks.violations}}

Email — Send a summary:

Use Email by Zapier or Gmail to send a formatted report to stakeholders or clients with the score, grade, and component breakdown.

Step 4: Add a Filter (Optional)

Insert a Filter step between the API call and the notification to only alert on concerning results:

Only continue if:
  steps.webhooks.score  (Number)  Less than  50
  OR
  steps.webhooks.lead_level  (Text)  Exactly matches  high

This way you only get notified about ZIPs that need attention.

Make (Integromat) Equivalent

Make uses a visual flow builder with modules. Here's the equivalent setup:

Module 1: Trigger

Use a Watch Rows module (Google Sheets), Watch Records (Airtable), or Webhook trigger depending on your data source.

Module 2: HTTP Request

Add an HTTP > Make a Request module:

URL:         https://zipcheckup.com/api/v1/zip/{{1.zip_code}}
Method:      GET
Parse response: Yes

Make will auto-detect the JSON structure and let you map individual fields in downstream modules.

Module 3: Router (Optional)

Add a Router to branch the flow:

  • Branch 1: If score < 50 → Send Slack message
  • Branch 2: Always → Update Google Sheets row
  • Branch 3: If lead_level = "high" → Create task in Asana/Trello

Module 4: Action

Map the API response fields just like in Zapier. Make uses dot notation for nested fields:

{{2.data.score}}
{{2.data.grade}}
{{2.data.components.water_quality}}
{{2.data.components.flood_risk}}

Example Use Cases

Real Estate CRM Enrichment

A real estate platform adds ZipCheckup data to every new listing:

Trigger:  New listing in MLS feed (webhook)
Action 1: GET /api/v1/zip/{listing_zip}
Action 2: Update CRM record with score, grade, flood_claims
Action 3: If grade = "D" or "F" → flag for agent review

The agent sees a water quality score right on the listing card — no manual lookup needed.

Insurance Underwriting Alerts

An insurance company pre-screens applications:

Trigger:  New application submitted (webhook)
Action 1: GET /api/v1/zip/{applicant_zip}
Filter:   flood_claims > 500 OR radon_zone = 1 OR score < 40
Action 2: Create Jira ticket for manual underwriting review
Action 3: Add risk flag to applicant record

Weekly Portfolio Monitor

A property management company tracks environmental risk across 200 properties:

Trigger:  Schedule (every Monday at 8am)
Action 1: Get all ZIPs from Google Sheet column A
Action 2: Loop → GET /api/v1/zip/{zip} for each
Action 3: Compare to last week's scores (stored in column B)
Action 4: If score decreased by 10+ points → Slack alert
Action 5: Update sheet with current scores

Rate Limits and Tips

  • Free tier: 100 requests/day, no API key needed
  • Batch lookups: If you're checking 50+ ZIPs, space requests with a 1-second delay in Make's loop settings (Zapier handles this automatically)
  • Caching: Store results in your sheet/database. Water quality scores update quarterly — you don't need to re-fetch daily
  • Error handling: Add an error path in Make or a Zapier "Paths" step to handle 429 (rate limit) or 404 (invalid ZIP) responses gracefully

Pro Tip: Use Zapier's built-in "Looping by Zapier" action to batch-process multiple ZIPs from a single trigger. Pair it with a 1-second delay step to stay within rate limits.