Visible comment cards and dotted branches connect to an export, limit checks, and a decision panel.

For a comment set that fits, we recommend Chronometrica for its documented tree audit fields. Its flat output gives each unique public comment its own row. Parent and depth fields help you check reply links. Hidden branch and stop accounting help you assess what remains unresolved. These are useful strengths for an export within a stated limit. They do not prove better coverage than another collector. Chronometrica documentation.

This is Chronometrica’s comparison of the two products. It uses dated documentation and input evidence. We did not run a matched collection test for this article.

Start with the original all-comments requirement

The buyer need is clear: collect all comments from a list of known Reddit threads. The saved title and search snippet for a Reddit developer question support that need. The evidence available here is a snippet, not the full original post. It does not establish collection results for either product.

Do not change that need to a sample because a collector has a lower limit. A sample can serve a different research question. It cannot satisfy an unchanged request for every required comment.

An Actor is a hosted collection program on Apify. This comparison concerns two named Actors and their fit for known threads. First, decide whether the required result set can fit the chosen Actor. Then check whether the returned evidence supports the required coverage.

Define the required set before you run either tool. Write down each thread URL. State whether the export must include reply positions where the text was deleted or removed. Also state whether the job needs the public thread structure, usable comment text, or both.

These choices affect the row count. A placeholder is a row that records a comment’s position when its text is missing. Counting it as a saved row is different from counting it as a comment with usable text. Keep both totals when the research needs both.

Compare the limits that change the choice

The following table separates documented fit from the checks you still need to make.

Compare the limits that change the choice
Decision pointChronometrica Reddit Comments ScraperTrudax Reddit Scraper Lite
Known thread inputUp to 50 `postUrls` per inputDocuments collection from known threads
Comment setting`maxCommentsPerPost`: 1–500Configurable `maxComments`
Required set above 500 rows in one threadDoes not fitCandidate for assessment with a larger request
Tree audit evidenceFlat unique-comment rows, parent/depth fields, hidden branch and stop accountingVerify returned output against your acceptance record
Proof of all required commentsRequires checks beyond the saved countRequires checks beyond the requested limit

Product facts in this table come from the checked Chronometrica contract and Trudax documentation.

Chronometrica’s current input schema, which defines allowed fields and values, sets a maximum of 500 rows per post. It has no input that removes that cap. Deleted and removed placeholders count toward saved rows. A run can therefore reach its row limit before it saves 500 comments with usable text. Chronometrica input schema and documentation.

Trudax also states that Reddit’s listing ceiling does not impose the same limit on comments inside a known post. This supports assessing it for larger trees; it does not prove complete retrieval. Trudax documentation.

This comparison establishes no measured coverage, speed, reliability, or price advantage. Choose from the required scope and the evidence you can inspect. The table does not establish that Trudax lacks any field or feature that it does not describe here.

Why Chronometrica fits a bounded tree audit

A bounded tree audit checks a comment set with a stated row limit. A tree is the set of comments and their reply links. For this job, the export must let you inspect those links and identify unresolved parts.

Chronometrica documents one flat row for each unique public comment. Its fields include `commentId`, `parentId`, `depth`, and `permalink`, plus states for missing values. `commentId` identifies the comment. `parentId` identifies its parent. `depth` records its level in the reply tree. A `permalink` links to the public comment. Chronometrica output documentation.

These fields support direct checks. Count distinct comment identifiers. Check whether reply links make sense within the declared scope. Inspect missing identifiers before you accept the unique-row total. A row with missing identity needs review; it cannot support the same check as a row with a known identifier.

Chronometrica also documents hidden branch and stop accounting. A hidden branch is a reply section that remains unresolved in the export. Inspect `hiddenBranchesRemaining` and the recorded stop reason together. Reaching a cap or leaving public branches unresolved marks a partial result. Chronometrica output documentation.

This is the checked reason to choose our Actor for a suitable set: the documented fields help you audit the returned tree. A low row count alone cannot do that. An export with fewer rows than its cap may still have missing branches. Use the collection record to decide whether it meets the required scope.

Keep placeholders separate from usable text

Deleted and removed placeholders can preserve tree position. They do not recover the original text. Chronometrica documents these placeholders as free under its useful-comment billing rule, while still counting them toward the saved-row cap. This is a billing detail, not a comparative cost claim. Chronometrica documentation.

Keep a placeholder when its position matters to the required tree. Mark its text as missing. Do not treat a deletion or removal label as the author’s opinion. Do not use that label to classify the author’s attitude.

A placeholder can support a check of reply structure when the parent’s words are unavailable. That structure does not reveal what the missing parent said. Keep the known reply relationship and the unknown text separate in your analysis.

Our guide to auditing removed and deleted Reddit comments covers that distinction in more detail. For this collector decision, the key point is simple: required placeholders use row capacity without adding usable comment text.

A fictional decision with two threads

The following example is fictional. It is not an Actor test, a live dataset, a buyer quote, or a measured cost result.

