Skip to main content
GET
/
v1
/
signals
/
permit
/
stats
Get permit-scoped signal aggregates for a geo ID
curl --request GET \
  --url https://api.homelogs.io/v1/signals/permit/stats \
  --header 'X-API-Key: <api-key>'
{
  "geo_id": "<string>",
  "geo_type": "jurisdiction",
  "scope": "permit",
  "signal_keys": [
    "<string>"
  ],
  "max_freshness_days": 1825,
  "total_active_leads": 1,
  "signals_breakdown": [
    {
      "signal_key": "<string>",
      "count": 1
    }
  ],
  "top_counties": [
    {
      "value": "<string>",
      "count": 1
    }
  ],
  "top_cities": [
    {
      "value": "<string>",
      "count": 1
    }
  ],
  "top_zips": [
    {
      "value": "<string>",
      "count": 1
    }
  ],
  "confidence_distribution": {
    "high": 1,
    "medium": 1,
    "low": 1
  },
  "freshness_distribution": {
    "0_7": 1,
    "8_14": 1,
    "15_30": 1,
    "31_plus": 1
  }
}
Use this endpoint to fetch permit-scoped aggregates for a non-property geo_id. It returns counts and distributions for selected permit signals, plus the effective freshness window used for the calculation. Use this endpoint for monitoring and dashboard rollups; use Permit Signal Leads for actionable row-level leads. Supported permit-pack keys are documented in Signals Catalog. See also Permit Signal Leads.

Required input

  • geo_id (query, required, non-property geo)

Optional input

  • signal_keys (CSV list)
  • from_date, to_date (YYYY-MM-DD)
  • min_confidence (0..1)
  • max_freshness_days (1..3650)
  • include_stale (true|false)

Example request

curl -sS "$API_BASE_URL/v1/signals/permit/stats?geo_id=geo_county_6973f63e37a900040c0d&signal_keys=site_prep_issued_nowcast,new_construction_issued_nowcast&max_freshness_days=60" \
  -H "x-api-key: $HOMELOGS_API_KEY"

Response shape

  • geo_id, geo_type, scope=permit
  • signal_keys[]
  • max_freshness_days
  • total_active_leads
  • signals_breakdown[]
  • top_counties[], top_cities[], top_zips[]
  • confidence_distribution
  • freshness_distribution

Authorizations

X-API-Key
string
header
required

Query Parameters

geo_id
string
required

Location identity token for a non-property geo scope.

Example:

"geo_county_6973f63e37a900040c0d"

signal_keys
string

Optional CSV list of customer-facing permit signal keys. Allowed values: site_prep_issued_nowcast, new_construction_issued_nowcast, framing_nowcast_early, framing_window_late, rough_in_nowcast_early, rough_in_window_late.

Example:

"framing_nowcast_early,rough_in_nowcast_early"

from_date
string<date>

Optional lower bound in YYYY-MM-DD format.

to_date
string<date>

Optional upper bound in YYYY-MM-DD format.

min_confidence
number

Optional minimum confidence between 0 and 1.

Required range: 0 <= x <= 1
max_freshness_days
integer
default:60

Optional freshness window in days, between 1 and 3650. Defaults to 60 when include_stale is false.

Required range: 1 <= x <= 3650
include_stale
boolean
default:false

When true, disables the default freshness filter.

Response

Permit-scoped aggregates and distributions.

geo_id
string
required
geo_type
enum<string> | null
required
Available options:
jurisdiction,
city,
zip,
county,
state,
null
scope
enum<string>
required
Available options:
permit
signal_keys
string[]
required
max_freshness_days
integer | null
required
Required range: 1 <= x <= 3650
total_active_leads
integer
required
Required range: x >= 0
signals_breakdown
object[]
required
top_counties
object[]
required
top_cities
object[]
required
top_zips
object[]
required
confidence_distribution
object
required
freshness_distribution
object
required