astroway-info · Schema

BiWheelRequest

AstrologyHoroscopeNatalChartUkrainianOnlinePortal
View JSON Schema on GitHub

JSON Schema

astroway-info-bi-wheel-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/astroway-info/json-schema/astroway-info-bi-wheel-request-schema.json",
  "title": "BiWheelRequest",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/astroway-info-v1-openapi.json#/components/schemas/BiWheelRequest",
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "natal": {
          "$ref": "#/$defs/ChartInput"
        },
        "outer": {
          "$ref": "#/$defs/ChartInput"
        },
        "options": {
          "type": "object",
          "properties": {
            "size": {
              "type": "integer",
              "minimum": 200,
              "maximum": 2000
            },
            "theme": {
              "type": "string",
              "enum": [
                "light",
                "dark",
                "console",
                "css"
              ],
              "description": "css paints every colour as var(--aw-<role>, <light colour>), so the page that inlines the SVG can recolour it with CSS custom properties (--aw-chart-bg, --aw-fg, --aw-muted, --aw-ring, --aw-houses-fill, --aw-benefic, --aw-malefic, --aw-aspect-harmonious, --aw-aspect-tense, --aw-aspect-neutral, --aw-aspect-minor, --aw-aspect-quintile, --aw-moon-shadow, --aw-moon-light, --aw-cycle-physical, --aw-cycle-emotional, --aw-cycle-intellectual). With none set it looks exactly like light. Inside an <img> the variables cannot be set, so it stays light. The Western wheels and the aspect grid then also carry stable aw-* classes, and each planet is a <g> with data-planet and data-label, each aspect line has data-a and data-b; see the @astroway/render changelog for the list."
            },
            "showAspects": {
              "type": "boolean"
            },
            "showRetrograde": {
              "type": "boolean"
            },
            "title": {
              "type": "string",
              "maxLength": 120
            },
            "format": {
              "type": "string",
              "enum": [
                "svg",
                "json"
              ],
              "default": "json"
            },
            "bodies": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Sun",
                  "Moon",
                  "Mercury",
                  "Venus",
                  "Mars",
                  "Jupiter",
                  "Saturn",
                  "Uranus",
                  "Neptune",
                  "Pluto",
                  "North Node",
                  "South Node",
                  "Chiron",
                  "Lilith"
                ]
              },
              "minItems": 1,
              "maxItems": 14
            },
            "labels": {
              "type": "object",
              "properties": {
                "asc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "dsc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "mc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "ic": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "desc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2000
                },
                "bodies": {
                  "type": "object",
                  "properties": {
                    "Sun": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Moon": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Mercury": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Venus": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Mars": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Jupiter": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Saturn": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Uranus": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Neptune": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Pluto": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "North Node": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "South Node": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Chiron": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Lilith": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    }
                  }
                },
                "signs": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  }
                },
                "retrograde": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "additionalProperties": false,
              "description": "Your own words in place of the English the image would otherwise carry: the ASC/DSC/MC/IC axis labels, the SVG <title> and <desc> read by screen readers, and the planet and sign names plus the word for retrograde in each planet's data-label (theme css). bodies is keyed by the English name, signs lists twelve names from Aries. Nothing is translated for you; absent keys keep the English."
            },
            "outerLabel": {
              "type": "string",
              "maxLength": 40,
              "default": "TR"
            },
            "crossAspects": {
              "type": "boolean",
              "description": "Draws the aspects between the two charts as dashed chords (the same set POST /synastry returns as crossAspects), skipping pairs with a body that is not drawn. In theme css each chord has class aw-cross-aspect, data-a (inner planet) and data-b (outer planet, b- prefix)."
            }
          }
        }
      },
      "required": [
        "natal",
        "outer"
      ]
    },
    {
      "$ref": "#/$defs/BiWheelFromChart"
    }
  ],
  "$defs": {
    "BiWheelFromChart": {
      "type": "object",
      "properties": {
        "natal": {
          "type": "object",
          "properties": {
            "chart": {
              "$ref": "#/$defs/ChartData"
            }
          },
          "required": [
            "chart"
          ],
          "additionalProperties": false
        },
        "outer": {
          "type": "object",
          "properties": {
            "chart": {
              "$ref": "#/$defs/ChartData"
            }
          },
          "required": [
            "chart"
          ],
          "additionalProperties": false
        },
        "options": {
          "type": "object",
          "properties": {
            "size": {
              "type": "integer",
              "minimum": 200,
              "maximum": 2000
            },
            "theme": {
              "type": "string",
              "enum": [
                "light",
                "dark",
                "console",
                "css"
              ],
              "description": "css paints every colour as var(--aw-<role>, <light colour>), so the page that inlines the SVG can recolour it with CSS custom properties (--aw-chart-bg, --aw-fg, --aw-muted, --aw-ring, --aw-houses-fill, --aw-benefic, --aw-malefic, --aw-aspect-harmonious, --aw-aspect-tense, --aw-aspect-neutral, --aw-aspect-minor, --aw-aspect-quintile, --aw-moon-shadow, --aw-moon-light, --aw-cycle-physical, --aw-cycle-emotional, --aw-cycle-intellectual). With none set it looks exactly like light. Inside an <img> the variables cannot be set, so it stays light. The Western wheels and the aspect grid then also carry stable aw-* classes, and each planet is a <g> with data-planet and data-label, each aspect line has data-a and data-b; see the @astroway/render changelog for the list."
            },
            "showAspects": {
              "type": "boolean"
            },
            "showRetrograde": {
              "type": "boolean"
            },
            "title": {
              "type": "string",
              "maxLength": 120
            },
            "format": {
              "type": "string",
              "enum": [
                "svg",
                "json"
              ],
              "default": "json"
            },
            "bodies": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Sun",
                  "Moon",
                  "Mercury",
                  "Venus",
                  "Mars",
                  "Jupiter",
                  "Saturn",
                  "Uranus",
                  "Neptune",
                  "Pluto",
                  "North Node",
                  "South Node",
                  "Chiron",
                  "Lilith"
                ]
              },
              "minItems": 1,
              "maxItems": 14
            },
            "labels": {
              "type": "object",
              "properties": {
                "asc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "dsc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "mc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "ic": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "desc": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2000
                },
                "bodies": {
                  "type": "object",
                  "properties": {
                    "Sun": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Moon": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Mercury": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Venus": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Mars": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Jupiter": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Saturn": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Uranus": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Neptune": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Pluto": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "North Node": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "South Node": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Chiron": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "Lilith": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    }
                  }
                },
                "signs": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  }
                },
                "retrograde": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "additionalProperties": false,
              "description": "Your own words in place of the English the image would otherwise carry: the ASC/DSC/MC/IC axis labels, the SVG <title> and <desc> read by screen readers, and the planet and sign names plus the word for retrograde in each planet's data-label (theme css). bodies is keyed by the English name, signs lists twelve names from Aries. Nothing is translated for you; absent keys keep the English."
            },
            "outerLabel": {
              "type": "string",
              "maxLength": 40,
              "default": "TR"
            },
            "crossAspects": {
              "type": "boolean",
              "description": "Draws the aspects between the two charts as dashed chords (the same set POST /synastry returns as crossAspects), skipping pairs with a body that is not drawn. In theme css each chord has class aw-cross-aspect, data-a (inner planet) and data-b (outer planet, b- prefix)."
            }
          }
        }
      },
      "required": [
        "natal",
        "outer"
      ],
      "additionalProperties": false,
      "description": "Two charts you already hold, drawn as is: no birth data, 1 credit. Both must be charts."
    },
    "ChartData": {
      "type": "object",
      "properties": {
        "planets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": -1,
                "maximum": 100000
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "longitude": {
                "type": "number",
                "minimum": 0,
                "maximum": 360
              },
              "isRetrograde": {
                "type": "boolean"
              },
              "speedLong": {
                "type": "number",
                "minimum": -30,
                "maximum": 30
              }
            },
            "required": [
              "id",
              "name",
              "longitude"
            ],
            "additionalProperties": {
              "nullable": true
            }
          },
          "minItems": 1,
          "maxItems": 30
        },
        "houses": {
          "type": "object",
          "properties": {
            "cusps": {
              "type": "array",
              "items": {
                "type": "number",
                "minimum": 0,
                "maximum": 360
              }
            },
            "ascendant": {
              "type": "number",
              "minimum": 0,
              "maximum": 360
            },
            "mc": {
              "type": "number",
              "minimum": 0,
              "maximum": 360
            }
          },
          "required": [
            "cusps",
            "ascendant",
            "mc"
          ],
          "additionalProperties": {
            "nullable": true
          }
        },
        "aspects": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "planet1": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "planet2": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                  },
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": {
                      "nullable": true
                    }
                  }
                ]
              },
              "orb": {
                "type": "number",
                "minimum": 0,
                "maximum": 30
              }
            },
            "required": [
              "planet1",
              "planet2",
              "type"
            ],
            "additionalProperties": {
              "nullable": true
            }
          },
          "maxItems": 300
        }
      },
      "required": [
        "planets",
        "houses"
      ],
      "additionalProperties": {
        "nullable": true
      },
      "description": "The data object of a POST /v1/chart response, sent back to be drawn without computing the chart again (1 credit instead of 10). Extra fields are ignored; planets (1 to 30, longitude 0 to 360), houses (exactly 12 cusps, ascendant, mc) and aspects are read."
    },
    "ChartInput": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "time": {
          "type": "string",
          "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$"
        },
        "timezoneOffset": {
          "type": [
            "number",
            "null"
          ],
          "minimum": -14,
          "maximum": 14,
          "default": 0,
          "description": "Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent."
        },
        "timezone": {
          "type": "string",
          "description": "IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known."
        },
        "latitude": {
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "houseSystem": {
          "type": "string",
          "enum": [
            "P",
            "K",
            "R",
            "C",
            "E",
            "W",
            "B",
            "M",
            "O",
            "A",
            "T",
            "V",
            "D",
            "F",
            "G",
            "H",
            "I",
            "i",
            "L",
            "N",
            "Q",
            "S",
            "U",
            "X",
            "Y"
          ],
          "default": "P"
        },
        "name": {
          "type": "string",
          "default": ""
        },
        "city": {
          "type": "string",
          "default": ""
        },
        "zodiacType": {
          "type": "string",
          "enum": [
            "tropical",
            "sidereal"
          ]
        },
        "ayanamsaId": {
          "type": [
            "number",
            "null"
          ]
        },
        "ayanamsa": {
          "type": "string",
          "enum": [
            "fagan-bradley",
            "lahiri",
            "de-luce",
            "raman",
            "krishnamurti",
            "kp",
            "yukteshwar",
            "jn-bhasin",
            "true-citra",
            "djwhal-khul"
          ],
          "description": "Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either."
        },
        "cosmogram": {
          "type": "boolean"
        }
      },
      "required": [
        "date",
        "time",
        "latitude",
        "longitude"
      ],
      "additionalProperties": {
        "nullable": true
      },
      "description": "Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems."
    }
  }
}

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/astroway-info-bi-wheel-request"
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.