OK.ru Scraper - Users, Groups, Posts, Videos & Games
Pricing
from $1.50 / 1,000 result records
OK.ru Scraper - Users, Groups, Posts, Videos & Games
Scrape public OK.ru users, groups, topics, posts, videos, games and greetings by keyword or URL. Extract profiles, feeds, views, likes, comments, players and ratings as clean JSON, with change tracking for recurring monitoring. No account required.
Pricing
from $1.50 / 1,000 result records
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
OK.ru Scraper
Pull structured data from OK.ru (Odnoklassniki): user, group, topic, video and game search, group pages with live feed cards, full topic posts, profile records, videos with views, likes and comments, the games catalogue with players and ratings, and the greetings library. Works account-free across every mode. Search by keyword, paste any mix of ok.ru links, or watch the same scope daily and receive only what changed. Every record arrives as clean JSON with change tracking, ready for analysis, dashboards, or model training.
Why This Scraper?
- No login, ever. Search, group feeds, topic posts and profile enrichment all work from the logged-out surface; the actor mints what it needs at run start.
- Many ways in. Search users, groups, topic posts, videos or games, or paste any mix of links - groups, topics, profiles, videos, the video showcase, games, game genres and greetings pages are each auto-detected and read by the matching lane.
- Videos with engagement. Every video row carries views, likes, duration, publish date and channel; turn on comments to also get the ones OK.ru shows logged-out visitors, nested in the same row.
- Games with real ratings. Players, rating with vote count, genre, tags and developer for every game, from the full catalogue, a genre page or a keyword search.
- Profile enrichment out of the box. A profile ID alone returns name, gender, birthday, location and avatar, structured and typed.
- Monitoring built in. Schedule the same input daily and receive only NEW and UPDATED records, with exactly which fields changed.
- Loud on blocks, quiet on anything else. When the site refuses every request, the run fails with a clear message instead of finishing silently with no results.
- Pipe results into your apps. Send each run's records to Notion or other MCP connectors as a final delivery step, without touching the dataset.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
Profile record
| Field | Example | type |
|---|---|---|
kind | "profile" | string |
id | 352769811913 | integer |
name | "First Last" | string |
firstName / lastName | "First" / "Last" | string |
gender | "female" | string |
birthday | "09-30" | string |
location | "Moscow, Russia" | string |
avatar | profile image URL | string |
changeType | "NEW" | string |
firstSeenAt / lastSeenAt | ISO timestamp | string |
Group record
| Field | Example | type |
|---|---|---|
kind | "group" | string |
id | 53494783737943 | integer |
name | "Sample Group" | string |
membersCount | 214187 | integer |
description / category / createdAt | group info (search rows) | string |
feedCount | 10 (links rows) | integer |
feedTexts | recent feed post texts (links rows) | array |
changeType | "UPDATED" | string |
Topic record
| Field | Example | type |
|---|---|---|
kind | "topic" | string |
id | 158816426481751 | integer |
groupId | 53494783737943 | integer |
title | "Sample topic title" | string |
text | post text | string |
commentsCount | 42 | integer |
images | image URLs | array |
changeType | "NEW" | string |
Video record
| Field | Example | type |
|---|---|---|
kind | "video" | string |
id | "1234567890123" | string |
title | "Sample video title" | string |
durationSeconds | 125 | integer |
publishedAt | ISO timestamp | string |
viewsCount / likesCount | 150000 / 2400 | integer |
dailyViews | 310 (search rows) | integer |
commentsCount | 148 | integer |
channelName / channelUrl | "Sample Channel" / channel link | string |
ownerType / ownerId | "group" / "1234567890" | string |
thumbnail | preview image URL | string |
comments | with includeComments on - first 20 comments: id, authorId, authorName, authorUrl, text, publishedAt, isReply | array |
Game record
| Field | Example | type |
|---|---|---|
kind | "game" | string |
id | "512000000000" | string |
name | "Sample Game" | string |
url | game page link | string |
genre / tags | "board" / ["Board games"] | string / array |
playersCount | 955000 | integer |
rating / ratingVotes | 4.32 / 145000 (null when a game has no votes yet) | number / integer |
developer | "Sample Studio" | string |
description / image / banner | text / image URLs | string |
Greeting record
| Field | Example | type |
|---|---|---|
kind | "greeting" | string |
id | "3658_106997" | string |
category | "Happy birthday" | string |
text | full greeting text | string |
url | category page link | string |
How to Use
Search users by keyword:
| Field | Value |
|---|---|
| Mode | Keyword search |
| Search query | котики |
| What to search (pick one or more) | Users |
| Max items | 100 |
Paste any mix of links; group pages, topic posts and profiles are auto-detected per entry:
| Field | Value |
|---|---|
| Mode | Links (groups, topics, profiles, videos, games, greetings) |
| Links (groups, topics, profiles, videos, games, greetings) | https://ok.ru/group/53494783737943 https://ok.ru/group/53494783737943/topic/158816426481751 https://ok.ru/profile/352769811913 |
Search one keyword across several types at once - up to 50 videos, 50 games and 50 groups (turn on Include comments (videos and topics) to also get video comments):
| Field | Value |
|---|---|
| Mode | Keyword search |
| Search query | котики |
| What to search (pick one or more) | Videos, Games, Groups |
| Max items | 50 |
Videos, the trending showcase, the games catalogue, one game and a greetings category in one run:
| Field | Value |
|---|---|
| Mode | Links (groups, topics, profiles, videos, games, greetings) |
| Links (groups, topics, profiles, videos, games, greetings) | https://ok.ru/video/21853391293020 https://ok.ru/video https://ok.ru/games https://ok.ru/game/mahjongonline https://ok.ru/pozdravleniya/s-dnem-rozhdeniya |
| Max items | 200 |
Daily monitoring with a named campaign:
| Field | Value |
|---|---|
| Mode | Keyword search |
| Search query | фитнес |
| What to search (pick one or more) | Groups |
| Incremental changes for scheduled runs | On |
| State key (optional, incremental mode only) | fitness-groups |
| Max items | 200 |
Search covers the site's own index, so results follow its ranking; pages overlap slightly between runs, and the actor deduplicates so you never see the same record twice in one run. Group search returns each group's name, members, category, description and creation date; paste a group link to also get its current feed cards. Links mode is exact: a group link returns the group's header and its current feed cards, a topic link returns the full post, a profile link returns the enriched profile record.
What each mode cannot see: OK.ru shows logged-out visitors only the first page of comments (up to 20, oldest first), so with Include comments (videos and topics) on, video and topic rows carry those plus the total comment count; later comment pages, full member feeds, photos and friends lists are gated behind a login. A games genre page lists the games OK.ru shows logged-out visitors for that genre; the /games catalogue covers every genre at once. Comments are off by default; turn on Include comments (videos and topics) to get them.
Pricing: every record is one result event. A video or topic record returned with its comments adds one small Comments collected event; records without comments, and runs with comments off, never pay it.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search or links. |
searchQuery | string | - | Keyword or phrase for search mode. |
searchTypes | array | ["users"] | One or more of users, groups, content, videos, games; each is searched for the same query. |
links | array | sample links | Group, topic, profile, video, showcase, games, game and greetings links; auto-detected per entry. |
maxItems | integer | 20 | Stop after this many records (0 = no limit); in search mode, per selected type. |
includeComments | boolean | false | Turn on to nest the first page of comments (up to 20) inside video and topic rows; each row returned with comments is charged one Comments collected event. |
incrementalMode | boolean | false | Recurring change detection (see below). |
stateKey | string | - | Name or share an incremental-mode monitoring campaign. |
emitUnchanged | boolean | false | Also return (and bill) UNCHANGED records. |
resumeFromRunId | string | - | Continue one interrupted crawl (see below). |
mcpConnectors | array | empty | Optional MCP connector export. |
notionParentPageUrl | string | - | Notion connector only: parent page for item pages. |
maxNotifyListings | integer | 50 | Cap on items written per connector per run. |
proxyConfiguration | object | standard pool | Connection settings. |
Resume and recurring updates
Two different features for two different situations:
Resume from a previous run (resumeFromRunId) - continue ONE interrupted crawl. Paste a previous run ID or dataset ID; the actor skips every record already collected there, so you get only the delta without paying to re-collect what you already have.
Incremental mode (incrementalMode, default off) - for scheduling this actor on a recurring basis (daily, hourly) against the same mode and scope and getting only what changed. The actor keeps its state in a key-value store, keyed on your mode and scope (stateKey lets you name or deliberately share that state instead). Every record is classified:
- NEW - first time this entity has been seen for this state key.
- UPDATED - content changed since last seen.
- UNCHANGED - nothing changed. Suppressed by default (not returned, not billed) unless
emitUnchangedis on. - EXPIRED - was tracked before and is no longer found; only emitted (with
emitExpiredon) after a run that genuinely scanned the whole tracked scope.
Every incremental record adds changeType, firstSeenAt and lastSeenAt. With incrementalMode off (the default), output is unchanged - same records, same charges as before.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape - the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record - not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
Authorize a connector once under Apify, Settings, API & Integrations (Notion, Linear, Airtable, or Apify). Select it in the connector input field. (If the picker is empty, you haven't authorized a connector yet.) For Notion, also set notionParentPageUrl to the page where items should be created. The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"kind": "profile","id": 352769811913,"name": "First Last","url": "https://ok.ru/profile/352769811913","gender": "female","birthday": "09-30","location": "Moscow, Russia","avatar": "https://i.okcdn.ru/...","changeType": "NEW","firstSeenAt": "2026-09-27T09:00:00+00:00"}
Plan Requirement
The scraper works on the Apify free plan with the default proxy; all supported OK.ru routes serve the standard pool. If the site refuses every request in a run, the run stops with a clear failure message instead of finishing quietly with no results, so "nothing matched" is never confused with "nothing could be read".
🔗 More scrapers you might like
Pair this actor with these related scrapers from the same team:
| 🧩 Pikabu Scraper Scrape Pikabu (Пикабу): keyword search, hot/new/best feeds, communities, tags, full story... | 🏠 Cian RU Collect property listings from Cian.ru by search filters or direct URLs. Returns... |
| 🏷️ Wildberries Scraper Scrape Wildberries marketplace: product search with prices (wallet vs retail), discounts... | 🛒 Ozon.ru Scraper Extract structured product data from Ozon.ru, Russia’s largest marketplace. Search by... |
| 💼 HH.ru Jobs Scraper From $1/1K. Scrape HH.ru job listings with 50+ structured fields. Search by filters or... | 🏠 Domclick RU Property Scraper Extract property listings from domclick.ru, one of Russia’s largest real estate portals... |
💬 Support & custom scrapers
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.