Create a Custom Astrology GPT with No Code Using GPT Actions
Build a custom ChatGPT GPT that reads horoscopes, draws tarot cards, and calculates natal charts using GPT Actions and RoxyAPI.
TL;DR
- You can build a custom ChatGPT GPT that pulls live astrology, tarot, and numerology data from an API, with zero code
- GPT Actions let you paste an OpenAPI spec URL and configure API key auth with a custom header in minutes
- Your GPT can read daily horoscopes, draw tarot cards, generate natal birth charts, and calculate Life Path numbers
- Build this with the Western Astrology API and Tarot API in under 30 minutes
About the author: Brett Calloway is a Developer Advocate and AI Integration Specialist with 12 years of experience building APIs and developer tooling, including three years focused on AI-native infrastructure for spiritual and wellness applications. He has led developer relations at two Series B SaaS companies and spoken at PyCon and JSConf on building context-rich AI agents using Model Context Protocol. His writing covers API integration patterns, AI agent architecture, and rapid prototyping with astrology, tarot, and numerology data.
Most astrology chatbot tutorials tell you to hardcode zodiac descriptions into your system prompt. The result is a GPT that sounds like it knows astrology but actually recites static text. It cannot tell you which planetary transits are active today, draw a real tarot spread, or calculate a natal chart from your birth data. The moment a user asks a specific question, the illusion breaks.
GPT Actions solve this problem. They let a custom GPT call external APIs in real time, converting user input into structured JSON and returning live data. Instead of faking astrology knowledge in a prompt, your custom astrology GPT queries a production API for actual planetary positions, transit-based horoscopes, and calculated birth charts. This guide walks you through building one from scratch, no code, no backend, and no deployment step required.
What you will build
By the end of this guide, you will have a custom ChatGPT GPT that performs four live actions. First, it fetches the daily horoscope for any zodiac sign, returning an overview, love forecast, career outlook, lucky number, and compatible signs based on real planetary transits. Second, it draws tarot cards from the full 78-card Rider-Waite-Smith deck with upright and reversed orientations and full interpretation text. Third, it generates a complete natal birth chart from a date, time, and location, returning planetary positions, house placements, aspects, the Ascendant, and the Midheaven. Fourth, it calculates a Life Path number from a birth date using Pythagorean numerology with master number detection. All of this runs on live API calls. Nothing is hardcoded. Your GPT returns different horoscopes each day and different tarot cards each reading because it queries real endpoints every time.
Ready to build this? The Western Astrology API gives you natal charts, horoscopes, synastry, and transits in a single subscription. See pricing.
Prerequisites
You need two things before you start. First, a ChatGPT Plus or Team subscription. Custom GPTs with Actions require a paid ChatGPT plan. The free tier does not support GPT creation with external API calls. Second, you need a RoxyAPI API key. Visit the pricing page and choose any plan. Your API key is delivered instantly by email and works across all 8 domains, including astrology, tarot, numerology, crystals, dreams, I Ching, angel numbers, and Vedic astrology, with a single subscription. No separate activation is needed per domain. Keep your API key ready because you will paste it into the GPT Actions authentication panel. The key uses a custom header format (X-API-Key) rather than Bearer token auth, and GPT Actions supports this directly through the Custom auth type.
Step 1: Create a new GPT in ChatGPT
Open ChatGPT and click your profile icon, then select "My GPTs" and "Create a GPT." You land on the GPT Builder screen with two tabs: Create and Configure. Switch to the Configure tab immediately. The Create tab uses a conversational builder, but for API integrations you need direct access to the system prompt and Actions panels. Give your GPT a name like "Astrology Oracle" and a short description such as "Daily horoscopes, tarot readings, natal charts, and numerology powered by live astrology data." Upload a profile image if you have one. The name and description appear in the GPT Store and help users understand what your GPT does before they open it. Keep both concise and keyword-rich. You can toggle off "Web Browsing" and "DALL-E Image Generation" if your GPT only needs API actions, which keeps the experience focused and reduces confusion about which tool the model should call.
Step 2: Write the system prompt for your astrology GPT
Scroll to the Instructions field in the Configure tab. This is your system prompt, and it tells the GPT how to behave and when to call each Action. A well-structured prompt maps every user intent to a specific API action with the correct parameter names. Below is a sample prompt you can paste directly:
You are an astrology, tarot, and numerology advisor powered by live data from RoxyAPI. You never make up horoscope or tarot information. You always call the API to get real data before answering.
When a user asks for their horoscope or daily forecast:
- Ask which zodiac sign they want (or help them figure it out from their birthday)
- Call the getDailyHoroscope action with their sign
When a user asks for a tarot reading:
- Ask how many cards they want (default to 3 for a past-present-future spread)
- Call the drawCards action with the requested count
When a user asks for their birth chart or natal chart:
- Ask for their birth date (YYYY-MM-DD), birth time (HH:MM:SS in 24-hour format), birth city latitude, longitude, and timezone offset from UTC as a decimal number
- Call the generateNatalChart action with all five fields
When a user asks about their Life Path number:
- Ask for their birth year, month, and day as separate numbers
- Call the calculateLifePath action
Always present API responses in a warm, readable format. Use emoji for zodiac signs. Explain astrological terms in plain language. If a card is reversed, note that it carries a modified meaning.
The key detail is specificity. Each instruction block maps to exactly one API action with the correct operationId from the OpenAPI spec. GPT Actions work best when the system prompt tells the model which action to call and which fields to collect, rather than leaving it to guess.
Step 3: Configure GPT Actions with the OpenAPI spec URL
Scroll down to the Actions section in the Configure tab and click "Create new action." You will see fields for Authentication, Schema, and Privacy policy. Start with the schema. GPT Actions accept an OpenAPI 3.1.0 specification that describes your API endpoints. RoxyAPI publishes public OpenAPI specs for every domain. Click "Import from URL" and paste:
https://roxyapi.com/api/v2/astrology/openapi.json
This loads all Western Astrology endpoints including the daily horoscope (GET /horoscope/{sign}/daily), the natal chart (POST /natal-chart), transits, synastry, and more. The GPT Builder parses the spec and lists every available operation by its operationId. You can add more domains by creating additional Action blocks. For tarot, import:
https://roxyapi.com/api/v2/tarot/openapi.json
For numerology, import:
https://roxyapi.com/api/v2/numerology/openapi.json
Each import creates a separate Action block. Next, configure authentication for each block. Click "Authentication" and select "API Key" as the type. Set Auth Type to "Custom." In the header name field, enter X-API-Key. Paste your RoxyAPI API key as the value. This tells ChatGPT to include the header X-API-Key: your-key-here with every request. You must repeat the auth setup for each Action block if you imported multiple specs.
Step 4: Test your custom astrology GPT
Click "Preview" in the upper right corner of the GPT Builder. This opens a chat window where you can test your GPT before publishing. Try these prompts to verify each action:
Test the daily horoscope: "What is the horoscope for Aries today?"
The GPT should call getDailyHoroscope with sign aries and return a response like this:
{
"sign": "Aries",
"date": "2026-04-01",
"overview": "Mars trine Jupiter brings bold energy...",
"love": "Venus encourages openness in partnerships...",
"career": "A strong day for asserting your ideas...",
"health": "High energy levels support activity...",
"finance": "A good day for long-term planning...",
"advice": "Trust your instincts on decisions...",
"luckyNumber": 7,
"luckyColor": "Gold",
"compatibleSigns": ["Leo", "Sagittarius", "Gemini"]
}
Test the tarot draw: "Draw me 3 tarot cards."
The GPT should call drawCards with {"count": 3} and return cards with id, name, arcana, position, reversed, keywords, meaning, and imageUrl fields.
Test the natal chart: "Generate my birth chart for July 15, 1990, at 2:30 PM in New York."
The GPT should call generateNatalChart with {"date": "1990-07-15", "time": "14:30:00", "latitude": 40.7128, "longitude": -74.006, "timezone": -5} and return planetary positions in signs, house placements, aspects with orbs, Ascendant, Midheaven, and a chart summary with dominant element and modality.
Test the Life Path calculation: "What is my Life Path number? I was born July 15, 1990."
The GPT should call calculateLifePath with {"year": 1990, "month": 7, "day": 15} and return the number, step-by-step calculation breakdown, master number detection, and a full interpretation with keywords, strengths, and challenges.
If any action fails, check the preview panel for error details. ChatGPT shows the exact request payload it attempted, which makes debugging straightforward. You can also verify endpoint paths and parameter schemas in the interactive API reference.
Step 5: Publish your GPT to the GPT Store (optional)
Once testing is complete, click "Save" in the upper right. You have three visibility options. "Only me" keeps the GPT private. "Anyone with the link" lets you share it directly. "Everyone" submits it for review and listing in the GPT Store. For the GPT Store, add a clear category, a detailed description with keywords like "astrology GPT," "daily horoscope chatbot," and "tarot reading AI," and ensure your privacy policy URL is set. The review process typically takes a few days. Your GPT appears in search results once approved, and anyone with a ChatGPT Plus subscription can use it. Your API key is never exposed to end users. ChatGPT stores it encrypted and sends it server-side with each API call. You can update your GPT at any time by returning to the Configure tab, adding new API domains or refining your system prompt as you learn what users ask most often.
Common pitfalls when building a GPT with API Actions
Wrong base URL in the spec. RoxyAPI OpenAPI specs use a relative server URL (/api/v2). GPT Actions resolves this against the URL you imported from, so the full base URL becomes https://roxyapi.com/api/v2. If you pasted the schema manually instead of importing from URL, make sure the server URL is absolute: https://roxyapi.com/api/v2.
Auth header not set to Custom. The default API Key auth type in GPT Actions sends the key as Authorization: Bearer <key>. RoxyAPI expects the X-API-Key header instead. You must select "Custom" as the Auth Type and enter X-API-Key as the header name. If you see 401 errors with code api_key_required, this is almost always the cause.
Timezone as a string instead of a number. The natal chart endpoint expects timezone as a decimal number (for example, -5 for New York EST, 5.5 for India IST), not a string like "America/New_York." If your GPT passes a timezone name, the API returns a validation error. Add a note in your system prompt telling the GPT to convert timezone names to numeric UTC offsets.
Too many endpoints loaded. Each OpenAPI spec can contain dozens of endpoints. If your GPT gets confused about which action to call, you can edit the imported schema to remove endpoints you do not need. Keep only the operations referenced in your system prompt for cleaner behavior.
Frequently Asked Questions
Q: Do I need to write any code to create a custom astrology GPT? A: No. GPT Actions handle the entire API integration through configuration. You paste an OpenAPI spec URL, set up API key authentication with a custom header, and write a system prompt. There is no code, no server, and no deployment step involved.
Q: Can my custom GPT call multiple APIs in a single conversation? A: Yes. You can import multiple OpenAPI specs as separate Action blocks within the same GPT. For example, you can combine the Western Astrology API, Tarot API, and Numerology API so your GPT handles horoscopes, card readings, and Life Path calculations in one chat session.
Q: Is my RoxyAPI key visible to people who use my GPT? A: No. ChatGPT stores your API key encrypted on their servers and sends it with each request server-side. End users never see the key in the chat interface or in network requests. You can rotate your key at any time without rebuilding the GPT.
Q: How much does it cost to run a custom astrology GPT with live API data? A: You need a ChatGPT Plus subscription (monthly fee from OpenAI) and a RoxyAPI plan starting at $39 per month for 5,000 requests. Each horoscope lookup, tarot draw, or birth chart generation counts as one API request. A single user asking 10 questions per day would use roughly 300 requests per month. Visit roxyapi.com/pricing for current plan details.
Q: Can I get horoscopes and tarot readings in languages other than English?
A: Yes. RoxyAPI endpoints accept a lang query parameter supporting 8 languages: English, Turkish, German, Spanish, Hindi, Portuguese, French, and Russian. Add ?lang=es to get Spanish horoscopes. You can instruct your GPT to ask users for their preferred language and append it as a query parameter in the API call.
Build your own astrology GPT today
A custom GPT backed by live astrology data is more useful and more engaging than one running on static prompt text. Users get real daily horoscopes that change every day, real tarot draws from a full 78-card deck, and real natal charts calculated from verified planetary ephemeris data. You can extend the same approach to other RoxyAPI domains like crystals, dreams, I Ching, and angel numbers by importing their OpenAPI specs using the same API key. The entire setup takes under 30 minutes with GPT Actions and the Western Astrology API. No code, no backend, no deployment. Visit roxyapi.com/pricing to get your API key, import the OpenAPI spec, configure the X-API-Key header, and start building your custom astrology GPT today. Every conversation triggers real API calls that return fresh, calculated data instead of recycled prompt text.