
The main reason to switch is a change in the job. Choose Tweet Scraper V2 for its supported bulk keyword, profile, or list discovery. Its current README excludes single-tweet fetching and directs that need to Apidojo’s Twitter Scraper Unlimited. Unlimited is therefore another valid option for a known post. Tweet Scraper V2, Twitter Scraper Unlimited
Chronometrica publishes this comparison and operates X Post Metrics. The recommendation concerns this specific input and output need. The product facts used here were checked on 20 October 2026. This article does not report a new collection test or a measured cost comparison.
What the billing question tells us
A past, closed Store issue records a buyer with one known post URL who questioned a charge described as $0.40 for 1,000 results. That amount belongs to the past issue. It does not establish today’s price, explain the full bill, or prove what another product would have cost. The issue is not evidence of a current service failure. Historical buyer question
The useful question before another run is: does the selected product support the exact job you want to submit?
One supplied URL describes a lookup. You already know which post you need. You want to observe its text and public counts at a stated time. You do not need the collector to find a set of matching posts.
Discovery is a different job. You supply a topic, profile, or list because you need to find posts. That job can require different inputs, limits, and paid units. A product suited to discovery does not automatically suit a single known URL.
An Actor is a hosted collection program on Apify. Before you run one, check three things separately: its supported use, its input fields, and its current charging terms. A valid input field answers only one of those questions.
This article cannot calculate the historical bill from the saved question. It can help you choose a supported collector and check its result before you use it.
Compare the supported job first
Use this table to select a route. Then check the current product page before you spend money.
| Decision point | Chronometrica X Post Metrics | Tweet Scraper V2 | Twitter Scraper Unlimited |
|---|---|---|---|
| One supplied public post URL | Documented input fit | Excluded by the current supported-use rule | Developer’s named alternative for single tweets |
| Bulk keyword, profile, or list discovery | Supplied-URL snapshots are the scope assessed here | Supported discovery route | Assess its own documentation for your wider job |
| Basis for this comparison | Attempt status, metric states, and observation time | Current README policy | Named one-post alternative |
Sources: Chronometrica, V2, Unlimited.
Do not choose from the field name `startUrls` alone. A JSON input schema defines allowed field names, types, and values. It does not replace the product’s supported-use rules. An array that can hold a URL does not, by itself, establish support for every kind of URL.
The table compares documented fit. It does not rank speed, accuracy, reliability, coverage, or observed cost. The evidence supplied for this article does not support those rankings.
What Chronometrica gives you for this need
Chronometrica accepts a `startUrls` list with between one and 1,000 public X or Twitter status URLs. Its documented output keeps one attempted-input snapshot, including text when available, public counts when available, result states, and observation time. Missing counts remain missing. Input and output contract
An attempted-input snapshot is a record of an attempt to observe a supplied post. It must not be read as a promise that every attempt will return complete text and counts.
That distinction makes the output useful for a known-post check. You need to know both what the collector observed and whether the observation supports your intended use. A count without its availability state can give a false impression of certainty.
For example, a report may need the post text and one public count. If the text is available but the count is missing, the text may still serve its purpose. The numerical part of the report remains incomplete. Keeping those two judgments separate prevents a partial result from becoming a complete-looking report.
The stated list limit also matters. If your requirement is to supply more than 1,000 URLs in one run, this Actor does not meet that requirement. Do not describe its documented cap as unlimited collection. A larger project needs a separate plan, including checks for repeated URLs and consistent observation times. Input limit
The reason to choose Chronometrica here is clear: the supported input matches the known URL, and the documented row retains the states needed to judge the attempt.
A fictional decision with one post
The following example is fictional. It is not a customer result, Actor test, live dataset, or cost measurement.
Maya, an analyst, has one campaign post URL. She needs the public text and available counts for a report prepared today. She does not need to search for other campaign posts.
She writes this requirement before she chooses a collector: “Attempt this one public post. Keep the result state, the available fields, the source URL, and the observation time.”
Chronometrica’s documented snapshot output fits that requirement. Maya also keeps Unlimited on her list as the developer’s supported one-post route. Chronometrica, Unlimited
Her acceptance check has two parts. First, did the run record the intended post? Second, are the fields required by the report available? A row can pass the first check and fail the second. If a required count is unavailable, Maya leaves it null in her report and marks that part incomplete.
The next week, her request changes. She must discover 200 posts by keyword. She reassesses V2 because the new job is discovery. The earlier one-post choice does not settle the new decision. V2 supported uses
The arithmetic is limited: one known URL is one lookup request; 200 posts to discover describe another job. Neither number predicts the fee, returned rows, speed, or success.
Use a small acceptance method before a larger run
An acceptance check asks whether the output can support your specific report. It does not need a large test dataset. Start with the intended public URL and a short list of required fields.
1. Write the requirement in plain language
Record the exact status URL. Name each required public field. Separate fields you must have from fields that would be useful.
For example, your report might require the text and observation time, while treating some public counts as optional. Another report might require a particular count. Those reports have different acceptance conditions even when they use the same URL.
Also state whether you need a current observation or a past value. A current lookup does not recover the counts a post had last month. If the request requires that past value, say so before selecting a collector.
2. Check supported use and current paid units
Read the present product rules. Then inspect current pricing for the planned run. Identify what causes a charge and how the stated unit applies to your input.
Keep the old issue amount out of that calculation. Do not assume that one URL always means one paid result, or that a familiar field name defines the charging unit. If the current terms do not answer your question, resolve it before you run.
Price and suitability are separate checks. A product can have clear pricing and still fail your input requirement. A supported product still needs a cost check against your budget.
3. Inspect the saved Task input
A Task is a saved input preset on Apify. Chronometrica provides a public X post analytics snapshot Task.
Open the Task and inspect its actual input. A public Task page is a starting point. Its existence does not prove that its saved URL is your intended target.
The following minimal input matches the checked public schema:
{
"startUrls": [
"https://x.com/OpenAI/status/2077446718728425686"
]
}Replace the example URL with your intended public post. The example shows the input shape. It is not a collected result or proof that the example post is currently available. The schema permits a `startUrls` array with at least one item and no more than 1,000 items. Public input schema
The supplied input passed a check against the saved public schema. That check confirms the allowed field and list shape. It does not confirm that a live collection attempt will succeed.
4. Check the attempt before using the values
After a small intended run, inspect `status`, `statusReason`, and `postMetricStatus`. Read them with the returned text and counts. Check the resolved post identity against the post you meant to collect. Documented output
Do not treat the presence of a row as proof that every required field was collected. Check each required field against the acceptance conditions you wrote in step one.
Keep unavailable values null in your report. Do not turn them into zero. Zero is a value. Null means that you do not have a value to use. Changing null to zero can alter totals, comparisons, and conclusions.
5. Keep the source and observation time
Store one record for the attempted input. Keep the source URL, resolved post identity, attempt state, metric availability, and observation time together.
Use the Actor’s returned field names where they are documented. If your reporting system needs other column names, keep a clear mapping. Do not invent an API field name and present it as part of the Actor contract.
To measure a later change, collect another checked snapshot. Compare the same field for the same post only when both observations contain a usable value.
Read a snapshot as an observation, not a history
A current public count answers a question tied to one time: what value was available when this attempt observed the post? It does not explain how that count developed.
Two checked snapshots can support a change calculation. If both contain the required count, subtract the earlier value from the later value. Keep both observation times beside the result. The difference describes the interval between those observations.
If either value is missing, the change is unknown. Do not fill the gap with zero, carry a value forward without a stated rule, or describe the difference as measured growth. The missing observation changes what you can conclude.
Post text can also be missing or partial. Check it before you quote it, classify it, or use it to identify campaign language. A collector’s output is an input to your report, so the report still needs an acceptance check.
This comparison does not promise an archive, old metric recovery, or historical keyword frequency. Those needs require different evidence. The public and private report gap guide provides related reporting context. For analysis across a supplied set of post texts, use the separate keyword co-occurrence guide. That method answers which terms appear together; it does not choose the collector for a known URL.
Sources & further reading
- Chronometrica X Post Metrics — supported input, the 1,000-URL list limit, snapshot fields, and metric states. Checked 20 October 2026 using saved build 1.0.4 documentation and schema. The input-shape check was not a live collection test.
- Tweet Scraper V2 — supported-use rules and the developer’s named alternative. Checked 20 October 2026 using saved build 0.0.1557 documentation. The single-tweet restriction is a documented policy, not a measured runtime failure.
- Apidojo Twitter Scraper Unlimited — a valid alternative for the known-post need. Checked 20 October 2026. Its documented fit does not establish comparative cost or performance.
- Historical buyer question — the one-URL billing question in a past, closed Store issue. Checked 20 October 2026. The historical amount does not establish current pricing or a current outage.
- Chronometrica X post analytics snapshot Task — a starting preset to inspect before a run. Checked 20 October 2026; the public page returned HTTP 200. That page check does not verify the current saved input, and no collection run was made for this comparison.
By Chronometrica · Updated
Back to top ↑