# Pikabu Scraper Пикабу: Posts, Tags & Ratings (`getascraper/pikabu-search-scraper`) Actor

Scrape Pikabu posts by search or tag: title, author, rating, comment count, topic, timestamp, and media. No official Pikabu API exists, this reads the public feed directly. JSON, CSV, or Excel export. $4.39 per 1,000 posts.

- **URL**: https://apify.com/getascraper/pikabu-search-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.29 / 1,000 posts

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

## 🐼 Pikabu Scraper: Search, Tags & Posts Пикабу

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FFF3EA;border:1px solid #FFD4AD;border-top:4px solid #E8590C;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Pull structured Pikabu posts by search term or tag, no browser required</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">One Actor covers search results, tag/category feeds, and optional full post detail, with author, rating, and comment count on every row.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FFD4AD;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E8590C">🔍 Search or browse</span><br>
<span style="font-size:12px;color:#57534E">Query pikabu.ru/search or walk any tag/category feed</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FFD4AD;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E8590C">💬 Comment counts</span><br>
<span style="font-size:12px;color:#57534E">Every post carries its live comment count for engagement sorting</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FFD4AD;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E8590C">🖼️ Optional full detail</span><br>
<span style="font-size:12px;color:#57534E">Turn on post detail to also pull body text, images, and video</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #FFD4AD;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E8590C">⚡ No browser needed</span><br>
<span style="font-size:12px;color:#57534E">Reads the same server-rendered HTML every visitor gets</span>
</td>
</tr>
</table>

### 🔍 What does Pikabu Scraper do?

Pikabu Scraper extracts structured post data from **Пикабу** (pikabu.ru), the Russian Reddit-like content and community platform. Point it at a search query or a tag/category, and it returns each post's title, author, rating, comment count, topic, publish date, and URL, ready for CSV, Excel, or JSON export. Turn on full post detail to also pull the body text, images, and video URL from the post's own page. Run it on demand, on a schedule, or through the Apify API, with rotating proxies included.

### 💡 Why use Pikabu Scraper?

- **I am a content researcher** tracking what topics and tags are trending on Pikabu without opening dozens of tabs.
- **I am a social listening analyst** monitoring a keyword or brand mention across Pikabu search results for sentiment and volume.
- **I am a data journalist** building a dataset of posts and engagement (rating, comment count) around a specific tag over time.
- **I am a competitive intelligence researcher** watching how a topic or niche community performs on a Russian-language platform.

### 🚀 How to use Pikabu Scraper

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FFF3EA;border:1px solid #FFD4AD;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E8590C;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick a mode</span><br>
<span style="font-size:12px;color:#57534E">Enter a search query, or pick a tag/category to browse instead.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF3EA;border:1px solid #FFD4AD;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E8590C;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your limits</span><br>
<span style="font-size:12px;color:#57534E">Choose max items and whether to fetch full post detail per row.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF3EA;border:1px solid #FFD4AD;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E8590C;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run and export</span><br>
<span style="font-size:12px;color:#57534E">Click Save & Start, then download your dataset as JSON, CSV, or Excel.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | enum | No | `search` queries pikabu.ru/search by keyword. `tag` browses a pikabu.ru/tag/<name> feed instead. Defaults to `search`. |
| `searchQuery` | string | No | Text to search for. Used only when `mode` is `search`. |
| `tag` | string | No | Tag or category slug to browse, as it appears in the `/tag/<name>` URL (for example `котики`). Used only when `mode` is `tag`. |
| `maxItems` | integer | No | Maximum number of posts to return. Each listing page returns roughly 40-45 posts. Defaults to 50. |
| `fetchPostDetail` | boolean | No | When true, also visits each post's own page to pull full body text, images, and video URL. Adds one extra request per post. Comment thread text is never fetched, only the comment count. Defaults to false. |
| `proxyConfiguration` | object | Yes | Proxy settings. Automatic datacenter proxy is the default and works out of the box. |

### 📤 Output

A structured dataset of Pikabu posts with title, author, rating, comment count, topic, and timestamp, plus body text, images, and video when full post detail is enabled. Download it as JSON, CSV, HTML, or Excel.

```json
{
  "storyId": "12345678",
  "title": "Как я нашёл кота на балконе",
  "postUrl": "https://pikabu.ru/story/kak_ya_nashyol_kota_na_balkone_12345678",
  "authorId": "9988776",
  "authorName": "example_user",
  "authorUrl": "https://pikabu.ru/@example_user",
  "rating": 1542,
  "commentsCount": 87,
  "topic": "Истории",
  "topicUrl": "https://pikabu.ru/tag/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8",
  "tags": ["котики", "истории"],
  "publishedAt": "2026-08-20T14:32:00.000Z",
  "contentText": "Полный текст поста, если включён fetchPostDetail...",
  "images": ["https://cs.pikabu.ru/images/example.jpg"],
  "videoUrl": null,
  "scrapedAt": "2026-08-24T09:00:00.000Z"
}
```

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `storyId` | string | Pikabu's internal post ID. |
| `title` | string | Post title. |
| `postUrl` | string | Direct link to the post. |
| `authorId` | string | Author's internal user ID. |
| `authorName` | string | Author's display name. |
| `authorUrl` | string | Link to the author's profile. |
| `rating` | integer | Post rating (upvotes minus downvotes). |
| `commentsCount` | integer | Comment count on the post. Comment thread text itself is out of scope, see FAQ. |
| `topic` | string | Post's primary topic/category label. |
| `topicUrl` | string | Link to the topic page. |
| `tags` | array | Free-text tags attached to the post. |
| `publishedAt` | string | ISO 8601 publish timestamp. |
| `contentText` | string | Full post body text. Populated only when `fetchPostDetail` is true. |
| `images` | array | Image URLs from the post. Populated only when `fetchPostDetail` is true. |
| `videoUrl` | string | Video URL from the post, if any. Populated only when `fetchPostDetail` is true. |
| `scrapedAt` | string | ISO 8601 timestamp of when the row was scraped. |

