Skip to content

Eksi Sozluk Scraper

Try for free

Scrape Ekşi Sözlük entries from topics, keyword searches, gündem, debe, channels and authors: full text, dates, favorites, author and topic. Filters for author, date range and favorites. No login needed.

💬 Eksi Sozluk Scraper

Collect entries from Ekşi Sözlük, Turkey's largest collaborative dictionary and discussion site: whole topics, keyword searches, gündem, debe, channels and every entry of an author. Each entry comes with its full text, date, favorite count, author and topic, ready for sentiment analysis, trend research or archiving. No login, no API key and no Turkish proxy needed: 1,000 entries take about 25 seconds.

✨ Why use Eksi Sozluk Scraper?

  • ⚡ Fast — reads many pages at once: 1,000 entries in about 25 seconds, 10,000 in about 2 minutes.
  • 🔓 No login or cookies — only public pages, exactly what a logged-out visitor sees.
  • 🧭 Every way in — topic links, entry links, keyword search with the site's own filters, gündem, debe, channels (#spor, #siyaset...), tarihte bugün and author profiles.
  • 🧹 Clean data — plain text plus the original HTML, ISO dates in Turkey time (written and edited), numbers as numbers, external links pulled out.
  • 🎯 Filters built in — author, date range, minimum favorites, "güzelinden olsun", search order and topic order (oldest, newest, şükela).
  • 💸 Cheap — pay only for the entries you get.

🎯 Use cases

  • 📊 Public opinion and sentiment research — what Turkish internet users say about a brand, a politician, a match or an event.
  • 📰 Trend monitoring — save the gündem and debe every day and watch topics rise and fall.
  • 🏷️ Brand monitoring — search your brand or product name and collect every mention with its date and favorites.
  • 🧠 NLP and language datasets — large, dated Turkish text corpora by topic or author.
  • 🗃️ Archiving — keep a copy of a topic or of an author's entries.
  • 🎓 Academic studies — reproducible exports of topics and date ranges.

🚀 How to use

  1. Paste Ekşi Sözlük links into Eksi Sozluk links (topics, entries, authors, gündem, debe, channels or search pages), and/or type Search keywords, and/or add Authors.
  2. Set Max entries per link, search or author (0 = no limit).
  3. Optional: add filters (author, dates, minimum favorites) and choose the topic order.
  4. Click Start. Entries appear in the dataset as they are scraped.
  5. Export the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
startUrlsEkşi Sözlük links: topic (/istanbul--32102, ?p=5 starts at page 5), entry (/entry/123), author (/biri/nick), list (/basliklar/gundem, /debe, /basliklar/kanal/spor) or search page (/basliklar/ara?...)
searchQueriesKeywords to search; entries are taken from the matching topics
authorsNicknames or profile links; saves the author's entries
maxItemsEntries per link, search or author (default 20, 0 = all)
searchAuthor, dateFrom, dateToOnly entries by this author / written in this date range (searches and topic links)
minFavoritesOnly entries with at least this many favorites
niceOnly, searchSortOrderThe site's "güzelinden olsun" option and search order (newest, most entries, alphabetical)
topicSortOrderTopic links: oldest first, newest first, most favorited (şükela) or today's most favorited
entriesPerTopicEntries taken from each topic of a search or list (default 10 = one page)
authorEntryTypeAuthor's latest entries, most favorited entries, or entries they favorited
endPageLast page to read for each topic, list or author
{
  "startUrls": ["https://eksisozluk.com/istanbul--32102", "https://eksisozluk.com/basliklar/gundem"],
  "searchQueries": ["deprem"],
  "authors": ["ssg"],
  "maxItems": 50,
  "topicSortOrder": "newest",
  "minFavorites": 5
}

📤 Output

One row per entry.

