
# WordPress astrology plugin, blocks and shortcodes

> Add daily horoscopes, natal charts, Vedic kundli, human design, forecast, and more to any WordPress site with Gutenberg blocks and shortcodes. Free to start, no code required.

The official RoxyAPI plugin turns WordPress into a full astrology and spiritual-insight site. 18+ domains, one API key, rendered as interactive blocks and shortcodes that match your theme. Readings render the moment you activate it, before you have an account.

**Tip: Not a plugin person?**
Every reading is also a [copy-paste widget](/widgets). Paste one snippet into a **Custom HTML** block with a publishable (`pk_`) key and it renders in the visitor browser, no plugin installed. The plugin is the better fit on WordPress because it keeps the key server side, caches responses, and gives you blocks in the editor, so start here and keep the widget for a one-off page or a site you cannot install plugins on. Full walkthrough: the [widgets guide](/docs/widgets).

## Install the plugin

<div class="not-prose my-4">
  <a href="https://wordpress.org/plugins/roxyapi/" class="btn btn-primary inline-flex items-center gap-2 hover:gap-3 transition-all" target="_blank" rel="noopener" title="Install the RoxyAPI astrology plugin from the WordPress.org Plugin Directory">
    Install from WordPress.org
    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7"/><path d="M7 7h10v10"/></svg>
  </a>
</div>

1. In your WordPress admin go to Plugins → Add New.
2. Search for **RoxyAPI**.
3. Click Install Now, then Activate.
4. That is it. The plugin opens the Shortcodes library so you can drop a reading on a page right away.

Needs WordPress 6.5 or newer and PHP 7.4 or newer.

