---
title: "Get Moon sign ingresses for date range"
method: GET
path: "/ephemeris/moon/ingresses"
tags: ["lunar"]
---

# Get Moon sign ingresses for date range

`GET /ephemeris/moon/ingresses`

## Request

- Base URL: `https://api.openephemeris.com`
- URL: `https://api.openephemeris.com/ephemeris/moon/ingresses`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-OpenEphemeris-API-Key`
  - API key in header `X-API-Key`
  - API key in header `X-Service-Key`

Returns all Moon sign ingress events within a date range.

**Moon Ingress Frequency:** ~13 ingresses per month (Moon changes signs every ~2.5 days)

**Performance:** <5ms (cached), 50-100ms (cache miss)  
Cache is **pre-warmed for ±3 months** on startup and **refreshed daily at 00:01 UTC**.

**Cache Strategy:**
- Tropical and sidereal ingresses cached separately (different times due to ~24° ayanamsa offset)
- Redis backend with 30-day TTL
- Rolling 3-month window maintained automatically
- Graceful fallback to live calculation if cache miss
- Startup health check reports cache status

**Use Cases:**
- Monthly lunar calendars
- "Best days for haircuts" timing apps
- Moon sign tracking applications
- Gardening/manifestation by Moon sign
- Electional astrology lookups

**Rate Limiting:** Max 90-day range per query to prevent abuse.

**Example:**
```bash
GET /ephemeris/moon/ingresses?start_date=2025-12-01T00:00:00Z&end_date=2025-12-31T23:59:59Z&zodiac_mode=tropical
```

## Query parameters

- `start_date` string, required: Range start date (ISO 8601 format)
- `end_date` string, required: Range end date (ISO 8601 format, max 90 days from start)
- `zodiac_mode` string: Zodiac mode: 'tropical' or 'sidereal'
- `format` string: Response format: json | llm.

## Headers

- `authorization` string, nullable
- `X-API-Key` string, nullable
- `X-OpenEphemeris-API-Key` string, nullable
- `apikey` string, nullable

## Response `200`

Successful Response

- MoonIngressesResponse: Chronologically ordered list of lunar sign ingresses (when the Moon changes zodiac signs) within the requested date range.
  - `count` integer, required: Number of ingresses in range
  - `ingresses` object[], required: Moon sign ingress events
  - `metadata` object, required: Query metadata (calculation_time_ms, cache_hit, date range)
  - `success` boolean: Calculation success status

## Other responses

- `400`: Bad Request
- `422`: Unprocessable Entity - Invalid input format
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openephemeris/apis/open-ephemeris-api.md) · [All operations](https://skmtc.dev/openephemeris/apis/open-ephemeris-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openephemeris/apis/open-ephemeris-api/revisions/d195a769cb89?raw)
