Wszystko, czego potrzebujesz na jednej stronie
W kolejności, w jakiej to naprawdę potrzebne: najpierw działająca odpowiedź, potem dane wejściowe, potem systemy, na końcu to, co może pójść nie tak.
Quickstart
Wygeneruj klucz w panelu, wklej go poniżej i wywołaj bundle. Jedno żądanie zwraca wszystkie osiem systemów i kosztuje 6 kredytów — na darmowym planie starczy Ci ich na 16 pełnych profili.
curl -X POST https://api.eldermind.io/v1/profile/complete \
-H "Authorization: Bearer sk_live_TWOJ_KLUCZ" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"birth_date": "1993-09-01",
"birth_time": "14:30",
"birth_place": "Warszawa, Polska"
},
"detail": "summary"
}'Odpowiedź to obiekt z kluczem na każdy system plus meta. Jeśli jeden system zawiedzie, pozostałe wracają normalnie, a błąd ląduje w meta.errors — dostajesz wartość zamiast pięćsetki.
Uwierzytelnianie
Klucz podajesz w nagłówku Authorization. Przechowujemy wyłącznie jego skrót argon2id, więc pokazujemy Ci go dokładnie raz — zgubionego nie odzyskamy ani my, ani Ty.
Authorization: Bearer sk_live_...Alternatywnie: token OAuth 2.1, którym posługują się konektory czatowe. Uprawnienia, kredyty i limity działają identycznie w obu przypadkach, bo reguły żyją w jednym miejscu. Token OAuth nie zakłada nowego konta — to inny sposób przedstawienia klucza, który już istnieje.
Obiekt subject
Wszystkie endpointy liczące kartę przyjmują ten sam obiekt wejściowy. Wymagana jest wyłącznie data urodzenia.
| Pole | Typ | Wymagane |
|---|---|---|
birth_date | string | tak |
birth_time | string | nie |
birth_place | string | alternatywnie |
latitude / longitude | number | alternatywnie |
timezone | string (IANA) | alternatywnie |
gender | string | nie |
full_name | string | nie |
reference_date | string | nie |
Podaj albo birth_place, albo trójkę latitude, longitude i timezone. Pierwsze jest wygodniejsze, ale kosztuje około 300 ms na geokodowanie; drugie jest natychmiastowe. Bez birth_time przyjmujemy 12:00 i oflagowujemy w warnings, że Ascendent, domy, filar godziny i Księżyc są wtedy niewiarygodne.
Osiem systemów
Każdy system ma własny endpoint i własny koszt. Wszystkie przyjmują ten sam obiekt subject.
| System | Endpoint | Kredyty |
|---|---|---|
| human_design | /v1/human-design/chart | 1 |
| gene_keys | /v1/gene-keys/profile | 1 |
| bazi | /v1/bazi/chart | 1 |
| vedic | /v1/vedic/chart | 2 |
| matrix | /v1/matrix/destiny | 1 |
| numerology | /v1/numerology/profile | 1 |
| western | /v1/western/natal | 1 |
| draconic | /v1/draconic/chart | 1 |
Endpoint /v1/profile/complete liczy wszystkie osiem naraz za 6 kredytów, z opcjonalnym selektorem systems, gdy potrzebujesz tylko części.
Okna tranzytowe
POST /v1/transits/windows zwraca nadchodzące wejścia planet w znaki i dokładne aspekty tranzytujące do karty natalnej, posortowane od najsilniejszych. To jedyny endpoint, który odpowiada na pytanie „kiedy” zamiast „jaki” — i jedyny, którego wynik jutro będzie inny.
| Pole | Typ | Wymagane |
|---|---|---|
| subject | object | Te same pola co wszędzie indziej |
| months | 1-24 | Ile miesięcy w przód skanować. Domyślnie 12 |
| max_windows | 5-100 | Ile okien zwrócić. Domyślnie 20 |
| start_date | string | Początek skanu. Domyślnie dzisiaj (UTC) |
Skan idzie dzień po dniu, więc miesiące są zarazem zakresem i ceną: rok kosztuje 12 kredytów. Podnoś max_windows razem z months — lista ucina się na limicie, a domyślne 20 osiągane jest mniej więcej po roku, więc dłuższy skan przy domyślnym limicie kosztuje więcej i zwraca to samo.
Dostępne w planach All Access i Business. Na planie darmowym i Starter endpoint odpowiada kodem TRANSITS_NOT_ENTITLED, a pozostałe systemy działają normalnie.
Poziomy szczegółowości
Pełny profil to około 30 KB, czyli mniej więcej 7 700 tokenów — jedno wywołanie narzędzia zjadłoby kontekst modelu, zanim ten zdąży cokolwiek powiedzieć. Dlatego domyślny poziom dla MCP to summary.
| Poziom | Rozmiar | Zastosowanie |
|---|---|---|
| summary | ~2,2 KB | Domyślny dla MCP |
| standard | ~18,3 KB | Domyślny dla REST |
| full | ~30,2 KB | Eksport, backend-to-backend |
Serwer MCP
Ten sam silnik, 14 narzędzi, jeden proces. Dla Cursora, VS Code i Claude Desktop wystarczy wkleić konfigurację z kluczem.
{
"mcpServers": {
"eldermind-astro": {
"url": "https://api.eldermind.io/mcp",
"headers": {
"Authorization": "Bearer sk_live_TWOJ_KLUCZ"
}
}
}
}Dla Claude.ai i ChatGPT podaj sam adres https://api.eldermind.io/mcp. Konektor sam wykona rejestrację i przeprowadzi Cię przez ekran zgody — pełny OAuth 2.1 z PKCE i rotacją tokenów odświeżających.
Kredyty i limity
Kredyty naliczamy dopiero po udanym obliczeniu. Odrzucone żądanie nie kosztuje nic. Odpowiedź z cache'u jest naliczana normalnie — dostałeś odpowiedź, o którą prosiłeś — ale oflagowana, żebyś widział własny współczynnik trafień.
Po przekroczeniu limitu zapytań dostajesz 429 z nagłówkiem Retry-After. Po wyczerpaniu kredytów — 402 z adresem strony cennika, z którego model językowy potrafi zrobić sensowny komunikat zamiast halucynować wynik.
Kody błędów
Każda awaria wraca w tej samej kopercie, ze stabilnym kodem i numerem żądania. To jest różnica między API, pod które da się pisać, a takim, które trzeba zgadywać.
{
"error": {
"code": "AMBIGUOUS_LOCAL_TIME",
"message": "Local time 02:30:00 on 1993-03-28 does not exist in Europe/Warsaw (daylight-saving gap).",
"field": "birth_time",
"request_id": "req_01JD8X...",
"docs_url": "https://eldermind.io/api/docs#errors"
}
}| Kod | HTTP |
|---|---|
INVALID_API_KEY | 401 |
INSUFFICIENT_CREDITS | 402 |
SYSTEM_NOT_ENTITLED | 403 |
DETAIL_NOT_ENTITLED | 403 |
TRANSITS_NOT_ENTITLED | 403 |
INVALID_TIMEZONE | 422 |
AMBIGUOUS_LOCAL_TIME | 422 |
DATE_OUT_OF_RANGE | 422 |
HOUSE_SYSTEM_UNAVAILABLE | 422 |
GEOCODING_FAILED | 422 |
RATE_LIMITED | 429 |
SERVICE_BUSY | 503 |
CALCULATION_ERROR | 500 |
Numer żądania wraca też w nagłówku X-Request-Id każdej odpowiedzi. Przyślij go w zgłoszeniu, a znajdziemy konkretny wiersz zamiast zgadywać, co się wydarzyło wczoraj.