Skip to content
Back to journal
gis-technical

Build Your Own Signal: A Developer's Guide to the @geointel/sdk

Move beyond the dashboard. Learn how to integrate Place Signals directly into your applications using our fully-typed TypeScript SDK.

4/6/2026Place Signals

Hero image

A Place Signals score card with confidence, source freshness, and proxy geography labels.

A conceptual Place Signals score card showing why every location score needs source context.

For many people, Place Signals is a dashboard: a place to poke around on a map and see what is going on.

For builders, that is only half the fun. If you are shipping a product, the real goal is to pull place intelligence into your app without turning your codebase into a weekend project.

That is why we built the @geointel/sdk.

Introducing the @geointel/sdk

The @geointel/sdk is a fully typed TypeScript library designed to make spatial data feel less like a scavenger hunt and more like a normal query.

Whether you are building in Node.js, React, or serverless, the SDK gives you a clean way to ask for place intelligence without worrying about the plumbing underneath.

Why an SDK?

  • Type safety: Get autocomplete and compile-time checks for signal layers and response shapes.
  • Normalization: We handle the coordinate transformations and H3 indexing under the hood.
  • Speed: Built-in caching and batching help keep your app responsive.

---

Quick Tutorial: From Zero to Signal

Let's walk through how you can pull a signal into your own code without needing a ceremonial migration plan.

1. Initialize the Client

First, install the package and initialize the GeoIntelClient with your API key.

import { GeoIntelClient } from '@geointel/sdk';

const client = new GeoIntelClient({
  apiKey: process.env.GEOINTEL_API_KEY,
  baseUrl: 'https://api.placesignals.com'
});

2. Query a Coordinate for a PlaceScore

The most common use case is fetching a score for a specific point on Earth. Instead of raw data, you get a calculated PlaceScore that combines the signals that matter at that location.

const signal = await client.signals.getScore({
  location: { lat: 45.523062, lng: -122.676482 }, // Portland, OR
  resolution: 'h3_level_9'
});

console.log(`Signal Strength: ${signal.score}/100`);

3. Filter for Specific Layers

You do not always need every signal. You can filter down to the layers that matter for your use case, like quiet-home search, retail screening, or neighborhood analysis.

const neighborhoodIntel = await client.signals.getScore({
  location: { lat: 40.7128, lng: -74.0060 }, // NYC
  layers: ['acoustic_peace', 'walkable_essentials'],
  includeMetadata: true
});

console.log(neighborhoodIntel.layers.acoustic_peace.rank); // "High"

---

Real-World Use Cases

The nice part about an SDK is that it should fit into your workflow instead of making you reorganize your life around it.

Real Estate Portals

Embed a quietness or livability score directly onto listing pages. It is a lot more useful than a vague badge that says "nice area" and then refuses to elaborate.

Investment Analysis

Run bulk scoring against thousands of potential site locations. Once the SDK is wired in, your model can filter out sites that miss your threshold for resilience, growth, or whatever version of "not worth the trouble" you care about.

Delivery and Logistics

Optimize routing not just for distance, but for the kind of friction that makes drivers grumpy and ETAs unreliable. If a route is short but terrible, the SDK can help you notice that before your ops team does.

---

Start Building Today

The era of "GIS as a silo" is over. With the @geointel/sdk, geospatial intelligence becomes just another variable in your code.

Ready to start? Head over to developers.placesignals.com to get your API key, explore the full documentation, and browse our library of example projects.

We can't wait to see what you build.

Related reading

Get the Place Signals Journal

Source-backed notes on places, markets, and relocation. No spam, just data.