Skip to content
AstroWay/api v2.190.0 · integrations
all systems operational

No-code integrations

Everything on these pages was run against production on 2026-09-17. The n8n workflow was imported and executed in a real n8n; the Zapier and Make steps follow each tool’s own documentation, and the requests they build were sent exactly as written.

That one fact decides which key you need.

  • Zapier, Make and n8n send it from their own servers. Use a server-only key with an endpoint scope and a budget, set up below. Guides: Zapier, Make, n8n.
  • Bubble sends from its own servers too, with the key in a header that stays there: Bubble.
  • FlutterFlow compiles into an app your users hold, so the call has to be made private: FlutterFlow.
  • Wix, Squarespace, Shopify, Webflow and Tilda show your page in the visitor’s browser. Paste a widget rather than a key: site builders.
  • WordPress calls from your own server. The AstroWay plugin handles the key.

Anyone who can edit a Zap, a scenario or a workflow can read the key inside it. So give each automation its own key and narrow it to what that automation does.

  1. In the dashboard open API Keys and press New key. Name it after the automation, for example zapier-intake-form.
  2. Under Where will this key be used? keep Server-only.
  3. Copy the key. The dialog shows it in full once; later it is under Reveal in the key’s menu.
  4. In the key’s menu open Endpoint scope and list the paths the automation calls, one per line: chart for a natal chart, public/horoscope/* for the daily horoscopes.
  5. In the same menu open Set budget and enter the credits this key may spend per cycle.

A call outside the scope gets 403 ENDPOINT_NOT_IN_SCOPE. A key that reaches its budget gets 429 KEY_BUDGET_EXHAUSTED, even when the account still has credits, so a loop that runs away stops at the number you wrote. Both limits work on any plan and are described in Authentication.

A form gives you a date, a clock time and a place. Send them like this:

{
"date": "1990-05-15",
"time": "14:30:00",
"timezone": "Europe/Kyiv",
"latitude": 50.45,
"longitude": 30.52
}
  • timezone is the zone name, and the server works out the UTC offset those clocks kept on that date, summer time included. Kyiv on 1990-05-15 was UTC+4, not +3, which is the kind of mistake a hand-typed offset makes. Send auto to take the zone from the coordinates.
  • Leave out timezone and the offset, and the chart is computed for UTC. The answer is still a 200, so check the field is mapped.
  • An empty timezone is refused with 400, because an unmapped form field would otherwise read as UTC.
  • date is YYYY-MM-DD and time is HH:MM:SS. Use the tool’s date formatter if the form stores them differently.
  • Numbers may arrive as text. "latitude": "50.45" is accepted, which is what most form fields send.
  • The API does not geocode. Coordinates have to come from the form or from a geocoding step in the tool. The city field is a label only.

More on the rules for clock changes and dates before 1970 in Field formats.

POST /v1/chart answers in degrees along the zodiac, wrapped in { "ok": true, "data": { ... } }. The sign is floor(longitude / 30), counted from zero:

0 Aries, 1 Taurus, 2 Gemini, 3 Cancer, 4 Leo, 5 Virgo, 6 Libra, 7 Scorpio, 8 Sagittarius, 9 Capricorn, 10 Aquarius, 11 Pisces.

Where the three most asked-for values live:

  • Sun: the entry of data.planets with "name": "Sun", the first one.
  • Moon: the entry of data.planets with "name": "Moon", the second one.
  • Ascendant: data.houses.ascendant.
  • Offset that was used: data.input.timezoneOffset.

For the example above: Sun 54.34, so Taurus; Moon 296.39, Capricorn; Ascendant 159.26, Virgo; offset 4.

  • POST /v1/chart is 20 credits. The full table is on Per-endpoint cost.
  • The same request sent again within five minutes is answered from cache and is not charged. A test run that repeats one body does not spend your budget.
  • GET /v1/public/horoscope/daily spends no credits. Without a key, or with a key on the Free plan, it counts against 30 requests an hour per IP address, and automation platforms share their addresses between customers. A key on a paid plan gets a limit of its own.
Was this helpful?
Suggest an edit

Last updated: