# 🇷🇴 Publi24 Romania Classifieds Scraper (`hipersoft/publi24-scraper`) Actor

Scrape classified ads from Publi24.ro, one of Romania's largest marketplaces — all categories. Search by keyword or paste a category URL and export one row per ad: title, price, image, location, category and URL.

- **URL**: https://apify.com/hipersoft/publi24-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0015 / listing scraped

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

## 🇷🇴 Publi24 Romania Classifieds Scraper

Scrape **classified ads from Publi24.ro**, one of Romania's largest classifieds marketplaces, as clean, structured **JSON, CSV, Excel or XML**. Search by keyword or point it at any Publi24 category — **real estate, cars, electronics, jobs, services** and everything in between — and it returns one tidy row per ad: **title, price, main image, location, listing URL** and **category**. Perfect for market research, price monitoring, comparables and lead generation.

### What does Publi24 Scraper do?

This actor turns Publi24.ro search and category pages into a ready-to-use dataset. Give it one or more **keywords** (or paste category URLs straight from your browser), and it walks every result page and collects each ad with structured fields. It works across **every category** without configuration — a phone, a flat, a car or a job all come back as clean rows.

### What data can you get?

**Per ad:**

| Field | Description |
| --- | --- |
| `listingId` | Publi24 ad reference. |
| `title` | Ad title (kept in its original Romanian). |
| `url` | Link to the ad's page. |
| `price` | Price as a number, when shown. |
| `currency` | Currency code (`RON` or `EUR`), when a price is shown. |
| `imageUrl` | Main ad image URL, when present. |
| `location` | Ad location (city / county), when shown. |
| `postedDate` | When the ad was posted, as shown on the site. |
| `description` | Short description snippet, when present. |
| `category` | Category path derived from the ad URL (e.g. `imobiliare/de-vanzare/apartamente`). |
| `isPromoted` | Whether the ad is a promoted / featured listing. |
| `sourceUrl` | The search or category URL the ad was collected from. |
| `collectedAt` | Timestamp when the row was collected. |

### Use cases

- **Market research** — map prices, models and stock across categories and regions.
- **Price monitoring** — track asking prices and new ads over time.
- **Comparables & valuation** — pull comparable ads by category and price band.
- **Lead generation** — build lists of sellers and offers for outreach.
- **Dashboards** — power reports and dashboards from clean, structured rows.
- **Automation** — feed fresh classifieds data into your own pipelines on a schedule.

### How to use it

1. Add **Publi24 Romania Classifieds Scraper** to your Apify account and open its input.
2. Enter one or more **Search keywords** (e.g. `iphone`, `apartament`, `golf 7`) — or paste **Start URLs**, Publi24 category or search pages copied from your browser (e.g. `https://www.publi24.ro/anunturi/imobiliare/`, `https://www.publi24.ro/anunturi/auto-moto/`).
3. Set **Max items** to cap the output.
4. Click **Run**.
5. Export the results as JSON, CSV, Excel or XML.

### Input

```json
{
  "queries": ["iphone"],
  "maxItems": 100
}
```

| Field | Description |
| --- | --- |
| `queries` | One or more keywords to search Publi24 for. |
| `startUrls` | One or more Publi24 search / category page URLs (optional). |
| `maxItems` | Cap the number of ads. `0` = no limit. |
| `maxConcurrency` | How many requests to run in parallel. |

### What you get

One flat JSON row per ad, ready to export to CSV, Excel, JSON or XML.

```json
{
  "listingId": "3FED692C-EDBF-4868-A376-EFC2C010160F",
  "title": "Camera auto bord 1080P HD, 2 camere fata si spate",
  "url": "https://www.publi24.ro/anunturi/electronice/audio-video/camere-video/anunt/camera-auto-bord/xxxxx.html",
  "price": 90,
  "currency": "RON",
  "imageUrl": "https://s3.publi24.ro/vertical-ro/top/xxxx.webp",
  "location": "Baraolt, Covasna",
  "postedDate": "azi 12:52",
  "category": "electronice/audio-video/camere-video",
  "isPromoted": false,
  "sourceUrl": "https://www.publi24.ro/anunturi/?keywords=iphone"
}
```

### FAQ

**Which categories are covered?**
Any category on Publi24 — real estate, cars, electronics, jobs, services and more. Search by keyword or paste the category URL from your browser.

**In what language are titles returned?**
Ads are kept in their original language (Romanian, as posted), so nothing is lost in translation.

**How is pricing captured across different categories?**
The `price` and `currency` fields are filled whenever an ad shows a price, with the currency (`RON` or `EUR`) read from the ad itself, so the actor works across all categories.

**What export formats are supported?**
JSON, CSV, Excel and XML — plus the Apify API and integrations for automation.

# Actor input Schema

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

One or more keywords to search Publi24.ro for (e.g. "iphone", "apartament", "golf 7"). Each keyword is searched across all categories and every result page is walked automatically. Leave empty if you provide Start URLs instead.

## `startUrls` (type: `array`):

One or more Publi24.ro search or category page URLs to scrape — copy them straight from your browser (e.g. https://www.publi24.ro/anunturi/imobiliare/, https://www.publi24.ro/anunturi/auto-moto/, https://www.publi24.ro/anunturi/?keywords=iphone). The scraper walks every page of each URL automatically. Optional — use this instead of, or together with, keywords.

## `maxItems` (type: `integer`):

Maximum number of ads to collect across all searches and start URLs (0 = no limit; collect everything).

## `maxConcurrency` (type: `integer`):

How many requests to run in parallel. Leave at the default unless you have a reason to change it.

## `proxyConfiguration` (type: `object`):

Proxy settings. Leave the default for reliable access from any region.

## Actor input object example

```json
{
  "queries": [
    "iphone"
  ],
  "maxItems": 100,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset items.

# 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": [
        "iphone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/publi24-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 = { "queries": ["iphone"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/publi24-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 '{
  "queries": [
    "iphone"
  ]
}' |
apify call hipersoft/publi24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/publi24-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/FtlxXzFNFRrcseBR0/builds/LgbmrOIR5eOiwpraG/openapi.json
