Raw schema
{
"type": "object",
"properties": {
"person_a": {
"type": "object",
"properties": {
"gender": {
"type": "string",
"enum": [
"male",
"female"
],
"description": "Either \"male\" or \"female\". Required: several koots (varna, vashya, gana, bhakoot) are scored asymmetrically between the two charts under the classical rules."
},
"birth_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Birth date in the Gregorian calendar as YYYY-MM-DD, e.g. 1992-03-14. Years 1200-2400 only, and it must be a real calendar date (2023-02-29 is rejected)."
},
"birth_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Birth time on the local clock at the birth place, HH:MM in 24-hour format (00:00-23:59), e.g. 06:45 or 18:20. Not UTC. Required and not defaulted: the ascendant moves about one degree every four minutes, so a guessed time gives a guessed chart."
},
"place": {
"description": "Place as free text, \"City, State, Country\" -- e.g. \"Jaipur, Rajasthan, India\". Preferred input: it is geocoded to coordinates and an IANA timezone server-side, and any city worldwide works. Omit only if you pass latitude + longitude + timezone instead.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"latitude": {
"description": "Latitude in decimal degrees, -90 to 90, north positive (Delhi = 28.6139). Use only when `place` is omitted, and then longitude and timezone are required too.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"description": "Longitude in decimal degrees, -180 to 180, east positive (Delhi = 77.2090). Use only when `place` is omitted.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"timezone": {
"description": "IANA timezone name, e.g. \"Asia/Kolkata\" or \"America/New_York\" (never an offset like \"+05:30\"). Required when latitude/longitude are used; ignored when `place` is given.",
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"gender",
"birth_date",
"birth_time"
],
"description": "First person: gender plus birth date, birth time and place (or coordinates + timezone)."
},
"person_b": {
"type": "object",
"properties": {
"gender": {
"type": "string",
"enum": [
"male",
"female"
],
"description": "Either \"male\" or \"female\". Required: several koots (varna, vashya, gana, bhakoot) are scored asymmetrically between the two charts under the classical rules."
},
"birth_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Birth date in the Gregorian calendar as YYYY-MM-DD, e.g. 1992-03-14. Years 1200-2400 only, and it must be a real calendar date (2023-02-29 is rejected)."
},
"birth_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Birth time on the local clock at the birth place, HH:MM in 24-hour format (00:00-23:59), e.g. 06:45 or 18:20. Not UTC. Required and not defaulted: the ascendant moves about one degree every four minutes, so a guessed time gives a guessed chart."
},
"place": {
"description": "Place as free text, \"City, State, Country\" -- e.g. \"Jaipur, Rajasthan, India\". Preferred input: it is geocoded to coordinates and an IANA timezone server-side, and any city worldwide works. Omit only if you pass latitude + longitude + timezone instead.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"latitude": {
"description": "Latitude in decimal degrees, -90 to 90, north positive (Delhi = 28.6139). Use only when `place` is omitted, and then longitude and timezone are required too.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"description": "Longitude in decimal degrees, -180 to 180, east positive (Delhi = 77.2090). Use only when `place` is omitted.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"timezone": {
"description": "IANA timezone name, e.g. \"Asia/Kolkata\" or \"America/New_York\" (never an offset like \"+05:30\"). Required when latitude/longitude are used; ignored when `place` is given.",
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"gender",
"birth_date",
"birth_time"
],
"description": "Second person: same fields as person_a. Their birth place may differ from person_a's."
}
},
"required": [
"person_a",
"person_b"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}