
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

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.
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.
| Field | What it does |
|---|---|
startUrls | Ekş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?...) |
searchQueries | Keywords to search; entries are taken from the matching topics |
authors | Nicknames or profile links; saves the author's entries |
maxItems | Entries per link, search or author (default 20, 0 = all) |
searchAuthor, dateFrom, dateTo | Only entries by this author / written in this date range (searches and topic links) |
minFavorites | Only entries with at least this many favorites |
niceOnly, searchSortOrder | The site's "güzelinden olsun" option and search order (newest, most entries, alphabetical) |
topicSortOrder | Topic links: oldest first, newest first, most favorited (şükela) or today's most favorited |
entriesPerTopic | Entries taken from each topic of a search or list (default 10 = one page) |
authorEntryType | Author's latest entries, most favorited entries, or entries they favorited |
endPage | Last 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
}
One row per entry.
| Field | Description |
|---|---|
entryId, entryUrl | Entry number and link |
content | Entry text (plain text, line breaks kept) |
contentHtml | Entry as the site's HTML (links, (bkz: ...) references) |
date | Date exactly as the site shows it, e.g. 07.05.1999 ~ 30.05.2004 16:49 |
createdAt, editedAt | Written and last edited, ISO 8601 in Turkey time (+03:00); very old entries have the date only |
favoriteCount, commentCount | Favorites and comments |
issueTitle, issueUrl, topicId | The topic (başlık) |
authorName, authorId, authorUrl, authorAvatar, hasCustomAvatar | The author (yazar) |
externalLinks | Links to other sites inside the entry |
eksiSeylerUrl | The ekşi şeyler article that quotes the entry, if any |
isPinned | Pinned by the author |
page, sourceType, sourceUrl, searchQuery, scrapedAt | Where 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.
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.
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.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalEksi Sozluk links
eksisozluk.com links, one per line: topics (https://eksisozluk.com/istanbul--32102, page links with ?p=5 start from that page), single entries (/entry/123), authors (/biri/nick), lists (/basliklar/gundem, /debe, /basliklar/kanal/spor, /basliklar/tarihte-bugun) or search result pages (/basliklar/ara?...).
searchQueriesarrayOptionalSearch keywords
Keywords to search on Eksi Sozluk, one per line. Each search finds matching topics (the site returns up to 100 per search) and saves entries from them. The search filters below apply.
authorsarrayOptionalAuthors
Author nicknames or profile links (e.g. "ssg" or https://eksisozluk.com/biri/ssg), one per line. Saves the author's entries (see "Author entries" below).
maxItemsintegerOptionaldefault 20Max entries per link, search or author
How many entries to save for each link, search keyword or author. 0 means no limit (a whole topic, every search hit, every entry of an author).
Applied to searches and topic links. Lists and authors use the entry-level filters (date, favorites).
searchAuthorstringOptionalOnly entries by this author
Nickname of an author. Searches return only topics this author wrote in, and only their entries are saved, also for topic links. Without any link, keyword or author list, this runs an author-only search.
dateFromstringOptionalWritten on or after
Only entries written on or after this date (Turkey time). Searches use the site's own date range.
dateTostringOptionalWritten on or before
Only entries written on or before this date (Turkey time).
minFavoritesintegerOptionalMinimum favorites
Only entries with at least this many favorites. With the default topic order, topic links are then read most-favorited first, so the scan stops once entries fall below the threshold. Leave empty or 0 for all.
niceOnlybooleanOptionaldefault falseSearch: well-liked entries only
The site's "güzelinden olsun" search option: searches return only topics with well-liked entries.
searchSortOrderenumOptionaldefault "Date"Search sort order
Order of the topics a search returns.
topicSortOrderenumOptionaldefault "oldest"Topic entry order
Which entries of a topic link come first: the site's order (oldest first), the newest first, the most favorited of all time (şükela: tümü) or today's most favorited (şükela: bugün).
entriesPerTopicintegerOptionaldefault 10Entries per topic (searches and lists)
How many entries to take from each topic a search or list (gündem, channels) returns. 10 is one page.
authorEntryTypeenumOptionaldefault "latest"Author entries
Which entries to save for authors: their latest entries, their most favorited entries, or the entries they marked as favorite.
endPageintegerOptionalLast page
Stop each topic, list or author at this page number (10 entries per topic page). With a link that starts at ?p=5 and Last page 6, only pages 5 and 6 are read. Empty means no page limit.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for eksisozluk.com. If the site refuses them, the scraper switches to residential exits in Turkey automatically.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| type | string | |
| entryId | string | |
| entryUrl | string | |
| content | string | |
| contentHtml | string | |
| date | string | null | |
| createdAt | string | null | |
| editedAt | string | null | |
| favoriteCount | number | null | |
| commentCount | number | null | |
| issueTitle | string | null | |
| issueUrl | string | null | |
| topicId | string | null | |
| authorName | string | null | |
| authorId | string | null | |
| authorUrl | string | null | |
| authorAvatar | string | null | |
| hasCustomAvatar | boolean | null | |
| isPinned | boolean | null | |
| externalLinks | array | |
| eksiSeylerUrl | string | null | |
| page | number | null | |
| sourceType | string | |
| sourceUrl | string | |
| searchQuery | string | null | |
| scrapedAt | string |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Entry | One Ekşi Sözlük entry with its text, dates, favorites, author and topic. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('echofield/eksisozluk-scraper').call({
"startUrls": [
"https://eksisozluk.com/istanbul--32102"
],
"searchQueries": [
"deprem"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run echofield/eksisozluk-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=echofield/eksisozluk-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.
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.