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
https://api.eign.com
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_.
GET /v1/index/living?address=Dubai+Marina HTTP/1.1 X-API-Key: eign_live_••••••••••••••••
Scopes
Each key is issued with a set of OAuth-style scopes that gate access to index categories.
| Scope | Unlocks |
|---|---|
| living:read | Living index and all sub-indices |
| transportation:read | Transportation index and sub-indices |
| community:read | Community index and sub-indices |
| nature:read | Nature index and sub-indices |
| geocode:read | Address geocoding |
Rate Limits
Limits are enforced per API key, per rolling window.
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.
Response Format
Every endpoint — success or failure — returns the same JSON envelope.
{
"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
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the call succeeded. |
| data | object | null | The index result payload. null on error. |
| error | object | null | Present only when success is false. |
| error.code | string | Machine-readable error slug for programmatic handling. |
| meta.request_id | string | Unique request identifier. Include in support tickets. |
| meta.quota_remaining_today | integer | Requests remaining in your daily quota. |
Score Scale
Every index and sub-index returns a normalised score from 0 to 10 plus a human-readable label.
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.
Location
Resolve an address string to coordinates before querying indices, or use with any index endpoint directly via the address parameter.
Convert a human-readable address to geographic coordinates. Covers UAE and Canada.
Query Parameters
addressrequiredstringExample Request
GET /v1/location/geocode?address=Palm+Jumeirah%2C+Dubai HTTP/1.1 X-API-Key: eign_live_••••••••••••••••
Living Index
Measures the day-to-day livability of a location — dining options, retail access, healthcare proximity, and pedestrian friendliness.
Covers
Query Parameters
addressoptionalstringlatoptionalfloatlng.lngoptionalfloatlat.radiusoptionalfloatdetailedoptionalbooleanfalse.* Provide either address or both lat + lng.
Example Request
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.
Covers
Query Parameters
addressoptionalstringlatoptionalfloatlngoptionalfloat* Provide either address or both lat + lng.
Example Request
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.
Covers
Query Parameters
addressoptionalstringlatoptionalfloatlngoptionalfloat* Provide either address or both lat + lng.
Example Request
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.
Covers
Query Parameters
addressoptionalstringlatoptionalfloatlngoptionalfloat* Provide either address or both lat + lng.
Example Request
GET /v1/index/nature?address=Jumeirah+Beach+Residence HTTP/1.1 X-API-Key: eign_live_••••••••••••••••
Errors
All errors follow the standard response envelope with success: false and a machine-readable error.code.
| HTTP Status | error.code | Meaning |
|---|---|---|
| 400 | validation_error | A query parameter is missing, out of range, or malformed. |
| 401 | unauthorized | Missing or invalid X-API-Key header. |
| 403 | forbidden | Key is valid but lacks the required scope for this endpoint. |
| 404 | location_not_found | The provided address could not be resolved to a coordinate. |
| 422 | outside_coverage | The coordinates fall outside a supported coverage region (UAE or Canada). |
| 429 | rate_limit_exceeded | Per-minute or per-day limit reached. Check Retry-After. |
| 500 | internal_error | Unexpected server error. Include your request_id when contacting support. |
| 503 | upstream_unavailable | Upstream data service is temporarily unreachable. Retry with backoff. |
Response Headers
Useful metadata is surfaced in response headers on every call.
| Header | Description |
|---|---|
| X-Request-ID | Unique ID for this request. Matches meta.request_id in the body. |
| X-Response-Time-Ms | Server processing time in milliseconds. |
| X-RateLimit-Limit-Minute | Your plan's per-minute request cap. |
| X-RateLimit-Limit-Day | Your plan's daily request cap. |
| X-Cache | HIT — served from tile cache. MISS — computed fresh. BYPASS — cache unavailable, fell back to direct computation. |
| Retry-After | Seconds until your rate limit window resets. Present only on 429 responses. |