### 💰 Pricing

This Actor uses pay per result pricing. You are charged per post returned, plus a small per-run start fee. Empty runs and failed requests are not charged. There is no subscription and no minimum spend, you only pay for the posts you actually get back.

### ⭐ Enjoying Pikabu Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FFF3EA;border:1px solid #FFD4AD;border-left:5px solid #E8590C;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Pulled structured Pikabu posts with author, rating, and comment counts instead of scrolling the feed by hand?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other content researchers and social listening analysts find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#E8590C;border:1px solid #FFD4AD;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/pikabu-search-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips or advanced options

- **Prefer tag mode when you can.** Browsing a tag or category covers most research needs and avoids the robots.txt caveat below entirely, see FAQ.
- **Turn on full post detail only when you need it.** It adds one extra request per post for body text, images, and video, so leave it off for a faster, lighter run when you only need the listing fields.
- **Start small.** Test with `maxItems` set to 10-20 before scaling up to confirm your query or tag returns what you expect.
- **Default proxies are fine.** Datacenter proxy handled Pikabu's anti-bot layer cleanly during testing. Switch to residential only if you see blocked or empty runs.

### ❓ FAQ, disclaimers, and support

##### Does mode "search" touch a disallowed path?

Yes, and we disclose it plainly rather than hide it. `mode: "search"` fetches `pikabu.ru/search?q=...`, and Pikabu's robots.txt explicitly disallows `/search?*` for all user agents. This Actor logs a warning to that effect on every search-mode run. It is a documented moderation-review flag, not a technical block: the page loads and returns full data. If you want a robots.txt-clean path, use `mode: "tag"` instead, which browses `/tag/<name>` and is not disallowed.

##### Как спарсить посты с Пикабу по тегу?

Set `mode` to `tag` and enter the tag slug exactly as it appears in the `/tag/<name>` URL, for example `котики`. This mode browses the tag feed directly and avoids the `/search` disallow rule above.

##### Does this Actor scrape full comment threads?

No, and this is a deliberate scope boundary, not a missing feature. `commentsCount` gives you the comment total shown on the listing page. Full comment thread text loads through a separate client-side call this Actor does not follow. If you need comment content, treat it as a separate, unvalidated capability outside this Actor's scope.

##### Is scraping pikabu.ru legal?

This Actor reads publicly accessible post data with no login required. Aside from the `/search` path noted above, it does not bypass authentication or paywalls. You are responsible for ensuring your use of the data complies with applicable laws and Pikabu's own Terms of Service.

**Disclaimer:** This Actor accesses public post listing data only. It does not bypass authentication, paywalls, or anti-bot systems on the live site. Pikabu is the registered trademark of its respective owner. This Actor is affiliation-free, and not endorsed or sponsored by Pikabu.

### 🔗 Other actors

- [HH.ru Jobs Scraper: Парсер вакансий HH.ru](https://apify.com/getascraper/hh-ru-jobs-scraper) ↗ - pulls structured job listings from Russia's largest job board.
- [Avito Auto Scraper: Парсер Авито Авто](https://apify.com/getascraper/avito-auto-scraper) ↗ - extracts car listings from Avito's auto marketplace.
- [Drom.ru Cars Scraper: Парсер Дром Авто](https://apify.com/getascraper/drom-ru-cars-scraper) ↗ - scrapes car listings and pricing from Drom.ru.
- [Yandex Reverse Image Scraper: Яндекс Картинки](https://apify.com/getascraper/yandex-reverse-image-scraper) ↗ - runs reverse image search through Yandex.
- [Subreddit Announcement Monitor: Matched Posts](https://apify.com/getascraper/reddit-community-announcement-keyword-monitor) ↗ - monitors subreddit announcements for keyword matches.

# Actor input Schema

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

Choose how to find posts. "Search" queries pikabu.ru/search (robots.txt disallows this path, flagged for Apify moderation review). "Tag" browses pikabu.ru/tag/<name>, a lower-friction alternative not blocked by robots.txt.

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

Text to search for on pikabu.ru/search. Only used when Mode = "Search".

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

Pikabu tag slug to browse, e.g. "котики" or "IT юмор" (as it appears in the /tag/<name> URL). Only used when Mode = "Tag".

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

Maximum number of posts to scrape from the listing. Each listing fetch returns roughly 40-45 posts.

## `fetchPostDetail` (type: `boolean`):

When enabled, visits each post's own page (/story/<slug>\_<id>) to also extract the full post body text, images, and video URL. Adds one extra request per post. Comment THREAD content is never fetched (out of scope, see README) - only the comment count already present on the listing page.

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

Pikabu is protected by DDoS-Guard but did not challenge plain datacenter requests during feasibility testing. Datacenter proxy is the default; switch to residential only if you see blocked/empty runs.

## Actor input object example

```json
{
  "mode": "search",
  "maxItems": 50,
  "fetchPostDetail": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/pikabu-search-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/pikabu-search-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 '{}' |
apify call getascraper/pikabu-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/pikabu-search-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/90gdqlZDekc0dkZ8a/builds/Pko1QXuUShyrQl9ta/openapi.json
