Projects / Three Levers GIS API
Active · Per-client provisioning

Your service.
Your key. Your boundaries.

Three Levers hosts your GeoJSON on apis.threelevers.com and registers one or more service names on your API key. Use them for hosted map overlays on Map Records and Take Action, Flow/Apex lookup, or CensusGeocoder proxy—with transparent setup per service + API usage pricing.

No catalog. Names like KCDistricts in demos are illustrative only. Your org receives one API key with one or more service names after boundary intake and sizing review. GeoJSON is not unlimited—layers may be simplified at setup so the API stays fast and reliable.

Example · Flow Action External Service
Inputs
lat = {!get_account.BillingLatitude} (47.611)
long = {!get_account.BillingLongitude} (-122.336)
service = YourOrg_ServiceName_2026
sType = near
{
  "status_set": true,
  "status": 200,
  "properties_set": true,
  "properties": {
    "Shapex5fLength_set": true,
    "Shapex5fLength": 435832.05730612075,
    "Shapex5fArea_set": true,
    "Shapex5fArea": 2570870909.3376207,
    "SCHDST_set": true,
    "SCHDST": 1,
    "OBJECTID_set": true,
    "OBJECTID": 1,
    "NAME_set": true,
    "NAME": "Seattle",
    "DSTNUM_set": true,
    "DSTNUM": 17001
  },
  "point_set": true,
  "point": [-122.33649, 47.610615],
  "fromx5fcache_set": true,
  "fromx5fcache": true,
  "distance_set": true,
  "distance": 0,
  "direction_set": true,
  "direction": "Same location"
}
responseCode (200)
What it does

How it works:

  1. Discovery—you describe boundaries or lookup needs.
  2. Setup—we review size and complexity, prepare GeoJSON (including simplification if needed), and register one or more service names on your key.
  3. Configure—App Builder JSON or Named Credential + External Service.
  4. Usage—map token/extract, lookup, and proxy calls bill by request volume.

Service types (all provisioned per client):

  • Map boundary layer—hosted overlay + click-to-select on the map.
  • Geolocation lookup—Flow/Apex inside/near/distance queries (bundled pricing model).
  • CensusGeocoder proxy—geocode plus optional TIGER geography layers (same commercial model as map layers).

Example layers we host for clients include voting precincts, council or legislative districts, program service areas, arts and cultural districts, national forests and parks, school attendance zones, and transportation hubs (ferry terminals, transit corridors, and similar). Each becomes its own named service on your API key—there is no shared catalog to purchase off the shelf.

What you can call

Lookup: inside or nearest

The everyday question is either “Which area serves this address?” (voting district, school district, program service area) or “What’s closest to this location?” (nearest ferry terminal, campus, trailhead). The API answers both from the same coordinates—pick the mode that matches the story you’re trying to tell.

Under the hood: one endpoint accepts familiar lat / long / service inputs, returns structured JSON with feature properties, optional distance and direction for “nearest,” and a cache hint so you know when the answer was reused for speed.

Good when

You already have geocoded addresses or lat/long on records and need to know it's relationship to a boundary to drive reporting, eligibility, or the next step in a Flow.

Service defined Schema (Swagger / OpenAPI)

Every dataset exposes its own machine-readable description of fields and shapes—so generated integrations (think Salesforce External Services) match what that layer actually returns, instead of guessing at property names after the fact.

Lookup, extract, and certain proxy bridges each have a documented URL pattern; you import the spec for the service you care about and wire it like any other REST contract.

Good when

Admins and partners who prefer “generate types, map fields, ship” over reading prose in a PDF.

Proxy: public geodata, Flow-shaped answers

For sources like the U.S. Census geocoder, raw responses can be wide, deep, and awkward for declarative automation. A proxy path normalizes selected responses into predictable buckets—collections you can loop in Flow, plus a “first row” shortcut when you only need the top match.

Optional host allowlists and GET-only routing keep the pass-through surface small; errors come back as JSON with a clear status, not an HTML surprise page.

Good when

You want census tracts, congressional districts, or similar public layers without maintaining your own copy of their pipeline.

Fits the way you already integrate

If Salesforce is your system of record, the boring parts are still important: a Named Credential holds the base host and your ApiKey header so nothing sensitive is scattered through Flows; an External Service imports the Swagger for the layer you want; Flow (or Apex) calls the generated action like any other invocable.

I maintain a step-by-step operator guide for that path—duplicate URL pitfalls, how success payloads show up in Flow, and what to check when a callout returns HTML instead of JSON—because the goal is for your team to own the integration, not to rediscover those lessons one outage at a time.

At a glance

  • Auth: one header, one key, scoped services.
  • Lookup: containment or nearest from lat/long.
  • Extract: GeoJSON around a point within a mile radius you choose.
  • Docs: per-service OpenAPI for accurate imports.
Where teams use it

Districts & reporting codes

Stamp the correct school, council, or legislative identifiers onto records for grants, mailings, and board-ready summaries—without manual spatial joins in a spreadsheet.

“Nearest” services & assets

Route people to the closest program site, transit link, or partner location; distance and direction come along when the story needs them.

Census & federal layers

Pull tract or district context from trusted public sources in a shape Flows can read—without maintaining your own copy of every geography release.

Eligibility & compliance checks

Ask containment questions against the same boundary file everyone agrees is authoritative, then let Salesforce handle the policy logic you define.

Radius pulls for maps & partners

Hand another system or experience a bounded GeoJSON slice instead of exporting your entire layer “just to be safe.”

Operational honesty

Clear errors, size guardrails, and cache transparency—so when something breaks, you’re debugging facts, not vibes.

Pricing & implementation

Quote-based (not a cart)

  • Service setup — one-time fee per service name
  • API usage — per request volume (map, lookup, proxy)
  • Support — docs + email + phone (paid API)

Professional services

  • First map page (report, columns, Lightning placement)
  • Flow wiring (inIds / outIds / nearIds, String to Collection)
  • Layer onboarding (boundary intake, GeoJSON prep, smoke test)
  • Census / lookup design for Flow or External Services
  • Admin + end-user training

Let’s provision your first service

Share what geographic data is important to you, your report goal, and what you want Flow to do. We’ll scope setup, usage, and any simplification needed before go-live.

Let's talk about what's possible