1. Docs
  2. Integrations
  3. WordPress

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. 14+ domains, one API key, rendered as interactive blocks and shortcodes that match your theme. WordPress powers about 40 percent of the web, so this is the fastest way to put accurate astrology, Vedic, human design, and forecast readings in front of real visitors.

Install the plugin

  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.

Prefer the latest unreleased build? Download roxyapi.zip from GitHub Releases and upload it via Plugins → Add New → Upload Plugin. Source: github.com/RoxyAPI/sdk-wordpress.

What the plugin supports

  • 14+ domains, one key. Western astrology, Vedic astrology, daily and weekly and monthly and yearly horoscopes, forecasts, human design, Chinese astrology, feng shui, numerology, tarot, biorhythm, I Ching, crystals, dream interpretation, and angel numbers. 200+ endpoints, no per-domain fees.
  • Blocks and shortcodes for every reading. Insert a RoxyAPI block in the editor, 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 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.
  • Ten languages, automatic. English, German, Hindi, Spanish, Turkish, Portuguese, French, Russian, Simplified Chinese, and Traditional Chinese. Readings follow your WordPress site language with no setup, and one setting overrides that when you want them 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 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 → 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. It is available straight after activation.

RoxyAPI → Settings holds five tabs once your API key is saved: Connect (your key and connection status), Branding, Display, Privacy, and Advanced. Until a key is saved this screen shows the short setup flow instead of the tabs, so if you are still on the free daily allowance you will see the setup steps rather than the tabbed settings.

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. Anything outside those eight falls back to English.

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

The Branding tab 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:

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 has the live request and response for every endpoint, and the SDK guide and Next.js integration 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, 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. 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, numerology, tarot, biorhythm, I Ching, crystals, dream symbols, and angel numbers. One plugin, 14+ 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, save your API key and 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 it is encrypted at rest. You can also store it as a constant in wp-config.php.

How accurate are the calculations?

Every astronomical calculation is verified against the NASA JPL Horizons ephemeris. See the methodology page for the testing approach.

Where to go next