New Numerology API
Docs menu
Download

Prashna (horary) API reference

Updated

The horary endpoints of API for Astrology (apiforastrology.com) read a question (prashna) from the moment it is asked. You send a topic, a place and, if you like, the time. You get a short answer, the reasons behind it and an estimate of timing, never a promise. The group has 3 endpoints.

Call GET /v1/prashna/topics first, and build your topic menu from it. Then send the topic, latitude, longitude and timezone to POST /v1/prashna. Leave the time out to use now. POST /v1/prashna/kp is the KP method: the person also picks a number from 1 to 249. Show the answer as a tendency of the moment, never as a promise.

Horary (prashna): a question asked at a moment, read from a chart cast for that moment and place. You pick the topic from a list; a sentence is never read. The question chart describes the tendencies of the moment and is not a promise. Some questions are refused outright (lifespan, the sex of an unborn child, lotteries and gambling, medical diagnosis, accusing a person of a crime, testing), and a moment the classical texts call unfit to judge is refused too, with the reason. A refusal is 422 and carries no reading. Every route for questions asked at a moment is in this group.

3 endpoints. Paths are relative to https://apiforastrology.com/api/astrology. Send your API key in the Authorization: Bearer header (see authentication). No key yet? Get a key. To send test requests from the browser, open the interactive reference.

Overview: Prashna (horary).

Which prashna endpoint to call

What you needEndpointCost
An answer to one question topic, read from the moment it is askedPOST /v1/prashna5 reading credits
A KP horary answer from a number from 1 to 249 and a topicPOST /v1/prashna/kp5 reading credits
The topics a person can ask about, and the refused ones. Start hereGET /v1/prashna/topics1 call

Question chart (prashna): one question, read for the moment it is asked

POST /v1/prashna

Casts a chart for the moment and place a question is asked (prashna, or horary astrology) and reads it for one topic: marriage, career, wealth, health, education, property, travel, litigation, lost-item, children, business, clients, love, loan-recovery, job-offer, pregnancy, exam-school, exam-higher, missing-spouse, missing-father, missing-mother, missing-sibling, missing-child, missing-friend, missing-employee, theft-recovery, vehicle-buy, vehicle-sell, house-buy, house-sell, settle-abroad, reconciliation or inheritance. Pick the topic from a list. A free-text question is never read: any extra field is refused with 422. Leave the date and time out to use the current moment at the place. The moment used is returned in asked_at.

The answer comes first. answer says the verdict in plain words: a label, a headline, up to three why reasons, what_helps, watch, timing and a short note. The reasons that decided the verdict come first, then the verdict's other supports and strains in a fixed reading order, never by a score. Show it first and the rest as details; readings marks each block group. The topics, with their houses and notes, are listed by GET /v1/prashna/topics.

What is read. The rising sign's lord stands for the person asking. The lord of the topic's house stands for the matter. The response says how each stands (asker, quesited), whether the two are linked (connection), how the Moon stands (moon), and which planets occupy or aspect each house (influences). tajika is the two lords' Tajika aspect by degree: state is applying (ithasala), separating (easarapha), out_of_orb, no_aspect or same_lord, with the aspect, the orb and the degrees to exact. moon.next_aspect and moon.last_aspect are the Moon's next and last Tajika aspect, and moon.kamboola says whether its next one goes to a benefic or the matter's lord. Rahu and Ketu have no Tajika orb and are left out. For health and litigation the two sides are compared (contest): the person against the 6th lord (the illness), or against the 7th lord (the opponent).

A lost item (lost-item) also gets lost_item: direction and place from the sign on the 4th house, and found with status (found, not_found or unclear), reasons and evidence. found.differs_from_verdict says when it and the verdict say different things; both are shown. A theft (theft-recovery) also gets theft, with the 2nd lord's meeting as evidence. It never says who took anything. The missing-* topics never say whether anyone is alive or dead.

Trisphuta (every question topic, not health or litigation). trisphuta shows gulika and mandi, two points used to look for hidden obstacles, and sum: the longitude of the rising degree, the Moon and Gulika (inputs), reduced to 0 to 360, with its sign and navamsa. status is negative_or_delayed, not_triggered or not_computed (a polar day with no sunrise or sunset), fired says why, and text says it in words. It never changes verdict or answer. differs_from_verdict is true when it reads negative or delayed beside looks_good or possible_with_effort; show both. Its readings are listed in provisional.

The verdict is a stated rule. For a question, verdict.verdict is looks_good, possible_with_effort, delayed or highly_unlikely, taken in that rule's precedence, with case (which condition fired), decided_by, the supports and strains, and the rule in verdict.rule. findings holds what it read: which lord is weak and why, the delays, malefic interference and benefic aspects. For health and litigation it is favorable, mixed or unfavorable. Nothing is weighted or scored. Parts that wait on the astrologer are listed in provisional, each with its rule id.

Timing is an estimate, never a date. For a question, timing gives the degrees the faster lord still has to travel to the exact aspect, as count and unit (days, weeks, months or years, from the faster lord's sign), or estimate: false with no_estimate_reason (highly_unlikely, separating, no_aspect, same_lord). For a contest it is the old rising-sign pace (movable quick, fixed slow, dual in between).

Every text block has an id, such as prashna:marriage:verdict:favorable. Each part of the payload that a block explains carries its reading_id.

What this does not claim. It is not a yes-or-no answer, not a promise, and not medical, legal or financial advice. not_claimed says so in every response, and the reading says it in the reader's language. Methods not used are named in refused: KP horary numbers (1 to 249), ashtamangala and a Moon void of course, and a directional arudha. See rulebook section PQ (the API's rule reference).

Asking again. An answered response carries repeat_rule: a working rule of one question per person and topic in 72 hours, counted from the last answered question. A refused question does not start it. The API stores nothing and takes no user id, so your app enforces it: save asked_at from each answer. A KP answer and a main answer on one topic count as one question, and that reading is provisional. Rulebook PQ-50, PQ-51.

Refusals. Three kinds of request get 422 and no reading. (1) A topic id that names a refused kind of question (lifespan, unborn-child-sex, lottery, gambling, share-tips, medical-diagnosis, crime-accusation, testing): error.code is topic_refused, with error.category and the message in your lang; no chart is cast. (2) A moment unfit to judge: error.code is moment_unfit, error.reasons lists every cause (lagna_too_early, lagna_too_late, moon_gandanta, lagna_gandanta) and error.measured the rising sign and Moon degrees. The same moment always gives the same refusal. Ask again at another moment. (3) Any other invalid input: invalid_input.

Uses 5 reading credits. On live keys a successful response uses them from your monthly reading credits, and no calls. Test keys return this reading for the sample charts only, and it counts as 1 test call. The X-Reading-Credits-Counted header says what a response used. What reading credits buy.

Cost: Uses reading credits on live keys instead of monthly calls. On test keys it counts as 1 call.

Required inputs

