- Docs
- Integrations
- Make (Integromat)
Make astrology automation, HTTP module guide
Ship a daily horoscope email, a natal chart on form submit, or a tarot card to Slack every morning, on Make in about 15 minutes. No code.
The whole integration is one HTTP module and one saved key. After that, every one of the 259+ endpoints is the same module with a different URL and body. Make parses the JSON for you, so every field of a chart or a reading becomes a draggable item in the next module.
The call that proves it
Run this in a terminal first. A 200 here means the key is good, so anything that breaks afterwards is scenario 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 a module. Make stores the key in a keychain, so it never sits in the scenario itself and never travels in an export.
- In your scenario click +, search HTTP, and pick the HTTP app. Choose Version 4 if the version dropdown appears, since Version 3 is the legacy app with a different layout.
- Choose Make a request.
- Authentication type
API key. - Click Credentials, or Add next to Choose a key. Name
RoxyAPI key. Key paste your key from your account. API key placementIn the header. API key parameter nameX-API-Key. Click Create. - URL
https://roxyapi.com/api/v2/astrology/horoscope/aries/daily. MethodGET. - Parse response
Yes. - Run the module on its own and read the output.
You get clean JSON with no wrapper: sign, date, overview, love, career, health, finance, advice, column, events, luckyNumber, luckyColor, compatibleSigns, activeTransits, moonSign, moonPhase, energyRating. Every one of those is now draggable into any Gmail, Slack, Google Docs or Airtable field downstream.
Leave the Headers section empty
The HTTP module has its own Credentials field for authentication, and the Make docs are explicit that the key belongs there rather than in Headers. A key typed into Headers is stored in the scenario, so it travels in every export and blueprint you share. Reuse the keychain instead and the export carries only a reference. Edit or rotate it later from Keys in the left sidebar, and every module using it follows.
Send birth data with a POST
Charts, panchang, dasha, compatibility and synastry all take a birth moment.
- Method
POST. - URL
https://roxyapi.com/api/v2/astrology/natal-chart. - Body content type
application/JSON. - Body input method
Data structure, then map each field. Make escapes JSON reserved characters for you, which matters the moment a value comes from free-text user input. PickJSON stringonly if you want to paste the raw body yourself. - The five required fields, whichever input method you picked:
{ "date": "{{1.birth_date}}", "time": "{{1.birth_time}}", "latitude": {{1.latitude}}, "longitude": {{1.longitude}}, "timezone": "{{1.timezone}}" }
date is YYYY-MM-DD and time is HH:MM:SS. Optional houseSystem (placidus by default) and nodeType (true by default) sit alongside them.
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"
}'
For reference if you later port a scenario into a Make Custom App or a plain script:
import { createRoxy } from '@roxyapi/sdk';
const roxy = createRoxy(process.env.ROXY_API_KEY!);
const { data } = await roxy.astrology.generateNatalChart({
body: {
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
Nobody knows their birth latitude. Put one more HTTP module on GET https://roxyapi.com/api/v2/location/search?q=berlin ahead of the chart module and read 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 right offset for the birth date, so a summer birth and a winter birth are both correct. A decimal offset such as 5.5 is accepted but knows nothing about daylight saving.
The planets field is an array, so Make exposes it as a repeatable collection. Use an Iterator to loop over it, or pull one out inline:
get(map(2.planets; sign; name; Sun); 1)
Ship a daily horoscope email
Three modules.
- Schedule trigger, daily at 08:00.
- HTTP, Make a request on
https://roxyapi.com/api/v2/astrology/horoscope/aries/dailywith theRoxyAPI keykeychain and Parse response Yes. - Gmail, Send an email, subject
Your daily horoscope, body built from{{2.overview}},{{2.love}}and{{2.career}}.
For all twelve signs, add an Iterator over the sign list and a Sleep between iterations rather than twelve simultaneous calls.
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
Make does not cache HTTP responses, and a horoscope is the same all day for one sign. Use a Data store, which is built in:
- Create a data store with a
sign,dateand payload field. - Data store, Get a record keyed
horoscope_aries_2026-04-13. - A Router with two routes: cache hit goes straight to the email, cache miss calls HTTP then Data store, Add/Replace a Record.
One fetch per sign per day, whatever the traffic. The caching guide lists how long each kind of result stays valid.
Gotchas
The bundle picker shows nothing after the call
Parse response is off, so the output is one raw string. Set it to Yes and run the module once; every field becomes mappable from then on.
Free text breaks my JSON body
Use Body input method Data structure rather than JSON string. Make escapes reserved characters in the values for you; a hand-written JSON string does not.
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 }. Retry only 429 and 5xx, never a 400.
429 halfway through an Iterator
You are through your monthly request allowance. Twelve signs firing every minute will spend a month of it in hours. Add a Sleep, cache in a data store, or move up a plan. See authentication for the quota headers on every response.
The HTTP module looks nothing like this page
You are on HTTP (legacy), Version 3, which has separate per-auth modules and no Credentials field. Add the module again and choose Version 4.
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 scenarios:
GET /astrology/horoscope/{sign}/daily,GET /astrology/horoscope/{sign}/weekly,POST /astrology/natal-chart,POST /astrology/compatibility-score,POST /vedic-astrology/birth-chart,POST /tarot/spreads/three-card,POST /numerology/life-path,POST /biorhythm/daily. - n8n and Zapier run the same patterns on adjacent platforms.
- Want the model to pick the endpoint instead of you? Remote MCP exposes 256+ tools to an AI agent, and the AI chatbot tutorial builds one end to end.
FAQ
Can Make call an astrology API without any code?
Yes. One HTTP module, one keychain, and a URL is the whole setup. Set Authentication type to API key, place the key in the header under the name X-API-Key, turn Parse response on, and every field of the result becomes draggable in later modules. One key reaches all 18 domains.
Where do I put the API key in a Make HTTP module?
In Credentials, as an API key keychain with placement In the header and parameter name X-API-Key. Not in the Headers section: a key typed there is stored inside the scenario and travels in every blueprint export. The keychain is edited later from Keys in the left sidebar, and every module that uses it picks up the change.
How do I send birth date, time and place to a chart endpoint from Make?
Set the method to POST, Body content type to application/JSON, and Body input method to Data structure, then map date, time, latitude, longitude and timezone. Resolve the city with GET /location/search?q={city} in a module before it, so the person types a place name and never a coordinate.
How do I stop a Make scenario from burning through my request quota?
Cache. A daily horoscope is identical all day for one sign, so store the response in a Make data store keyed by sign and date, and use a Router to serve from the store on a hit. That turns any amount of traffic into one call per sign per day.
Does the free Make plan work with RoxyAPI?
Yes. The HTTP app, data stores, Iterator, Router and Sleep are all standard modules. You need a RoxyAPI key, and a single key covers every domain, so no part of the wiring depends on a paid Make tier.