FieldDescription
entryId, entryUrlEntry number and link
contentEntry text (plain text, line breaks kept)
contentHtmlEntry as the site's HTML (links, (bkz: ...) references)
dateDate exactly as the site shows it, e.g. 07.05.1999 ~ 30.05.2004 16:49
createdAt, editedAtWritten and last edited, ISO 8601 in Turkey time (+03:00); very old entries have the date only
favoriteCount, commentCountFavorites and comments
issueTitle, issueUrl, topicIdThe topic (başlık)
authorName, authorId, authorUrl, authorAvatar, hasCustomAvatarThe author (yazar)
externalLinksLinks to other sites inside the entry
eksiSeylerUrlThe ekşi şeyler article that quotes the entry, if any
isPinnedPinned by the author
page, sourceType, sourceUrl, searchQuery, scrapedAtWhere the entry was found and when

Example (author and text are illustrative):

{
  "type": "entry",
  "entryId": "187268323",
  "entryUrl": "https://eksisozluk.com/entry/187268323",
  "content": "boğazda vapura binip simit atan martıları izlemek hâlâ en güzel terapi.",
  "contentHtml": "boğazda vapura binip simit atan martıları izlemek hâlâ en güzel terapi.",
  "date": "21.10.2026 10:29",
  "createdAt": "2026-10-21T10:29:00+03:00",
  "editedAt": null,
  "favoriteCount": 3,
  "commentCount": 0,
  "issueTitle": "istanbul",
  "issueUrl": "https://eksisozluk.com/istanbul--32102",
  "topicId": "32102",
  "authorName": "ornek yazar",
  "authorId": "1234567",
  "authorUrl": "https://eksisozluk.com/biri/ornek-yazar",
  "authorAvatar": "https://ekstat.com/img/default-profile-picture-light.svg",
  "hasCustomAvatar": false,
  "isPinned": false,
  "externalLinks": [],
  "eksiSeylerUrl": null,
  "page": 1440,
  "sourceType": "topic",
  "sourceUrl": "https://eksisozluk.com/istanbul--32102",
  "searchQuery": null,
  "scrapedAt": "2026-10-21T14:42:49.120Z"
}

A run summary (entries per source, notes such as "author not found") is saved as OUTPUT in the key-value store.

💰 Pricing

You pay $0.70 per 1,000 entries ($0.0007 per entry), plus a small platform usage fee (compute and proxy traffic), which was under half a cent per 1,000 entries in our tests with the default datacenter proxy. Example: 1,000 entries ≈ $0.70 in total. You are never charged for duplicates, filtered-out entries or failed pages, and a run stops cleanly when it reaches your maximum charge.

❓ FAQ

Is it legal to scrape Ekşi Sözlük? The scraper reads only public pages that anyone can open without an account. You are responsible for how you use the data: respect Ekşi Sözlük's terms and privacy laws such as KVKK and GDPR, especially when you work with author nicknames.

Do I need an account, cookies or a Turkish proxy? No. The default datacenter proxy works. If the site ever refuses it, the scraper switches to residential exits in Turkey by itself.

How many entries can I get? A topic has as many entries as the site shows (10 per page; large topics have tens of thousands). A keyword search returns up to 100 topics, and you choose how many entries to take from each with Entries per topic. The gündem lists about 100 topics and a channel a few hundred.

Why is a field empty? editedAt is empty when the entry was never edited, externalLinks when it has no outside links, eksiSeylerUrl when no ekşi şeyler article uses it. Entries from 1999 to the early 2000s often have a date without a time.

Can I get the newest or most liked entries of a topic? Yes: set Topic entry order to "Newest first", "Most favorited" or "Today's most favorited".

Can I schedule it or use it from code? Yes. Schedule runs (for example the gündem every morning) and read the dataset through the API in JSON, CSV or Excel.

⚠️ Limits

  • Only public content: no private messages, no logged-in features (follows, votes you cast, "olay" notifications).
  • Comments under entries (yorumlar) and author profile details (badges, follower counts) are not collected.
  • Keyword search returns at most the 100 topics the site shows per search.
  • The "entries they favorited" tab is empty for authors who keep their favorites private.
  • Deleted entries and topics cannot be recovered.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.