Skip to content

Planning predictable output for our Apify Actors

Engineering · Sep 26, 2026 · BatScrape Team

Illustration accompanying planning predictable output for our apify actors

A dataset becomes harder to use when a familiar field changes meaning without explanation. While building BatScrape’s first Actors, we’re treating output shape as part of the product documentation.

The following is our intended approach. It does not describe a released shared schema package or an existing compatibility guarantee.

Describe each field

For each Actor, we plan to document field names, value types, and missing-value behavior. A collection timestamp should be distinguishable from a source’s publication timestamp. A source identifier should not quietly become a row number.

Example records make those decisions easier to review. They should include ordinary results as well as records with optional fields missing.

Review changes from the consumer’s side

Adding a field and renaming a field have different consequences for someone using a dataset. Before changing an output, check whether an existing export or script would still work.

Our aim is to explain meaningful changes in the Actor’s release notes. The specific policy will be documented with each Actor as it becomes available.

Test shape and meaning separately

A schema check can catch an unexpected value type. It cannot always tell whether the source changed what a number means. Sample comparisons and source-specific checks remain useful even when a record has the right shape.

Predictable output begins with those explicit decisions, not with a promise that a changing website will never change.

BatScrape Team

Building BatScrape

Back to blog

YOUR NEXT DATA PROJECT STARTS HERE

Explore a source. Imagine what’s next.

From public platforms to structured data. We’re building source-specific Actors for Apify, so you can spend more time on what comes next.

Building on Apify JSON / CSV

TikTok Shop, Reddit, Threads, TikTok, Douyin, FollowScores, and Realtor.com are live on Apify. The other sources in the example are planned.

LIVE & PLANNED SOURCES → EXAMPLE DATASET

BAT SCRAPE
Runs on Apify
{ } your-data.json JSON
{
  "id": "0000000000000000001",
  "description": "Example description #example",
  "createDate": "2026-09-01",
  "searchKeyword": "coffee"
}

Pick a platform. See what comes out.

your-data.json EXAMPLE
{
  "id": "0000000000000000001",
  "description": "Example description #example",
  "createDate": "2026-09-01",
  "searchKeyword": "coffee"
}