NameInWhat it is
topicbodyWhat the question is about. marriage (7th house), career (10th and 11th), wealth (2nd and 11th), health (1st against the 6th, with the 8th), education (4th and 5th), property (4th), travel (9th, 12th and 3rd), litigation (1st against the 7th, with the 6th), lost-item (4th, with the 2nd and 7th), children (5th), business (7th and 11th), clients (7th and 10th), love (5th and 7th), loan-recovery (11th, with the 7th), job-offer (10th and 11th), pregnancy (5th), exam-school (4th), exam-higher (9th), missing-spouse (7th), missing-father (9th), missing-mother (4th), missing-sibling (3rd), missing-child (5th), missing-friend (11th), missing-employee (6th), theft-recovery (4th and 2nd), vehicle-buy and house-buy (4th and 11th), vehicle-sell and house-sell (11th and 3rd), settle-abroad (9th and 12th), reconciliation (7th and 11th) or inheritance (8th and 2nd). These ids are also accepted and always REFUSED with 422 topic_refused, and no chart is cast: lifespan, unborn-child-sex, lottery, gambling, share-tips, medical-diagnosis, crime-accusation and testing.
latitudebodyLatitude of the place where the question is asked, in degrees, negative for south.
longitudebodyLongitude of that place in degrees, negative for west.
timezonebodyTime zone of that place: an IANA name such as America/New_York (daylight saving time is applied for the moment asked), or a fixed offset from UTC in hours.
Optional inputs (10), with their defaults
NameInWhat it does
langqueryLanguage of the reading text, such as en (English, the default) or hi (Hindi). GET /v1/meta lists the languages available. If a passage is not written in that language yet, the English passage is returned instead and marked with fell_back_to_en. Names in the response, such as planets and signs, are translated too.
detailqueryLength of the reading text: standard (the default) or expanded, which is about 1.8 times longer. If a passage has no expanded version yet, the standard one is returned. Each text block reports the length it got in its detail field.
timezone_foldbodyOnly for a typed time that happens twice, on the night the clocks go back: 0 for the first, 1 for the second. Not needed when the time is left out.
yearbodyYear the question was asked. Leave year, month, day, hour and minute all out to use the current moment at the place. If you send one, send year, month, day and hour.
monthbodyMonth, 1 to 12.
daybodyDay of the month, 1 to 31.
hourbodyHour on the local clock, 0 to 23.
minutebodyMinute, 0 to 59. Default 0 when a time is given.
ayanamsabodyThe ayanamsa, as for a birth chart: lahiri (the default), kp, raman, yukteshwar, fagan_bradley, jn_bhasin, ushashashi or true_chitra.
nodebodyRahu and Ketu: true (the default) or mean.

Main response fields

  • topic (string)
  • title (string)
  • answer (object): holds verdict, label, headline, why, what_helps, watch, timing, note, titles, reading_order, rule.
  • kind (string)
  • read_from (object): holds asker_house, matter_houses, karya_bhava, karakas, framed_from, note.
  • ascendant (object): holds sign, degree_in_sign, lagnesh.
  • asker (object): holds graha, house, sign, dignity, combust, retrograde, tendency, leans, outcome, supports, strains, role.
  • quesited (array of objects): each item holds graha, house, sign, dignity, combust, retrograde, tendency, leans, outcome, supports, strains, rules_house.
  • karakas (array of objects): each item holds graha, house, sign, dignity, combust, retrograde, tendency, leans, outcome, supports, strains, role.
  • connection (object): holds kind, kinds, asker_lord, matter_lord, matter_house, one_way, reading_id.
  • moon (object): holds sign, house, paksha, waxing, elongation, in_dusthana, state, links_matter_lord, rule, next_aspect, last_aspect, kamboola.
  • influences (array of objects): each item holds house, occupants, aspected_by, benefics, malefics, kind, reading_id.
  • tajika (object): holds asker_lord, matter_lord, state, linked, aspect, deeptamsha, excluded, rule, reading_id.
  • verdict (object): holds verdict, case, provisional, decided_by, supports, strains, precedence, rule, reading_id.
  • timing (object): holds method, convention, rule, estimate, no_estimate_reason, degrees, count, unit, faster, sign, modality, saturn_is_a_lord.
  • provisional (array of objects): each item holds rule, point, reading.
  • not_claimed (string)
  • refused (array of objects): each item holds method, why.
  • not_computed (array of strings)
  • findings (object): holds karya_bhava, weak, delay, interference, benefic_aspects.
  • trisphuta (object): holds uses, source, provisional, provisional_rules, moves_verdict, rule, gulika, mandi, saturn_part, inputs, sum, fired.
  • readings (array of objects): each item holds id, part, title, text, language, detail, group.
  • gaps (array)
  • language (string)
  • detail (string)
  • asked_at (object): holds local, utc, utc_offset_hours, source.
  • place (object): holds latitude, longitude.
  • repeat_rule (object): holds hours, applies_to, starts_from, refusals_count, enforced_by, text.
  • meta (object): holds ayanamsa, ayanamsa_value, julian_day, ephemeris, node, timezone.
curl -X POST "https://apiforastrology.com/api/astrology/v1/prashna" \
  -H "Authorization: Bearer $ASTROLOGY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"topic":"marriage","latitude":40.7128,"longitude":-74.006,"timezone":"America/New_York","year":2026,"month":10,"day":1,"hour":12,"minute":0}'
