openephemeris-com · Schema

ACGLocalSpaceRequestPayload

Payload for local space azimuth calculations.

CompanyAstrologyAIAstronomyDataAPI

Properties

Name Type Description
bodies object Explicit body name selection; narrows the standard roster this endpoint otherwise returns in full. Supported: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, Chiron, Pholus,
epoch string ISO-8601 datetime of the birth or event. Either put the zone on the value itself as a 'Z' or ±HH:MM suffix ("1987-07-15T09:01:00-05:00"), or send the naive local wall-clock time ("1987-07-15T09:01:00"
jd object Julian Day (alternative to epoch)
lat number Analysis target latitude. Canonical spelling; alias of 'target_lat'. Required as part of a complete coordinate pair -- a request with no complete pair is rejected rather than defaulting to 0,0. Distin
line_distance_km numbernull Distance to project local space lines in kilometers. Defaults to approximately 5550km (50 degrees).
lon number Analysis target longitude. Canonical spelling; alias of 'target_lon'. Required as part of a complete coordinate pair -- a request with no complete pair is rejected rather than defaulting to 0,0. Disti
natal object Natal origin points
options object Calculation behavior options
query_lat numbernull Latitude of the query point. When supplied with query_lon, each local-space line is annotated with its great-circle min distance.
query_lon numbernull Longitude of the query point. When supplied with query_lat, each local-space line is annotated with its great-circle min distance.
response_format stringnull Response format ('json' or 'geojson'). Defaults to 'json'.
target_lat number Analysis target latitude. Accepted alias of 'lat' (matching /acg/ccg); ignored when 'lat' is present.
target_lon number Analysis target longitude. Accepted alias of 'lon' (matching /acg/ccg); ignored when 'lon' is present.
timezone object Zone that governs a naive (zone-less) `epoch`. Supply this and the server does the timezone math, including the historical-correction overlay for pre-1970 dates: the overlay is seeded from `natal.birt
View JSON Schema on GitHub

JSON Schema

openephemeris-com-acglocal-space-request-payload-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/openephemeris-com/json-schema/openephemeris-com-acglocal-space-request-payload-schema.json",
  "title": "ACGLocalSpaceRequestPayload",
  "description": "Payload for local space azimuth calculations.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/openephemeris-com-openapi.json#/components/schemas/ACGLocalSpaceRequestPayload",
  "additionalProperties": false,
  "properties": {
    "bodies": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "maxItems": 128,
          "type": "array"
        }
      ],
      "description": "Explicit body name selection; narrows the standard roster this endpoint otherwise returns in full. Supported: Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto, Chiron, Pholus, Ceres, Pallas, Juno, Vesta, MeanNode, TrueNode, MeanLilith, OscuLilith. The eight Uranian (Hamburg School) hypothetical points (Cupido, Hades, Zeus, Kronos, Apollon, Admetos, Vulkanus, Poseidon) are accepted too, but only when named here: they are opt-in and never appear in the default roster. SouthNode and TrueSouthNode are derived in place from the topocentric Mean/True Node; Vertex is cast from the `natal` birthplace and is the one roster body omitted when the request carries no `natal` block. There is no `group` selector on this endpoint, so the Hermetic lots are out of reach and are rejected. Earth is rejected too: its body id collides with the id this endpoint gives the Ascendant, so it cannot be represented alongside the angle lines. The four cardinal angle lines (Ascendant, Midheaven, Descendant, IC) are the local-space frame rather than bodies, and are always returned regardless of this field. Aliases: NorthNode/Rahu/Node -> MeanNode; TrueNorthNode/TrueRahu -> TrueNode; Ketu -> SouthNode; Vulcanus -> Vulkanus. The extended catalog is accepted too, by name and only when named: the sb441 main-belt asteroids (Hygiea, Eunomia, Psyche, Europa (asteroid), Cybele, Sylvia, Thisbe, Camilla, Iris, Davida, Euphrosyne, Interamnia), the trans-Neptunian objects (Eris, Sedna, Makemake, Haumea, Quaoar, Orcus, Ixion, Varuna, Chaos, Gonggong, Salacia), the extra centaurs (Asbolus, Hylonome, Nessus, Chariklo) and about forty further asteroids (Eros (asteroid), Sappho, Lilith (asteroid), Fortuna, Pandora, Diana, Hekate and more) - GET /catalogs/bodies lists them all. The asteroid Eros is `Eros (asteroid)`: plain `Eros` is the Hermetic lot. Each extended body named adds 1 credit to the request (capped at +20); the standard roster, the Uranian set and the lots are covered by the base price. Extended bodies are never in a group's default roster.",
      "title": "Bodies"
    },
    "epoch": {
      "description": "ISO-8601 datetime of the birth or event. Either put the zone on the value itself as a 'Z' or ±HH:MM suffix (\"1987-07-15T09:01:00-05:00\"), or send the naive local wall-clock time (\"1987-07-15T09:01:00\") and name its zone in the sibling `timezone` field. A zone-less clock time with no `timezone` is rejected with 400 ambiguous_datetime and is NEVER read as UTC. A date-only value resolves to 12:00 UTC.",
      "title": "Epoch",
      "type": "string"
    },
    "jd": {
      "anyOf": [
        {
          "format": "double",
          "type": "number"
        }
      ],
      "description": "Julian Day (alternative to epoch)",
      "title": "Jd"
    },
    "lat": {
      "description": "Analysis target latitude. Canonical spelling; alias of 'target_lat'. Required as part of a complete coordinate pair -- a request with no complete pair is rejected rather than defaulting to 0,0. Distinct from 'query_lat', which is the optional proximity query point.",
      "maximum": 90,
      "minimum": -90,
      "title": "Lat",
      "type": "number"
    },
    "line_distance_km": {
      "description": "Distance to project local space lines in kilometers. Defaults to approximately 5550km (50 degrees).",
      "title": "Line Distance Km",
      "type": [
        "number",
        "null"
      ]
    },
    "lon": {
      "description": "Analysis target longitude. Canonical spelling; alias of 'target_lon'. Required as part of a complete coordinate pair -- a request with no complete pair is rejected rather than defaulting to 0,0. Distinct from 'query_lon', which is the optional proximity query point.",
      "maximum": 180,
      "minimum": -180,
      "title": "Lon",
      "type": "number"
    },
    "natal": {
      "$ref": "#/$defs/ACGNatalRequest",
      "description": "Natal origin points"
    },
    "options": {
      "$ref": "#/$defs/ACGOptionsRequest",
      "description": "Calculation behavior options"
    },
    "query_lat": {
      "description": "Latitude of the query point. When supplied with query_lon, each local-space line is annotated with its great-circle min distance.",
      "title": "Query Lat",
      "type": [
        "number",
        "null"
      ]
    },
    "query_lon": {
      "description": "Longitude of the query point. When supplied with query_lat, each local-space line is annotated with its great-circle min distance.",
      "title": "Query Lon",
      "type": [
        "number",
        "null"
      ]
    },
    "response_format": {
      "default": "json",
      "description": "Response format ('json' or 'geojson'). Defaults to 'json'.",
      "enum": [
        "json",
        "geojson"
      ],
      "title": "Response Format",
      "type": [
        "string",
        "null"
      ]
    },
    "target_lat": {
      "description": "Analysis target latitude. Accepted alias of 'lat' (matching /acg/ccg); ignored when 'lat' is present.",
      "maximum": 90,
      "minimum": -90,
      "title": "Target Lat",
      "type": "number"
    },
    "target_lon": {
      "description": "Analysis target longitude. Accepted alias of 'lon' (matching /acg/ccg); ignored when 'lon' is present.",
      "maximum": 180,
      "minimum": -180,
      "title": "Target Lon",
      "type": "number"
    },
    "timezone": {
      "$ref": "#/$defs/TimezoneInput",
      "description": "Zone that governs a naive (zone-less) `epoch`. Supply this and the server does the timezone math, including the historical-correction overlay for pre-1970 dates: the overlay is seeded from `natal.birthplace_lat`/`birthplace_lon` when present, otherwise from the chart origin `lat`/`lon`. Ignored when `epoch` already carries a Z/±HH:MM suffix or when `jd` is used. The resolution is echoed back in the response `metadata` as tz_confidence / tz_rule_source / tz_resolved_offset / resolved_utc."
    }
  },
  "required": [
    "epoch"
  ],
  "type": "object",
  "$defs": {
    "ACGAsteroidGroup": {
      "description": "Categorical asteroid groups explicitly permitted for AstroCartography.",
      "enum": [
        "major",
        "centaur",
        "tno",
        "muse"
      ],
      "title": "ACGAsteroidGroup",
      "type": "string"
    },
    "ACGNatalRequest": {
      "additionalProperties": false,
      "description": "Natal geographical data for ACG offset calculation.",
      "properties": {
        "birthplace_alt_m": {
          "anyOf": [
            {
              "type": "number"
            }
          ],
          "title": "Birthplace Alt M"
        },
        "birthplace_lat": {
          "description": "Birthplace latitude. Both birthplace coordinates must be supplied together -- a natal object with an incomplete pair is rejected rather than defaulting to 0,0. Distinct from the analysis target coordinates on the enclosing payload.",
          "maximum": 90,
          "minimum": -90,
          "title": "Birthplace Lat",
          "type": "number"
        },
        "birthplace_lon": {
          "description": "Birthplace longitude. Both birthplace coordinates must be supplied together -- a natal object with an incomplete pair is rejected rather than defaulting to 0,0. Distinct from the analysis target coordinates on the enclosing payload.",
          "maximum": 180,
          "minimum": -180,
          "title": "Birthplace Lon",
          "type": "number"
        },
        "houses_system": {
          "default": "W",
          "title": "Houses System",
          "type": "string"
        }
      },
      "title": "ACGNatalRequest",
      "type": "object"
    },
    "ACGOptionsRequest": {
      "additionalProperties": false,
      "description": "Configuration options for AstroCartography calculations.",
      "properties": {
        "angle_epoch": {
          "description": "Decouple the rotational frame from the position epoch: body positions come from epoch/jd as usual, but ACG line angles are projected against this epoch's GMST. Accepts an ISO-8601 UTC datetime or a bare Julian Day. Empty/omitted = angles use the position epoch (default, unchanged). Use to overlay a secondary chart on a base frame — e.g. Human Design Design-register lines on the natal map (positions at the Design epoch, angles at the natal epoch), matching the hd_expression heatmap convention; also progressed/return overlays. Positions and obliquity stay on the position epoch, so every line is rigidly translated in longitude by the GMST difference.",
          "title": "Angle Epoch",
          "type": "string"
        },
        "aspect_angles": {
          "anyOf": [
            {
              "items": {
                "type": "number"
              },
              "maxItems": 32,
              "type": "array"
            }
          ],
          "description": "Angles to compute aspects for",
          "title": "Aspect Angles"
        },
        "asteroid_groups": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACGAsteroidGroup"
              },
              "maxItems": 16,
              "type": "array"
            }
          ],
          "description": "Filter by asteroid group. Main belt and fixed stars are explicitly prohibited.",
          "title": "Asteroid Groups"
        },
        "include_aspects": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "Include aspect lines",
          "title": "Include Aspects"
        },
        "include_hd_gate": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "Enrich every emitted line feature with the Human Design gate its body's ecliptic longitude carries (properties.hd_gate: gate/line/color/tone/base). Purely additive — does not change the body set or geometry. Default false. Combine with bodies:[\"Earth\"] or group:\"hd\" for the HD-13 body set.",
          "title": "Include HD Gate"
        },
        "include_hd_lot_gates": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "With include_hd_gate, also attach the Human Design gate to Hermetic Lot lines (Fortune, Spirit, and the rest of the lot suite), computed from the lot's own ecliptic longitude in the personality register. Lots are left out of HD enrichment by default; no effect without include_hd_gate. Purely additive. Default false.",
          "title": "Include HD Lot Gates"
        },
        "include_lines": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "CCG only: emit MC/IC/AC/DC GeoJSON line geometry per snapshot (identical to /acg/power-lines, with ccg_hybrid progression applied per body). Default false. No effect on /acg/natal-lines.",
          "title": "Include Lines"
        },
        "include_midpoints": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "Include planetary midpoint lines",
          "title": "Include Midpoints"
        },
        "include_parans": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "Include parans (latitude crossings)",
          "title": "Include Parans"
        },
        "line_types": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "maxItems": 16,
              "type": "array"
            }
          ],
          "description": "Line types to include. Supported: MC, IC, AC, DC, ASP. Aliases: POWER -> MC+IC+AC+DC; ASPECT/SPECT -> ASP.",
          "title": "Line Types"
        },
        "paran_lat_cutoff": {
          "anyOf": [
            {
              "format": "double",
              "type": "number"
            }
          ],
          "description": "Maximum absolute latitude (in degrees) for paran crossing points. Crossings whose intersection latitude exceeds this value (north or south) are excluded from the response. When null or omitted, no cutoff is applied (current behavior preserved). Range: 0-90.",
          "title": "Paran Latitude Cutoff"
        },
        "refraction_correction": {
          "anyOf": [
            {
              "type": "boolean"
            }
          ],
          "description": "Apply atmospheric refraction to AC/DC",
          "title": "Refraction Correction"
        },
        "resolution": {
          "anyOf": [
            {
              "type": "integer"
            }
          ],
          "description": "Resolution slices for mapping",
          "title": "Resolution"
        }
      },
      "title": "ACGOptionsRequest",
      "type": "object"
    },
    "TimezoneInput": {
      "additionalProperties": false,
      "description": "Timezone input using IANA names or UTC offsets.",
      "properties": {
        "fold_preference": {
          "description": "Which occurrence to use when the naive local datetime falls in a fall-back fold (a repeated hour): 'earlier' (default — first occurrence) or 'later'. Only meaningful for naive datetimes; the response reports datetime_status=ambiguous_fold either way so the ambiguity can be surfaced to the user.",
          "enum": [
            "earlier",
            "later"
          ],
          "title": "Fold Preference",
          "type": "string"
        },
        "iana_name": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            }
          ],
          "description": "IANA timezone name",
          "title": "Iana Name"
        },
        "time_standard": {
          "description": "How to interpret a naive local datetime when this zone is applied. 'auto' (default): resolve through the historical-correction overlay where one covers the region/era, then IANA tzdata. 'standard': force the zone's standard (non-daylight) offset — for callers who KNOW the recorded time was standard time regardless of what tzdata believes. 'daylight': force standard+1h. Forcing either marks the resolution tz_confidence=client_override. Ignored when the datetime carries its own Z/±HH:MM suffix or when utc_offset is used.",
          "enum": [
            "auto",
            "standard",
            "daylight"
          ],
          "title": "Time Standard",
          "type": "string"
        },
        "utc_offset": {
          "anyOf": [
            {
              "type": "number"
            }
          ],
          "description": "UTC offset in hours",
          "title": "Utc Offset"
        }
      },
      "title": "TimezoneInput",
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/openephemeris-com-acglocal-space-request-payload"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.