Common Mistakes
LLMs frequently produce broken code in these specific ways. Cross-checked against production logs.
Astrology
- Horoscope is
POST /api/astro/rashifal/daily/with JSON body { rashi }, e.g. { "rashi": "aries" }. Not a GET, not a path param. - Birth chart is
POST /api/astro/chart/. Requires ayanamsa, chart_name, datetime, latitude, longitude, notation. - Daily horoscope (rashifal) response fields include
general_prediction,aspects(with love, career, health), andlucky(with color, number). Nocolumn,overview, oreventsfields.
Vedic
- Body uses
date_time(ISO 8601 string),latitude,longitude, andtimezone_as_float. Not separate date and time fields. - Manglik dosha: the
manglikkey returns a three-element list [is_manglik, cancellation_applied, cancellation_rules_matched]. Not a single boolean. - Kala Sarpa: the
kala_sarpakey returns a boolean. Use theastro/dosha/endpoint withkeys: [\"kala_sarpa\"]. - Dasha endpoint:
POST /api/astro/dasha/vimshottari/. Takes date_time, latitude, longitude, timezone_as_float. There is no separate sub-dasha endpoint. - KP chart is
POST /api/astro/kp-chart/. Not/kp/birth-chart. - Panchang: use
GET panchangawith date_time, latitude, longitude, timezone_as_float.
Numerology
- Numerology uses
date_time,name,year,month,day(integers). Not abirthDatestring. - The
keysarray controls which calculations return. Batch all keys in one call — one credit regardless of count. - Personal year key:
personal_year_numberwithyearparam (defaults to current year).
Tarot
- Spread:
POST /api/astro/tarot/spread/withspreadparam (e.g.three_card). Not/spreads/three-card. - Yes/No:
POST /api/astro/tarot/yes-no/. Response field isstrength(notconfidence). Values: "Strong" or "Qualified" only. - Draw:
POST /api/astro/tarot/draw/. - Card IDs are kebab-case:
fool,ace-of-cups,three-of-swords.
I-Ching
- I-Ching is
POST /api/astro/numerology/iching/. Takes optional date_time and name. There are no separate daily or cast endpoints.
Angel Numbers
POST /api/astro/numerology/angel/withsequenceas a string (e.g. "1111"). Integer fails validation.
All Endpoints
- All POST endpoints: include
Content-Type: application/jsonheader.
SDK Usage
- TypeScript: initialize with
new OccultApi({ apiKey }). Every method returns { data, error, response }. Check error first. - Python:
from occult_api import OccultApi, pass kwargs, never positional. Async variants end with_async. - PHP (8.2+):
use function OccultAPI\Sdk\occult;then$occult = occult($key). Call methods with named arguments. - Never call Occult API from client-side code. API keys belong on the server.