DEVELOPER REFERENCE

Bootstrap API

A predictable starting point for Maps Platform clients.

Base URL: https://bs.yango-maps.com. All endpoints are read-only, public and return application/json; charset=utf-8. Authentication is not required. GET and HEAD are supported; HEAD returns the same headers without a body. No request body is accepted.

GET/HEAD API responses allow public cross-origin reads. OPTIONS and write methods on existing endpoints return 405 with Allow: GET, HEAD. Simple GET requests need no CORS preflight; custom cross-origin request headers are not supported.

Every response includes X-Request-ID. Send an ID of 1–128 letters, digits, dots, underscores, colons or hyphens to preserve it. Other values are replaced with a UUID.

Status

GET/api/v1/status

Current process availability, API version and build metadata. The server timestamp is computed for each request.

Parameters
None
Cache lifetime
no-store
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/status'
Example response
{
  "service": "maps-bootstrap",
  "status": "operational",
  "api_version": "1.4",
  "build": "2026.10.08-1842",
  "environment": "production",
  "server_time": "2026-10-08T15:51:00.451Z"
}

Bootstrap

GET/api/v1/bootstrap

A single startup snapshot combining configuration, regions, languages and map styles. generated_at is the time this process loaded the snapshot, not the request time.

Parameters
None
Cache lifetime
3600 seconds
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/bootstrap'
Example response
{
  "meta": {
    "revision": "2026.10.08.3",
    "generated_at": "2026-10-08T15:51:00.440Z"
  },
  "config": {
    "revision": "2026.10.08.3",
    "api_version": "1.4",
    "minimum_client_version": "3.8.0",
    "recommended_client_version": "4.2.1",
    "defaults": {
      "locale": "en",
      "region": "global",
      "map_style": "standard",
      "units": "metric"
    },
    "cache": {
      "ttl": 3600
    },
    "features": {
      "vector_maps": true,
      "traffic_layer": true,
      "public_transport": true,
      "route_preview": true,
      "offline_metadata": true,
      "experimental_styles": false
    }
  },
  "regions": [
    {
      "id": "global",
      "name": "Global",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "eu",
      "name": "Europe",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "ru",
      "name": "Russia",
      "default_locale": "ru",
      "units": "metric"
    },
    {
      "id": "tr",
      "name": "Türkiye",
      "default_locale": "tr",
      "units": "metric"
    },
    {
      "id": "me",
      "name": "Middle East",
      "default_locale": "ar",
      "units": "metric"
    },
    {
      "id": "az",
      "name": "Azerbaijan",
      "default_locale": "az",
      "units": "metric"
    },
    {
      "id": "na",
      "name": "North America",
      "default_locale": "en",
      "units": "imperial"
    },
    {
      "id": "af",
      "name": "Africa",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "apac",
      "name": "Asia Pacific",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "latam",
      "name": "Latin America",
      "default_locale": "es",
      "units": "metric"
    }
  ],
  "languages": [
    {
      "code": "en",
      "name": "English"
    },
    {
      "code": "ru",
      "name": "Russian"
    },
    {
      "code": "tr",
      "name": "Turkish"
    },
    {
      "code": "az",
      "name": "Azerbaijani"
    },
    {
      "code": "ar",
      "name": "Arabic"
    },
    {
      "code": "fr",
      "name": "French"
    },
    {
      "code": "de",
      "name": "German"
    },
    {
      "code": "es",
      "name": "Spanish"
    }
  ],
  "styles": [
    {
      "id": "standard",
      "name": "Standard",
      "version": 12,
      "supports_dark_mode": false
    },
    {
      "id": "night",
      "name": "Night",
      "version": 8,
      "supports_dark_mode": true
    },
    {
      "id": "navigation",
      "name": "Navigation",
      "version": 15,
      "supports_dark_mode": true
    },
    {
      "id": "minimal",
      "name": "Minimal",
      "version": 6,
      "supports_dark_mode": true
    }
  ]
}

Configuration

GET/api/v1/config

Client defaults, supported client versions, cache lifetime and feature flags. These are metadata; this service does not provide map tiles, routing or location tracking.

Parameters
None
Cache lifetime
3600 seconds
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/config'
Example response
{
  "revision": "2026.10.08.3",
  "api_version": "1.4",
  "minimum_client_version": "3.8.0",
  "recommended_client_version": "4.2.1",
  "defaults": {
    "locale": "en",
    "region": "global",
    "map_style": "standard",
    "units": "metric"
  },
  "cache": {
    "ttl": 3600
  },
  "features": {
    "vector_maps": true,
    "traffic_layer": true,
    "public_transport": true,
    "route_preview": true,
    "offline_metadata": true,
    "experimental_styles": false
  }
}

Regions

GET/api/v1/regions

Supported regional metadata, preferred locales and measurement units.

