# Use RoxyAPI with Zapier

> Automate a daily horoscope email, a Life Path lookup on form submit, or a tarot card drop on Slack from [Zapier](https://zapier.com/) in under 20 minutes. No code.

Zapier is the original no-code workflow automation platform with the largest app catalog on the web. RoxyAPI is not (yet) a native Zapier app, but the official **Webhooks by Zapier** action lets you call any REST API from any Zap. This page walks through the setup.

## What you can build on Zapier

- Daily horoscope email to a subscriber list from a Schedule trigger
- Tarot card of the day posted to Slack every morning
- Webhook-powered Life Path calculator any no-code form can POST to
- Vedic kundli on form submit, rendered as a PDF and emailed to the user
- Dream journal with email-parser trigger and auto-interpretation reply
- Weekly horoscope newsletter fanning across all 12 signs with Path branches
- Zodiac compatibility bot on Telegram or Slack

## What you need, 30 seconds

1. A Roxy API key. Get one on the [pricing page](/pricing).
2. A Zapier account. **Webhooks by Zapier is a premium app** and requires a paid plan (Professional, $19.99/mo billed annually as of 2026). If Webhooks does not appear in your action picker, that is why.
3. Five minutes.

**Tip: If you want a free no-code option, [n8n](/docs/integrations/n8n) has a free self-hosted and free cloud tier, and [Make](/docs/integrations/make) has a generous free tier with the HTTP module included. The architecture in this page maps cleanly to both.**

## Step 1, connect your first endpoint

Pick a trigger first. For Roxy workflows, the three most common are:

- **Schedule by Zapier** for daily or weekly automations
- **Webhooks by Zapier, Catch Hook** for form submissions from external systems
- **Form connectors** (Tally, Typeform, Google Forms, Jotform, Wufoo) for no-code forms

Set up the trigger and run a test so you know what fields are available downstream.

Now add the Roxy call. Zapier offers three **Webhooks by Zapier** action flavors.


### GET action

For read endpoints like daily horoscopes or dream lookups.

| Field | Value |
|-------|-------|
| URL | `https://roxyapi.com/api/v2/astrology/horoscope/aries/daily` |
| Query String Params | (leave empty or add `date`) |
| Send As JSON | Yes |
| JSON key | (leave empty) |
| Unflatten | Yes |
| Basic Auth | (leave empty) |
| Headers | `X-API-Key` : `your_roxyapi_key` |

For dynamic signs, replace `aries` in the URL with a mapped field from the trigger.

### POST action

For endpoints that take a JSON body like natal chart, synastry, Life Path.

| Field | Value |
|-------|-------|
| URL | `https://roxyapi.com/api/v2/astrology/natal-chart` |
| Payload Type | JSON |
| Data | Map fields from the trigger (see below) |
| Wrap Request In Array | No |
| Unflatten | Yes |
| Basic Auth | (leave empty) |
| Headers | `X-API-Key` : `your_roxyapi_key` |

For the **Data** block, drag each field from the trigger:

| Key | Value |
|---|---|
| `date` | (drag in the birth date, YYYY-MM-DD) |
| `time` | (drag in the birth time, HH:MM:SS) |
| `latitude` | (drag in latitude) |
| `longitude` | (drag in longitude) |
| `timezone` | (drag in IANA zone, for example `America/New_York`) |

### Custom Request

For full control (custom headers, raw body, PUT or PATCH).

| Field | Value |
|-------|-------|
| Method | `GET`, `POST`, `PUT`, `PATCH`, `DELETE` |
| URL | `https://roxyapi.com/api/v2/astrology/natal-chart` |
| Data Pass-Through | No |
| Data | Raw JSON string |
| Unflatten | Yes |
| Headers | `X-API-Key`, `Content-Type: application/json` |
| Return Raw Response | No |

Custom Request with a JSON body requires `Content-Type: application/json` in Headers. Without it, Zapier sends form-urlencoded and Roxy rejects the request.


**Warning: Zapier stores Headers values in plain text inside Zap configuration. Anyone with edit access to the Zap can read the key. For production Zaps, store the key in **Storage by Zapier** and look it up in a preceding step, or rotate the key regularly. Zapier has no dedicated secrets feature comparable to the Make keychain or the n8n credentials system.**

Click **Continue, Test action**. A healthy GET response looks like this:

```json
{
  "sign": "Aries",
  "date": "2026-04-13",
  "overview": "Today, your natural leadership shines through...",
  "love": "Venus in your 5th house favours playful encounters...",
  "career": "Mars supports decisive action on a stalled project...",
  "luckyNumber": 7,
  "luckyColor": "Red",
  "moonSign": "Libra",
  "energyRating": 8
}
```

Every field is now mappable in downstream actions.

## Step 2, ship a useful feature

Here is the full flow for a daily horoscope email to a subscriber list.

1. **Schedule by Zapier** trigger, daily at 08:00.
2. **Webhooks by Zapier, GET** action:
   - URL `https://roxyapi.com/api/v2/astrology/horoscope/aries/daily`
   - Headers `X-API-Key` : `your_roxyapi_key`
3. **Email by Zapier** or **Mailchimp Send** action:
   - Subject: `Your Aries horoscope for today`
   - Body: drag in `overview`, `love`, `career`, `luckyNumber`, `luckyColor` from the Webhooks response.

For a natal chart from form submit, use a POST action mapped from the form fields.


### curl preview

```bash
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"
  }'
```

### TypeScript SDK

For reference if you later port to a Zapier Custom App or a plain Node script:

```typescript
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',
  },
});
```


After the POST succeeds, wire downstream actions: Google Docs to template a branded PDF, Gmail to email it, or Airtable to log the chart.

## Step 3, scale to the full surface

Adding the next endpoint is the same pattern: drop another Webhooks action, change the URL, change the Data, reuse the same `X-API-Key` header. Three places to pick the next one:

- **[API reference](/api-reference)** has a pre-filled test key. Try a call in the browser, copy the URL and body, paste into a new Webhooks action.
- **Domain guides** for which endpoints to call in what order:
  - [Western Astrology](/docs/guides/astrology), [Vedic Astrology](/docs/guides/vedic-astrology), [Tarot](/docs/guides/tarot), [Numerology](/docs/guides/numerology), [I Ching](/docs/guides/iching), [Dreams](/docs/guides/dreams)
- **Most-used endpoints** that fit Zapier workflows: [`GET /astrology/horoscope/{sign}/daily`](/api-reference#tag/western-astrology/GET/astrology/horoscope/{sign}/daily), [`POST /astrology/natal-chart`](/api-reference#tag/western-astrology/POST/astrology/natal-chart), [`POST /astrology/compatibility-score`](/api-reference#tag/western-astrology/POST/astrology/compatibility-score), [`POST /vedic-astrology/birth-chart`](/api-reference#tag/vedic-astrology/POST/vedic-astrology/birth-chart), [`POST /tarot/spreads/three-card`](/api-reference#tag/tarot/POST/tarot/spreads/three-card), [`POST /numerology/life-path`](/api-reference#tag/numerology/POST/numerology/life-path).

## Caching in Storage by Zapier

Zapier does not cache HTTP responses. For daily content, store the response in **Storage by Zapier** keyed by date and sign (for example `horoscope_aries_2026-04-13`) and check storage first with a Filter step. For high-volume Zaps, move to Make or n8n, both of which have proper data store features.

## Gotchas

- **Backend-only key.** Zaps run on Zapier servers. The key is never in a browser. Still, Headers values appear in plain text in Zap exports. Do not share exports without removing the key, or rotate the key after sharing.
- **Webhooks is premium.** If Webhooks by Zapier is missing from the action picker, you are on the free plan. Upgrade, or switch to [n8n](/docs/integrations/n8n) or [Make](/docs/integrations/make).
- **Zapier MCP is the other direction.** Zapier MCP exposes **Zapier actions** as tools to AI agents, not the other way around. You cannot currently consume Roxy MCP from inside a Zap. Use the Webhooks path.
- **Timezone.** Prefer IANA strings (`"America/New_York"`, `"Asia/Kolkata"`). Decimal offsets like `-5` are accepted but do not handle daylight saving. The server resolves IANA to the DST-correct offset for the request date.
- **Rate limits.** Every Roxy plan has daily and monthly caps. Add a **Delay by Zapier** step before tight loops or use Storage caching.
- **JSON content type for Custom Request.** If you use Custom Request with a JSON body, set `Content-Type: application/json` manually or Zapier defaults to form-urlencoded and Roxy rejects the body.

## What to build next

- The [astrology guide](/docs/guides/astrology) and [Vedic astrology guide](/docs/guides/vedic-astrology) cover endpoint ordering for automation.
- The [Make integration](/docs/integrations/make) and [n8n integration](/docs/integrations/n8n) are the closest adjacent platforms with the same patterns.
- The [AI chatbot tutorial](/docs/tutorials/ai-chatbot) shows how to wire Roxy into conversational AI instead of a scheduled Zap.
- Browse the [API reference](/api-reference) for every endpoint across 12 domains.
