# Takealot Price & Stock Tracker (`loopwalker-owner/takealot-price-tracker`) Actor

Track prices, discounts, ratings, and stock for any Takealot search query as structured JSON.

- **URL**: https://apify.com/loopwalker-owner/takealot-price-tracker.md
- **Developed by:** [Armand Oberholzer](https://apify.com/loopwalker-owner) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 product results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Takealot Price & Stock Tracker

### What does Takealot Price Tracker do?

This actor tracks **product prices, discounts, ratings, and stock availability on [Takealot](https://www.takealot.com)** — South Africa's largest online retailer. Give it search queries ("logitech mouse", "air fryer", a brand name) and it returns clean JSON for every matching product: current price in ZAR, list price, % saving, stock status, and a direct product URL. Schedule it on Apify to build price histories, get repricing signals, or fire alerts when something drops below your target.

### Why use it?

- **Sellers & brands**: monitor competitor pricing and stock-outs daily.
- **Deal hunters & affiliate sites**: detect discounts the moment they land.
- **Analysts**: build ZA e-commerce price datasets without writing a scraper.

### How to use it

1. Enter one or more search queries in the input.
2. Run (or schedule) the actor.
3. Download the dataset or read it via the API — one row per product.

### Input

```json
{ "queries": ["logitech mouse", "dyson v8"], "maxResultsPerQuery": 20 }
```

### Output

```json
{
  "query": "logitech mouse",
  "plid": 94928735,
  "title": "Logitech M185 Wireless Mouse",
  "brand": "Logitech",
  "priceZar": 329,
  "listPriceZar": 399,
  "prettyPrice": "R 329",
  "saving": "18%",
  "inStock": true,
  "stockStatus": "In stock",
  "rating": 4.6,
  "reviews": 1240,
  "url": "https://www.takealot.com/logitech-m185-wireless-mouse/PLID94928735",
  "checkedAt": "2026-07-25T18:00:00.000Z"
}
```

You can download the dataset in JSON, CSV, or Excel formats.

| Field | Meaning |
| --- | --- |
| `priceZar` | Current buy-box price (ZAR) |
| `listPriceZar` | Original list price |
| `saving` | Discount percentage as shown on Takealot |
| `inStock` / `stockStatus` | Availability |
| `plid` / `url` | Takealot product id and canonical URL |

### Automate it: Tasks + scheduling (recommended)

One-off runs answer a question; schedules build an asset. Two minutes of setup:

1. On this actor's page click **Create task** — it saves your input (your queries) as a reusable configuration.
2. Open the task's **Schedule** tab and pick a cadence — daily at 07:00 works well for price tracking.
3. Every run appends to your dataset history, so you get a **price time series per product** for free.
4. Use the task's **Integrations** tab to push results to Google Sheets, Slack, or a webhook (Make/Zapier supported) — e.g. alert when `priceZar` drops below your target.

Pro pattern: one task per concern — "competitor-mice", "own-listings", "clearance-watch" — each with its own schedule and integration.

### Pricing

Pay-per-event: a small flat fee per run plus a fraction of a cent per product row. Tracking 5 queries × 20 products daily costs a few cents per day.

### Disclaimers & support

Reads the same public, unauthenticated search API the Takealot website uses; no login, no personal data. Use reasonable schedules (the actor rate-limits itself between queries). Issues tab is monitored within the Apify 14-day SLA.

# Actor input Schema

## `queries` (type: `array`):

Takealot search terms to track, e.g. product names, brands, or categories.

## `maxResultsPerQuery` (type: `integer`):

Maximum products returned per query (1-100).

## Actor input object example

```json
{
  "queries": [
    "logitech mouse"
  ],
  "maxResultsPerQuery": 20
}
```

# 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 = {
    "queries": [
        "logitech mouse"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("loopwalker-owner/takealot-price-tracker").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 = { "queries": ["logitech mouse"] }

# Run the Actor and wait for it to finish
run = client.actor("loopwalker-owner/takealot-price-tracker").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 '{
  "queries": [
    "logitech mouse"
  ]
}' |
apify call loopwalker-owner/takealot-price-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,loopwalker-owner/takealot-price-tracker"
        }
    }
}
```

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/JUuRLFWgXYWYb9ZIZ/builds/xeB3OafuY01qLmAB5/openapi.json
