API Reference

252 endpoints across Vedic, Western, Chinese, Numerology, Human Design, Synastry, Divination and platform groups — generated live from the OpenAPI 3.1 spec, with parameters, schemas, and code samples in 6 languages.

POST /v1/analysis/chart-facts
op: postAnalysisChartFacts

Whole-chart fact lines (lagna, planets, houses, running dasha, yogas)

Plain-English fact lines for the whole Vedic chart: lagna; every graha with sign, house, nakshatra pada, dignity, retrograde/combust, aspects received and conjunctions; every house with its occupants, aspects and lord placement; the running Vimshottari periods with dates; and the active yogas. Optional focus narrows the sections. Deterministic; unavailable values are reported as "unavailable" facts.

Auth: X-API-Key ·Rate limit: 120 req/min (b2b) · 2000 req/min (internal) ·Quota: daily + monthly per key
curl -X POST 'https://astro-vibe-engine.gauravapproved.workers.dev/v1/analysis/chart-facts' \ \
  -H 'X-API-Key: av_YOUR_KEY' \ \
  -H 'Content-Type: application/json' \
  -d '{\n  "datetime": "1990-05-15T12:00:00Z",\n  "date": "1990-05-15",\n  "time": "18:30:00",\n  "timezone": "Asia/Kolkata",\n  "latitude": 28.61,\n  "longitude": 77.21,\n  "ayanamsa": "LAHIRI",\n  "asOf": "2026-10-04",\n  "lang": "en",\n  "focus": [\n    "planets",\n    "dasha"\n  ]\n}'

Request body · required

datetime string = "1990-05-15T12:00:00Z"

UTC instant (Z or +/-HH:MM) -- OR send date + time + timezone (local wall clock); exactly one time form per request

date string = "1990-05-15"

Local calendar date (YYYY-MM-DD) -- wall-clock alternative to datetime; requires time + timezone

time string = "18:30:00"

Local wall-clock time (24h HH:MM or HH:MM:SS); requires date + timezone

timezone string = "Asia/Kolkata"

IANA zone or UTC offset (required with date + time)

latitude number required = 28.61

Geographic latitude

longitude number required = 77.21

Geographic longitude (east positive)

ayanamsa string = "LAHIRI"

Ayanamsa (default LAHIRI)

asOf string = "2026-10-04"

Date the running dasha and transits are evaluated for (YYYY-MM-DD or ISO instant). Default: today (UTC).

lang string

Reserved response language (en default, hi). Fact lines are always English so an LLM can narrate them in any language.

focus string[] = ["planets","dasha"]

Sections to include (default all): planets, houses, dasha, yogas. Lagna is always included.

Responses

200 Fact lines, an LLM-ready joined string and metadata
400 Invalid input
401 Missing or invalid API key
413 Request body too large
422 Validation failed (envelope: error.code / error.message / error.requestId)
429 Rate limit exceeded
500 Internal error (envelope)
200 response shape
{
  "type": "object",
  "required": [],
  "properties": {
    "facts": {
      "type": "array",
      "description": "Fact lines"
    },
    "summaryLines": {
      "type": "string",
      "description": "All fact lines joined by newlines, each prefixed with its [fact id]"
    },
    "meta": {
      "type": "object",
      "description": "focus, asOf, ayanamsa, factCount"
    }
  }
}

Authentication & limits

  • · Send X-API-Key: <key> on every request.
  • · Keys are SHA-256 hashed at rest, scoped (internal/b2b), and enforce daily + monthly quotas.
  • · Burst rate limit: 120 req/min per b2b key, 2000 req/min internal.
  • · Errors use a standard envelope: { code, message, requestId } — include the requestId in support tickets.

SDK & resources

  • · TypeScript SDK: @astrovibe/client — typed, edge-safe, standardized auth/errors.
  • · Machine spec: /v1/openapi.json
  • · Try any endpoint live in the Console.