Prompturi pentru AI builderi
Un builder va scrie codul mai repede decât tine. Ce nu știe sunt două lucruri despre un API anume: unde să pună cheia și de ce cererea din browser nu trece. Ambele costă ore de depanare și ambele se rezolvă cu un singur paragraf în prompt.
Mai jos, mai întâi acest paragraf, apoi șapte rețete.
Regula care trebuie inserată înaintea oricărei rețete
Section titled “Regula care trebuie inserată înaintea oricărei rețete”Copiază acest bloc în builder înaintea textului rețetei. Nu e despre stilul codului, e despre ce altfel nu va funcționa.
AstroWay API house rules. Apply these to every request you generate.
1. The API key is a server secret. Never put aw_live_* or aw_test_* into client code, into a VITE_* or NEXT_PUBLIC_* variable, or into a fetch that runs in the browser. Create a server route and call the API from there.2. The browser cannot call https://api.astroway.info/v1/* with that key. The one exception is a publishable pk_live_* key created for your app's origin: responses to that origin carry access-control-allow-origin, and the key works only from origins on its own list. Two prefixes answer any browser with no key: /v1/public/* returns JSON you can use, and /v1/embed/* returns a finished HTML page meant for an iframe, not for fetch.3. The auth header is exactly "X-Api-Key: <key>". Authorization: Bearer is rejected with 401, and so is an api_key query parameter.4. Send the birth time zone as an IANA name: "timezone": "Europe/Kyiv". Do not compute a UTC offset yourself. Kyiv in May 1990 was UTC+4, not the +3 it is today, and a wrong offset moves every house cusp.5. Every response is {"ok": true, "data": {...}} or {"ok": false, "error": {"code": "...", "message": "..."}}. Read data on success and show error.message to the user on failure. Do not assume a bare object.6. Planet positions arrive as ecliptic longitude in degrees, with no sign name. Derive it: SIGNS[Math.floor(longitude / 30)] where SIGNS runs Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces. Degrees inside the sign are longitude % 30.7. Responses carry X-Credits-Used and X-Credits-Remaining. Log both on the server so the cost of a feature is visible before the bill is.8. Ask for the fields you will render. Every endpoint takes ?fields= as a comma-separated list of dotted paths and ?precision= as decimal places: POST /v1/chart?fields=planets.name,planets.longitude,houses.cusp&precision=2 answers in 559 bytes where the full response is 32,410. Same credits, and the tokens are yours to pay either way.9. Get a free key at https://api.astroway.info/dashboard/sign-up and use an aw_test_* sandbox key while building: it spends no credits.1. Hartă natală cu roată
Section titled “1. Hartă natală cu roată”Două răspunsuri la o singură acțiune a utilizatorului: datele hărții și un SVG gata făcut.
| Endpoint | Credite |
|---|---|
/v1/chart | 20 |
/v1/render/wheel-western | 10 |
Build a single-page app: a birth data form (date, time, city with latitude andlongitude, IANA time zone) that renders a natal chart.
Server route POST /api/chart does two calls to AstroWay, in parallel: POST https://api.astroway.info/v1/chart POST https://api.astroway.info/v1/render/wheel-westernBoth take the same body: { "date": "1990-05-15", "time": "14:30:00", "timezone": "Europe/Kyiv", "latitude": 50.45, "longitude": 30.52 }Both need the X-Api-Key header.
/v1/chart returns data.planets (array with name, longitude, isRetrograde),data.houses.cusps (array of 12 longitudes) and data.aspects (array withplanet1, planet2 and a type object carrying name, symbol and color)./v1/render/wheel-western returns data.svg as a string.
The page shows the SVG at the top, then a table of planets with sign anddegree derived from longitude, then the aspect list using type.symbol andtype.color. Mark retrograde planets with an R.
Do not call AstroWay from the browser. The page calls /api/chart only.Verifică după generare: SVG-ul este inserat ca markup, nu în <img src>; ora este trimisă ca șir HH:mm:ss; cheia nu a ajuns în bundle (o căutare după aw_ în fișierele build-uite nu trebuie să găsească nimic).
2. Compatibilitatea a două hărți
Section titled “2. Compatibilitatea a două hărți”Un singur număr și componentele lui, fără text explicativ. /v1/synastry/attraction-score, 50 de credite per pereche.
Build a compatibility page: two birth-data forms side by side, one button.
Server route POST /api/compat calls POST https://api.astroway.info/v1/synastry/attraction-scorewith body { "chart1": {...}, "chart2": {...} }, where each chart is { "date", "time", "timezone", "latitude", "longitude" }.
The response has data.score (a number), data.components (the parts that madeit) and data.notes. Render score as a large number with a progress ring, thencomponents as labelled bars, then notes as a list.
Never show the score without the components: a single number with no reasonbehind it is the thing users distrust.3. Horoscop zilnic, complet fără cheie
Section titled “3. Horoscop zilnic, complet fără cheie”Singura rețetă în care nu e nevoie de o rută de server: acest endpoint răspunde browserului și nu costă credite.
Add a daily horoscope block to the page. Call this directly from the browser,no key and no server route needed:
GET https://api.astroway.info/v1/public/horoscope/daily?sign=leo&lang=en
Response: data.sign, data.date, data.period, data.horoscope (the text),data.disclaimer and data.language. Render a sign picker with the twelve signs,remember the choice in localStorage, and always show data.disclaimer under thetext.
The first request for a date that has not been generated yet can take a while,so show a skeleton, not a spinner that looks stuck.4. Human Design
Section titled “4. Human Design”Tipul, strategia, autoritatea, profilul, centrele și canalele într-un singur apel /v1/human-design, 50 de credite.
Build a Human Design page: birth data form, then the chart summary.
Server route POST /api/hd calls POST https://api.astroway.info/v1/human-designwith { "date", "time", "timezone", "latitude", "longitude" }.
The response has data.type, data.strategy, data.notSelfTheme, data.authority,data.profile, data.definition, data.cross, data.centers, and the activationarrays data.personalityActivations and data.designActivations.
Lay it out as: type and strategy as the headline, authority and profile as twocards, centers as a list with defined ones filled and undefined ones outlined,activations in a collapsible table. Birth time matters here more than anywhereelse, so refuse to submit without it and say why.5. Raport PDF sub brandul utilizatorului
Section titled “5. Raport PDF sub brandul utilizatorului”Pentru cei care vând rapoarte, nu afișează ecrane. /v1/reports/natal, 5000 de credite per document, iar linkul trăiește 24 de ore.
Build a report generator: birth data form plus a branding form (company name,report title, accent colour), and a Generate button.
Server route POST /api/report calls POST https://api.astroway.info/v1/reports/natalwith { "chart": { "date", "time", "timezone", "latitude", "longitude" }, "whitelabel": { "companyName": "...", "reportName": "...", "themeColor": "#7c3aed", "footerText": "..." } }
The response has data.url, data.page_count, data.byte_length anddata.expires_at. The URL is valid for 24 hours only, so the server mustdownload the PDF immediately and store it on your side, then hand the useryour own link. Never give the AstroWay URL to the end user.
Show page_count and a download button. One report costs 5000 credits: put aconfirmation step before the call, not after.Catalogul complet al celor șaisprezece rapoarte, ce conține fiecare și câte pagini are: Reports API.
6. Calendarul tranzitelor pe o lună
Section titled “6. Calendarul tranzitelor pe o lună”O listă de evenimente într-o fereastră de date, din care iese și un flux, și un calendar. /v1/transit-calendar, 100 de credite per fereastră.
Build a month view of transits.
Server route POST /api/transits calls POST https://api.astroway.info/v1/transit-calendarwith { "natal": { "date", "time", "timezone", "latitude", "longitude" }, "startDate": "2026-10-01", "endDate": "2026-10-31" }
The response has data.count and data.events, plus the echoed startDate,endDate and maxOrb. Render events on a month grid, one dot per day withevents, and a day panel listing that day's events.
One call covers the whole window, so fetch the month once and filter in theclient. Do not call the API per day: that is thirty-one calls and thirty-onetimes the credits for the same answer.7. Tragere de tarot
Section titled “7. Tragere de tarot”Cel mai ieftin mod de a adăuga o interacțiune zilnică. /v1/tarot/rider-waite/draw/three-card, 10 credite per tragere, sau zero pentru cartea zilei.
Add a three-card tarot spread.
Server route POST /api/tarot calls POST https://api.astroway.info/v1/tarot/rider-waite/draw/three-cardwith an optional { "seed": 7 }. The response has data.spread, data.seed anddata.drawn.
Pass a seed derived from the user id and today's date, so the same person getsthe same spread all day and a new one tomorrow. Without a seed every reloaddeals a new hand, which reads as a slot machine.
For a zero-cost daily card the browser can call GET https://api.astroway.info/v1/public/tarot/dailydirectly, no key.Opt builderi, o singură diferență
Section titled “Opt builderi, o singură diferență”Rețetele de mai sus sunt aceleași pentru toți. Diferența este doar unde trăiește ruta de server și unde pui cheia.
| Builder | Unde trăiește apelul de server | Unde pui cheia |
|---|---|---|
| Lovable | edge function în Supabase | Secrets ale proiectului Supabase |
| Bolt | server function | panoul Secrets din Bolt |
| v0 | route handler Next.js pe Vercel Functions | environment variable în Vercel, de tip Secret |
| Replit | un proces de server obișnuit | Replit Secrets, și separat încă o dată în Deployments |
| Cursor, Claude Code, Devin Desktop, Copilot | cel din stack-ul tău | .env în afara git plus stocarea hostingului tău |
Patru capcane separate, fiecare costă o seară.
- Lovable și Bolt construiesc frontend-ul prin Vite, iar Vite expune browserului orice variabilă cu prefixul
VITE_. Cheia nu se pune acolo nici măcar temporar: va ajunge în bundle-ul servit tuturor. - Bolt afișează preview-ul în interiorul unui WebContainer, iar acesta este un browser adevărat, cu CORS adevărat, care acolo nu se dezactivează. Funcția de server aici nu e “mai bine”, ci singura cale ca apelul să aibă loc.
- v0 încorporează
NEXT_PUBLIC_*în bundle la build. Nu ajunge să schimbi valoarea în dashboard: până nu există un deploy nou, aplicația merge cu cheia veche. Rotația cheii înseamnă rotație plus rebuild. - Replit ține secretele workspace-ului și secretele Deployments separat. Ce funcționa în editor cade după publicare cu o cheie goală, până când o adaugi încă o dată în panoul Deployments.
Ultimele patru din ultimul rând al tabelului nu sunt platforme, ci agenți în repository-ul tău, și fiecare are propria listă de permisiuni de rețea pentru propriul sandbox. Când agentul va vrea să verifice codul abia scris, apelul către api.astroway.info poate fi blocat până nu adaugi domeniul. Pentru ei există și o cale mai scurtă: conectează MCP-ul nostru și agentul va apela API-ul singur, fără codul tău. Instrucțiuni la Configurarea agentului.
Dacă agentul tău vorbește function calling, nu MCP
Section titled “Dacă agentul tău vorbește function calling, nu MCP”Ia definițiile de instrumente gata făcute și transmite-le direct modelului. Ele sunt generate din documentul OpenAPI, deci schema pe care o completează modelul este aceeași pe care o validează endpoint-ul.
curl "https://api.astroway.info/v1/agent/tools?format=openai&select=starter" \-H "X-Api-Key: aw_live_YOUR_KEY"format acceptă openai și anthropic, select restrânge catalogul la setul de start în loc de toate instrumentele.