API Reference

Eign Location Intelligence

A single API surface for location-based intelligence scores — living quality, transportation access, community character, and natural environment — delivered as normalised 0–10 indices for any address or coordinate.

🇦🇪 UAE🇨🇦 CanadaREST / JSONHTTPS only
Getting started

Overview

The Eign Location Intelligence API provides normalised 0–10 index scores across four dimensions — living, transportation, community, and nature — for any address or coordinate pair within UAE and Canada.

All endpoints are versioned under /v1/. Index endpoints live at /v1/index/<category> and the geocoding utility lives at /v1/location/geocode.

Base URL

Base URL
https://api.eign.com

Security

Authentication

All /v1/* endpoints require a key in the request header. Every API call must include your key in the X-API-Key header. Keys are prefixed with eign_live_.

HTTP Request
GET /v1/index/living?address=Dubai+Marina HTTP/1.1
X-API-Key: eign_live_••••••••••••••••
Your API key is shown exactly once at creation. Store it securely — it cannot be retrieved again. If lost, you must rotate the key.

Scopes

Each key is issued with a set of OAuth-style scopes that gate access to index categories.

ScopeUnlocks
living:readLiving index and all sub-indices
transportation:readTransportation index and sub-indices
community:readCommunity index and sub-indices
nature:readNature index and sub-indices
geocode:readAddress geocoding

Quotas

Rate Limits

Limits are enforced per API key, per rolling window.

basic
Req / min10
Req / day50
plus
Req / min60
Req / day1,000
pro
Req / min300
Req / day10,000
enterprise
Req / min1,000
Req / day100,000

When a limit is reached the API returns 429 Too Many Requests with a Retry-After header indicating seconds until reset. Every response includes your current quota status in the meta field.


Contract

Response Format

Every endpoint — success or failure — returns the same JSON envelope.

JSON
{
  "success": true,
  "data": {
    "index": "living",
    "overall_score": 8.4,
    "label": "Excellent",
    "coordinates": { "lat": 25.2048, "lng": 55.2708 },
    "country": "AE",
    "sub_indices": { /* category-specific */ },
    "generated_at": "2025-04-13T10:22:00Z"
  },
  "error": null,
  "meta": {
    "request_id": "req_01hvx...",
    "timestamp": "2025-04-13T10:22:00.431Z",
    "version": "v1",
    "quota_used_today": 42,
    "quota_limit_today": 1000,
    "quota_remaining_today": 958
  }
}

Fields

FieldTypeDescription
successbooleanWhether the call succeeded.
dataobject | nullThe index result payload. null on error.
errorobject | nullPresent only when success is false.
error.codestringMachine-readable error slug for programmatic handling.
meta.request_idstringUnique request identifier. Include in support tickets.
meta.quota_remaining_todayintegerRequests remaining in your daily quota.

Reference

Score Scale

Every index and sub-index returns a normalised score from 0 to 10 plus a human-readable label.

8 – 10
Excellent
6 – 7.9
Good
4 – 5.9
Fair
0 – 3.9
Poor

Sub-indices can be independently weighted in your application if the defaults don't fit your use case — the raw score value is always provided alongside the label.


Geocode

Location

Resolve an address string to coordinates before querying indices, or use with any index endpoint directly via the address parameter.

GET/v1/location/geocodegeocode:read

Convert a human-readable address to geographic coordinates. Covers UAE and Canada.

Query Parameters

addressrequiredstring
Human-readable address string. Min 2 chars, max 500.

Example Request

HTTP
GET /v1/location/geocode?address=Palm+Jumeirah%2C+Dubai HTTP/1.1
X-API-Key: eign_live_••••••••••••••••

Indices

Living Index

Measures the day-to-day livability of a location — dining options, retail access, healthcare proximity, and pedestrian friendliness.

GET/v1/index/livingliving:read

Covers

dining
shopping
healthcare
walkability

Query Parameters

addressoptionalstring
Address string. Min 2, max 500 chars.
latoptionalfloat
Latitude −90 to 90. Use with lng.
lngoptionalfloat
Longitude −180 to 180. Use with lat.
radiusoptionalfloat
Search radius in metres. Range 100–10000. Default 2000.
detailedoptionalboolean
Include full POI lists in response. Default false.

* Provide either address or both lat + lng.

Example Request

HTTP
GET /v1/index/living?lat=25.2048&lng=55.2708&radius=1500 HTTP/1.1
X-API-Key: eign_live_••••••••••••••••

Transportation Index

Evaluates how connected a location is to public transit, road networks, and active transport infrastructure.

GET/v1/index/transportationtransportation:read

Covers

metro proximity
bus stop density
road access
car dependency
commute time
bike & walk mix

Query Parameters

addressoptionalstring
Address string. Min 2, max 500 chars.
latoptionalfloat
Latitude −90 to 90.
lngoptionalfloat
Longitude −180 to 180.

* Provide either address or both lat + lng.

Example Request

HTTP
GET /v1/index/transportation?address=Downtown+Dubai HTTP/1.1
X-API-Key: eign_live_••••••••••••••••

Community Index

Characterises the social fabric of a neighbourhood — density, safety signals, amenity variety, family suitability, and ambient noise.

GET/v1/index/communitycommunity:read

Covers

urban density
safety
POI mix
family friendliness
noise level

Query Parameters

addressoptionalstring
Address string.
latoptionalfloat
Latitude −90 to 90.
lngoptionalfloat
Longitude −180 to 180.

* Provide either address or both lat + lng.

Example Request

HTTP
GET /v1/index/community?lat=43.6532&lng=-79.3832 HTTP/1.1
X-API-Key: eign_live_••••••••••••••••

Nature Index

Quantifies the environmental quality surrounding a location — greenery, air, park access, tree cover, and ecological risk.

GET/v1/index/naturenature:read

Covers

green space
air quality
park accessibility
tree cover
noise pollution
environmental risk

Query Parameters

addressoptionalstring
Address string.
latoptionalfloat
Latitude −90 to 90.
lngoptionalfloat
Longitude −180 to 180.

* Provide either address or both lat + lng.

Example Request

HTTP
GET /v1/index/nature?address=Jumeirah+Beach+Residence HTTP/1.1
X-API-Key: eign_live_••••••••••••••••

Reference

Errors

All errors follow the standard response envelope with success: false and a machine-readable error.code.

HTTP Statuserror.codeMeaning
400validation_errorA query parameter is missing, out of range, or malformed.
401unauthorizedMissing or invalid X-API-Key header.
403forbiddenKey is valid but lacks the required scope for this endpoint.
404location_not_foundThe provided address could not be resolved to a coordinate.
422outside_coverageThe coordinates fall outside a supported coverage region (UAE or Canada).
429rate_limit_exceededPer-minute or per-day limit reached. Check Retry-After.
500internal_errorUnexpected server error. Include your request_id when contacting support.
503upstream_unavailableUpstream data service is temporarily unreachable. Retry with backoff.

Response Headers

Useful metadata is surfaced in response headers on every call.

HeaderDescription
X-Request-IDUnique ID for this request. Matches meta.request_id in the body.
X-Response-Time-MsServer processing time in milliseconds.
X-RateLimit-Limit-MinuteYour plan's per-minute request cap.
X-RateLimit-Limit-DayYour plan's daily request cap.
X-CacheHIT — served from tile cache. MISS — computed fresh. BYPASS — cache unavailable, fell back to direct computation.
Retry-AfterSeconds until your rate limit window resets. Present only on 429 responses.