Place Search, Historical Timezones, and Deterministic Context
Turn a human place name and local civil time into an explicit calculation input, then package calculated natal facts for another system without asking AstroAPI to generate an interpretation.
1. Select a place
POST /api/astro/place-search searches AstroAPI's self-hosted GeoNames cities snapshot. Results include a stable versioned place_id, display name, country, coordinates, IANA timezone, and attribution.
{
"query": "New York",
"country_codes": ["US"],
"limit": 5
}Search is deterministic for snapshot 2026-10-02. It is not address geocoding, autocomplete telemetry, or arbitrary coordinate-to-timezone polygon lookup.
2. Resolve the historical local time
POST /api/astro/timezone-resolve combines a selected place ID with a local date and clock time under IANA tzdb 2026d via tzdata 2026.4.
{
"place_id": "geonames:5128581:2026-10-02",
"date": "1945-08-14",
"time": "19:00"
}A unique civil time returns calculation_ready:true and a complete birth input. A daylight-saving fold returns both candidates; a clock gap returns no candidate. AstroAPI never selects a fold on the customer's behalf.
3. Create deterministic model-ready context
POST /api/astro/natal-context reuses the declared natal calculation and returns stable fact IDs, source paths, conventions, a calculation SHA-256, guardrails, and selected UTF-8 artifacts.
{
"birth": {
"date": "2000-01-01", "time": "12:00", "timezone": "UTC",
"lat": 0, "lon": 0
},
"formats": ["json", "xml", "markdown"]
}The artifacts contain calculated facts and provenance, not prompts, model instructions, predictions, medical/legal/financial advice, or an “AI astrologer.” Customers choose and govern any downstream model.
Contract and provenance limits
- Place data is GeoNames cities with population of at least 15,000 plus selected administrative seats; it is not a complete settlement or address database.
- GeoNames attribution and CC BY 4.0 metadata travel with results. The dataset and timezone release are pinned so an update is a reviewable version change.
- Pre-1970 timezone data is best-effort historical IANA data and can change between tzdb releases.
- Search and resolution are API-key-protected standard operations and use normal quota, scope, concurrency, and one-unit reservation rules.
- API keys belong only in trusted server code. Do not call these endpoints directly from an untrusted browser.
OpenAPI 3.1 contract · Accuracy and reproducibility · Calculation methodology