Sample response
{
  "topic": "marriage",
  "title": "Your question: Marriage",
  "answer": {
    "verdict": "possible_with_effort",
    "label": {
      "id": "prashna:answer:label:possible_with_effort",
      "text": "Possible with effort"
    },
    "headline": {
      "id": "prashna:answer:headline:possible_with_effort",
      "text": "For your question about marriage, it is possible, but it will take effort."
    },
    "why": [
      {
        "id": "prashna:answer:why:connection:applying",
        "text": "Your planet and the planet of the marriage are moving toward each other (Mars and Venus).",
        "reason": "lords_applying",
        "slot": "connection",
        "polarity": "helps"
      },
      {
        "id": "prashna:answer:why:asker_lord:weak",
        "text": "Your own planet (Mars) is weak right now: it is in its weakest sign.",
        "reason": "asker_lord_weak",
        "slot": "asker_lord",
        "polarity": "strains"
      },
      {
        "id": "prashna:answer:why:aspects:malefic",
        "text": "A harsh planet (Moon and Sun) gets in the way of the two planets.",
        "reason": "malefic_interference",
        "slot": "aspects",
        "polarity": "strains"
      }
    ],
    "what_helps": {
      "id": "prashna:marriage:what_helps",
      "text": "Talk openly about what each of you expects. Bring the families in early and kindly. Small, steady steps work better than pressure. If you are choosing a date, choose it with care rather than in a hurry."
    },
    "watch": {
      "id": "prashna:marriage:watch",
      "text": "Watch for rushing a decision just to calm your worry. Watch for old family disputes that nobody talks about. Do not treat this chart as the last word on a person. Look at the person, the facts and your own feelings too."
    },
    "timing": {
      "id": "prashna:answer:timing:estimate",
      "text": "It may take about 6 days. This is an estimate from the planets, not a date.",
      "count": 6,
      "unit": "days",
      "method": "tajika_perfection",
      "estimate": true,
      "convention": true
    },
    "note": {
      "id": "prashna:answer:note",
      "text": "A question chart shows the tendency of the moment you asked, not a promise. Your effort still matters."
    },
    "titles": {
      "why": "Why: the main reasons",
      "what_helps": "What helps",
      "watch": "What to watch",
      "timing": "When",
      "pace": "Pace",
      "details": "How we read it (all the details)"
    },
    "reading_order": [
      "contest",
      "connection",
      "delay"
    ],
    "rule": "The reasons shown are the verdict's own supports and strains, taken in a fixed reading order: contest, connection, delay, matter_lord, asker_lord, aspects, moon, houses, karakas. For a question the findings that decided the answer come…"
  },
  "kind": "question",
  "read_from": {
    "asker_house": 1,
    "matter_houses": [
      7
    ],
    "karya_bhava": 7,
    "karakas": [
      "Venus",
      "Jupiter"
    ],
    "framed_from": null,
    "note": "Venus is the karaka of a spouse when a man asks and Jupiter when a woman asks. The request carries no sex, so both are judged and listed, and neither enters the verdict."
  },
  "ascendant": {
    "sign": "Scorpio",
    "degree_in_sign": 13.9285,
    "lagnesh": "Mars"
  },
  "asker": {
    "graha": "Mars",
    "house": 9,
    "sign": "Cancer",
    "dignity": "debilitated",
    "combust": false,
    "retrograde": false,
    "tendency": "mixed",
    "leans": "supports",
    "outcome": "helped",
    "supports": [
      "tendency_rules_trine",
      "tendency_in_trine",
      "tendency_benefic_conjunct"
    ],
    "strains": [
      "tendency_dignity_weak"
    ],
    "role": "asker",
    "reading_id": "prashna:lord:asker:helped"
  },
  "quesited": [
    {
      "graha": "Venus",
      "house": 12,
      "sign": "Libra",
      "dignity": "mulatrikona",
      "combust": false,
      "retrograde": false,
      "tendency": "mixed",
      "leans": "strains",
      "outcome": "strained",
      "supports": [
        "tendency_dignity_strong",
        "tendency_benefic_conjunct"
      ],
      "strains": [
        "tendency_rules_dusthana",
        "tendency_in_dusthana",
        "tendency_malefic_aspect"
      ],
      "rules_house": 7,
      "link": {
        "kind": "one_way",
        "kinds": [
          "one_way"
        ],
        "asker_lord": "Mars",
        "matter_lord": "Venus",
        "matter_house": 7,
        "one_way": {
          "graha": "Mars",
          "aspects_grahas": [
            "Venus"
          ]
        },
        "reading_id": "prashna:connection:one_way"
      },
      "reading_id": "prashna:lord:matter:strained"
    }
  ],
  "karakas": [
    {
      "graha": "Venus",
      "house": 12,
      "sign": "Libra",
      "dignity": "mulatrikona",
      "combust": false,
      "retrograde": false,
      "tendency": "mixed",
      "leans": "strains",
      "outcome": "strained",
      "supports": [
        "tendency_dignity_strong",
        "tendency_benefic_conjunct"
      ],
      "strains": [
        "tendency_rules_dusthana",
        "tendency_in_dusthana",
        "tendency_malefic_aspect"
      ],
      "role": "karaka",
      "reading_id": "prashna:karaka:strained"
    },
    {
      "graha": "Jupiter",
      "house": 9,
      "sign": "Cancer",
      "dignity": "exalted",
      "combust": false,
      "retrograde": false,
      "tendency": "mixed",
      "leans": "supports",
      "outcome": "helped",
      "supports": [
        "tendency_dignity_strong",
        "tendency_rules_trine",
        "tendency_in_trine"
      ],
      "strains": [
        "tendency_malefic_conjunct"
      ],
      "role": "karaka",
      "reading_id": "prashna:karaka:helped"
    }
  ],
  "connection": {
    "kind": "one_way",
    "kinds": [
      "one_way"
    ],
    "asker_lord": "Mars",
    "matter_lord": "Venus",
    "matter_house": 7,
    "one_way": {
      "graha": "Mars",
      "aspects_grahas": [
        "Venus"
      ]
    },
    "reading_id": "prashna:connection:one_way"
  },
  "moon": {
    "sign": "Taurus",
    "house": 7,
    "paksha": "krishna",
    "waxing": false,
    "elongation": 244.9345,
    "in_dusthana": false,
    "state": "middling",
    "links_matter_lord": false,
    "rule": "The Moon's next aspect is its applying Tajika aspect within orb with the fewest degrees to exact; its last aspect is the separating one with the fewest degrees past exact (PQ-20, provisional). Kamboola: the next aspect goes to a natural…",
    "next_aspect": {
      "faster": "Moon",
      "slower": "Jupiter",
      "aspect": "sextile",
      "aspect_angle": 60,
      "orb": 10.5,
      "within_orb": true,
      "motion": "applying",
      "degrees_from_exact": 6.282,
      "degrees_to_perfection": 6.282,
      "degrees_past_exact": null,
      "retrograde": [],
      "applying_planet_retrograde": false,
      "with_graha": "Jupiter",
      "with_benefic": true,
      "with_matter_lord": false,
      "reading_id": "prashna:moon:next_aspect"
    },
    "last_aspect": {
      "faster": "Moon",
      "slower": "Saturn",
      "aspect": "sextile",
      "aspect_angle": 60,
      "orb": 10.5,
      "within_orb": true,
      "motion": "separating",
      "degrees_from_exact": 1.9023,
      "degrees_to_perfection": null,
      "degrees_past_exact": 1.9023,
      "retrograde": [
        "Saturn"
      ],
      "applying_planet_retrograde": false,
      "with_graha": "Saturn",
      "with_benefic": false,
      "with_matter_lord": false,
      "reading_id": "prashna:moon:last_aspect"
    },
    "kamboola": {
      "formed": true,
      "with_graha": "Jupiter",
      "because": [
        "benefic"
      ],
      "provisional": true,
      "open_question": "Is classical Kamboola narrower: the Moon joining the applying aspect of the two lords, rather than any next aspect to a benefic or the karya lord?",
      "reading_id": "prashna:moon:kamboola"
    },
    "reading_id": "prashna:moon:waning"
  },
  "influences": [
    {
      "house": 1,
      "occupants": [],
      "aspected_by": [
        "Moon",
        "Jupiter"
      ],
      "benefics": [
        "Jupiter"
      ],
      "malefics": [
        "Moon"
      ],
      "kind": "both",
      "reading_id": "prashna:influence:both"
    },
    {
      "house": 7,
      "occupants": [
        "Moon"
      ],
      "aspected_by": [
        "Saturn"
      ],
      "benefics": [],
      "malefics": [
        "Moon",
        "Saturn"
      ],
      "kind": "malefics_only",
      "reading_id": "prashna:influence:malefics_only"
    }
  ],
  "tajika": {
    "asker_lord": "Mars",
    "matter_lord": "Venus",
    "state": "applying",
    "linked": true,
    "aspect": {
      "faster": "Venus",
      "slower": "Mars",
      "aspect": "square",
      "aspect_angle": 90,
      "orb": 7.5,
      "within_orb": true,
      "motion": "applying",
      "degrees_from_exact": 6.3633,
      "degrees_to_perfection": 6.3633,
      "degrees_past_exact": null,
      "retrograde": [],
      "applying_planet_retrograde": false
    },
    "deeptamsha": {
      "Sun": 15,
      "Moon": 12,
      "Mars": 8,
      "Mercury": 7,
      "Jupiter": 9,
      "Venus": 7,
      "Saturn": 9
    },
    "excluded": [
      "Rahu",
      "Ketu"
    ],
    "rule": "Tajika aspects by sign: conjunction 0, sextile 60 (3rd and 11th), square 90 (4th and 10th), trine 120 (5th and 9th), opposition 180 (7th). Orb of a pair: the mean of the two deeptamshas (Sun 15, Moon 12, Jupiter and Saturn 9, Mars 8,…",
    "reading_id": "prashna:tajika:applying"
  },
  "verdict": {
    "verdict": "possible_with_effort",
    "case": "malefic_interference",
    "provisional": false,
    "decided_by": [
      "lords_applying",
      "malefic_interference"
    ],
    "supports": [
      "lords_applying",
      "benefic_aspect_on_weak_lord",
      "moon_kamboola"
    ],
    "strains": [
      "asker_lord_weak",
      "malefic_interference",
      "malefics_on_7"
    ],
    "precedence": [
      "highly_unlikely",
      "delayed",
      "possible_with_effort"
    ],
    "rule": "Precedence, first match wins. highly_unlikely: the two lords are not linked (separating, or no applying aspect) AND at least one is weak. delayed: linked, BUT the applying planet is retrograde, OR Saturn aspects either lord, OR both lords…",
    "reading_id": "prashna:question:verdict:possible_with_effort"
  },
  "timing": {
    "method": "tajika_perfection",
    "convention": true,
    "rule": "The number is the degrees the faster lord still has to travel to perfect its applying aspect with the other, one degree to one unit, rounded, at least one. The unit is the modality of the faster graha's sign: movable days, dual weeks,…",
    "estimate": true,
    "no_estimate_reason": null,
    "degrees": 6.3633,
    "count": 6,
    "unit": "days",
    "faster": "Venus",
    "sign": "Libra",
    "modality": "movable",
    "saturn_is_a_lord": false,
    "reading_id": "prashna:timing:estimate"
  },
  "provisional": [
    {
      "rule": "PQ-51",
      "point": "one_question_across_routes",
      "reading": "The repeat rule is applied per topic id, whichever route answered. A KP answer and a main-route answer on the same topic id count as one question."
    },
    {
      "rule": "PQ-19",
      "point": "motion",
      "reading": "Applying or separating is read from the two grahas' actual daily motions, so a retrograde graha moving back toward exact applies."
    },
    {
      "rule": "PQ-19",
      "point": "faster_planet",
      "reading": "The faster graha, and so the applying one, is the one earlier in the natural Tajik order: Moon, Mercury, Venus, Sun, Mars, Jupiter, Saturn."
    }
  ],
  "not_claimed": "a prashna reads the TENDENCIES OF THE MOMENT a question is asked. It is not a yes-or-no answer and not a guarantee of any outcome. It is not medical, legal or financial advice, and must not be read or written as any of these",
  "refused": [
    {
      "method": "kp_horary_number",
      "why": "KP horary asks the person for a number from 1 to 249 that fixes the ascendant by sub-lord. That is a different method on a different chart, so it has its own route, POST /v1/prashna/kp. KP nakshatra lords are not used in this route."
    },
    {
      "method": "ashtamangala_and_number_methods",
      "why": "Kerala ashtamangala prashna and other number or object methods need a ritual or a person choosing a number or an object. They are not a reading of the sky at a moment."
    },
    {
      "method": "void_of_course_moon",
      "why": "A Moon void of course is a Western horary idea. The astrologer ruled it out (PC-11): the Moon is read by its last and next Tajika aspect instead."
    }
  ],
  "not_computed": [
    "repeat questions: the 72-hour rule is stated in `repeat_rule` and not enforced here. The API stores nothing and takes no user id, so your app keeps track (PQ-50)",
    "chandra bala against a natal Moon: a prashna chart needs no birth chart",
    "calendar dates: a question gets an estimate in days, weeks, months or years from the applying aspect (PQ-11), never a date"
  ],
  "findings": {
    "karya_bhava": 7,
    "weak": {
      "asker_lord": {
        "graha": "Mars",
        "because": [
          "debilitated"
        ]
      }
    },
    "delay": {
      "applying_planet_retrograde": false,
      "saturn_aspects": [],
      "both_in_fixed_signs": false,
      "modality": {
        "Mars": "movable",
        "Venus": "movable"
      }
    },
    "interference": {
      "malefics": [
        "Moon",
        "Sun"
      ],
      "occupying": [
        "Moon"
      ],
      "aspecting": [
        {
          "faster": "Sun",
          "slower": "Mars",
          "aspect": "sextile",
          "aspect_angle": 60,
          "orb": 11.5,
          "within_orb": true,
          "motion": "separating",
          "degrees_from_exact": 6.4176,
          "degrees_to_perfection": null,
          "degrees_past_exact": 6.4176,
          "retrograde": [],
          "applying_planet_retrograde": false,
          "graha": "Sun",
          "lord": "Mars"
        }
      ]
    },
    "benefic_aspects": {
      "on_asker_lord": [
        {
          "faster": "Mercury",
          "slower": "Mars",
          "aspect": "square",
          "aspect_angle": 90,
          "orb": 7.5,
          "within_orb": true,
          "motion": "applying",
          "degrees_from_exact": 0.5186,
          "degrees_to_perfection": 0.5186,
          "degrees_past_exact": null,
          "retrograde": [],
          "applying_planet_retrograde": false,
          "graha": "Mercury",
          "lord": "Mars"
        },
        {
          "faster": "Venus",
          "slower": "Mars",
          "aspect": "square",
          "aspect_angle": 90,
          "orb": 7.5,
          "within_orb": true,
          "motion": "applying",
          "degrees_from_exact": 6.3633,
          "degrees_to_perfection": 6.3633,
          "degrees_past_exact": null,
          "retrograde": [],
          "applying_planet_retrograde": false,
          "graha": "Venus",
          "lord": "Mars"
        }
      ]
    }
  },
  "trisphuta": {
    "uses": "gulika",
    "source": "Prashna Marga ch. 5",
    "provisional": true,
    "provisional_rules": [
      "PQ-45",
      "PQ-46",
      "PQ-47"
    ],
    "moves_verdict": false,
    "rule": "Trisphuta is the longitude of the lagna + the Moon + Gulika, reduced to 0-360. negative_or_delayed: its navamsa sign is ruled by the Sun, Mars or Saturn, or Saturn or Rahu casts whole-sign drishti on its rasi sign. Otherwise not_triggered,…",
    "gulika": {
      "name": "Gulika",
      "method": "parashara",
      "taken_at": "start",
      "longitude": 198.3866417,
      "sign": "Libra",
      "sign_number": 7,
      "degree_in_sign": 18.3866417,
      "degree_dms": "18 : 23 : 12",
      "nakshatra": "Swati",
      "nakshatra_lord": "Rahu",
      "pada": 4
    },
    "mandi": {
      "name": "Mandi",
      "method": "kalidasa",
      "taken_at": "end",
      "longitude": 215.5280845,
      "sign": "Scorpio",
      "sign_number": 8,
      "degree_in_sign": 5.5280845,
      "degree_dms": "05 : 31 : 41",
      "nakshatra": "Anuradha",
      "nakshatra_lord": "Saturn",
      "pada": 1
    },
    "saturn_part": {
      "divided": "day",
      "part": 3,
      "starts": "2026-10-01T09:51:09-04:00",
      "ends": "2026-10-01T11:18:13-04:00"
    },
    "inputs": {
      "lagna": 223.9284858,
      "moon": 49.1953757,
      "gulika": 198.3866417
    },
    "sum": {
      "longitude": 111.5105032,
      "sign": "Cancer",
      "sign_number": 4,
      "degree_in_sign": 21.5105032,
      "degree_dms": "21 : 30 : 38",
      "nakshatra": "Ashlesha",
      "nakshatra_lord": "Mercury",
      "pada": 2,
      "house": 9,
      "navamsa": {
        "sign": "Capricorn",
        "sign_number": 10,
        "ruler": "Saturn",
        "malefic": true
      },
      "aspected_by": []
    },
    "fired": [
      "malefic_navamsa"
    ],
    "status": "negative_or_delayed",
    "not_computed_reason": null,
    "differs_from_verdict": true,
    "fired_text": [
      "the point falls in a navamsa (a small ninth part of a sign) ruled by a harsh planet"
    ],
    "reading_id": "prashna:trisphuta:status:negative_or_delayed",
    "text": "This check leans toward a harder or slower result, because the point falls in a navamsa (a small ninth part of a sign) ruled by a harsh planet. It shows a tendency, not a sure outcome. We do not use it to change the main answer."
  },
  "readings": [
    {
      "id": "prashna:marriage:what_helps",
      "part": "what_helps",
      "title": "What helps",
      "text": [
        "Talk openly about what each of you expects. Bring the families in early and kindly. Small, steady steps work better than pressure. If you are choosing a date, choose it with care rather than in a hurry."
      ],
      "language": "en",
      "detail": "standard",
      "group": "answer"
    },
    {
      "id": "prashna:marriage:watch",
      "part": "watch",
      "title": "What to watch",
      "text": [
        "Watch for rushing a decision just to calm your worry. Watch for old family disputes that nobody talks about. Do not treat this chart as the last word on a person. Look at the person, the facts and your own feelings too."
      ],
      "language": "en",
      "detail": "standard",
      "group": "answer"
    },
    {
      "id": "prashna:question:verdict:possible_with_effort",
      "part": "verdict",
      "title": "What the chart leans to",
      "text": [
        "For your question about marriage, it is possible, but it will take effort. Some signs help and some hold things back. Read the reasons below to see what needs your attention."
      ],
      "language": "en",
      "detail": "standard",
      "group": "details"
    }
  ],
  "gaps": [],
  "language": "en",
  "detail": "standard",
  "asked_at": {
    "local": "2026-10-01T12:00:00",
    "utc": "2026-10-01T16:00:00Z",
    "utc_offset_hours": -4,
    "source": "given"
  },
  "place": {
    "latitude": 40.7128,
    "longitude": -74.006
  },
  "repeat_rule": {
    "hours": 72,
    "applies_to": "same_person_and_topic",
    "starts_from": "last_answered_question",
    "refusals_count": false,
    "enforced_by": "caller",
    "text": "The same person should ask about the same topic only once in 72 hours. This is a working rule. The 72 hours start from the last question that got an answer. A refused question does not count, so the person can ask again when the moment…"
  },
  "meta": {
    "ayanamsa": "lahiri",
    "ayanamsa_value": 24.2307715,
    "julian_day": 2461315.167466,
    "ephemeris": "JPL DE440s",
    "node": "true",
    "timezone": {
      "source": "zone",
      "offset_hours": -4,
      "zone": "America/New_York",
      "abbreviation": "EDT",
      "dst": true,
      "dst_hours": 1,
      "ambiguous_resolved_by_fold": null,
      "note": "read from the IANA tz database at this instant, so daylight saving and historical offset changes are included"
    }
  }
}

