Skip to content
API96Astro API

API reference / Krishnamurti Paddhati (KP)

Krishnamurti Paddhati (KP)

KP cusps, significators, ruling planets, horary, transit, ephemeris and birth-time rectification aids.

6 endpoints. Every endpoint is POST with a JSON body and your key in the Authorization header. Request schemas and examples come from the OpenAPI document; each example response was captured from the live engine and its data fields are a guide to the shape, not a contract.

KP Birth Chart, Fortuna & Significator Grid

POSTAvailable

https://api.96astro.com/v1/kp/kp-birth-chart

KP cusps with star, sub and sub-sub lords, planets with their star lords and houses, significators by planet and by house, and the Part of Fortune with its KP lords.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • house_system · string
  • cusps · array of object
  • planets · array of object
  • significators · object
  • fortuna · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "house_system": "placidus",
    "cusps": [
      {
        "house": 1,
        "longitude": 293.8935,
        "sign": "Capricorn",
        "degree": 23.8935,
        "star_lord": "Mars",
        "sub_lord": "Mars",
        "sub_sub_lord": "Venus",
        "sub_lord_team": [
          "Mars",
          "Sun",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

KP Houses & Planets

POSTAvailable

https://api.96astro.com/v1/kp/kp-houses-planets

Placidus cusps and planets with sign, star, sub and sub-sub lords, significators by planet and by house, ruling planets at birth, the Part of Fortune and Vimshottari periods.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Every KP capability uses the KP (Krishnamurti) ayanamsha and Placidus cusps.

Default: krishnamurti

Allowed value: krishnamurti

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • house_system · string
  • node · string
  • cusps · array of object
  • planets · array of object
  • significators · object
  • vimshottari · array of object
  • ruling_planets_at_birth · object
  • fortuna · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "krishnamurti",
      "name": "KP (Krishnamurti)"
    },
    "house_system": "placidus",
    "node": "true",
    "cusps": [
      {
        "house": 1,
        "longitude": 293.9903,
        "sign": "Capricorn",
        "degree": 23.9903,
        "sign_lord": "Saturn",
        "star_lord": "Mars",
        "sub_lord": "Mars",
        "sub_sub_lord": "Venus"
      },
      {
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

KP Horary (Prashna)

POSTAvailable

https://api.96astro.com/v1/kp/kp-horary

A KP horary chart from a number 1-249 (or the moment): cusps and planets with sign, star, sub and sub-sub lords, significators, ruling planets and Vimshottari periods.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Every KP capability uses the KP (Krishnamurti) ayanamsha and Placidus cusps.

Default: krishnamurti

Allowed value: krishnamurti

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

kp_horary_numberintegerOptional

KP horary number 1-249 (sets the ascendant); 0 casts the actual moment.

Default: 0

Limits: minimum 0, maximum 249

Example: 100

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • house_system · string
  • kp_horary_number · integer
  • cusps · array of object
  • planets · array of object
  • significators · object
  • vimshottari · array of object
  • ruling_planets · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "krishnamurti",
      "name": "KP (Krishnamurti)"
    },
    "house_system": "placidus",
    "kp_horary_number": 100,
    "cusps": [
      {
        "house": 1,
        "longitude": 144,
        "sign": "Leo",
        "degree": 24,
        "sign_lord": "Sun",
        "star_lord": "Venus",
        "sub_lord": "Mercury",
        "sub_sub_lord": "Mercury"
      },
      {
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

KP Transit

POSTAvailable

https://api.96astro.com/v1/kp/kp-transit

Birth and transit points with their KP lords, the ruling planets at birth and at the transit, and the Vimshottari periods running at the transit.

Credits
1 credit
Input
Specific input
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Every KP capability uses the KP (Krishnamurti) ayanamsha and Placidus cusps.

Default: krishnamurti

Allowed value: krishnamurti

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

transitobjectRequired

The moment and place of the transit chart.

transit.datetimestringRequired

Local date and time, ISO 8601 without offset

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 2026-10-13T12:00:00

transit.timezonestring | nullOptional

IANA time zone

Default: null

Example: Asia/Kolkata

transit.utc_offsetstring | nullOptional

Fixed offset such as +05:30

Default: null

transit.latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

transit.longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • birth · object
  • transit · object
  • vimshottari_at_transit · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "krishnamurti",
      "name": "KP (Krishnamurti)"
    },
    "birth": {
      "points": [
        {
          "name": "Ascendant",
          "longitude": 293.9903,
          "sign": "Capricorn",
          "degree": 23.9903,
          "nakshatra": "Dhanishta",
          "pada": 1,
          "sign_lord": "Saturn",
          "star_lord": "Mars",
          "sub_lord": "Mars",
          "sub_sub_lord": "Venus"
        },
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

KP Ephemeris

POSTAvailable

https://api.96astro.com/v1/kp/kp-ephemeris

For a month, either daily planetary positions with KP lords, or one planet's sign, star and sub-lord changes with the time each starts.

Credits
1 credit
Input
Date
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
yearintegerRequired

Limits: minimum 1800, maximum 2200

Example: 2026

monthintegerRequired

Limits: minimum 1, maximum 12

Example: 10

timezonestring | nullOptional

IANA time zone the times are given in

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30

Default: null

timestringOptional

Time of day of each daily row (month table only)

Default: 05:30:00

Limits: format local-time, pattern ^\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

planetstring | nullOptional

With a planet: its change times instead of the table

Default: null

Allowed values: SunMoonMercuryVenusMarsJupiterSaturnUranusNeptunePlutoRahuKetu

Example: Moon

modestringOptional

sub: sign/star/sub-lord changes; star: sign/nakshatra changes

Default: sub

Allowed values: substar

Example: sub

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Options (2)
ValueMeaning
subSub-lord changes
starSign/star changes

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • planet · string
  • mode · string
  • utc_offset_hours · number
  • note · string
  • periods · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "krishnamurti",
      "name": "KP (Krishnamurti)"
    },
    "planet": "Moon",
    "mode": "sub",
    "utc_offset_hours": 5.5,
    "note": "Each period starts at `start` and lasts until the next one. The first starts at the window opening (local midnight on the 1st), not at a change. Times are truncated to the second.",
    "periods": [
      {
        "start": "2026-10-01T00:00:00",
        "sign_lord": "Venus",
        "star_lord": "Sun",
        "sub_lord": "Mercury"
      },
      {
        "start": "2026-10-01T00:50:39",
        "sign_lord": "Venus",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

KP Birth-Time Rectification Aid

POSTAvailable

https://api.96astro.com/v1/kp/kp-btr

Ascendant sign, star, sub and sub-sub lord periods within a window around a given birth time, for rectification.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Every KP capability uses the KP (Krishnamurti) ayanamsha and Placidus cusps.

Default: krishnamurti

Allowed value: krishnamurti

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

window_minutesintegerOptional

Total window centred on the given time, in minutes.

Default: 60

Limits: minimum 2, maximum 240

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • house_system · string
  • window · object
  • note · string
  • periods · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "krishnamurti",
      "name": "KP (Krishnamurti)"
    },
    "house_system": "placidus",
    "window": {
      "start": "1990-10-18T14:00:00",
      "end": "1990-10-18T15:00:00"
    },
    "note": "Ascendant sign, star, sub and sub-sub lords by period, local time to the nearest second. The first period starts at the window opening and the last ends at its close, not at a change of lord.",
    "periods": [
      {
        "start": "1990-10-18T14:00:00",
        "end": "1990-10-18T14:00:25",
        "sign_lord": "Saturn",
        "star_lord": "Moon",
        "sub_lord": "Jupiter",
        "sub_sub_lord": "Venus"
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.