Post cards connect to two term groups and a joint-presence grid.

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.

Compare the supported job first
Decision pointChronometrica X Post MetricsTweet Scraper V2Twitter Scraper Unlimited
One supplied public post URLDocumented input fitExcluded by the current supported-use ruleDeveloper’s named alternative for single tweets
Bulk keyword, profile, or list discoverySupplied-URL snapshots are the scope assessed hereSupported discovery routeAssess its own documentation for your wider job
Basis for this comparisonAttempt status, metric states, and observation timeCurrent README policyNamed 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:

json
{
  "startUrls": [
    "https://x.com/OpenAI/status/2077446718728425686"
  ]
}
Use a small acceptance method before a larger run

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

By Chronometrica · Updated

Back to top ↑