Clean, structured data for AI agents and scripts: prediction markets, sports, public records, and home improvement. One call, one price, no accounts to set up.
Every Kalshi daily high and low temperature market, one JSON row per city-day ladder with every strike, its prices, and the implied probability of each. Kalshi's rules name the National Weather Service station that settles each ladder; the row joins that exact station: observations recorded so far today, the daily and hourly forecast, the official climate report once issued, and which strike each of those lands on.
ATP and WTA matches for any day, live or finished, one JSON row each: 15+ bookmakers' opening and current odds with the move since opening, margin-free implied probabilities, each player's last ten matches and surface record, rankings, and the full head-to-head. Schedule, results, or a live snapshot.
Metro Nashville publishes every permit as open data, but not the licensed contractor, the owner, which sub-trade permits are still outstanding, or how far inspections have progressed. This tool joins all four to every permit, and adds 22 scope presets that ignore the "not to add a second kitchen" boilerplate so a search for kitchen remodels returns kitchen remodels.
Describe a room in JSON: walls, windows, doorways, cabinet runs, appliances, island or peninsula. Get back a dimensioned floor plan (SVG), a cabinet takeoff in inches (CSV), and quote totals: linear feet of base, upper, and tall cabinets, countertop and backsplash square feet, appliance and fixture lists. Two seconds, no CAD.
All four tools run on Apify. Every Apify account includes monthly free credit, enough for a few hundred enriched ladders, matches, or permit records, or a couple of dozen floor plans, so you can test any tool before paying anything. Billing, receipts, and spend limits are handled by Apify.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("perchpermits/nashville-building-permits").call(
run_input={"scope": "kitchen", "residentialOnly": True, "enrich": True, "maxRecords": 50})
for permit in client.dataset(run["defaultDatasetId"]).iterate_items():
print(permit["address"], permit["enrichment"]["contractor"]["company"])
Any MCP-capable agent can call the tools through Apify's MCP server. The store page for each tool documents every input, every output field, and every error message, and is written for agents first.
Source code for all four tools is public: github.com/101NUTS/perchpermits-actors.
Kalshi weather data comes from Kalshi's public trade API and api.weather.gov, both official free APIs. Tennis data comes from TennisExplorer's public pages on paths its robots.txt allows. Permit data comes from government public records: Metro Nashville's open data portal and the Metro ePermits public case search, public under Tennessee's Public Records Act. Nothing is scraped from private sites, no field is guessed (missing values are null), and sources are read politely with a fixed delay between requests. If a source changes its layout, the tool stops and charges nothing rather than returning bad data. Odds and market prices are listed prices at fetch time, for information only; check your local law before acting on them.