Permit Lookup API avatar

Permit Lookup API

Pricing

Pay per event

Go to Apify Store
Permit Lookup API

Permit Lookup API

Find contractor lead signals from Hamburg Transparency Portal, Berlin Open Data, Municipal planning/building portals with location, work type, stage, source URL, and confidence.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Zentra

Zentra

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Find contractor lead signals from Hamburg Transparency Portal, Berlin Open Data, Municipal planning/building portals with location, work type, stage, source URL, and confidence.

Who this is for

Contractors, suppliers, solar, roofing, HVAC, construction, and local sales teams use this actor when they need focused permit lookup output instead of a broad generic scraper or manual checking.

Buyer outcomes

  • Find permit lookup project signals earlier than manual planning and permit searches.
  • Prioritize outreach with location, work type, permit stage, contractor opportunity, confidence, and source URL.
  • Route qualified leads into CRM, sales research, local territory, or partner workflows.

Sources monitored

Inputs

  • sourceMode: use sample for a smoke run or startUrls for planning/permit source URLs.
  • startUrls: public planning authority, permit, renovation, construction, roofing, HVAC, solar, or building-source URLs.
  • sourceIds: approved planning or municipal source identifiers.
  • maxItems: bounded number of permit/planning lead signals to return.
  • sinceLastRun: emit only new or updated planning/permit signals when scheduled.
  • watchlistTerms: location, work type, building type, contractor trade, or project keywords.
  • webhookUrl: optional destination for CRM or contractor lead routing.

How it transforms the input

  • Input: public planning authority, building permit, renovation, roofing, HVAC, solar, municipal, or construction source.
  • Transformation: identify project type, work type, planning/permit stage, location, and contractor relevance.
  • Output: contractor lead with planning authority, project location, work type, stage/status, source URL, opportunity type, and confidence.

Outputs

The actor returns planning and permit lead records with authority/source, location, project type, work type, permit stage, contractor opportunity type, source URL, and confidence.

Family-specific fields to expect:

  • permitId: Permit, planning, or application identifier when available.

  • planningStatus: Planning, submitted, approved, consultation, or other source status.

  • location: Project location or municipality.

  • workType: Roofing, HVAC, solar, renovation, construction, or other work type.

  • projectType: Building or project category.

  • contractorLeadReason: Why the record is relevant to a contractor or supplier.

  • sourceUrl: Public source record URL.

  • recordId: Stable record ID for exports, dedupe, and downstream joins.

  • title: Human-readable record title for review and export.

  • sourceName: Source identifier used to trace where the record came from.

  • sourceUrl: Direct source URL for review and audit.

  • dedupeKey: Stable key used for delta mode and duplicate suppression.

  • retrievedAt: Timestamp showing when the actor retrieved or generated this record.

  • score: Normalized field for filtering, routing, or downstream review.

  • scoreReasons: Buyer-readable explanation for the score or match.

  • confidence: Normalized field for filtering, routing, or downstream review.

  • errors: Normalized field for filtering, routing, or downstream review.

  • runSummary: Run-level summary for counts, filters, charges, and next actions.

Pricing

This actor uses Apify pay-per-event pricing. Current public listing guidance: $29-$49 / 1,000 launch validation records until public data proof is complete. Charges are tied to buyer-visible value events such as lookup-result, dataset-processed, record-saved, enriched-record. Small validation runs are supported so you can inspect output before scaling a schedule.

  • lookup-result: Charge when Permit Lookup API produces Lookup Result. Typical price: $0.043. A run that produces 10 matching records charges only for the matched buyer-value events and remains capped by the run limit.
  • dataset-processed: Base charge when Permit Lookup API writes a non-empty default dataset. Typical price: $0.011. A run that produces 10 matching records charges only for the matched buyer-value events and remains capped by the run limit.
  • record-saved: Charge for each buyer-visible result saved by Permit Lookup API. Typical price: $0.003. A run that produces 10 matching records charges only for the matched buyer-value events and remains capped by the run limit.
  • enriched-record: Charge when Permit Lookup API adds match scoring, source evidence, or enrichment to a saved result. Typical price: $0.022. A run that produces 10 matching records charges only for the matched buyer-value events and remains capped by the run limit.
  • first-run-cap: Recommended first run budget cap. Typical price: $3.820. Start with the default small run, inspect the dataset, then raise maxItems or schedule recurring runs.

API example

curl -X POST "https://api.apify.com/v2/actors/zentrafoundry~permit-lookup-api/runs" \
+ -H "Authorization: Bearer $APIFY_TOKEN" \
+ -H "Content-Type: application/json" \
+ -d '{"maxItems":10,"sourceIds":["HAMBURG-TRANS","BERLIN-OPEN","MUNICIPAL-PORTALS"],"includeSourceUrls":true,"includeMatchReasons":true,"outputMode":"buyer-ready-records"}'
{
"maxItems": 10,
"sourceIds": [
"HAMBURG-TRANS",
"BERLIN-OPEN",
"MUNICIPAL-PORTALS"
],
"includeSourceUrls": true,
"includeMatchReasons": true,
"outputMode": "buyer-ready-records"
}

Sample output

Sample status: sample_unavailable at https://zentra.nimblique.studio/external/actor-review/samples/permit-lookup-api.json. No fake sample is published; run a bounded real sample refresh before using examples in promotion.

[
{
"name": "Review 10 permit lead signals",
"description": "Low-cost validation run for checking planning authority, location, work type, and stage fields.",
"input": {
"maxItems": 10,
"sourceIds": [
"HAMBURG-TRANS",
"BERLIN-OPEN",
"MUNICIPAL-PORTALS"
],
"includeSourceUrls": true,
"includeMatchReasons": true,
"outputMode": "buyer-ready-records",
"actorSlug": "permit-lookup-api"
}
},
{
"name": "Daily permit lead review",
"description": "Recurring batch for new planning, building, roofing, HVAC, solar, or renovation leads.",
"schedule": "Daily during local business hours",
"input": {
"maxItems": 25,
"sourceIds": [
"HAMBURG-TRANS",
"BERLIN-OPEN",
"MUNICIPAL-PORTALS"
],
"includeSourceUrls": true,
"includeMatchReasons": true,
"outputMode": "buyer-ready-records",
"actorSlug": "permit-lookup-api"
}
}
]

Use cases

  • Find permit lookup project signals before they become crowded sales opportunities.
  • Route qualified permit and planning records into CRM or contractor outreach queues.
  • Filter by work type, location, stage, confidence, and source evidence.
  • Schedule recurring monitoring for new renovation, HVAC, roofing, solar, or construction leads.

Trust and compliance

  • Uses Hamburg Transparency Portal, Berlin Open Data, Municipal planning/building portals.
  • Keeps source URLs and source identifiers in output records for auditability.
  • Does not require private credentials unless a source is explicitly configured for approved authenticated access.

Limitations

  • Results depend on public-source availability, source uptime, and source update cadence.
  • Public sources can revise records after publication; rerun scheduled tasks for fresh evidence.
  • Scores and match reasons are decision-support signals, not legal, financial, procurement, medical, safety, or regulatory advice.
  • Large production runs can cost more than the default smoke run; start small, inspect output, then scale schedules.

FAQ

Can I run this without URLs? Yes. The default sample mode is designed to succeed without user-supplied URLs, and URL-backed runs can use startUrls when needed.

Can I schedule it? Yes. Use sinceLastRun, watchlistTerms, and optional webhookUrl to turn the actor into a recurring alert or report workflow.

How do I verify value before scaling? Run the recommended first-run input, review the sample output fields, then increase maxItems or schedule recurring runs after the dataset matches your use case.