Properties
| Name | Type | Description |
|---|---|---|
| report_type | string | |
| chart | object | 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; |
| chart1 | object | 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; |
| chart2 | object | 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; |
| year | integer | |
| spread | string | |
| seed | integernull | |
| name | string | |
| allowReversed | boolean | |
| language | string | |
| whitelabel | object | |
| depth | string | `extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 language |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/astroway-info/json-schema/astroway-info-generate-report-schema.json",
"title": "GenerateReport",
"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/GenerateReport",
"type": "object",
"properties": {
"report_type": {
"type": "string",
"enum": [
"natal",
"transit-yearly",
"synastry",
"business",
"career",
"love",
"money",
"child",
"lal-kitab",
"human-design",
"tarot",
"vedic-kundli"
]
},
"chart": {
"allOf": [
{
"$ref": "#/$defs/ChartInput"
},
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Birth latitude. Required here: the whole document is computed from it."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Birth longitude. Required here: the whole document is computed from it."
}
},
"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."
},
"chart1": {
"allOf": [
{
"$ref": "#/$defs/ChartInput"
},
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Birth latitude. Required here: the whole document is computed from it."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Birth longitude. Required here: the whole document is computed from it."
}
},
"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."
},
"chart2": {
"allOf": [
{
"$ref": "#/$defs/ChartInput"
},
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Birth latitude. Required here: the whole document is computed from it."
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Birth longitude. Required here: the whole document is computed from it."
}
},
"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."
},
"year": {
"type": "integer",
"minimum": 1900,
"maximum": 2100
},
"spread": {
"type": "string",
"maxLength": 64
},
"seed": {
"type": [
"integer",
"null"
]
},
"name": {
"type": "string",
"maxLength": 100
},
"allowReversed": {
"type": "boolean"
},
"language": {
"type": "string",
"enum": [
"uk",
"en",
"de",
"ru",
"pl",
"es",
"pt",
"hi",
"fr",
"ko",
"it",
"ja",
"id",
"tr",
"nl",
"ro",
"cs",
"vi",
"ar",
"el",
"hu"
]
},
"whitelabel": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"companyName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"companyUrl": {
"type": "string",
"format": "uri"
},
"companyEmail": {
"type": "string",
"format": "email"
},
"companyMobile": {
"type": "string",
"maxLength": 40
},
"companyBio": {
"type": "string",
"maxLength": 500
},
"logoUrl": {
"type": "string",
"format": "uri"
},
"frontImage": {
"type": "string",
"format": "uri"
},
"textPrimaryColor": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"textSecondaryColor": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"backgroundColor": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"themeColor": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"description": "Accent colour, used for section heading text and inline emphasis."
},
"headingColor": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$",
"description": "Colour of the divider rule under each section heading (not the heading text, which is themeColor)."
},
"footerText": {
"type": "string",
"maxLength": 200
},
"fontPairing": {
"type": "string",
"enum": [
"serif-sans",
"sans-serif",
"serif-only",
"sans-only",
"system"
]
},
"reportName": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"additionalProperties": false
}
]
},
"depth": {
"type": "string",
"enum": [
"standard",
"extended"
],
"description": "`extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`."
}
},
"required": [
"report_type"
],
"$defs": {
"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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/astroway-info-generate-report"
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.