Parameters
None
Cache lifetime
86400 seconds
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/regions'
Example response
{
  "regions": [
    {
      "id": "global",
      "name": "Global",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "eu",
      "name": "Europe",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "ru",
      "name": "Russia",
      "default_locale": "ru",
      "units": "metric"
    },
    {
      "id": "tr",
      "name": "Türkiye",
      "default_locale": "tr",
      "units": "metric"
    },
    {
      "id": "me",
      "name": "Middle East",
      "default_locale": "ar",
      "units": "metric"
    },
    {
      "id": "az",
      "name": "Azerbaijan",
      "default_locale": "az",
      "units": "metric"
    },
    {
      "id": "na",
      "name": "North America",
      "default_locale": "en",
      "units": "imperial"
    },
    {
      "id": "af",
      "name": "Africa",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "apac",
      "name": "Asia Pacific",
      "default_locale": "en",
      "units": "metric"
    },
    {
      "id": "latam",
      "name": "Latin America",
      "default_locale": "es",
      "units": "metric"
    }
  ]
}

Languages

GET/api/v1/languages

Available interface locale codes and readable language names.

Parameters
None
Cache lifetime
86400 seconds
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/languages'
Example response
{
  "languages": [
    {
      "code": "en",
      "name": "English"
    },
    {
      "code": "ru",
      "name": "Russian"
    },
    {
      "code": "tr",
      "name": "Turkish"
    },
    {
      "code": "az",
      "name": "Azerbaijani"
    },
    {
      "code": "ar",
      "name": "Arabic"
    },
    {
      "code": "fr",
      "name": "French"
    },
    {
      "code": "de",
      "name": "German"
    },
    {
      "code": "es",
      "name": "Spanish"
    }
  ]
}

Styles

GET/api/v1/styles

Map style identifiers, metadata versions and dark mode compatibility. Style assets are not served by this endpoint.

Parameters
None
Cache lifetime
21600 seconds
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/styles'
Example response
{
  "styles": [
    {
      "id": "standard",
      "name": "Standard",
      "version": 12,
      "supports_dark_mode": false
    },
    {
      "id": "night",
      "name": "Night",
      "version": 8,
      "supports_dark_mode": true
    },
    {
      "id": "navigation",
      "name": "Navigation",
      "version": 15,
      "supports_dark_mode": true
    },
    {
      "id": "minimal",
      "name": "Minimal",
      "version": 6,
      "supports_dark_mode": true
    }
  ]
}

Capabilities

GET/api/v1/capabilities?platform=ios

Client capabilities for a specific platform. platform is required and case-sensitive: ios, android, web or desktop. Missing, repeated or unknown values return 400 invalid_platform.

Parameters
platform · required string · ios | android | web | desktop
Cache lifetime
3600 seconds
Success
200 OK; cached metadata may return 304
Errors
400 invalid_platform; 405 method_not_allowed; 429 rate_limit_exceeded; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/api/v1/capabilities?platform=ios'
Example response
{
  "platform": "ios",
  "capabilities": {
    "vector_maps": true,
    "traffic": true,
    "offline_regions": true,
    "background_location": true,
    "carplay": true
  }
}

Health

GET/health

Minimal liveness check for process supervision. Exempt from rate limiting. HTTP 200 indicates that the process can respond; no external services are involved.

Parameters
None
Cache lifetime
no-store
Success
200 OK; cached metadata may return 304
Errors
405 method_not_allowed; 500 internal_error. Unknown paths return 404.
Request
curl 'https://bs.yango-maps.com/health'
Example response
{
  "status": "ok"
}

Errors

Error responses are JSON and are never cached. A request ID is included so a response can be matched to server logs. Internal exceptions and stack traces are not exposed.

{
  "error": {
    "code": "not_found",
    "message": "The requested resource was not found",
    "request_id": "4c39da6d-fbbd-45e1-9e91-097404162c9f"
  }
}
HTTPCodeMeaning
400invalid_platformChoose a supported platform
404not_foundResource does not exist
405method_not_allowedUse GET or HEAD
429rate_limit_exceededWait before retrying
500internal_errorUnexpected server failure

Rate limits

By default, 300 requests per IP address per 5 minutes, shared across API and HTML routes. Static assets, health checks and internal metrics are exempt. Limits are held in memory and reset when the process restarts. Responses include RateLimit and RateLimit-Policy; a 429 also includes Retry-After in seconds. Wait for that interval instead of retrying immediately.

Caching

Configuration, capabilities and bootstrap: 1 hour. Regions and languages: 24 hours. Styles: 6 hours. Status and health: no-store. Metadata responses include X-Configuration-Revision and an ETag. Preserve the full ETag, including quotes, in a subsequent If-None-Match request. A 304 has no body: reuse your stored response.

curl -i https://bs.yango-maps.com/api/v1/config
curl -i -H 'If-None-Match: <ETag from previous response>' \
  https://bs.yango-maps.com/api/v1/config

The bootstrap snapshot is loaded from local JSON at startup. Restart the service after changing metadata. Its timestamp may change across restarts even when the revision is unchanged.

Versioning

URL version v1 denotes the API contract; api_version: "1.4" denotes its minor version. Configuration revisions identify metadata changes independently of application builds. GET /api lists supported URL versions.

{ "current_version": "v1", "versions": ["v1"], "documentation": "/docs" }