{
  "openapi": "3.1.0",
  "info": {
    "title": "Rajvidya Astro API",
    "version": "1.0.0",
    "description": "Authentic Vedic astrology analysis via REST API",
    "termsOfService": "https://www.rajvidya.com/terms/",
    "contact": {
      "name": "Rajvidya Support",
      "email": "support@rajvidya.com"
    },
    "license": {
      "name": "Proprietary"
    }
  },
  "servers": [
    {
      "url": "https://rajvidya.com",
      "description": "Production"
    },
    {
      "url": "http://localhost:8000",
      "description": "Development"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "API key issued to your developer account"
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "paths": {
    "/api/v1/charts/": {
      "get": {
        "summary": "Create and read the birth records every other endpoint refers to.",
        "description": "**Scope:** `charts`\n\n**Credits:** 1.0 per call\n\nCreate and read the birth records every other endpoint refers to.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "charts"
        ],
        "operationId": "get_charts_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": 2317,
                  "name": "Test Person",
                  "is_calculated": true
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Create and read the birth records every other endpoint refers to.",
        "description": "**Scope:** `charts`\n\n**Credits:** 1.0 per call\n\nCreate and read the birth records every other endpoint refers to.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "charts"
        ],
        "operationId": "post_charts_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Test Person"
                  },
                  "gender": {
                    "type": "string",
                    "example": "MALE"
                  },
                  "date_of_birth": {
                    "type": "string",
                    "example": "1990-05-15"
                  },
                  "time_of_birth": {
                    "type": "string",
                    "example": "14:30"
                  },
                  "place_of_birth": {
                    "type": "string",
                    "example": "Pune, India"
                  },
                  "latitude": {
                    "type": "number",
                    "example": 18.52
                  },
                  "longitude": {
                    "type": "number",
                    "example": 73.85
                  },
                  "timezone_offset": {
                    "type": "number",
                    "example": 5.5
                  }
                },
                "required": [
                  "name",
                  "gender",
                  "date_of_birth",
                  "time_of_birth",
                  "place_of_birth",
                  "latitude",
                  "longitude",
                  "timezone_offset"
                ]
              },
              "example": {
                "name": "Test Person",
                "gender": "MALE",
                "date_of_birth": "1990-05-15",
                "time_of_birth": "14:30",
                "place_of_birth": "Pune, India",
                "latitude": 18.52,
                "longitude": 73.85,
                "timezone_offset": 5.5
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": 2317,
                  "name": "Test Person",
                  "is_calculated": true
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/kundli/": {
      "get": {
        "summary": "Full birth chart: planets, houses, vargas, strengths and yogas.",
        "description": "**Scope:** `kundli`\n\n**Credits:** 1.0 per call\n\nFull birth chart: planets, houses, vargas, strengths and yogas.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "kundli"
        ],
        "operationId": "get_kundli_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "chart_id": 2317,
                  "ascendant": {
                    "sign": "LIBRA",
                    "degree": 12.4
                  },
                  "planets": [
                    {
                      "name": "SUN",
                      "sign": "TAURUS",
                      "house": 8,
                      "degree": 24.1,
                      "nakshatra": "MRIGASHIRA",
                      "retrograde": false
                    }
                  ],
                  "houses": [
                    {
                      "number": 1,
                      "sign": "LIBRA",
                      "lord": "VENUS"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/dasha/": {
      "get": {
        "summary": "Vimshottari mahadasha, antardasha and pratyantardasha timelines.",
        "description": "**Scope:** `dasha`\n\n**Credits:** 1.0 per call\n\nVimshottari mahadasha, antardasha and pratyantardasha timelines.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "dasha"
        ],
        "operationId": "get_dasha_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "chart_id": 2317,
                  "current": {
                    "mahadasha": "VENUS",
                    "antardasha": "MERCURY",
                    "ends_on": "2027-03-14"
                  },
                  "timeline": [
                    {
                      "lord": "VENUS",
                      "start": "2018-06-02",
                      "end": "2038-06-02"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/doshas/": {
      "get": {
        "summary": "Manglik, Kaal Sarp, Pitra and Sade Sati detection with severity.",
        "description": "**Scope:** `doshas`\n\n**Credits:** 2.0 per call\n\nManglik, Kaal Sarp, Pitra and Sade Sati detection with severity.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "doshas"
        ],
        "operationId": "get_doshas_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "manglik": {
                    "present": true,
                    "severity": "MEDIUM"
                  },
                  "kaal_sarp": {
                    "present": false
                  },
                  "sade_sati": {
                    "phase": "PEAK",
                    "ends_on": "2027-01-18"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/rashifal/": {
      "get": {
        "summary": "Moon-sign horoscope driven by live transits.",
        "description": "**Scope:** `horoscope`\n\n**Credits:** 1.0 per call\n\nMoon-sign horoscope driven by live transits.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "horoscope"
        ],
        "operationId": "get_rashifal_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "period": "daily",
                  "date": "2026-08-14",
                  "signs": [
                    "ARIES"
                  ],
                  "predictions": {
                    "ARIES": {
                      "general": "...",
                      "career": "..."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/today/": {
      "get": {
        "summary": "One call for the day: transits, panchang and personalised guidance.",
        "description": "**Scope:** `horoscope`\n\n**Credits:** 1.0 per call\n\nOne call for the day: transits, panchang and personalised guidance.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "horoscope"
        ],
        "operationId": "get_today_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/cosmic-planner/": {
      "get": {
        "summary": "Day-by-day favourability scoring for planning ahead.",
        "description": "**Scope:** `horoscope`\n\n**Credits:** 2.0 per call\n\nDay-by-day favourability scoring for planning ahead.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "horoscope"
        ],
        "operationId": "get_cosmic-planner_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "days": [
                    {
                      "date": "2026-08-20",
                      "score": 74,
                      "note": "..."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/festivals/": {
      "get": {
        "summary": "Regional Hindu festival dates with observance rules.",
        "description": "**Scope:** `panchang`\n\n**Credits:** 1.0 per call\n\nRegional Hindu festival dates with observance rules.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "panchang"
        ],
        "operationId": "get_festivals_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "festivals": [
                    {
                      "name": "Ganesh Chaturthi",
                      "date": "2026-09-14",
                      "region": "MAHARASHTRA"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/choghadiya/": {
      "get": {
        "summary": "Auspicious and inauspicious time bands for any date and place.",
        "description": "**Scope:** `panchang`\n\n**Credits:** 1.0 per call\n\nAuspicious and inauspicious time bands for any date and place.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "panchang"
        ],
        "operationId": "get_choghadiya_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "date": "2026-08-20",
                  "day": [
                    {
                      "name": "AMRIT",
                      "start": "06:12",
                      "end": "07:48",
                      "quality": "AUSPICIOUS"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/panchang/share-image/": {
      "get": {
        "summary": "Rendered daily panchang card, ready to post.",
        "description": "**Scope:** `panchang`\n\n**Credits:** 1.0 per call\n\nRendered daily panchang card, ready to post.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "panchang"
        ],
        "operationId": "get_panchang_share-image_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "image_url": "https://rajvidya.com/media/panchang/card-2317.png"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/muhurta/marriage/": {
      "post": {
        "summary": "Ranked wedding dates screened against both charts.",
        "description": "**Scope:** `muhurta`\n\n**Credits:** 2.0 per call\n\nRanked wedding dates screened against both charts.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "muhurta"
        ],
        "operationId": "post_muhurta_marriage_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 2317
                  },
                  "partner_chart_id": {
                    "type": "integer",
                    "example": 2318
                  },
                  "date_from": {
                    "type": "string",
                    "example": "2026-11-01"
                  },
                  "date_to": {
                    "type": "string",
                    "example": "2027-02-28"
                  },
                  "limit": {
                    "type": "integer",
                    "example": 10
                  }
                },
                "required": [
                  "chart_id",
                  "partner_chart_id",
                  "date_from",
                  "date_to",
                  "limit"
                ]
              },
              "example": {
                "chart_id": 2317,
                "partner_chart_id": 2318,
                "date_from": "2026-11-01",
                "date_to": "2027-02-28",
                "limit": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "muhurtas": [
                    {
                      "date": "2026-11-23",
                      "window": "10:40\u201312:05",
                      "score": 82
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/gochar/": {
      "get": {
        "summary": "Current planetary transits over the natal chart with effects.",
        "description": "**Scope:** `transit`\n\n**Credits:** 1.0 per call\n\nCurrent planetary transits over the natal chart with effects.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "transit"
        ],
        "operationId": "get_gochar_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "transits": [
                    {
                      "planet": "SATURN",
                      "house": 7,
                      "effect": "..."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/live-sky/": {
      "get": {
        "summary": "Real-time planetary positions and a rendered sky chart.",
        "description": "**Scope:** `transit`\n\n**Credits:** 1.0 per call\n\nReal-time planetary positions and a rendered sky chart.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "transit"
        ],
        "operationId": "get_live-sky_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "timestamp": "2026-08-14T09:20:00+05:30",
                  "planets": [
                    {
                      "name": "MOON",
                      "sign": "PISCES",
                      "degree": 8.2
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/numerology/dashboard/": {
      "get": {
        "summary": "Chaldean and Vedic numbers from name and date of birth.",
        "description": "**Scope:** `numerology`\n\n**Credits:** 1.0 per call\n\nChaldean and Vedic numbers from name and date of birth.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "numerology"
        ],
        "operationId": "get_numerology_dashboard_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "driver": 6,
                  "conductor": 4,
                  "kua": 2,
                  "lo_shu_grid": {
                    "1": 1,
                    "5": 2,
                    "9": 1
                  },
                  "lucky_numbers": [
                    6,
                    15,
                    24
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/numerology/pro/": {
      "post": {
        "summary": "Name correction, business-name scoring and lucky-number analysis.",
        "description": "**Scope:** `numerology`\n\n**Credits:** 2.0 per call\n\nName correction, business-name scoring and lucky-number analysis.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "numerology"
        ],
        "operationId": "post_numerology_pro_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/baby-names/": {
      "post": {
        "summary": "Nakshatra-correct name suggestions by syllable.",
        "description": "**Scope:** `numerology`\n\n**Credits:** 1.0 per call\n\nNakshatra-correct name suggestions by syllable.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "numerology"
        ],
        "operationId": "post_baby-names_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 2317
                  },
                  "gender": {
                    "type": "string",
                    "example": "FEMALE"
                  }
                },
                "required": [
                  "chart_id",
                  "gender"
                ]
              },
              "example": {
                "chart_id": 2317,
                "gender": "FEMALE"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "nakshatra": "ROHINI",
                  "syllables": [
                    "O",
                    "VA",
                    "VI",
                    "VU"
                  ],
                  "names": [
                    {
                      "name": "Vaishnavi",
                      "meaning": "..."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/biorhythm/": {
      "get": {
        "summary": "Physical, emotional and intellectual cycles.",
        "description": "**Scope:** `numerology`\n\n**Credits:** 1.0 per call\n\nPhysical, emotional and intellectual cycles.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "numerology"
        ],
        "operationId": "get_biorhythm_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "physical": 0.72,
                  "emotional": -0.31,
                  "intellectual": 0.94
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/compatibility/": {
      "post": {
        "summary": "Twenty-plus module compatibility, far past the standard 36-point check.",
        "description": "**Scope:** `matching`\n\n**Credits:** 6.0 per call\n\nTwenty-plus module compatibility, far past the standard 36-point check.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "matching"
        ],
        "operationId": "post_compatibility_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 2317
                  },
                  "partner_chart_id": {
                    "type": "integer",
                    "example": 2318
                  }
                },
                "required": [
                  "chart_id",
                  "partner_chart_id"
                ]
              },
              "example": {
                "chart_id": 2317,
                "partner_chart_id": 2318
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "score": 27.5,
                  "max_score": 36,
                  "verdict": "GOOD",
                  "ashtakoota": {
                    "varna": 1,
                    "vashya": 2,
                    "tara": 3,
                    "yoni": 3,
                    "graha_maitri": 5,
                    "gana": 6,
                    "bhakoot": 0,
                    "nadi": 8
                  },
                  "manglik": {
                    "boy": false,
                    "girl": true,
                    "cancelled": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/matching/": {
      "post": {
        "summary": "Full narrative matching report, in any supported language.",
        "description": "**Scope:** `matching`\n\n**Credits:** 6.0 per call\n\nFull narrative matching report, in any supported language.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "matching"
        ],
        "operationId": "post_reports_matching_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/analyze/": {
      "post": {
        "summary": "Scored, severity-ranked Vastu audit of a floor plan with remedies.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 4.0 per call\n\nScored, severity-ranked Vastu audit of a floor plan with remedies.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "post_vastu_analyze_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "facing": {
                    "type": "string",
                    "example": "NORTH"
                  },
                  "rooms": {
                    "example": [
                      {
                        "name": "kitchen",
                        "zone": "SE"
                      },
                      {
                        "name": "master_bedroom",
                        "zone": "SW"
                      }
                    ]
                  }
                },
                "required": [
                  "facing",
                  "rooms"
                ]
              },
              "example": {
                "facing": "NORTH",
                "rooms": [
                  {
                    "name": "kitchen",
                    "zone": "SE"
                  },
                  {
                    "name": "master_bedroom",
                    "zone": "SW"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "score": 68,
                  "defects": [
                    {
                      "zone": "NE",
                      "severity": "HIGH",
                      "issue": "toilet in NE",
                      "remedy": "..."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/surroundings/": {
      "post": {
        "summary": "Directional analysis of roads, water and structures around a plot.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 2.0 per call\n\nDirectional analysis of roads, water and structures around a plot.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "post_vastu_surroundings_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "roads": [
                    {
                      "direction": "NORTH",
                      "effect": "AUSPICIOUS"
                    }
                  ],
                  "water_bodies": [
                    {
                      "direction": "NE",
                      "effect": "AUSPICIOUS"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/astro/": {
      "post": {
        "summary": "Vastu read against the occupant birth chart.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 2.0 per call\n\nVastu read against the occupant birth chart.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "post_vastu_astro_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "compatibility": 68,
                  "notes": [
                    "..."
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/muhurta/": {
      "get": {
        "summary": "Auspicious timing for construction, entry and renovation.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 2.0 per call\n\nAuspicious timing for construction, entry and renovation.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "get_vastu_muhurta_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "griha_pravesh": [
                    {
                      "date": "2026-11-09",
                      "window": "07:10\u201308:45"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/catalog/": {
      "get": {
        "summary": "Reference list of zones, defects and remedies. Free.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 0.0 per call\n\nReference list of zones, defects and remedies. Free.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "get_vastu_catalog_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "zones": [
                    "N",
                    "NE",
                    "E",
                    "SE",
                    "S",
                    "SW",
                    "W",
                    "NW"
                  ],
                  "defects": [
                    {
                      "code": "NE_TOILET",
                      "severity": "HIGH"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/vastu/compare/": {
      "post": {
        "summary": "Side-by-side scoring of two properties.",
        "description": "**Scope:** `vastu`\n\n**Credits:** 2.0 per call\n\nSide-by-side scoring of two properties.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "vastu"
        ],
        "operationId": "post_vastu_compare_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "properties": [
                    {
                      "id": 41,
                      "score": 68
                    },
                    {
                      "id": 42,
                      "score": 74
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/remedies/prescription/": {
      "get": {
        "summary": "Gemstone, mantra, charity and ritual remedies matched to the chart.",
        "description": "**Scope:** `remedies`\n\n**Credits:** 2.0 per call\n\nGemstone, mantra, charity and ritual remedies matched to the chart.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "remedies"
        ],
        "operationId": "get_remedies_prescription_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer"
            },
            "description": "Birth chart ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "gemstones": [
                    {
                      "stone": "RUBY",
                      "weight_ratti": 5,
                      "finger": "ring"
                    }
                  ],
                  "mantras": [
                    {
                      "deity": "SURYA",
                      "count": 7000
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/translate/": {
      "post": {
        "summary": "POST a batch of strings; get them back in any of 20 languages, 12 of them Indian. Jyotish terms are preserved rather than literally translated.",
        "description": "**Scope:** `translate`\n\n**Credits:** 1.0 per call\n\nPOST a batch of strings; get them back in any of 20 languages, 12 of them Indian. Jyotish terms are preserved rather than literally translated.",
        "tags": [
          "translate"
        ],
        "operationId": "post_translate_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "texts": {
                    "example": [
                      "Saturn is transiting your seventh house"
                    ]
                  },
                  "target_lang": {
                    "type": "string",
                    "example": "mr"
                  }
                },
                "required": [
                  "texts",
                  "target_lang"
                ]
              },
              "example": {
                "texts": [
                  "Saturn is transiting your seventh house"
                ],
                "target_lang": "mr"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "translations": [
                    "\u0936\u0928\u093f \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u0938\u093e\u0924\u0935\u094d\u092f\u093e \u0918\u0930\u093e\u0924\u0942\u0928 \u092d\u094d\u0930\u092e\u0923 \u0915\u0930\u0924 \u0906\u0939\u0947"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/varshafal/": {
      "get": {
        "summary": "Annual horoscope on the Tajika system \u2014 a fresh reading each year.",
        "description": "**Scope:** `varshafal`\n\n**Credits:** 0 per call\n\nAnnual horoscope on the Tajika system \u2014 a fresh reading each year.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "varshafal"
        ],
        "operationId": "get_varshafal_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Stored birth chart ID. Optional here \u2014 send date_of_birth, time_of_birth, place_of_birth, latitude, longitude and timezone_offset instead to calculate without storing anything."
          },
          {
            "name": "date_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Use instead of chart_id."
          },
          {
            "name": "time_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "HH:MM or HH:MM:SS, local birth time."
          },
          {
            "name": "place_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free-text place name."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, north positive."
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, east positive."
          },
          {
            "name": "timezone_offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Hours from UTC at birth, e.g. 5.5."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "varshafal",
                  "chart_id": 2317,
                  "data": {
                    "year": 2026,
                    "muntha_house": 5,
                    "varshesh": "MARS",
                    "house_predictions": {
                      "1": {
                        "prediction": "..."
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Annual horoscope on the Tajika system \u2014 a fresh reading each year.",
        "description": "**Scope:** `varshafal`\n\n**Credits:** 0 per call\n\nAnnual horoscope on the Tajika system \u2014 a fresh reading each year.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "varshafal"
        ],
        "operationId": "post_varshafal_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "varshafal",
                  "chart_id": 2317,
                  "data": {
                    "year": 2026,
                    "muntha_house": 5,
                    "varshesh": "MARS",
                    "house_predictions": {
                      "1": {
                        "prediction": "..."
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/kp/": {
      "get": {
        "summary": "Krishnamurti Paddhati sub-lord analysis and ruling planets.",
        "description": "**Scope:** `kp`\n\n**Credits:** 0 per call\n\nKrishnamurti Paddhati sub-lord analysis and ruling planets.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "kp"
        ],
        "operationId": "get_kp_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Stored birth chart ID. Optional here \u2014 send date_of_birth, time_of_birth, place_of_birth, latitude, longitude and timezone_offset instead to calculate without storing anything."
          },
          {
            "name": "date_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Use instead of chart_id."
          },
          {
            "name": "time_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "HH:MM or HH:MM:SS, local birth time."
          },
          {
            "name": "place_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free-text place name."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, north positive."
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, east positive."
          },
          {
            "name": "timezone_offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Hours from UTC at birth, e.g. 5.5."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Krishnamurti Paddhati sub-lord analysis and ruling planets.",
        "description": "**Scope:** `kp`\n\n**Credits:** 0 per call\n\nKrishnamurti Paddhati sub-lord analysis and ruling planets.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "kp"
        ],
        "operationId": "post_kp_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/jaimini/": {
      "get": {
        "summary": "Chara karakas, arudha padas and Jaimini rashi dasha.",
        "description": "**Scope:** `jaimini`\n\n**Credits:** 0 per call\n\nChara karakas, arudha padas and Jaimini rashi dasha.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "jaimini"
        ],
        "operationId": "get_jaimini_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Stored birth chart ID. Optional here \u2014 send date_of_birth, time_of_birth, place_of_birth, latitude, longitude and timezone_offset instead to calculate without storing anything."
          },
          {
            "name": "date_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Use instead of chart_id."
          },
          {
            "name": "time_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "HH:MM or HH:MM:SS, local birth time."
          },
          {
            "name": "place_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free-text place name."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, north positive."
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, east positive."
          },
          {
            "name": "timezone_offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Hours from UTC at birth, e.g. 5.5."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "jaimini",
                  "data": {
                    "karakas": {
                      "SUN": {
                        "rank": 8
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Chara karakas, arudha padas and Jaimini rashi dasha.",
        "description": "**Scope:** `jaimini`\n\n**Credits:** 0 per call\n\nChara karakas, arudha padas and Jaimini rashi dasha.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "jaimini"
        ],
        "operationId": "post_jaimini_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "jaimini",
                  "data": {
                    "karakas": {
                      "SUN": {
                        "rank": 8
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/marriage/": {
      "get": {
        "summary": "Marriage prospects, timing windows and spouse indications.",
        "description": "**Scope:** `marriage`\n\n**Credits:** 0 per call\n\nMarriage prospects, timing windows and spouse indications.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "marriage"
        ],
        "operationId": "get_marriage_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Stored birth chart ID. Optional here \u2014 send date_of_birth, time_of_birth, place_of_birth, latitude, longitude and timezone_offset instead to calculate without storing anything."
          },
          {
            "name": "date_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Use instead of chart_id."
          },
          {
            "name": "time_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "HH:MM or HH:MM:SS, local birth time."
          },
          {
            "name": "place_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free-text place name."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, north positive."
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, east positive."
          },
          {
            "name": "timezone_offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Hours from UTC at birth, e.g. 5.5."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "marriage",
                  "data": {
                    "analysis": {
                      "overall_score": 62
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Marriage prospects, timing windows and spouse indications.",
        "description": "**Scope:** `marriage`\n\n**Credits:** 0 per call\n\nMarriage prospects, timing windows and spouse indications.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "marriage"
        ],
        "operationId": "post_marriage_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "marriage",
                  "data": {
                    "analysis": {
                      "overall_score": 62
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/childbirth/": {
      "get": {
        "summary": "Progeny indications and favourable periods for conception.",
        "description": "**Scope:** `childbirth`\n\n**Credits:** 0 per call\n\nProgeny indications and favourable periods for conception.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "childbirth"
        ],
        "operationId": "get_childbirth_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "chart_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Stored birth chart ID. Optional here \u2014 send date_of_birth, time_of_birth, place_of_birth, latitude, longitude and timezone_offset instead to calculate without storing anything."
          },
          {
            "name": "date_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Use instead of chart_id."
          },
          {
            "name": "time_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "HH:MM or HH:MM:SS, local birth time."
          },
          {
            "name": "place_of_birth",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free-text place name."
          },
          {
            "name": "latitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, north positive."
          },
          {
            "name": "longitude",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Decimal degrees, east positive."
          },
          {
            "name": "timezone_offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Hours from UTC at birth, e.g. 5.5."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "childbirth",
                  "data": {
                    "fertility_score": 19.08
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      },
      "post": {
        "summary": "Progeny indications and favourable periods for conception.",
        "description": "**Scope:** `childbirth`\n\n**Credits:** 0 per call\n\nProgeny indications and favourable periods for conception.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "childbirth"
        ],
        "operationId": "post_childbirth_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "childbirth",
                  "data": {
                    "fertility_score": 19.08
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/prashna/": {
      "post": {
        "summary": "Horary astrology \u2014 an answer from the moment a question is asked.",
        "description": "**Scope:** `prashna`\n\n**Credits:** 0 per call\n\nHorary astrology \u2014 an answer from the moment a question is asked.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "prashna"
        ],
        "operationId": "post_prashna_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "method": {
                    "type": "string",
                    "example": "TIME_BASED"
                  },
                  "question_category": {
                    "type": "string",
                    "example": "Career"
                  },
                  "location": {
                    "example": {
                      "latitude": 18.52,
                      "longitude": 73.85,
                      "timezone": 5.5
                    }
                  }
                },
                "required": [
                  "method",
                  "question_category",
                  "location"
                ]
              },
              "example": {
                "method": "TIME_BASED",
                "question_category": "Career",
                "location": {
                  "latitude": 18.52,
                  "longitude": 73.85,
                  "timezone": 5.5
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "module": "prashna",
                  "method": "TIME_BASED",
                  "data": {
                    "prashna_summary": {
                      "lagna": "SCORPIO"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/": {
      "get": {
        "summary": "Which report modules this key may generate.",
        "description": "**Scope:** `reports`\n\n**Credits:** 0.0 per call\n\nWhich report modules this key may generate.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "reports"
        ],
        "operationId": "get_reports_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "modules": [
                    {
                      "module": "yogas",
                      "path": "/api/v1/reports/yogas/",
                      "credits": 3.0,
                      "available": true
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/usage/": {
      "get": {
        "summary": "Current period usage, quota and scopes.",
        "description": "**Scope:** `account`\n\n**Credits:** 0.0 per call\n\nCurrent period usage, quota and scopes.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "account"
        ],
        "operationId": "get_usage_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "tenant": "Your Company",
                  "period": "2026-08",
                  "credits_used": "55.00",
                  "credits_remaining": "445.00",
                  "monthly_credit_quota": 500
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/catalog/": {
      "get": {
        "summary": "Every endpoint and its credit cost.",
        "description": "**Scope:** `account`\n\n**Credits:** 0.0 per call\n\nEvery endpoint and its credit cost.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "account"
        ],
        "operationId": "get_catalog_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "endpoints": [
                    {
                      "path": "/api/v1/kundli/",
                      "scope": "kundli",
                      "credits": 1.0,
                      "available": true
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/yogas/": {
      "post": {
        "summary": "Raja, Dhana and Arishta yogas present in the chart, with strength and activation timing.",
        "description": "**Scope:** `yogas`\n\n**Credits:** 3.0 per call\n\nRaja, Dhana and Arishta yogas present in the chart, with strength and activation timing.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "yogas"
        ],
        "operationId": "post_reports_yogas_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/doshas/": {
      "post": {
        "summary": "Full dosha report: Manglik, Kaal Sarp, Pitra and Sade Sati with severity and remedies.",
        "description": "**Scope:** `doshas`\n\n**Credits:** 3.0 per call\n\nFull dosha report: Manglik, Kaal Sarp, Pitra and Sade Sati with severity and remedies.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "doshas"
        ],
        "operationId": "post_reports_doshas_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/career/": {
      "post": {
        "summary": "Profession indicators, suitable fields, business-versus-service leaning and timing.",
        "description": "**Scope:** `career`\n\n**Credits:** 4.0 per call\n\nProfession indicators, suitable fields, business-versus-service leaning and timing.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "career"
        ],
        "operationId": "post_reports_career_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/education/": {
      "post": {
        "summary": "Academic strengths, subject suitability and the periods that favour study.",
        "description": "**Scope:** `education`\n\n**Credits:** 4.0 per call\n\nAcademic strengths, subject suitability and the periods that favour study.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "education"
        ],
        "operationId": "post_reports_education_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/skills/": {
      "post": {
        "summary": "Innate aptitudes read through Nadi and divisional charts.",
        "description": "**Scope:** `skills`\n\n**Credits:** 4.0 per call\n\nInnate aptitudes read through Nadi and divisional charts.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "skills"
        ],
        "operationId": "post_reports_skills_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/health/": {
      "post": {
        "summary": "Constitutional tendencies and vulnerable periods, read through Astro-Ayurveda.",
        "description": "**Scope:** `health`\n\n**Credits:** 4.0 per call\n\nConstitutional tendencies and vulnerable periods, read through Astro-Ayurveda.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "health"
        ],
        "operationId": "post_reports_health_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/past_karma/": {
      "post": {
        "summary": "Karmic inheritance and its imprint on this life, from the Moon and the nodes.",
        "description": "**Scope:** `past_karma`\n\n**Credits:** 4.0 per call\n\nKarmic inheritance and its imprint on this life, from the Moon and the nodes.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "past_karma"
        ],
        "operationId": "post_reports_past_karma_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/spirituality/": {
      "post": {
        "summary": "Moksha indicators, spiritual inclination and the practices that suit the chart.",
        "description": "**Scope:** `spirituality`\n\n**Credits:** 4.0 per call\n\nMoksha indicators, spiritual inclination and the practices that suit the chart.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "spirituality"
        ],
        "operationId": "post_reports_spirituality_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/astrocartography/": {
      "post": {
        "summary": "Relocation astrology \u2014 how the chart changes by place, for migration and travel.",
        "description": "**Scope:** `astrocartography`\n\n**Credits:** 5.0 per call\n\nRelocation astrology \u2014 how the chart changes by place, for migration and travel.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "astrocartography"
        ],
        "operationId": "post_reports_astrocartography_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/api/v1/reports/karmic_blueprint/": {
      "post": {
        "summary": "Composite life blueprint across the twelve domains.",
        "description": "**Scope:** `karmic_blueprint`\n\n**Credits:** 5.0 per call\n\nComposite life blueprint across the twelve domains.\n\n**Languages.** This endpoint answers in English. To translate the text fields of any response, POST the strings to `/api/v1/translate/` with a `lang` code. Passing `lang` to this endpoint has no effect.",
        "tags": [
          "karmic_blueprint"
        ],
        "operationId": "post_reports_karmic_blueprint_",
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chart_id": {
                    "type": "integer",
                    "example": 123
                  }
                },
                "required": [
                  "chart_id"
                ]
              },
              "example": {
                "chart_id": 123
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "404": {
            "description": "Not found"
          },
          "429": {
            "description": "Rate limited"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "charts",
      "description": "Birth charts"
    },
    {
      "name": "kundli",
      "description": "Kundli"
    },
    {
      "name": "dasha",
      "description": "Dasha periods"
    },
    {
      "name": "doshas",
      "description": "Dosha analysis"
    },
    {
      "name": "horoscope",
      "description": "Daily horoscope"
    },
    {
      "name": "panchang",
      "description": "Festival calendar"
    },
    {
      "name": "muhurta",
      "description": "Marriage muhurta"
    },
    {
      "name": "transit",
      "description": "Gochar transits"
    },
    {
      "name": "numerology",
      "description": "Numerology profile"
    },
    {
      "name": "matching",
      "description": "Compatibility match"
    },
    {
      "name": "vastu",
      "description": "Vastu analysis"
    },
    {
      "name": "remedies",
      "description": "Remedy prescription"
    },
    {
      "name": "translate",
      "description": "Translation"
    },
    {
      "name": "varshafal",
      "description": "Varshafal"
    },
    {
      "name": "kp",
      "description": "KP system"
    },
    {
      "name": "jaimini",
      "description": "Jaimini"
    },
    {
      "name": "marriage",
      "description": "Marriage timing"
    },
    {
      "name": "childbirth",
      "description": "Childbirth"
    },
    {
      "name": "prashna",
      "description": "Prashna"
    },
    {
      "name": "reports",
      "description": "Report modules"
    },
    {
      "name": "account",
      "description": "Usage"
    },
    {
      "name": "yogas",
      "description": "Yoga analysis"
    },
    {
      "name": "career",
      "description": "Career analysis"
    },
    {
      "name": "education",
      "description": "Education analysis"
    },
    {
      "name": "skills",
      "description": "Skill discovery"
    },
    {
      "name": "health",
      "description": "Health analysis"
    },
    {
      "name": "past_karma",
      "description": "Past karma"
    },
    {
      "name": "spirituality",
      "description": "Spiritual path"
    },
    {
      "name": "astrocartography",
      "description": "Astrocartography"
    },
    {
      "name": "karmic_blueprint",
      "description": "Karmic blueprint"
    }
  ]
}