Fachliche Fallstricke
So verhält sich die API genau dort, wo generierter Code meistens danebenliegt. Jeder Punkt beschreibt, wie der Server die Anfrage tatsächlich behandelt – es geht nicht um Stilfragen.
Anfragen
- Der Schrägstrich am Ende ist Pflicht.
/api/astro/tithi/funktioniert;/api/astro/tithiliefert 301, und ein Client, der der Umleitung folgt, schickt die Anfrage erneut als GET ohne Body. - Derselbe Wert heißt bei verschiedenen Endpoints unterschiedlich. Der Zeitpunkt ist fast überall
date_time, aberdatetimebei/api/astro/chart/und den Teilhoroskopen. Der Offset heißt meisttimezone_as_float, bei manchen abertimezone,tzodertime_zone. Der Mondknoten heißtrahu,nodeodernode_type– mit unterschiedlichen Standardwerten. Bau jeden Body aus der Feldliste des jeweiligen Endpoints, statt einen Body überall wiederzuverwenden. - Westlich von Greenwich ist die Länge negativ, südlich des Äquators die Breite. New York liegt bei
-74.006, nicht bei74.006. - Die Grenzen für die Breite sind unterschiedlich: Die meisten Horoskop- und Panchang-Endpoints akzeptieren bis ±89.9, die Prashna-Endpoints Ashtamangala und Jamakkol nur bis ±66. Ein Wert außerhalb des Bereichs wird mit 400 abgelehnt.
Falsche Eingaben, die trotzdem 200 liefern
- Ein
date_timeohne Offset wird nicht als Ortszeit gelesen: Die meisten Endpoints nehmen UTC+05:30 an, einige UTC. Du bekommst ein ganz normales 200 – nur für einen anderen Zeitpunkt, manchmal sogar den Vortag. Schick also immer einen Offset oder Z mit. timezone_as_floatwird nicht mit dem Offset indate_timeabgeglichen. Passen beide nicht zusammen, bekommst du ein 200 für den falschen Zeitpunkt. Nimm den Offset, der an diesem Datum galt (inklusive Sommerzeit), nicht den heutigen./api/astro/date_time/ermittelt ihn aus den Koordinaten.- Einige Felder greifen auf einen Standard zurück, statt einen Fehler zu liefern: Bei
/api/astro/chart/bedeutet jedesascendant_posaußerstartoderenddie Häuserspitze, und bei/api/astro/festival/verhält sich jedesmoon_optionaußerpoornimawieamavas. Ein Tippfehler ändert dort das Ergebnis, ohne dass eine Fehlermeldung kommt.
Keys
- Bei einem Endpoint mit Key-Tabelle lässt ein Key, der nicht darin steht, die ganze Anfrage mit 400 scheitern; die Meldung nennt die unbekannten Keys. Es wird nichts berechnet und nichts abgerechnet.
- Key-Namen müssen exakt stimmen und sind manchmal überraschend:
/api/astro/panchanga/nutztyogamfür das Yoga des Tages,rahu_kaalamundcalcualte_special_tithi(genau so geschrieben). Kopier sie aus der Key-Tabelle, statt zu raten. - Ein Key, der ein zusätzliches Feld braucht, scheitert mit 400, wenn das Feld fehlt – zum Beispiel der Key
phone_numberbei/api/astro/numerology/ohne Wert fürphone_number. - Ein erfolgreicher Aufruf kostet einen Credit, egal wie viele Keys er abfragt. Frag alles Nötige in einem Aufruf ab –
tithi,vaara,yogamundkaranazusammen –, statt für jeden Key einen eigenen Aufruf zu senden. - Endpoints mit nur einer Aufgabe wie
/api/astro/tithi/und/api/astro/rahu-kaal/haben keine Key-Tabelle: Sie liefern immer dieselben festen Werte, und ein mitgeschickteskeys-Array wird ignoriert. - Bei
/api/astro/numerology/hängen die gültigen Keys vonsystemab. Ein Key aus einem anderen System liefert 400, und die Meldung nennt ihn.
Credits, Fehler und Limits
- Die meisten Endpoints kosten einen Credit pro erfolgreichem Aufruf.
/api/astro/chat/,/api/astro/pdf/horoscope/und/api/astro/pdf/yearbook/kosten je 25 – lass sie aus Schleifen und automatischen Wiederholungen heraus. - Fehlgeschlagene Aufrufe sind kostenlos: Credits werden vor der Berechnung reserviert und bei jeder Antwort außerhalb von 2xx zurückgebucht. Die Antwort enthält dann
X-Credits-Charged: 0. - Abgerechnete Antworten enthalten
X-Credits-Cost,X-Credits-ChargedundX-Credits-Remaining, dazu die MinutenwerteX-RateLimit-LimitundX-RateLimit-Remaining. Lies sie aus, statt das Guthaben selbst mitzurechnen. - Sind keine Credits mehr da, kommt 402 mit
messageinsufficient_credits;dataenthältcost_credits,credits_remainingundrecharge_url. Erneute Versuche helfen erst, wenn der Tarif hochgestuft oder sein Kontingent zurückgesetzt ist. - Wer das Minutenlimit überschreitet, bekommt 429 mit
messageapi_key_rate_limitedund dem HeaderRetry-After(zusätzlichretry_after_secondsindata). Warte so lange, bevor du es erneut versuchst. - Ein fehlerhafter, widerrufener oder abgelaufener Schlüssel liefert 401
invalid_api_key. Eine Route, ein Scope oder eine IP-Adresse, die dein Schlüssel nicht nutzen darf, liefert 403endpoint_not_allowed,scope_not_allowedoderip_not_allowed. - Fehler aus der Schlüssel- und Credit-Prüfung sehen so aus:
{ "error": "…", "message": "insufficient_credits", "is_error": true, "data": { … } }– verzweige anhand des Codes inmessage. Berechnungen antworten im Fehlerfall im Format{ "data": {}, "status": 400, "is_error": true, "message": "…" }, mit dem Grund als Text inmessage. Beide enthaltenis_error. - Die beiden PDF-Endpoints liefern direkt das PDF (
application/pdf), kein JSON. Schreib den Body in eine Datei – einen Download-Link, den du danach abrufen müsstest, gibt es nicht.
Astrologie
- Die vedischen Endpoints rechnen siderisch und wenden die Ayanamsa-Korrektur schon auf dem Server an; die Routen unter
/api/astro/western/sind standardmäßig tropisch. Zieh also nicht selbst noch ein Ayanamsa von der Ausgabe ab. /api/astro/kp-chart/nutzt Placidus-Häuserspitzen im siderischen Tierkreis. Deshalb können die Hausstellungen für dieselbe Geburt von/api/astro/chart/abweichen. Das ist die KP-Methode, kein Widerspruch.- Rashifal ist eine Vorhersage pro Tierkreiszeichen, ganz ohne Geburtshoroskop: Schick
rashials englischen Zeichennamen wieleo, keine Geburtsdaten. - Tarot-Ziehungen sind zufällig, solange du kein
seedmitschickst. Jede Antwort gibt den verwendeten Seed zurück – speicher ihn, wenn eine Legung später exakt gleich angezeigt werden soll. /api/astro/numerology/iching/ordnet ein Datum und einen Namen rechnerisch einem der 64 Hexagramme zu. Es wird nichts geworfen, daher gibt es keine wandelnden Linien und kein zweites Hexagramm.