- Docs
- Integrations
- Zapier
Zapier astrology automation with webhooks
Ship a daily horoscope email, a Life Path lookup on form submit, or a tarot card to Slack every morning, on Zapier in about 15 minutes. No code, and it works on the free plan.
There is no RoxyAPI app in the Zapier catalog, and you do not need one. Webhooks by Zapier calls any REST API from any Zap and is available on the Free plan, so one action reaches all 261+ endpoints. If you would rather the key never live inside the Zap at all, API by Zapier stores it in a connection instead. Both paths are below.
The call that proves it
Run this in a terminal first. A 200 here means the key is good, so anything that fails next is Zap wiring.
curl "https://roxyapi.com/api/v2/astrology/horoscope/aries/daily" \
-H "X-API-Key: $ROXY_API_KEY"
No key yet? One key covers every domain and checkout is instant: pricing.
Now the same call as an action:
- In the Zap editor click + to add an action step.
- Search for and select Webhooks by Zapier.
- Open the Event dropdown and choose GET.
- URL
https://roxyapi.com/api/v2/astrology/horoscope/aries/daily. - In the Headers section, key
X-API-Key, value your key from your account. - Continue, then Test step.
The response is clean JSON with no wrapper, and every field is mappable in later steps:
{
"sign": "Aries",
"date": "2026-04-03",
"overview": "Mercury draws a trine to Jupiter today, drawing the running commentary into your twelfth house, where rest, retreat and the unfinished business of the mind take their turn...",
"love": "The Moon bargains from Libra, in the seventh house you keep partnerships and relationships in, where another person is party to the outcome and has to be counted, and the ask is the ground to feel solid before anything is risked on it...",
"career": "The Sun guards Aries, in your first house, where a person is read off how they carry themselves rather than off what they claim, and it wants one thing carried through to the end in the open...",
"health": "The Sun forms a semi-square to Uranus today, sending the part that wants to be seen through your first house of identity and self-expression, where the first impression gets made before anything has been explained...",
"finance": "The Moon enters Scorpio today, played out in your eighth house, the one for transformation and shared resources...",
"advice": "Mercury trines Jupiter today, at the level of the twelfth house you keep solitude and inner reflection in...",
"luckyNumber": 8,
"luckyColor": "Red",
"moonSign": "Libra",
"moonPhase": "Waning Gibbous Moon",
"energyRating": 6
}
For a dynamic sign, replace aries in the URL with a mapped field from the trigger.
Keep the key out of the Zap
Header values typed into a Webhooks action are stored in the Zap itself, so anyone with edit access can read them and they travel in a shared copy. API by Zapier exists for exactly this: the credentials live in a connection and are added to the request for you.
- Go to the Apps page and click + Add connection.
- Search for and select API by Zapier, then Add connection.
- Authentication type
Static Headers (API key). - Headers
X-API-Key: your_key, one header per line. - Domain filter
roxyapi.com, so the connection cannot be pointed anywhere else. - Test URL
https://roxyapi.com/api/v2/astrology/moon-phase/current, which returns 200 with a valid key.
Then add an action, pick API by Zapier, choose the API Request event and your connection, and fill in Method, URL and, for a POST, Body. Do not re-add the auth header on the step; the connection supplies it.
API by Zapier is in beta and is a premium app, so it needs a paid Zapier account. Webhooks by Zapier does not. Pick whichever matches the account you are on, and rename each API step in the editor so the flow is readable.
Send birth data with a POST
Charts, panchang, dasha, compatibility and synastry all take a birth moment.
- Event
POST. URLhttps://roxyapi.com/api/v2/astrology/natal-chart. - Payload Type
JSON. - Headers
X-API-Key, your key. - Fill the Data section, one key on the left and the mapped trigger field on the right:
| Key | Value |
|---|---|
date | the birth date, YYYY-MM-DD |
time | the birth time, HH:MM:SS |
latitude | latitude as a number |
longitude | longitude as a number |
timezone | IANA zone, for example America/New_York |
All five are required. Optional houseSystem (placidus by default) and nodeType (true by default) go in the same Data section.
POST /astrology/compatibility-score and POST /astrology/synastry each take a person1 and a person2 object rather than flat fields. Two ways to send that.
On a templated POST action, Zapier builds a child object from a double underscore in the key, so the Data section reads:
| Key | Value |
|---|---|
person1__date | first birth date |
person1__time | first birth time |
person1__latitude | first latitude |
person1__longitude | first longitude |
person1__timezone | first IANA zone |
person2__date | second birth date |
and so on for the rest of person2.
For anything deeper, switch Event to Custom Request:
- Method
POST, URLhttps://roxyapi.com/api/v2/astrology/compatibility-score. - Data, type the raw JSON yourself. Zapier sends it exactly as entered and validates nothing, so check it before you paste.
- Headers
X-API-KeyandContent-Type: application/json. Custom Request does not set the content type for you.
curl -X POST "https://roxyapi.com/api/v2/astrology/natal-chart" \
-H "X-API-Key: $ROXY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"date": "1990-05-12",
"time": "14:30:00",
"latitude": 40.7128,
"longitude": -74.0060,
"timezone": "America/New_York"
}'
Resolve the city first, never ask for coordinates
No form respondent knows their birth latitude. Add a Webhooks by Zapier, GET step on https://roxyapi.com/api/v2/location/search?q=berlin before the chart step and map latitude, longitude and timezone off the first entry in the cities array. The timezone comes back as an IANA name, which is what you want: the server resolves it to the correct offset for the birth date, so a summer birth and a winter birth are both right. A decimal offset such as 5.5 is accepted but knows nothing about daylight saving.
Ship a daily horoscope email
Three steps.
- Schedule by Zapier trigger, daily at 08:00.
- Webhooks by Zapier, GET on
https://roxyapi.com/api/v2/astrology/horoscope/aries/dailywith theX-API-Keyheader. - Email by Zapier, or a Mailchimp or Gmail action. Subject
Your Aries horoscope for today, body built fromoverview,love,career,luckyNumberandluckyColor.
Other useful triggers for RoxyAPI Zaps: Webhooks by Zapier, Catch Hook for a form on another system, and the form connectors (Tally, Typeform, Google Forms, Jotform).
Add ?lang= to any URL for one of ten languages (en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant). Machine values such as sign stay English; the prose translates.
Cache what does not change
Zapier does not cache responses, and a horoscope is identical all day for one sign. Store it in Storage by Zapier keyed by sign and date, for example horoscope_aries_2026-04-13, and put a Filter by Zapier step in front of the webhook so a cache hit skips the call. For anything higher volume, Make and n8n have full data stores. The caching guide lists how long each kind of result stays valid.
Gotchas
Fields I never mapped are showing up in the request
The Data section was left blank, and Zapier then forwards every field from the previous step as the payload. Fill Data with only the keys the endpoint takes.
A nested body comes back as a 400
The Data section on a templated action is flat unless you use the double underscore convention, so person1__date builds the object and person1.date does not. For anything deeper than one level, switch to Custom Request and type the raw JSON.
Custom Request gets rejected
Custom Request does not parse or format anything, and it does not set a content type. Add Content-Type: application/json in Headers and validate the JSON before you paste it.
I get a 400 and cannot tell which field is wrong
A 400 carries issues[] listing every field problem at once, so read that array instead of guessing one field at a time. All errors come back as { error, code, doc_url }. Retry only 429 and 5xx, never a 400.
My key is readable by anyone who can edit the Zap
Header values on a Webhooks action are stored in the Zap. Move to API by Zapier with a Static Headers connection and a domain filter, or rotate the key after sharing.
429 partway through a run
You are through your monthly request allowance. Add a Delay by Zapier step ahead of tight loops, cache in Storage, or move up a plan. See authentication for the quota headers on every response.
Can a Zap use the RoxyAPI Remote MCP servers?
No, and the direction is the thing to remember: Zapier MCP publishes Zapier actions to an outside AI client. It does not let a Zap consume a third party Remote MCP server. Inside a Zap, use the Webhooks or API by Zapier path above. For the agent side, n8n connects to a Remote MCP server directly.
The response was truncated
Webhooks by Zapier caps an action payload at 5 MB. A full Vedic birth chart is well inside that, but if you assemble several results into one step, split them.
Pick the next endpoint
- Domain guides, for which endpoints to call and in what order: Western Astrology, Vedic Astrology, KP Astrology, Human Design, Forecast, Chinese Astrology, Feng Shui, Biorhythm, Tarot, Numerology, I-Ching, Dreams, Crystals, Angel Numbers, Ayurveda, Kabbalah, Vastu, Mesoamerican Astrology.
- Common in Zaps:
GET /astrology/horoscope/{sign}/daily,POST /astrology/natal-chart,POST /astrology/compatibility-score,POST /vedic-astrology/birth-chart,POST /tarot/spreads/three-card,POST /numerology/life-path,GET /dreams/symbols. - Make and n8n run the same patterns and both have real data stores.
- The AI chatbot tutorial covers the conversational path instead of a scheduled Zap.
FAQ
Do I need a paid Zapier plan to call an astrology API?
No. Webhooks by Zapier is available on the Free plan, so a GET or POST action reaches every RoxyAPI endpoint with no upgrade. A paid plan is only needed for API by Zapier, which is the premium app that stores your key in a connection instead of in the Zap.
How do I add an API key header in Zapier?
On a Webhooks by Zapier action, fill the Headers section with the key X-API-Key and your key as the value. To keep the key out of the Zap itself, create an API by Zapier connection with Authentication type Static Headers (API key), a header line of X-API-Key: your_key, and a domain filter of roxyapi.com.
Why does my Zapier POST to a compatibility endpoint fail?
Because the body is nested. Compatibility and synastry take a person1 and a person2 object, and the Data section is flat unless you use Zapier double underscore convention: write person1__date, person1__time and so on, and Zapier builds the object for you. For anything deeper, switch the event to Custom Request, type the raw JSON, and add Content-Type: application/json to Headers.
Can I use RoxyAPI Remote MCP inside a Zap?
No. Zapier MCP works the other way round, publishing Zapier actions to an outside AI client. Inside a Zap, call the REST endpoints through Webhooks by Zapier or API by Zapier. If you want an automation platform whose agent connects to Remote MCP directly, n8n does that.
How do I stop a Zap from burning through my request quota?
Cache. A daily horoscope is identical all day for one sign, so write it to Storage by Zapier keyed by sign and date and put a Filter step ahead of the webhook so a cache hit skips the call. That turns any amount of traffic into one call per sign per day.