Prefer the latest unreleased build? Download [`roxyapi.zip` from GitHub Releases](https://github.com/RoxyAPI/sdk-wordpress/releases/latest/download/roxyapi.zip "Download the latest RoxyAPI WordPress plugin zip from GitHub Releases") and upload it via Plugins → Add New → Upload Plugin. Source: [github.com/RoxyAPI/sdk-wordpress](https://github.com/RoxyAPI/sdk-wordpress "RoxyAPI WordPress plugin source on GitHub").

## What the plugin supports

- **18+ domains, one key.** Western astrology, Vedic astrology, daily and weekly and monthly and yearly horoscopes, forecasts, human design, Chinese astrology, feng shui, Mesoamerican astrology, vastu, numerology, kabbalah, tarot, biorhythm, ayurveda, I Ching, crystals, dream interpretation, and angel numbers. 259+ endpoints, no per-domain fees.
- **A shortcode for every reading, and a block for nearly all of them.** Insert a RoxyAPI block from the block inserter, or paste a shortcode into any post, page, or widget.
- **Interactive charts and cards.** Natal wheels, Vedic kundli (North, South, and East Indian styles), KP charts, dasha timelines, panchang tables, human design bodygraphs, astrocartography world maps, forecast timelines, tarot spreads, and biorhythm graphs render as crisp SVG that follows your light or dark theme automatically.
- **Show just the chart.** Turn off the written interpretation everywhere or for one placement, and drop a single data block, like a natal chart pattern list, with a CSS selector or a Display tab setting.
- **Free to start.** A small free daily allowance renders readings with no API key, so the plugin works the moment you activate it. Add a key from a [RoxyAPI plan](/pricing) when you go live to remove the daily limit.
- **Visitor forms built in.** Drop a shortcode with no attributes and the plugin renders an accessible form with a city search. Your visitor enters their own birth details, and the reading appears on the same page.
- **Your site language, automatically.** Readings follow your WordPress site language with no setup in English, German, Hindi, Spanish, Turkish, Portuguese, French, and Russian, and one setting overrides that when you want the site and the readings to differ.
- **Key stays server side.** Your API key never reaches the browser and is encrypted at rest. Readings are cached per endpoint to keep your quota low.
- **Accuracy you can cite.** Calculations are verified against the NASA JPL Horizons ephemeris.

## Add a reading

Two ways, same result.

**Gutenberg block:** open the inserter, pick a block from the **RoxyAPI** category, and fill in the attributes in the sidebar.

**Shortcode:** paste one into any post or page. Pass attributes for a fixed reading you control:

```
[roxy_horoscope sign="leo"]
[roxy_natal_chart birth_date="1990-05-15" birth_time="14:30" lat="40.7128" lon="-74.0060" tz="America/New_York"]
[roxy_kundli birth_date="1990-05-15" birth_time="14:30" lat="51.5074" lon="-0.1278" tz="Europe/London"]
[roxy_tarot_card spread="three" question="What should I focus on this week"]
[roxy_numerology name="Ada Lovelace" birth_date="1815-12-10"]
[roxy_biorhythm birth_date="1990-05-15"]
[roxy_angel_number number="1111"]
```

Or leave the attributes off to render a visitor form instead. `[roxy_natal_chart]` shows a birth date, time, and city picker; `[roxy_horoscope]` shows a zodiac picker. The plugin validates the input, calls the service server side, and renders the result above the form.

Two-person readings like synastry, Guna Milan, and compatibility always render a form for both people, so they take no attributes.

Readings follow your site language automatically, so there is nothing to pass for translation. See [Language and appearance](#language-and-appearance) below.

Every endpoint in the catalog has a matching shortcode, including newer Western readings like astrocartography, relocation and local-space charts, fixed stars, asteroids, progressions, solar arc, and annual profections. Browse the full, copy-pasteable list inside WordPress under **RoxyAPI → Shortcodes** once the plugin is active.

## Where the plugin lives in WordPress admin

Activating the plugin adds a **RoxyAPI** menu with two screens.

**RoxyAPI → Settings** is the landing screen and holds five tabs: **Connect** (your key and connection status), **Branding**, **Display**, **Privacy**, and **Advanced**. Every tab works with or without a key, because readings render without one; only the Connect tab changes, showing the short setup flow before a key is saved and key management after.

**RoxyAPI → Shortcodes** is the library. Every shortcode the plugin ships is listed there with its attributes and a copy button, so it is the fastest way to find the exact tag for a reading.

## Language and appearance

**Readings follow your WordPress site language on their own, with no key and no setup.** Set **Settings → General → Site Language** to Spanish and your visitors get Spanish readings; the same holds for German, Hindi, Turkish, Portuguese, French, and Russian. Any other site language falls back to English.

To run your site in one language and your readings in another, open **RoxyAPI → Settings → Branding** and set **Reading language**. It offers *Match site language* (the default) plus each supported language, and it overrides the site language for every reading.

The **Branding** tab also sets the chart theme: **Auto**, **Light**, or **Dark**. Auto matches system dark or light mode automatically, so a visitor in dark mode sees a dark chart without you doing anything.

Language attributes on a shortcode are not the mechanism, and passing one has no effect on the featured readings. Set the site language, or **Reading language** under **RoxyAPI → Settings → Branding**, and every reading follows it.

## Hide the interpretation, or a single chart section

Every reading shortcode can drop its written interpretation and leave the chart, table, or values in place. Turn on **Written readings** under **RoxyAPI → Settings → Display** to hide the interpretation on every reading site-wide, or override one placement by adding `hide_readings="1"` (hide) or `hide_readings="0"` (show) to that shortcode. A placement with no attribute follows the site setting.

Some sections are data, not interpretation, and stay visible even with written readings off. A natal chart pattern like a T-square or a grand trine, for example, reports the figure, its element and modality, how tight it is, and which planets form it: measurements, not prose, so the setting leaves it alone on purpose.

To drop a data block entirely, use **Hide sections** on the **Display** tab. It takes a comma-separated list of section names and removes those blocks everywhere the plugin renders a reading, so `patterns` takes the chart patterns block off the whole site. Like written readings, it reaches the no-JavaScript version too, so a hidden section is also absent from what a crawler reads.

Override it on one placement with `hide_sections`, exactly the way `hide_readings` works:

```
[roxy_natal_chart birth_date="1990-05-15" birth_time="14:30" lat="40.7128" lon="-74.0060" tz="America/New_York" hide_sections="patterns"]
```

`hide_sections="patterns, legend"` drops two blocks, and `hide_sections="none"` keeps every block on that one page even when the site setting hides one. That last value is the reason the attribute is a list rather than a switch: a teaching page and a public reading can now differ.

Section names are the `part` names each component publishes, so the same names work as a CSS selector in **Appearance → Customize → Additional CSS** or your child theme stylesheet, which is what you want when you would rather restyle a block than remove it:

```css
roxy-natal-chart::part(patterns) { display: none }
roxy-ephemeris-table::part(changes) { border-top: 2px solid #eee }
```

Common names are `readings`, `patterns`, `aspects`, `changes`, `chart`, `legend`, `table` and `details`. A name means the same block everywhere it appears, so one rule covers every reading that has it: `::part(aspects)` reaches the aspect grid on a natal chart and the aspect list on an aspects table alike. To find the name for any block, open your browser inspector and read its `part` attribute.

## Sell readings and charts

You do not need a custom integration to charge for readings. Put any RoxyAPI shortcode or block on a page, then gate that page with a membership or paywall plugin such as Paid Memberships Pro, Restrict Content, or WP-Members, or sell access as a WooCommerce product through a memberships add-on. Members and buyers who reach the page see the reading; everyone else sees your paywall.

Because the chart renders exactly where you place the shortcode, you decide what stays free, like a teaser daily horoscope, and what is paid, like a full natal chart, a compatibility report, or a Vedic kundli. RoxyAPI keeps no birth data, so your client list and their details stay entirely yours.

## Advanced: call the API directly

Building your own theme or plugin and prefer code over the official plugin? Store your key as a constant in `wp-config.php` (`define( 'ROXY_API_KEY', '...' );`), call any endpoint with `wp_remote_post`, and cache the response with a WordPress transient. The [API reference](/api-reference) has the live request and response for every endpoint, and the [SDK guide](/docs/sdk) and [Next.js integration](/docs/integrations/nextjs) cover typed calls when you outgrow WordPress.

## Frequently asked questions


### Is the RoxyAPI WordPress plugin free?
The plugin is free and the source is GPL licensed. It renders readings on a free daily allowance with no account, so you can try it immediately. For production traffic, add an API key from a [RoxyAPI plan](/pricing), which removes the daily limit and covers every domain with one key.

### Do I need an API key to start?
No. Install the plugin, drop a shortcode, and it works on the free daily allowance. Every settings tab works without a key too, so you can set the language, palette, and display options first. Add a key when you are ready for production volume.

### Can I sell astrology readings with WooCommerce?
Yes. Place a shortcode on a page and gate that page behind a WooCommerce product or a membership plugin. Only paying customers see the reading. You choose which readings are free and which are paid.

### What can I add to my site?
Daily, weekly, monthly, and yearly horoscopes, Western natal charts, synastry and compatibility, astrocartography and relocation charts, Vedic kundli, panchang, dasha, doshas, KP charts, forecasts, human design, BaZi and Chinese zodiac, feng shui, Tzolkin day signs and the Mayan chart, vastu entrance and plot analysis, numerology, kabbalah gematria, tarot, biorhythm, ayurvedic constitution, I Ching, crystals, dream symbols, and angel numbers. One plugin, 18+ domains.

### Does it work with Elementor, Divi, or my page builder?
Yes. RoxyAPI shortcodes work in any page builder that supports WordPress shortcodes, including Elementor, Divi, Beaver Builder, and WPBakery. The Gutenberg blocks work in the default block editor.

### Can my visitors enter their own birth details?
Yes. Drop a shortcode with no attributes and the plugin renders a form with a city search. The visitor fills in their birth date, time, and place, and the reading renders on the same page.

### What languages does it support?
English, German, Hindi, Spanish, Turkish, Portuguese, French, and Russian. Set the language once and every reading follows it.

### How do I show readings in Spanish?
Set **Settings → General → Site Language** to Español in WordPress. Readings follow the site language automatically, with no key and nothing to configure. If you want your site in one language and your readings in Spanish, set **Reading language** to Spanish under **RoxyAPI → Settings → Branding**. Do not add a language attribute to the shortcode; it has no effect on the featured readings. If you changed the site language and still see English, clear any page cache so the old render is not being served.

### Does it support dark mode?
Yes. Charts render as SVG that follows your theme. Under **RoxyAPI → Settings → Branding** the chart theme can be **Auto**, **Light**, or **Dark**. Auto matches system dark or light mode automatically for every visitor.

### Can I hide the written interpretation, or a single chart section?
Yes, and both work the same way: a setting under **RoxyAPI → Settings → Display** covers the whole site, and an attribute on one shortcode overrides it there. **Written readings** plus `hide_readings="1"` or `hide_readings="0"` controls the interpretation. **Hide sections** plus `hide_sections="patterns"` removes whole blocks, with `hide_sections="none"` keeping every block on a single page even when the site setting hides one. Data sections like a natal chart pattern list survive `hide_readings` on purpose, since they report measurements rather than prose, which is why the second control exists. Both reach the no-JavaScript version of the reading too.

### Where do I find the list of shortcodes?
Open **RoxyAPI → Shortcodes** in your WordPress admin. Every shortcode is listed with its attributes and a copy button. The screen is available as soon as the plugin is active.

### Can visitors browse other months on the ephemeris shortcodes?
Yes. `[roxy_get_monthly_tropical_ephemeris]` and `[roxy_get_monthly_ephemeris]` add Previous and Next links and a month and year picker. Paging happens through the page URL with no JavaScript, and leaving the URL as is always shows the current month.

### Is my API key safe?
Yes. The plugin calls the service server side in PHP, so the key never reaches the browser, and a stored key is encrypted at rest. To keep it out of the database entirely, add `define( 'ROXYAPI_KEY', '...' );` to `wp-config.php`; the plugin reads that constant first and locks the settings field.

### How accurate are the calculations?
Every astronomical calculation is verified against the NASA JPL Horizons ephemeris. See the [methodology page](/methodology) for the testing approach.

## Where to go next

- [Pricing](/pricing) to get an API key. Instant delivery, no approval queue.
- The [widgets guide](/docs/widgets) if you want a reading on a site without installing a plugin.
- [API reference](/api-reference) to browse every endpoint across 18+ domains.
- **Domain guides** for which endpoints to call in what order: [Western Astrology](/docs/guides/astrology), [Vedic Astrology](/docs/guides/vedic-astrology), [KP Astrology](/docs/guides/kp), [Human Design](/docs/guides/human-design), [Forecast](/docs/guides/forecast), [Chinese Astrology](/docs/guides/chinese-astrology), [Feng Shui](/docs/guides/feng-shui), [Biorhythm](/docs/guides/biorhythm), [Tarot](/docs/guides/tarot), [Numerology](/docs/guides/numerology), [I-Ching](/docs/guides/iching), [Dreams](/docs/guides/dreams), [Crystals](/docs/guides/crystals), [Angel Numbers](/docs/guides/angel-numbers), [Ayurveda](/docs/guides/ayurveda), [Kabbalah](/docs/guides/kabbalah), [Vastu](/docs/guides/vastu), [Mesoamerican Astrology](/docs/guides/mesoamerican-astrology).
- [UI components](/docs/ui) if you want the same interactive charts in a custom site or app.
