Menu

  1. Docs
  2. Getting Started
  3. Quickstart

Quickstart

Your first API call in 60 seconds. No setup, no SDK, no domain knowledge.

1. Get your API key

Go to roxyapi.com/pricing and pick a plan. Your API key is delivered instantly after checkout. No account, no approval process.

2. Make your first call

A terminal is the app on your computer where you type commands. On Mac, search for "Terminal". On Windows, search for "PowerShell". Paste the command below and press Enter:

curl -X POST https://roxyapi.com/api/v2/tarot/daily \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{}'

Replace YOUR_API_KEY with the key you got from checkout.

What is curl? It is a command-line tool that sends HTTP requests. Think of it like a browser that runs in your terminal instead of a window. The -H flags are headers (metadata sent with the request) and -d is the data you are sending.

3. See the response

You get clean JSON back:

{
  "date": "2026-03-15",
  "card": {
    "name": "The Star",
    "arcana": "major",
    "keywords": ["Hope", "faith", "renewal"],
    "meaning": "A welcome reprieve after upheaval...",
    "imageUrl": "https://roxyapi.com/img/tarot/major/star.jpg"
  },
  "dailyMessage": "Your card for today: The Star..."
}

That is it. You just pulled a tarot card from an API. Every Roxy endpoint works the same way: send a request, get structured data back.

The same thing in JavaScript

If you are working in a code editor (VS Code, Cursor, Replit), here is the equivalent using fetch() — the built-in way JavaScript makes HTTP requests:

// fetch() sends an HTTP request to a URL and returns the response
const response = await fetch('https://roxyapi.com/api/v2/tarot/daily', {
  // POST means "send data to the server" (vs GET which just retrieves)
  method: 'POST',
  headers: {
    // tells the server we are sending JSON data
    'Content-Type': 'application/json',
    // your API key — the server checks this before responding
    'X-API-Key': 'YOUR_API_KEY'
  },
  // the data you are sending, converted to a JSON string
  body: JSON.stringify({})
});

// parse the JSON response into a JavaScript object
const data = await response.json();

console.log(data.card.name);      // "The Star"
console.log(data.card.meaning);   // "A welcome reprieve after upheaval..."

What is await? API calls take time (your code sends a request over the internet and waits for a response). await tells JavaScript to pause until the response arrives. You can only use await inside an async function.

Try more endpoints

# Numerology: Life Path number
curl -X POST https://roxyapi.com/api/v2/numerology/life-path \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"year": 1990, "month": 7, "day": 15}'

# Western Astrology: Daily horoscope
curl https://roxyapi.com/api/v2/astrology/horoscope/aries/daily \
  -H "X-API-Key: YOUR_API_KEY"

# Dream interpretation: Look up a symbol
curl https://roxyapi.com/api/v2/dreams/symbols/water \
  -H "X-API-Key: YOUR_API_KEY"

4. Build a web page

Now turn that API call into something you can open in a browser. Create a file called index.html and paste this:

<!DOCTYPE html>
<html>
<head>
  <title>My Numerology App</title>
  <style>
    body { font-family: system-ui; max-width: 500px; margin: 40px auto; padding: 0 20px; }
    button { padding: 10px 20px; cursor: pointer; font-size: 16px; }
    #result { margin-top: 20px; padding: 20px; background: #f5f5f5; border-radius: 8px; display: none; }
  </style>
</head>
<body>
  <h1>Life Path Calculator</h1>
  <p>Enter your birth date:</p>
  <input type="date" id="birthdate" />
  <button onclick="calculate()">Calculate</button>
  <div id="result"></div>

  <script>
    async function calculate() {
      const date = new Date(document.getElementById('birthdate').value);
      const response = await fetch('https://roxyapi.com/api/v2/numerology/life-path', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'X-API-Key': 'YOUR_API_KEY'
        },
        body: JSON.stringify({
          year: date.getFullYear(),
          month: date.getMonth() + 1,
          day: date.getDate()
        })
      });
      const data = await response.json();
      const el = document.getElementById('result');
      el.style.display = 'block';
      el.innerHTML = '<h2>Life Path ' + data.number + ': ' + data.meaning.title + '</h2>'
        + '<p>' + data.meaning.description + '</p>';
    }
  </script>
</body>
</html>

Replace YOUR_API_KEY with your key, then double-click the file to open it in your browser. Pick a birth date, click Calculate, and see a full Life Path interpretation. The same pattern works for any Roxy endpoint.

Important: This example puts the API key directly in browser code, which is fine for learning and testing. In a real app, call Roxy from your backend server so users cannot see your key. See Authentication for details.

What is next

  • Authentication — how API keys work, headers, and keeping your key safe
  • Starter Apps — clone a production-ready app and ship in 30 minutes
  • AI Prompts — paste into Cursor or Claude and build without writing code
  • API Reference — browse all 110+ endpoints with live testing