---
title: "Western events over a date range"
method: POST
path: "/v1/western/events"
tags: ["Western Astrology"]
---

# Western events over a date range

`POST /v1/western/events`

## Request

- Base URL: `https://api.asterwise.com`
- URL: `https://api.asterwise.com/v1/western/events`
- Auth: HTTP bearer

One timeline of everything that happens to a chart over 1 to 31 days, each event with its exact time. Exact major aspects from the transiting planets to the natal planets and angles, tropical sign ingresses and stations (Sun to Saturn), Moon sign changes, void-of-course periods, New and Full Moons and quarters, eclipses with their contacts, and the profection year turning on the birthday. Each event carries the verdict Lilly's rules give, or null; Uranus, Neptune and Pluto carry none. No weighting.

## Request body

- WesternEventsRequest
  - `from_date` string, nullable: First day (YYYY-MM-DD, civil day in target_timezone). Defaults to today in the birth timezone.
  - `days` integer: Number of civil days, 1 to 31 (7 for a week, 30 for a month).
  - `target_timezone` string, nullable: IANA timezone that defines the days and local times. Defaults to the birth timezone.
  - `location` string, nullable: City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
  - `name` string: Person name associated with the birth record
  - `date` string, required: Birth date in YYYY-MM-DD format
  - `time` string, nullable: Birth time in HH:MM 24-hour format. If omitted, the chart is cast for 06:00 local time (not a sunrise chart) and birth_time_provided is false: houses, the Ascendant, the sect and the Moon's exact degree are then approximate.
  - `latitude` number, nullable: Latitude. Required if location not provided.
  - `longitude` number, nullable: Longitude. Required if location not provided.
  - `timezone` string, nullable: IANA timezone. Required if location not provided (unless utc_offset is given). For dates before the zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used.
  - `utc_offset` string, nullable: Optional explicit UTC offset of the birth time, as ±HH:MM or ±HH:MM:SS (e.g. '+04:51:31' for Bombay mean time). Overrides the offset `timezone` would give. Use it when the birth record states the offset, or for historical local times the IANA database cannot represent.
  - `ayanamsa` 'lahiri' | 'raman' | 'kp' | 'tropical': Ignored on Western endpoints: positions are always tropical (no ayanamsa). Accepted so one birth object can be sent to Vedic and Western endpoints alike.
  - `house_system` 'placidus' | 'koch' | 'equal' | 'whole_sign': Natal house system for the Ascendant and MC.

## Response `200`

Successful Response

- ApiResponseRangeEventsResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` RangeEventsResponse, required
    - `birth_time_provided` boolean, required
    - `start_date` string, required
    - `end_date` string, required
    - `days` integer, required
    - `timezone` string, required
    - `range_start_utc` string, required
    - `range_end_utc` string, required
    - `natal` object, required
    - `events` RangeEvent[], required: All events in time order.
      - `kind` string, required: Event kind; see kinds in the response.
      - `planet` string, nullable
      - `title` string, required
      - `time_utc` string, required: ISO 8601 UTC with Z.
      - `time_local` string, required: ISO 8601 local time with offset, in target_timezone.
      - `time_precision` string, required: second, or day for events known only to the day (dasha changes, profection years).
      - `detail` object, required
      - `verdict` 'favorable' | 'unfavorable' | 'neutral', nullable
      - `verdict_rule` string, nullable
      - `rule_source` string, nullable
      - `significations` string[], required
      - `depends_on_birth_time` boolean, required
    - `kinds` object, required
    - `note` string, required

## Other responses

- `401`: Authentication failed
- `403`: Authorization failed
- `404`: Resource not found
- `413`: Payload too large
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream provider error
- `503`: Service unavailable

---

[API](https://skmtc.dev/asterwise/apis/asterwise-api.md) · [All operations](https://skmtc.dev/asterwise/apis/asterwise-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asterwise/apis/asterwise-api/revisions/3c4bbb1194e2?raw)
