# Horoscope.com API

> Horoscope.com provides daily zodiac horoscopes as a workflow and API.

Horoscope.com returns a daily horoscope when you provide a zodiac sign or birthday. Get daily horoscope can return yesterday’s, today’s, or tomorrow’s reading, based on the day shown on Horoscope.com.

- Page: https://fous.com/workflows/horoscope-com
- Handle: `@horoscope-com`
- Category: [Other](https://fous.com/workflows/category/other)
- Source website: https://horoscope.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Horoscope.com.

## Methods

### Get daily horoscope

Operation `get_daily_horoscope`, version 1. 1 credit per call.

Get a zodiac sign’s daily horoscope from a sign or birthday. Choose yesterday, today, or tomorrow; dates follow the day shown on Horoscope.com.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `day` | string | no | `"tomorrow"` | Which daily reading to get, for example tomorrow. |
| `sign` | string | yes | `"1985-08-03"` | A zodiac sign or birthday, such as Leo, 1985-08-03, or August 3. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "sign"
  ],
  "properties": {
    "day": {
      "enum": [
        "yesterday",
        "today",
        "tomorrow"
      ],
      "type": "string",
      "default": "today",
      "description": "Which daily reading to get, for example tomorrow.",
      "examples": [
        "tomorrow",
        "yesterday"
      ]
    },
    "sign": {
      "type": "string",
      "description": "A zodiac sign or birthday, such as Leo, 1985-08-03, or August 3.",
      "examples": [
        "1985-08-03",
        "Leo",
        "August 3"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "day": "tomorrow",
      "sign": "1985-08-03"
    },
    {
      "sign": "Leo"
    },
    {
      "day": "yesterday",
      "sign": "August 3"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `link` | string | `"https://www.horoscope.com/us/horoscopes/general/horoscope-general-daily-tomorrow.aspx?sign=5"` | Horoscope.com page for this reading. |
| `sign` | string | `"Leo"` | Zodiac sign. |
| `date_range` | string | `"Jul 23 - Aug 22"` | Usual zodiac sign dates. |
| `horoscope_date` | string | `"2026-09-29"` | Date shown with the horoscope. |
| `horoscope_text` | string | `"This is a good day for sharing friendship with pals and co-workers, Leo. People will be in a light, socializing mood an` | Full daily horoscope in plain text. |

**Example input**

```json
{
  "day": "tomorrow",
  "sign": "1985-08-03"
}
```

**Example output**

```json
{
  "link": "https://www.horoscope.com/us/horoscopes/general/horoscope-general-daily-tomorrow.aspx?sign=5",
  "sign": "Leo",
  "date_range": "Jul 23 - Aug 22",
  "horoscope_date": "2026-09-29",
  "horoscope_text": "This is a good day for sharing friendship with pals and co-workers, Leo. People will be in a light, socializing mood and not much in a working frame of mind. There's really no use fighting this energy…"
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@horoscope-com",
  "visibility": "public",
  "operation": "get_daily_horoscope",
  "version": 1,
  "input": {
    "day": "tomorrow",
    "sign": "1985-08-03"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@horoscope-com\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_daily_horoscope\",\n  \"version\": 1,\n  \"input\": {\n    \"day\": \"tomorrow\",\n    \"sign\": \"1985-08-03\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@horoscope-com",
  "visibility": "public",
  "operation": "get_daily_horoscope",
  "version": 1,
  "input": {
    "day": "tomorrow",
    "sign": "1985-08-03"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@horoscope-com","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Plan daily content around zodiac readings
- Compare horoscope text across zodiac signs
- Prepare daily horoscope summaries for readers

## FAQ

### Is Fous affiliated with Horoscope.com?

No. Fous is not affiliated with Horoscope.com. This workflow reads the public horoscope.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Horoscope.com account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from horoscope.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### What is my daily horoscope?

Use Get daily horoscope with your zodiac sign or birthday to get the full daily reading.

### Can I get yesterday’s or tomorrow’s horoscope?

Get daily horoscope accepts a day choice for yesterday, today, or tomorrow.

## Related

- [Time and Date API](https://fous.com/workflows/time-and-date.md): Time and Date provides current city times, zones, daylight-saving changes; meeting conversions (1970–2030); daily solar times and twilight; and business-day counts based on published holiday calendars.
- [Wikipedia API](https://fous.com/workflows/wikipedia.md): Wikipedia returns article summaries, images, facts, relevant search matches, readable text and daily historical events, plus human-view counts from July 2015 onward.
- [NASA API](https://fous.com/workflows/nasa.md): NASA provides astronomy pictures from June 16, 1995 onward, up to 100 media matches, inclusive UTC asteroid approaches, recent approximate natural events, and upcoming ISS sightings for listed cities.
- [AccuWeather API](https://fous.com/workflows/accuweather.md): AccuWeather provides current conditions and RealFeel, plus up to 15 available daily forecasts; shorter public forecasts may return fewer days.
- [BrainyQuote API](https://fous.com/workflows/brainyquote.md): BrainyQuote returns topic-matched quotes in displayed order, a person’s description and up to 100 quotes with topic tags and links, or the quote shown for the chosen daily category and BrainyQuote’s current day.
- [Merriam-Webster API](https://fous.com/workflows/merriam-webster.md): Merriam-Webster provides definitions, pronunciations, examples, word histories, synonyms, antonyms, and related words for publicly listed entries, plus Word of the Day entries for today or published archive dates.
- [The Weather Channel API](https://fous.com/workflows/the-weather-channel.md): The Weather Channel returns current conditions, today’s high/low, up to 15 daily forecasts (sometimes fewer), 1–48 local hourly forecasts, and active severe weather alerts.
- [Daily Mail API](https://fous.com/workflows/daily-mail.md): Daily Mail provides ordered section headlines with available bylines and times, searches up to 200 published articles excluding syndicated wire stories, and reads public article text and details, including latest live-blog entries shown.
- [All Other workflows](https://fous.com/workflows/category/other)