Example from a real call. Long lists and texts are shortened.

Parameters, schemas and a test request in the interactive reference. Feature: Prashna (horary).

KP horary: a question read from a number between 1 and 249

POST /v1/prashna/kp

A person picks a number from 1 to 249 and a topic. The number sets the houses, and the moment only places the planets. This is Krishnamurti Paddhati (KP): Placidus houses in the KP ayanamsa. It is a separate method from POST /v1/prashna and it never changes that route's answers. No birth data is asked for.

The chart. The number picks one of the 249 pieces of the zodiac, and that piece's first degree is the ascendant. The other 11 cusps come from it and your latitude. chart.cusps gives the sign, star and sub lord of all 12 cusps. A latitude beyond 66 degrees gets 422 placidus_undefined.

The answer. answer comes first. promise.status is promised, mixed, denied or not_shown, from the sub lord of the topic's cusp and the houses it signifies through its star lord. promise.other_cusp is the second cusp for education and travel.

The moment. ruling_planets are for the actual moment, not the number. Those still counting are in direct_grahas, and those set aside are in discarded with the reason. confirmation.state is confirmed, not_confirmed or nothing_to_confirm.

The date. timing.status is dated, with period (dasha, bhukti and antara lords and their dates) and transit, or no_date, with no_date_reason (promise_failed, no_ruling_planet, no_period or no_transit). A date is an estimate.