A project needs every required row from two known threads. Its scope includes deleted and removed placeholders because the analyst needs the reply structure. For this example, the required source sets have already been verified.

Thread A contains 420 required rows. A 500-row setting has enough capacity for that set. The arithmetic is 500 − 420 = 80 rows of spare capacity.

That spare capacity does not prove coverage. The analyst must still check unique identifiers, reply links, hidden branches, the stop reason, and source limits. If required branches remain unresolved, the analyst must label the export partial. A result below the cap is not an automatic pass.

Thread B contains 650 required rows. Chronometrica’s 500-row maximum cannot hold that full set. The difference is 650 − 500 = 150 required rows beyond the ceiling. Even an export with 500 required rows would leave at least 150 required rows outside that export.

For Thread B, the analyst assesses Trudax with a larger comment request. The analyst still checks the returned scope before accepting it. If coverage remains unresolved, the all-comments requirement remains unmet.

The project can make a separate collector decision for each thread. Thread A’s fit does not make Thread B fit. The final project record must show whether every required thread passed its own coverage checks. It must also keep saved rows separate from usable text rows and any displayed discussion total.

Use a five-step acceptance check

Use this small method to make the collector choice and review the result. Keep one acceptance record per thread. This record states what the export must contain and what the evidence supports.

  1. Fix the scope before collection. Record the post identity and URL. State the required scope in plain words. For example, the scope can require all public comment rows, including placeholders, with reply links retained.

If the job uses a sample, state that separately and give its limit. Do not label a sample as all comments. Change the requirement only when the project accepts that change.

Record any unknown scope value as unknown. A missing value is not zero. If you cannot establish the required total, say so. Do not use the displayed discussion count as a verified required-row total without checking its meaning.

  1. Check capacity before choosing the collector. Compare the required rows for each thread with the current input maximum. For Chronometrica, the checked maximum is 500 saved rows per post. This includes placeholders. Chronometrica schema.

If the required set exceeds that maximum, record that the Actor does not fit before collection. A full run at the cap cannot solve a capacity mismatch. Choose another collector for assessment, or obtain an explicit change to the research scope.

If the required size is unknown, capacity fit is also unresolved. A small returned export does not settle that question after collection.

  1. Check identity and reply structure. Inspect distinct `commentId` values, `parentId`, and `depth`. Record unique saved rows separately from usable text rows and placeholder rows. Review missing fields and reply relationships that you cannot explain within the required scope.

Use the permalink to inspect a public comment when needed. Treat source access limits as part of the result. Do not fill missing text or identifiers with invented values.

These checks establish what you can inspect in the export. They do not prove that an unseen branch does not exist.

  1. Check how collection ended. Inspect `hiddenBranchesRemaining` and the stop reason. Preserve an unknown value as unknown. Do not turn an absent branch count into a claim of zero remaining branches.

Record whether the run reached its cap. Also record any unresolved public branches or public-source limits. The row total and the stop evidence must support the same conclusion.

A count below the limit can be useful evidence, but it cannot establish complete coverage by itself. Our guide to Reddit exports with fewer rows than the post count explains count gaps. This comparison uses those checks to make the collector decision.

  1. Write a result the evidence supports. Keep these items together: post identity, required scope, unique saved rows, usable text rows, placeholder rows, configured cap, hidden branches, stop reason, and unresolved coverage.

Record a non-fit when the required set exceeds capacity. Record a partial result when required coverage remains unresolved. Accept the export for the defined scope only when the available evidence supports that scope.

Do not combine a successful thread and an unresolved thread into one claim that the whole project is complete. Keep the result for each thread visible to the next person who uses the data.

Set the public Task before a run

A Task is a saved input preset on Apify. The public Reddit Thread and Replies Export Task provides a starting point. Its public page returned HTTP 200 in the saved check dated October 20, 2026. That confirms a successful page response, not its current saved input. Open and inspect the actual input before running it.

The following input passed a shape check against the cached public schema used for this article. That check confirms allowed fields and values. It does not confirm live thread access or collection results. No collection run was made for this article.

json
{
  "postUrls": [
    "https://www.reddit.com/r/LocalLLaMA/comments/1ui241x/the_number_1_public_enemy_of_opensource/"
  ],
  "maxCommentsPerPost": 100
}
Set the public Task before a run

Replace the example URL with your intended public thread. The schema accepts one to 50 `postUrls`. Set `maxCommentsPerPost` from 1 to 500. Choose a setting that can hold the required set when that set fits. Chronometrica input schema.

The example URL comes from the saved public schema and example. It is not evidence of a newly collected result. The value of 100 is only an input example, not a recommendation for an all-comments job.

In the fictional Thread A example, a 100-row setting cannot satisfy the requirement for 420 rows. Setting 500 provides capacity, but the acceptance checks still determine coverage. Inspect both the thread list and the limit before you start collection.

Sources & further reading

By Chronometrica · Updated

Back to top ↑