Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/V3RNE42/helios/llms.txt

Use this file to discover all available pages before exploring further.

Helios integrates with three external APIs to resolve city names to coordinates and to determine the UTC offset at the departure point. All three offer free tiers that are sufficient for development and light production use.
Nominatim (OpenStreetMap) is the primary geocoder and requires no API key. api/geocode.js calls Nominatim first, supplying a proper User-Agent header as required by Nominatim’s usage policy. OpenCage is only contacted when Nominatim fails or returns no results.
To run the core algorithm tests locally (npm test), no API keys are required at all. The test suite exercises computeRouteSections in routeSolar.js by injecting stub getDayInfo and getOffset functions directly — the serverless functions and their keys are never involved.

OpenCage Data (OPENCAGE_KEY)

What it does in Helios

api/geocode.js translates a city + country pair into a { lat, lon } coordinate pair. Nominatim is tried first at no cost. If Nominatim rate-limits the request or returns an empty result set, the function automatically retries with OpenCage Data as the fallback geocoder.

How to obtain a key

1

Create an account

Go to https://opencagedata.com/ and sign up for a free account.
2

Copy your API key

After registration, your API key is displayed on the dashboard. Copy it.
3

Add it to your environment

Set OPENCAGE_KEY to your copied key, either in your local .env file or in the Vercel project dashboard under Settings → Environment Variables.
DetailValue
Environment variableOPENCAGE_KEY
RoleGeocoding fallback (after Nominatim)
Free tier2,500 requests / day
Sign-up URLhttps://opencagedata.com/

ipgeolocation.io (IPGEOLOCATION_KEY)

What it does in Helios

api/timezone.js accepts a latitude and longitude and returns the UTC offset in hours as { offset }. ipgeolocation.io is the primary provider for this lookup. The function calls it first on every request and only falls back to TimeZoneDB if this call fails.

How to obtain a key

1

Create an account

Go to https://ipgeolocation.io/ and sign up for a free account.
2

Copy your API key

Your API key appears on the account dashboard immediately after registration.
3

Add it to your environment

Set IPGEOLOCATION_KEY to your copied key in your local .env file or in the Vercel project dashboard under Settings → Environment Variables.
DetailValue
Environment variableIPGEOLOCATION_KEY
RoleTimezone lookup — primary provider
Free tier30,000 requests / month
Sign-up URLhttps://ipgeolocation.io/

TimeZoneDB (TIMEZONEDB_KEY)

What it does in Helios

TimeZoneDB is the fallback timezone provider in api/timezone.js. It is only contacted when the ipgeolocation.io call fails (for example, due to a quota limit or a service outage). It accepts a latitude and longitude and returns the GMT offset in seconds, which the function converts to hours before responding.

How to obtain a key

1

Create an account

Go to https://timezonedb.com/ and register for a free account.
2

Copy your API key

Your API key is available in your account profile after registration.
3

Add it to your environment

Set TIMEZONEDB_KEY to your copied key in your local .env file or in the Vercel project dashboard under Settings → Environment Variables.
DetailValue
Environment variableTIMEZONEDB_KEY
RoleTimezone lookup — fallback provider
Free tierAvailable
Sign-up URLhttps://timezonedb.com/

Summary

ServiceVariableRoleFree tier
Nominatim (OpenStreetMap)(none required)Geocoding — primaryUnlimited*
OpenCage DataOPENCAGE_KEYGeocoding — fallback2,500 req/day
ipgeolocation.ioIPGEOLOCATION_KEYTimezone lookup — primary30,000 req/month
TimeZoneDBTIMEZONEDB_KEYTimezone lookup — fallbackAvailable
* Nominatim is free but subject to its usage policy; api/geocode.js complies by sending a descriptive User-Agent header on every request. Once you have all three keys, follow the Environment Variables guide to put them in the right place for local development or production.

Build docs developers (and LLMs) love