Asking again. An answered response carries repeat_rule: a working rule of one question per person and topic in 72 hours, counted from the last answered question. A refused question does not start it. The API stores nothing and takes no user id, so your app enforces it: save asked_at from each answer. A KP answer and a main answer on one topic count as one question, and that reading is provisional. Rulebook PQ-50, PQ-51.

provisional lists readings still awaiting the astrologer, by rule id. readings carries the text, each block with its corpus id. not_computed and not_claimed say what this does not do. Offered topics are in GET /v1/prashna/topics. Rulebook PQ-33 to PQ-43.

Uses 5 reading credits. On live keys a successful response uses them from your monthly reading credits, and no calls. Test keys return this reading for the sample charts only, and it counts as 1 test call. The X-Reading-Credits-Counted header says what a response used. What reading credits buy.

Cost: Uses reading credits on live keys instead of monthly calls. On test keys it counts as 1 call.

Required inputs

NameInWhat it is
topicbodyWhat the question is about. This route offers marriage, career, wealth, property, education, travel, children and litigation. Another topic from GET /v1/prashna/topics gets 422 topic_not_offered. A refused id gets 422 topic_refused, as on /v1/prashna.
latitudebodyLatitude of the place where the question is asked, in degrees, negative for south.
longitudebodyLongitude of that place in degrees, negative for west.
timezonebodyTime zone of that place: an IANA name such as America/New_York (daylight saving time is applied for the moment asked), or a fixed offset from UTC in hours.
numberbodyThe number the person picks, 1 to 249. Each one is a small slice of the zodiac, and the first degree of that slice becomes the ascendant.
Optional inputs (10), with their defaults
NameInWhat it does
langqueryLanguage of the reading text, such as en (English, the default) or hi (Hindi). GET /v1/meta lists the languages available. If a passage is not written in that language yet, the English passage is returned instead and marked with fell_back_to_en. Names in the response, such as planets and signs, are translated too.
detailqueryLength of the reading text: standard (the default) or expanded, which is about 1.8 times longer. If a passage has no expanded version yet, the standard one is returned. Each text block reports the length it got in its detail field.
timezone_foldbodyOnly for a typed time that happens twice, on the night the clocks go back: 0 for the first, 1 for the second. Not needed when the time is left out.
yearbodyYear the question was asked. Leave year, month, day, hour and minute all out to use the current moment at the place. If you send one, send year, month, day and hour.
monthbodyMonth, 1 to 12.
daybodyDay of the month, 1 to 31.
hourbodyHour on the local clock, 0 to 23.
minutebodyMinute, 0 to 59. Default 0 when a time is given.
ayanamsabodyAlways kp, the Krishnamurti ayanamsa. KP horary is defined on it.
nodebodyRahu and Ketu: true (the default) or mean.

