# Daily Horoscope & Zodiac Scraper (All 12 Signs) (`scrapers_lat/daily-horoscope-zodiac-scraper`) Actor

Get daily, weekly and monthly horoscopes for all 12 zodiac signs, general or love, with the full prediction text plus zodiac metadata (element, quality, ruling planet, symbol) and optional AI reading. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/daily-horoscope-zodiac-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.56 / 1,000 horoscope results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![Daily Horoscope & Zodiac Scraper (All 12 Signs)](https://scrapers.lat/banners/daily-horoscope-zodiac-scraper.png)](https://console.apify.com/actors/mVtQdiedrDOIXL4CU/input)

## Daily Horoscope & Zodiac Scraper (All 12 Signs)

Here is one real result, with every field the actor returns:

```json
{
  "sign": "Aries",
  "signNumber": 1,
  "date": "Aug 23, 2026",
  "period": "daily",
  "type": "general",
  "prediction": "Conversations with a friend whose good sense you trust could open your eyes to new career possibilities, Aries. You might think about transforming your working life. These opportunities need careful consideration, since you've never contemplated them before. There's no rush to make up your mind, so don't feel pressured. Do give it some thought. You'll probably be glad you did.",
  "dateRange": "March 21 - April 19",
  "element": "fire",
  "quality": "cardinal",
  "rulingPlanet": "Mars",
  "symbol": "Ram",
  "glyph": "♈",
  "luckyColorsIfShown": null,
  "aiExpandedReading": null,
  "aiAdvice": null,
  "aiMood": null,
  "aiLuckySummary": null,
  "source": "horoscope.com",
  "observedAt": "2026-08-23T12:26:49.754Z"
}
```

The most complete horoscope scraper available. It returns the full daily, weekly or monthly prediction for any of the 12 zodiac signs, in general or love flavor, plus accurate built-in zodiac metadata (element, quality, ruling planet, symbol, date range) for each sign, and an optional AI reading. One run can pull all 12 signs at once.

**📥 [Input](https://apify.com/scrapers_lat/daily-horoscope-zodiac-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/daily-horoscope-zodiac-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/daily-horoscope-zodiac-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/daily-horoscope-zodiac-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-All%2012%20signs-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Table of contents

- [What it does](#what-it-does)
- [Why choose this](#why-choose-this)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [How we compare](#how-we-compare)
- [Use cases](#use-cases)
- [Example output record](#example-output-record)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing](#billing)
- [FAQ and troubleshooting](#faq-and-troubleshooting)

### What it does

The actor fetches the horoscope for the signs, period and type you choose, parses the full prediction text and the date shown on the page, and writes one clean record per sign to the run's dataset. On top of the prediction it attaches accurate zodiac metadata for each sign (calendar date range, classical element, quality or modality, ruling planet, symbol and glyph) so every record is self-contained and ready for an app or newsletter.

Pick a period of `daily`, `weekly` or `monthly`. For daily you also choose `today`, `tomorrow` or `yesterday`, and a `type` of `general` or `love`. Ask for a single sign, a list of signs, or all 12 in one run. An optional AI reading add-on expands the prediction into a personalized reading with practical advice, a mood and a lucky summary.

### Why choose this

- **Multiple periods in one actor:** daily, weekly and monthly, not daily only.
- **General and love readings:** switch `type` to `love` for daily relationship horoscopes.
- **Rich zodiac metadata on every record:** element, quality, ruling planet, symbol, glyph and date range, so you never maintain your own lookup table.
- **All 12 signs in one batch run:** no looping one request per sign.
- **Optional AI reading:** an expanded personalized reading, advice, mood and lucky summary, charged only when it returns usable output.
- **Clean flat output:** ready for JSON, CSV or Excel, no nested objects.

### Quickstart

Open the actor, paste this into the input, and press Run. It returns today's general horoscope for all 12 signs.

```json
{
  "signs": ["all"],
  "period": "daily",
  "day": "today",
  "type": "general",
  "maxResults": 12
}
```

Want a single sign? Set `"signs": ["Leo"]`. Want love readings? Set `"type": "love"`. Want the week or month ahead? Set `"period": "weekly"` or `"period": "monthly"`.

### Input reference

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `signs` | array | no | `["all"]` | Which signs to fetch. Use `"all"` for every sign, or list names such as `Aries`, `Leo`, `Pisces`. Accepts a single name or a list. |
| `period` | string | no | `daily` | Horoscope period: `daily`, `weekly` or `monthly`. |
| `day` | string | no | `today` | For the daily period only: `today`, `tomorrow` or `yesterday`. Ignored for weekly and monthly. |
| `type` | string | no | `general` | `general` life horoscope or `love` horoscope. Love is available for the daily period; weekly and monthly always return general. |
| `aiReading` | boolean | no | `false` | Add-on, paid plans only. Adds an AI expanded reading, advice, mood and lucky summary per sign. Charged only when the AI returns usable output. |
| `maxResults` | integer | no | `10` | Maximum records to return, one per sign. There are 12 signs. Free Apify plans are capped at 10. |

### Output reference

One dataset item per sign. Types are `string`, `integer`, or `null` when a value is absent.

| Field | Type | Description |
|---|---|---|
| `sign` | string | Zodiac sign name, for example `Aries` or `Leo`. |
| `signNumber` | integer | Sign number 1 to 12 (1 = Aries ... 12 = Pisces). |
| `date` | string | The horoscope date parsed from the page: a single date for daily, a range for weekly, a month label for monthly. |
| `period` | string | Period requested: `daily`, `weekly` or `monthly`. |
| `type` | string | Reading type: `general` or `love`. Weekly and monthly are always general. |
| `prediction` | string | The full horoscope prediction text. |
| `dateRange` | string | The calendar range the sign covers, for example `March 21 - April 19`. |
| `element` | string | Classical element: `fire`, `earth`, `air` or `water`. |
| `quality` | string | Modality: `cardinal`, `fixed` or `mutable`. |
| `rulingPlanet` | string | Traditional ruling planet of the sign. |
| `symbol` | string | Symbol name, for example `Ram`, `Bull` or `Twins`. |
| `glyph` | string | The astrological glyph character for the sign. |
| `luckyColorsIfShown` | string | Lucky colors parsed from the page when present, otherwise `null`. |
| `aiExpandedReading` | string | AI add-on: personalized expanded reading. `null` unless `aiReading` is on and succeeds. |
| `aiAdvice` | string | AI add-on: one concrete practical action for the day or period. `null` unless the add-on succeeds. |
| `aiMood` | string | AI add-on: a one or two word mood. `null` unless the add-on succeeds. |
| `aiLuckySummary` | string | AI add-on: a short lucky color and number summary. `null` unless the add-on succeeds. |
| `source` | string | Source identifier for the record. |
| `observedAt` | string | ISO 8601 timestamp of when the record was collected. |
| `error` | string | `null` on success. On a failed run a single item with a populated `error` field is written instead. |

### How we compare

| Capability | This actor | API Ninjas Horoscope | Aztro / Horoscope App API | RapidAPI Daily Horoscope (soralapps/divineapi) |
|---|---|---|---|---|
| Daily readings | Yes | Yes | Yes | Yes |
| Weekly and monthly | Yes | No | Weekly and monthly (general only) | Limited |
| Love horoscopes | Yes (daily) | No | No | No |
| Zodiac metadata (element, quality, ruling planet, symbol, date range) | Yes, on every record | No | No | No |
| All 12 signs in one call or run | Yes | One sign per request | One sign per request | One sign per request |
| AI expanded reading, advice, mood | Yes, optional add-on | No | No | No |
| Export to JSON, CSV, Excel | Yes | JSON only | JSON only | JSON only |

The gap most competitors leave is breadth in a single tool. This actor combines multiple periods, general plus love, built-in zodiac facts, an AI reading and an all-12-signs batch that others make you assemble yourself.

### Use cases

- Power a daily horoscope feature in a mobile or web app for all 12 signs.
- Automate a daily or weekly horoscope newsletter or push notification.
- Add a love horoscope module to a dating or lifestyle product.
- Enrich a zodiac or astrology chatbot with the sign's element, ruling planet and prediction.
- Archive daily predictions over time for trend or content analysis.

### Example output record

Real record from a live run (input `{"signs": ["Leo"], "period": "weekly", "type": "general"}`):

```json
{
  "sign": "Leo",
  "signNumber": 5,
  "date": "Aug 17, 2026 - Aug 23, 2026",
  "period": "weekly",
  "type": "general",
  "prediction": "You are a supreme being at the beginning of the week. Top of your game. Better than ever. Whatever you do, let your heart be your guide and proceed with confidence.",
  "dateRange": "July 23 - August 22",
  "element": "fire",
  "quality": "fixed",
  "rulingPlanet": "Sun",
  "symbol": "Lion",
  "glyph": "♌",
  "luckyColorsIfShown": null,
  "aiExpandedReading": null,
  "aiAdvice": null,
  "aiMood": null,
  "aiLuckySummary": null,
  "source": "horoscope.com",
  "observedAt": "2026-08-23T12:30:00.000Z"
}
```

### Run via API and CLI

Start a run and read the dataset. Replace `<TOKEN>` with your Apify API token.

Run synchronously and get dataset items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~daily-horoscope-zodiac-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"signs":["all"],"period":"daily","type":"general","day":"today"}'
```

Start a run asynchronously:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~daily-horoscope-zodiac-scraper/runs?token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"signs":["Scorpio"],"period":"daily","type":"love"}'
```

Apify CLI:

```bash
apify call scrapers_lat/daily-horoscope-zodiac-scraper \
  --input '{"signs":["Leo"],"period":"monthly"}'
```

### Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV or Excel by changing `format`:

```bash
## JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"

## CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
```

`<DATASET_ID>` is returned as `defaultDatasetId` in the run object.

### Billing

- **Pay per result.** You are charged per horoscope returned (the `result` event, one per sign). See the [pricing tab](https://apify.com/scrapers_lat/daily-horoscope-zodiac-scraper/pricing) for the current per-result price.
- **AI reading add-on.** When `aiReading` is on, the `ai_reading` event is charged only when the AI returns a usable reading. It is off by default and disabled for free Apify plans.
- **No charge on failure.** If a sign cannot be parsed it is skipped and not charged. If a run fails entirely it writes a single item with a populated `error` field and does not charge for it. Empty runs cost nothing.
- **Spend cap respected.** Set `maxTotalChargeUsd` on the run; once reached, the actor stops emitting and charging further results.
- **Free Apify plans** are capped at 10 records per run. Upgrade for all 12 signs at once.

### FAQ and troubleshooting

**Can I get all 12 signs in one run?**
Yes. Set `"signs": ["all"]` and `maxResults` to 12. On a free plan the cap is 10 per run.

**Do weekly and monthly support love readings?**
Love is available for the daily period. Weekly and monthly return the general reading for the sign.

**Why is `date` a range on weekly runs?**
Weekly predictions cover a span, so `date` holds the start and end date. Monthly holds a month label, daily holds a single date.

**What does the AI reading add?**
An expanded personalized reading built on the prediction and the sign's traits, plus a practical action, a mood and a lucky summary. It is optional, off by default, and charged only when it produces usable output.

**Is this an official horoscope provider?**
No. This actor is independent and not affiliated with any horoscope publisher. It reads publicly available horoscope pages. Predictions are for entertainment.

### Related scrapers

- [Etsy Product Listings and Shop Scraper](https://apify.com/scrapers_lat/etsy-scraper): Etsy listings by search, shop or URL.

### More scrapers at scrapers.lat

Built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at [scrapers.lat](https://scrapers.lat).

***

> Independent tool, not affiliated with any horoscope publisher. Accesses only publicly available data. Predictions are for entertainment.

# Actor input Schema

## `signs` (type: `array`):

Which zodiac signs to fetch. Use "all" for every sign, or list specific signs by name (Aries, Taurus, Gemini, Cancer, Leo, Virgo, Libra, Scorpio, Sagittarius, Capricorn, Aquarius, Pisces). Defaults to all 12 signs.

## `period` (type: `string`):

Horoscope period to fetch. Daily uses the Day option below. Weekly and monthly are general readings.

## `day` (type: `string`):

Which day the daily horoscope applies to. Ignored for weekly and monthly periods.

## `type` (type: `string`):

General life horoscope or love horoscope. Love readings are available for the daily period; weekly and monthly always return the general reading.

## `aiReading` (type: `boolean`):

Off by default. When on, adds an AI-expanded personalized reading, practical advice, a mood and a lucky summary for each sign. Charged only when the AI returns usable output. Disabled for free Apify plans.

## `maxResults` (type: `integer`):

Maximum number of horoscope records to return (one per sign). There are 12 signs total. Free Apify plans are capped at 10.

## Actor input object example

```json
{
  "signs": [
    "all"
  ],
  "period": "daily",
  "day": "today",
  "type": "general",
  "aiReading": false,
  "maxResults": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "signs": [
        "all"
    ],
    "period": "daily",
    "day": "today",
    "type": "general",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/daily-horoscope-zodiac-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "signs": ["all"],
    "period": "daily",
    "day": "today",
    "type": "general",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/daily-horoscope-zodiac-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "signs": [
    "all"
  ],
  "period": "daily",
  "day": "today",
  "type": "general",
  "maxResults": 10
}' |
apify call scrapers_lat/daily-horoscope-zodiac-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/daily-horoscope-zodiac-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/mVtQdiedrDOIXL4CU/builds/GIy5gsD8yHk6UyzIa/openapi.json
