predictive

Search Transit Events

Search for various types of transit events within a date range.

**Features:**
- Exact crossings of target degrees, several passes per target (`results`)
- Opt-in orb windows (`orb_deg` / `aspect_orbs`): enter, every exact hit including retrograde re-passes, and leave, per continuous in-orb episode (`windows`), with applying/separating at the range start
- Natal points × aspects as labelled targets (`natal_points`, `aspects`)
- Configurable date ranges (plan limits: 1 year on Explorer/PAYG, 5 years on Pro, 10 years on Startup, 40 years on Scale and above)

**Performance:** one sampled track per planet shared by every target; the cost guard counts days × planets × targets.

**Pricing (by requested span, decided before any compute):** up to 1 year (367 days) = 5, up to 3 years (1097 days) = 10, up to 5 years (1828 days) = 15, up to 10 years (3654 days) = 25, up to 20 years (7306 days) = 40, up to 40 years (14611 days) = 70 credits. Plan limits: Explorer/PAYG 1 year, Pro 5 years, Startup 10 years, Scale and Enterprise 40 years. A span above your plan's limit is rejected with 400 `search_span_limit` naming the limit and the bracket that fits — nothing is charged. Any 4xx/5xx outcome is refunded, including a 429 compute_overload shed; rate-limit 429s are refused before anything is charged. Results are capped at 1000 transit events per response; past that the earliest 1000 are returned with `truncated: true` and `truncation.resume_from` to continue from.

**Deadline:** 30 s of compute on every plan. A search that runs out of time returns the bodies it finished with `truncated: true` (reason `deadline`, the unsearched bodies in `truncation.remaining`); if none finished it returns 503 `compute_timeout`, and the credits are refunded.
post/predictive/transits/search

Request

  • Base URL: https://api.openephemeris.com
  • URL: https://api.openephemeris.com/predictive/transits/search
  • 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

Request body

aspect_orbsobject

Per-aspect orbs in degrees, keyed by aspect name (e.g. {"conjunction": 3, "square": 2}). Applies to targets built from natal_points × aspects and to search_criteria.aspect_angle; an aspect not listed uses orb_deg. Setting it turns on windows.

aspectsstring[]

Aspects to search for each natal point. Defaults to the five majors: conjunction, sextile, square, trine, opposition.

end_datestring date-time required

Search range end date

orb_degnumber double

Opt-in orb windows. When set (or when aspect_orbs is set), the response adds windows: one entry per continuous in-orb episode of each planet against each target, with enter, every exact hit, and leave. The default orb for every target; aspect_orbs overrides it per aspect. Greater than 0, at most 15.

planet_namesstring[]

Planets to include (validated in route)

search_criteriaobject

Additional search criteria (currently not supported by the route; omit it)

start_datestring date-time required

Search range start date

target_degreesnumber[]

Specific degrees to search for

Example request

{
  "end_date": "2025-01-01T00:00:00Z",
  "planet_names": [
    "Mars",
    "Jupiter"
  ],
  "start_date": "2024-01-01T00:00:00Z",
  "target_degrees": [
    0,
    90,
    180,
    270
  ]
}

Response

Successful Response

resultsobject required

Search results organized by criteria

search_range_yearsnumber required

Years searched

successboolean required

Request success status

truncatedboolean

True when the response is not the complete answer to the request — see truncation for why and how to continue. Always present.

Example response

{
  "calculation_metadata": {
    "technique_id": "natal",
    "technique_label": "Composite (Davison)",
    "technique_method": "davidson",
    "technique_version": "v1"
  },
  "metadata": {
    "calculation_metadata": {
      "technique_id": "natal",
      "technique_label": "Composite (Davison)",
      "technique_method": "davidson",
      "technique_version": "v1"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.