Astrology widgets for your website
The public HTML widgets GET /v1/embed/* return a ready iframe fragment - SVG wheel, horoscope, numerology, and more. No API key, rate-limited per visitor IP (120 requests an hour, separate from /v1/public/*, so a page with several widgets does not run into it), cached public, max-age=300. Great for marketing pages; for high-traffic production use the SDK.
<iframe src="https://api.astroway.info/v1/embed/wheel?date=1990-05-15&time=14:30&lat=50.45&lng=30.52&tz=2&theme=dark" width="460" height="560" style="border:0"></iframe>Where to start
Section titled “Where to start”How you embed depends on what your site runs on. The content is the same either way; what changes is how much work is left to you.
| Your site | What to install |
|---|---|
| WordPress | The AstroWay plugin: 18 shortcodes and 26 Gutenberg blocks. Eleven widgets work the moment it is activated, with no key. |
| WordPress with Elementor | AstroWay for Elementor: seven widgets you drag straight into the editor. |
| Tilda, Squarespace, Wix, plain HTML | The script loader below, or a ready <iframe> from the gallery. One button copies it. |
| Your own frontend | The same /v1/embed/* endpoints, or the SDK when you want full control of the markup. |
The plugins serve exactly what the endpoints on this page serve, but render it in your theme’s own styling and spare you from sizing anything by hand.
A separate widget: the natal chart calculator
Section titled “A separate widget: the natal chart calculator”The widgets on this page draw what you already know: you supply the date, time and place. When you want the visitor to type their own, we have a different widget for that, the natal chart calculator (the @astroway/widget package). One paste gives you the form, the calculation and the wheel, in ten languages, light and dark.
The difference is not the styling, it is where the maths happens. The calculator runs in the visitor’s browser, and the birth data never reaches a server at all. The /v1/embed/* widgets are computed by us, so their parameters are visible in the iframe URL.
| What you need | What to use |
|---|---|
| The visitor enters their own birth data | The @astroway/widget calculator |
| Birth data must not leave the browser | The @astroway/widget calculator |
| Horoscopes, transits, tarot, numerology, panchang and twelve more types | The widgets on this page |
| Twenty languages instead of ten | The widgets on this page |
Script loader
Section titled “Script loader”If you would rather not size the iframe yourself, drop in the loader: it replaces itself with an iframe and matches the height to the content automatically, because the widget reports its own size over postMessage.
<script src="https://cdn.astroway.info/embed.js" data-widget="wheel" data-date="1990-05-15" data-time="14:30" data-lat="50.45" data-lng="30.52" data-tz="3"></script>Any data-* attribute becomes a query parameter, so data-theme="light" and data-lang="en" work exactly as in the iframe example. data-height="500" pins the height and turns auto-sizing off. Several widgets on one page do not interfere with each other.
No key is needed, and none is accepted. The /v1/embed/* endpoints are public, and a key in an attribute would end up in the page source. The loader ignores such attributes and warns in the console.
Which URL to use
Section titled “Which URL to use”| File | Cache | For whom |
|---|---|---|
https://cdn.astroway.info/embed.js | 5 minutes | The usual choice. Fixes reach you automatically. |
https://cdn.astroway.info/embed.v1.js | 1 year, immutable | When you need the bytes never to move. Replaced only for a security fix; behaviour changes go to embed.v2.js. |
Widget gallery
Section titled “Widget gallery”Live preview of all 16 widgets. Pick the theme and the content language, switch the snippet between an <iframe> and the <script> loader, and copy the ready code.
Shared parameters
Section titled “Shared parameters”Accepted by every widget:
| Parameter | Values | Default | Description |
|---|---|---|---|
theme | dark · light · console | dark | Color scheme. |
lang | uk · en · +18 languages | uk | Content language. Also read from the Accept-Language header. |
disclaimer | 1 · true · yes | off | Adds a footer note that the content is for entertainment and informational purposes only (not medical, psychological, financial, or legal advice). |
Widgets
Section titled “Widgets”| Widget | Endpoint | Per-widget parameters |
|---|---|---|
| Daily Horoscope | GET /embed/daily-horoscope | sign, date |
| Natal Wheel | GET /embed/wheel (alias /embed/natal) | date, time, lat, lng, tz, city |
| Transit Timeline | GET /embed/transit-timeline | date, days (max 30) |
| Bodygraph (Human Design) | GET /embed/bodygraph | date, time, lat, lng, tz |
| Vedic Kundli | GET /embed/kundli | date, time, lat, lng, tz |
| Mini Chart | GET /embed/mini-chart | date, time, lat, lng, tz, city |
| Planet of Day | GET /embed/planet-of-day | date |
| Moon Phase | GET /embed/moon-phase | date |
| Daily Tarot | GET /embed/daily-tarot | date |
| Monthly Forecast | GET /embed/monthly-forecast | sign, month (YYYY-MM) |
| Sky Transits | GET /embed/transit | date |
| Numerology | GET /embed/numerology | name, date, system (pythagorean · chaldean) |
| Panchang | GET /embed/panchang | date, lat, lng, tz (coordinates required) |
| Synastry | GET /embed/synastry | date_a, time_a, lat_a, lng_a, tz_a, date_b, time_b, lat_b, lng_b, tz_b |
| Moon Calendar | GET /embed/moon-calendar | month (YYYY-MM), tz |
| Tarot Spread | GET /embed/tarot-spread | spread (single-card · three-card · decision · career), date, seed, reversed, art |
Formats: date - YYYY-MM-DD, time - HH:MM, tz - UTC offset in hours. Omitted parameters fall back to sensible defaults (current date, noon, equator).