Main response fields

  • system (string)
  • number (number)
  • topic (string)
  • title (string)
  • answer (object): holds status, label, headline, why, confirmed, confirmation, timing, note, titles.
  • promise (object): holds cusp, sub_lord, star_lord, star_lord_occupies, star_lord_owns, signifies, yes_signified, no_signified, status, yes_houses, no_houses, levels_used.
  • ruling_planets (object): holds lagna_star_lord, lagna_sign_lord, moon_star_lord, moon_sign_lord, day_lord, for, asc_longitude, nodes_added, grahas, discarded, direct_grahas, evidence_only.
  • confirmation (object): holds state, confirmed, confirmed_by, reading_id.
  • timing (object): holds method, estimate, rule, dasha_basis, allowed_lords, limit, status, no_date_reason, period, transit, reading_id.
  • chart (object): holds ayanamsa, house_system, number_sub, cusps, planets, significators.
  • provisional (array of objects): each item holds rule, point, reading.
  • not_computed (array of strings)
  • not_claimed (string)
  • readings (array of objects): each item holds id, part, title, text, language, detail.
  • gaps (array)
  • language (string)
  • detail (string)
  • asked_at (object): holds local, utc, utc_offset_hours, source.
  • place (object): holds latitude, longitude.
  • repeat_rule (object): holds hours, applies_to, starts_from, refusals_count, enforced_by, text.
  • meta (object): holds ayanamsa, ayanamsa_value, julian_day, ephemeris, node, timezone.
curl -X POST "https://apiforastrology.com/api/astrology/v1/prashna/kp" \
  -H "Authorization: Bearer $ASTROLOGY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"topic":"marriage","latitude":40.7128,"longitude":-74.006,"timezone":"America/New_York","number":123,"year":2026,"month":10,"day":1,"hour":12,"minute":0}'
Sample response
{
  "system": "kp_horary",
  "number": 123,
  "topic": "marriage",
  "title": "Marriage: your KP number reading",
  "answer": {
    "status": "denied",
    "label": {
      "id": "prashna:kp:label:denied",
      "text": "The chart does not support it"
    },
    "headline": {
      "id": "prashna:kp:headline:denied",
      "text": "For your question about marriage, the chart does not support it right now."
    },
    "why": [
      {
        "id": "prashna:kp:why:no",
        "text": "The sub lord of your seventh house, Jupiter, links through Mercury only to houses that say no: 1 and 10.",
        "reason": "no"
      }
    ],
    "confirmed": false,
    "confirmation": {
      "id": "prashna:kp:confirm:nothing_to_confirm",
      "text": "There is nothing for the moment to confirm, because the chart does not support this."
    },
    "timing": {
      "id": "prashna:kp:timing:no_date:promise_failed",
      "text": "No date is given, because the chart does not support this.",
      "status": "no_date",
      "no_date_reason": "promise_failed"
    },
    "note": {
      "id": "prashna:kp:note",
      "text": "This shows a tendency of the moment, not a promise. Your effort still counts."
    },
    "titles": {
      "why": "Why: the main reasons",
      "timing": "When",
      "details": "How we read it (all the details)"
    }
  },
  "promise": {
    "cusp": 7,
    "sub_lord": "Jupiter",
    "star_lord": "Mercury",
    "star_lord_occupies": 1,
    "star_lord_owns": [
      1,
      10,
      12
    ],
    "signifies": [
      1,
      10,
      12
    ],
    "yes_signified": [],
    "no_signified": [
      1,
      10
    ],
    "status": "denied",
    "yes_houses": [
      2,
      7,
      11
    ],
    "no_houses": [
      1,
      6,
      10
    ],
    "levels_used": [
      "in_star_of_occupants",
      "in_star_of_cusp_lord"
    ],
    "rule": "The sub lord of the cusp signifies a house through its star lord: the house the star lord occupies and the houses the star lord owns (PQ-37). promised: at least one yes house, and none of the no houses. mixed: at least one of each, both…",
    "other_cusp": null,
    "cusps_differ": false,
    "reading_id": "prashna:kp:promise:denied"
  },
  "ruling_planets": {
    "lagna_star_lord": "Saturn",
    "lagna_sign_lord": "Mars",
    "moon_star_lord": "Moon",
    "moon_sign_lord": "Venus",
    "day_lord": "Jupiter",
    "for": "the actual moment, not the number",
    "asc_longitude": 224.0253382,
    "nodes_added": [
      "Rahu"
    ],
    "grahas": [
      "Saturn",
      "Mars",
      "Moon"
    ],
    "discarded": [
      {
        "graha": "Saturn",
        "reason": "retrograde"
      },
      {
        "graha": "Mars",
        "reason": "in_star_of_retrograde",
        "star_lord": "Saturn"
      }
    ],
    "direct_grahas": [
      "Moon",
      "Venus",
      "Jupiter"
    ],
    "evidence_only": {
      "lagna_sub_lord": "Rahu",
      "moon_sub_lord": "Mercury"
    },
    "reading_id": "prashna:kp:ruling:list"
  },
  "confirmation": {
    "state": "nothing_to_confirm",
    "confirmed": false,
    "confirmed_by": [],
    "reading_id": "prashna:kp:confirm:nothing_to_confirm"
  },
  "timing": {
    "method": "kp_dasha_and_transit",
    "estimate": true,
    "rule": "Dasha, bhukti and antara lords are chosen only from the direct ruling planets that signify a yes house, on the dasha of the horary chart's own Moon. The first such period inside the limit that a transit confirms is given. Limit: 10 years…",
    "dasha_basis": {
      "of": "the horary chart's own Moon",
      "moon_longitude": 49.2922281,
      "balance_years": 3.031946,
      "balance_method": "time",
      "running": {
        "dasha_lord": "Moon",
        "bhukti_lord": "Mercury",
        "antara_lord": "Jupiter"
      }
    },
    "allowed_lords": [],
    "limit": {
      "kind": "ten_years",
      "until": "2036-10-01T00:00:00"
    },
    "status": "no_date",
    "no_date_reason": "promise_failed",
    "period": null,
    "transit": null,
    "reading_id": "prashna:kp:timing:no_date:promise_failed"
  },
  "chart": {
    "ayanamsa": {
      "name": "Krishnamurti (KP)",
      "value": 24.1339191
    },
    "house_system": "Placidus",
    "number_sub": {
      "number": 123,
      "start": 176.1111111,
      "end": 177.8888889,
      "sign": "Virgo",
      "nakshatra": "Chitra",
      "star_lord": "Mars",
      "sub_lord": "Jupiter"
    },
    "cusps": [
      {
        "cusp": 1,
        "longitude": 176.1111111,
        "degree_in_sign": 26.1111111,
        "degree_dms": "26 : 06 : 40",
        "sign": "Virgo",
        "sign_number": 6,
        "sign_lord": "Mercury",
        "nakshatra": "Chitra",
        "star_lord": "Mars",
        "sub_lord": "Jupiter",
        "sub_sub_lord": "Jupiter",
        "sub_number": 123
      },
      {
        "cusp": 2,
        "longitude": 203.6387429,
        "degree_in_sign": 23.6387429,
        "degree_dms": "23 : 38 : 19",
        "sign": "Libra",
        "sign_number": 7,
        "sign_lord": "Venus",
        "nakshatra": "Vishakha",
        "star_lord": "Jupiter",
        "sub_lord": "Saturn",
        "sub_sub_lord": "Jupiter",
        "sub_number": 140
      },
      {
        "cusp": 3,
        "longitude": 235.2169665,
        "degree_in_sign": 25.2169665,
        "degree_dms": "25 : 13 : 01",
        "sign": "Scorpio",
        "sign_number": 8,
        "sign_lord": "Mars",
        "nakshatra": "Jyeshtha",
        "star_lord": "Mercury",
        "sub_lord": "Rahu",
        "sub_sub_lord": "Mercury",
        "sub_number": 164
      }
    ],
    "planets": [
      {
        "graha": "Sun",
        "longitude": 164.357778,
        "degree_in_sign": 14.357778,
        "degree_dms": "14 : 21 : 28",
        "sign": "Virgo",
        "sign_number": 6,
        "sign_lord": "Mercury",
        "nakshatra": "Hast",
        "star_lord": "Moon",
        "sub_lord": "Jupiter",
        "sub_sub_lord": "Saturn",
        "sub_number": 115,
        "house": 12,
        "retrograde": false
      },
      {
        "graha": "Moon",
        "longitude": 49.2922281,
        "degree_in_sign": 19.2922281,
        "degree_dms": "19 : 17 : 32",
        "sign": "Taurus",
        "sign_number": 2,
        "sign_lord": "Venus",
        "nakshatra": "Rohini",
        "star_lord": "Moon",
        "sub_lord": "Mercury",
        "sub_sub_lord": "Jupiter",
        "sub_number": 34,
        "house": 8,
        "retrograde": false
      },
      {
        "graha": "Mars",
        "longitude": 97.9401995,
        "degree_in_sign": 7.9401995,
        "degree_dms": "07 : 56 : 25",
        "sign": "Cancer",
        "sign_number": 4,
        "sign_lord": "Moon",
        "nakshatra": "Pushya",
        "star_lord": "Saturn",
        "sub_lord": "Ketu",
        "sub_sub_lord": "Saturn",
        "sub_number": 68,
        "house": 10,
        "retrograde": false
      }
    ],
    "significators": {
      "by_house": {
        "1": {
          "in_star_of_occupants": [
            "Jupiter",
            "Saturn"
          ],
          "occupants": [
            "Mercury",
            "Venus"
          ],
          "in_star_of_cusp_lord": [
            "Jupiter",
            "Saturn"
          ],
          "cusp_lord": "Mercury"
        },
        "2": {
          "in_star_of_occupants": [],
          "occupants": [],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Venus"
        },
        "3": {
          "in_star_of_occupants": [],
          "occupants": [],
          "in_star_of_cusp_lord": [
            "Rahu"
          ],
          "cusp_lord": "Mars"
        },
        "4": {
          "in_star_of_occupants": [],
          "occupants": [],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Jupiter"
        },
        "5": {
          "in_star_of_occupants": [
            "Mercury",
            "Venus"
          ],
          "occupants": [
            "Rahu"
          ],
          "in_star_of_cusp_lord": [
            "Mars"
          ],
          "cusp_lord": "Saturn"
        },
        "6": {
          "in_star_of_occupants": [
            "Mars"
          ],
          "occupants": [
            "Saturn"
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Jupiter"
        },
        "7": {
          "in_star_of_occupants": [],
          "occupants": [],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Jupiter"
        },
        "8": {
          "in_star_of_occupants": [
            "Sun",
            "Moon"
          ],
          "occupants": [
            "Moon"
          ],
          "in_star_of_cusp_lord": [
            "Rahu"
          ],
          "cusp_lord": "Mars"
        },
        "9": {
          "in_star_of_occupants": [],
          "occupants": [],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Venus"
        },
        "10": {
          "in_star_of_occupants": [
            "Rahu"
          ],
          "occupants": [
            "Mars",
            "Jupiter"
          ],
          "in_star_of_cusp_lord": [
            "Jupiter",
            "Saturn"
          ],
          "cusp_lord": "Mercury"
        },
        "11": {
          "in_star_of_occupants": [
            "Ketu"
          ],
          "occupants": [
            "Ketu"
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": "Sun"
        },
        "12": {
          "in_star_of_occupants": [],
          "occupants": [
            "Sun"
          ],
          "in_star_of_cusp_lord": [
            "Jupiter",
            "Saturn"
          ],
          "cusp_lord": "Mercury"
        }
      },
      "by_planet": {
        "Sun": {
          "in_star_of_occupants": [
            8
          ],
          "occupants": [
            12
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": [
            11
          ],
          "all": [
            8,
            11,
            12
          ]
        },
        "Moon": {
          "in_star_of_occupants": [
            8
          ],
          "occupants": [
            8
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": [],
          "all": [
            8
          ]
        },
        "Mars": {
          "in_star_of_occupants": [
            6
          ],
          "occupants": [
            10
          ],
          "in_star_of_cusp_lord": [
            5
          ],
          "cusp_lord": [
            3,
            8
          ],
          "all": [
            3,
            5,
            6
          ]
        },
        "Mercury": {
          "in_star_of_occupants": [
            5
          ],
          "occupants": [
            1
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": [
            1,
            10,
            12
          ],
          "all": [
            1,
            5,
            10
          ]
        },
        "Jupiter": {
          "in_star_of_occupants": [
            1
          ],
          "occupants": [
            10
          ],
          "in_star_of_cusp_lord": [
            1,
            10,
            12
          ],
          "cusp_lord": [
            4,
            6,
            7
          ],
          "all": [
            1,
            4,
            6
          ]
        },
        "Venus": {
          "in_star_of_occupants": [
            5
          ],
          "occupants": [
            1
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": [
            2,
            9
          ],
          "all": [
            1,
            2,
            5
          ]
        },
        "Saturn": {
          "in_star_of_occupants": [
            1
          ],
          "occupants": [
            6
          ],
          "in_star_of_cusp_lord": [
            1,
            10,
            12
          ],
          "cusp_lord": [
            5
          ],
          "all": [
            1,
            5,
            6
          ]
        },
        "Rahu": {
          "in_star_of_occupants": [
            10
          ],
          "occupants": [
            5
          ],
          "in_star_of_cusp_lord": [
            3,
            8
          ],
          "cusp_lord": [],
          "all": [
            3,
            5,
            8
          ]
        },
        "Ketu": {
          "in_star_of_occupants": [
            11
          ],
          "occupants": [
            11
          ],
          "in_star_of_cusp_lord": [],
          "cusp_lord": [],
          "all": [
            11
          ]
        }
      },
      "levels": [
        "in_star_of_occupants",
        "occupants",
        "in_star_of_cusp_lord"
      ]
    }
  },
  "provisional": [
    {
      "rule": "PQ-51",
      "point": "one_question_across_routes",
      "reading": "The repeat rule is applied per topic id, whichever route answered. A KP answer and a main-route answer on the same topic id count as one question."
    },
    {
      "rule": "PQ-35",
      "point": "subdivision_point",
      "reading": "The ascendant is the FIRST degree of the sub the number names, the usual KP practice."
    },
    {
      "rule": "PQ-35",
      "point": "latitude",
      "reading": "The latitude is the one the caller sends. Whose place that is, the asker's or the astrologer's, is for the app."
    }
  ],
  "not_computed": [
    "repeat questions: the 72-hour rule is stated in `repeat_rule` and not enforced here. The API stores nothing and takes no user id, so your app keeps track (PQ-50)",
    "significator grades: the four levels of KP are lists, never scored",
    "node agency: Rahu and Ketu are counted only by their own house and star. Sources differ on which other planets they stand in for"
  ],
  "not_claimed": "a KP horary reading shows the TENDENCIES OF THE MOMENT a question is asked. It is not a yes-or-no answer and not a guarantee of any outcome. \"Confirmed\" means the moment agrees with the reading, not that the result is certain. A date is an…",
  "readings": [
    {
      "id": "prashna:kp:promise:denied",
      "part": "kp",
      "title": "What your number shows",
      "text": [
        "Your number makes Jupiter the sub lord of your seventh house. It works through its star lord, Mercury. That links it only to houses that say no: 1 and 10. So the chart does not support this right now."
      ],
      "language": "en",
      "detail": "standard"
    },
    {
      "id": "prashna:kp:ruling:list",
      "part": "kp",
      "title": "The planets of the moment",
      "text": [
        "The ruling planets for the moment you asked are Saturn, Mars, the Moon, Venus, Jupiter and Rahu."
      ],
      "language": "en",
      "detail": "standard"
    },
    {
      "id": "prashna:kp:ruling:nodes",
      "part": "kp",
      "title": "The planets of the moment",
      "text": [
        "Also counted: Rahu. Rahu or Ketu counts when it sits in a sign ruled by a ruling planet."
      ],
      "language": "en",
      "detail": "standard"
    }
  ],
  "gaps": [],
  "language": "en",
  "detail": "standard",
  "asked_at": {
    "local": "2026-10-01T12:00:00",
    "utc": "2026-10-01T16:00:00Z",
    "utc_offset_hours": -4,
    "source": "given"
  },
  "place": {
    "latitude": 40.7128,
    "longitude": -74.006
  },
  "repeat_rule": {
    "hours": 72,
    "applies_to": "same_person_and_topic",
    "starts_from": "last_answered_question",
    "refusals_count": false,
    "enforced_by": "caller",
    "text": "The same person should ask about the same topic only once in 72 hours. This is a working rule. The 72 hours start from the last question that got an answer. A refused question does not count, so the person can ask again when the moment…"
  },
  "meta": {
    "ayanamsa": "kp",
    "ayanamsa_value": 24.1339191,
    "julian_day": 2461315.167466,
    "ephemeris": "JPL DE440s",
    "node": "true",
    "timezone": {
      "source": "zone",
      "offset_hours": -4,
      "zone": "America/New_York",
      "abbreviation": "EDT",
      "dst": true,
      "dst_hours": 1,
      "ambiguous_resolved_by_fold": null,
      "note": "read from the IANA tz database at this instant, so daylight saving and historical offset changes are included"
    }
  }
}

Example from a real call. Long lists and texts are shortened.

Parameters, schemas and a test request in the interactive reference. Feature: Prashna (horary).

Question chart topics (prashna): what can be asked

GET /v1/prashna/topics

Lists every topic POST /v1/prashna reads, with its kind (question or contest), its houses (the first is the karya_bhava, the house of the matter), its karakas and a short note on where the sources differ, all in ?lang. kp says whether POST /v1/prashna/kp offers the topic, and if so its cusps, yes_houses and no_houses; kp_topics lists those topics. Also lists the refused kinds of question: each category, the topic ids that name it, and the message a request for one gets back with 422. repeat_rule states the rule for asking the same topic again; your app enforces it, since the API stores nothing. Built from the same tables the question route reads. No birth data needed. Rulebook PQ-22.

Cost: Each successful request counts as 1 call toward your monthly calls.

Required inputs

None.

Optional inputs (1), with their defaults
NameInWhat it does
langqueryLanguage of the reading text, such as en (English, the default) or hi (Hindi). GET /v1/meta lists the languages available. If a passage is not written in that language yet, the English passage is returned instead and marked with fell_back_to_en. Names in the response, such as planets and signs, are translated too.

Main response fields

  • count (number)
  • topics (array of objects): each item holds id, kind, houses, karya_bhava, karakas, framed_from, title, note, kp.
  • refused (array of objects): each item holds category, ids, message.
  • refused_ids (array of strings)
  • repeat_rule (object): holds hours, applies_to, starts_from, refusals_count, enforced_by, text.
  • kp_topics (array of strings)
curl "https://apiforastrology.com/api/astrology/v1/prashna/topics" \
  -H "Authorization: Bearer $ASTROLOGY_API_KEY"
Sample response
{
  "count": 33,
  "topics": [
    {
      "id": "marriage",
      "kind": "question",
      "houses": [
        7
      ],
      "karya_bhava": 7,
      "karakas": [
        "Venus",
        "Jupiter"
      ],
      "framed_from": null,
      "title": "Marriage",
      "note": "Venus is the karaka of a spouse when a man asks and Jupiter when a woman asks. The request carries no sex, so both are judged and listed, and neither enters the verdict.",
      "kp": {
        "offered": true,
        "cusps": [
          7
        ],
        "yes_houses": [
          2,
          7,
          11
        ],
        "no_houses": [
          1,
          6,
          10
        ]
      }
    },
    {
      "id": "career",
      "kind": "question",
      "houses": [
        10,
        11
      ],
      "karya_bhava": 10,
      "karakas": [
        "Sun",
        "Saturn",
        "Mercury"
      ],
      "framed_from": null,
      "title": "Career",
      "note": "The 10th is the work itself and the 11th its gains. The Sun signifies rank and office, Saturn service and labor, Mercury trade and business; which applies depends on the work, which a topic cannot say, so all three are listed.",
      "kp": {
        "offered": true,
        "cusps": [
          10
        ],
        "yes_houses": [
          2,
          6,
          10
        ],
        "no_houses": [
          5,
          9
        ]
      }
    },
    {
      "id": "wealth",
      "kind": "question",
      "houses": [
        2,
        11
      ],
      "karya_bhava": 2,
      "karakas": [
        "Jupiter"
      ],
      "framed_from": null,
      "title": "Money",
      "note": "The 2nd is wealth held and the 11th wealth coming in.",
      "kp": {
        "offered": true,
        "cusps": [
          2
        ],
        "yes_houses": [
          2,
          6,
          11
        ],
        "no_houses": [
          5,
          8,
          12
        ]
      }
    }
  ],
  "refused": [
    {
      "category": "lifespan",
      "ids": [
        "lifespan"
      ],
      "message": "We do not predict lifespan, date of death, or fatal outcomes on ethical grounds."
    },
    {
      "category": "unborn-child-sex",
      "ids": [
        "unborn-child-sex"
      ],
      "message": "Predicting the sex of an unborn child is strictly prohibited by law (PCPNDT Act) and ethical guidelines."
    },
    {
      "category": "speculation",
      "ids": [
        "lottery",
        "gambling",
        "share-tips"
      ],
      "message": "We do not provide predictions for lotteries, gambling, or speculative financial markets."
    }
  ],
  "refused_ids": [
    "lifespan",
    "unborn-child-sex",
    "lottery"
  ],
  "repeat_rule": {
    "hours": 72,
    "applies_to": "same_person_and_topic",
    "starts_from": "last_answered_question",
    "refusals_count": false,
    "enforced_by": "caller",
    "text": "The same person should ask about the same topic only once in 72 hours. This is a working rule. The 72 hours start from the last question that got an answer. A refused question does not count, so the person can ask again when the moment…"
  },
  "kp_topics": [
    "marriage",
    "career",
    "wealth"
  ]
}

Example from a real call. Long lists and texts are shortened.

Parameters, schemas and a test request in the interactive reference. Feature: Prashna (horary).

How we check the numbers

Every answer here starts from planet positions worked out from NASA JPL planet data (DE440). We test them against NASA JPL Horizons, NASA's planet position service. On 25,571 positions from 1850 to 2149, the Sun and planets agree within 0.001 arc seconds. The Moon agrees within 0.011. On 2,000 random birth charts, the rising sign agrees with Swiss Ephemeris within 0.004 arc seconds. An arc second is 1/3,600 of a degree. A practicing astrologer reviews the rules behind these answers. See how we test accuracy.

Terms in this group

From the blog