Apify Dataset JSON Flattener
Pricing
from $0.50 / 1,000 flattened row produceds
Apify Dataset JSON Flattener
Flatten nested JSON objects from inline rows or an Apify Dataset into flat keys for spreadsheet columns and downstream workflows. Choose dot or custom separators; arrays stay unchanged. Output is saved to the run's default Dataset. No external API is required.
Pricing
from $0.50 / 1,000 flattened row produceds
Rating
0.0
(0)
Developer
Starshape Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Flatten nested JSON into reusable keys for spreadsheet columns and downstream workflows. Use inline rows for a quick start, or select an existing Apify Dataset to process its rows. Nested objects become keys such as user.address.city; arrays, null values and empty objects stay unchanged.
Results are saved to the run's default Apify Dataset. Use Apify Dataset's standard download tools to export the results. Arrays remain arrays, so this Actor does not convert every JSON structure into scalar spreadsheet cells.
Try the two-row example below. These are fictional sample records. No external API credentials are required for inline input. Access to a private source Dataset still requires its normal READ permission.
Input:
{"rows": [{"id":"A001","user":{"name":"Alice","address":{"city":"Tokyo"}}},{"id":"A002","user":{"name":"Bob","address":{"city":"Osaka"}},"tags":["customer","active"]}],"separator": "."}
Expected output:
[{"id":"A001","user.name":"Alice","user.address.city":"Tokyo"},{"id":"A002","user.name":"Bob","user.address.city":"Osaka","tags":["customer","active"]}]
Input sources and separators
- Select a Source Dataset to use its rows instead of inline rows. The picker requests READ permission only. The Actor does not modify the source Dataset.
- Dataset reads and output writes are sequential batches of at most 100 rows. The total reported by the first source data read is the fixed upper bound; rows appended during the run are not included.
- A run's default Dataset cannot also be its source Dataset.
- Set Key separator to any non-empty string, such as
_, to produce keys likeuser_address_city. - Arrays remain arrays. Null values and empty objects remain unchanged.
- Key collisions are resolved by overwriting in traversal order. For example, an existing
user.namekey may be overwritten by a nested path with the same key; the later assignment wins. - Input rows are not deduplicated. A new run processes them again and may incur charges again.
Output, failures and limits
Valid flattened rows are stored in the run's default Dataset. Use Apify Dataset's standard CSV or Excel download tools to export results; this Actor does not generate its own CSV/XLSX files.
Invalid or empty input, source access failures, and read or write failures cause the run to fail. Inline row types are checked before saving output. A failure on a later Dataset page or partway through a write can leave valid partial output. Check the run status and logs before using the results. If saving or verification fails, the saved count can be unknown; the logs distinguish that from the last confirmed lower bound.
A run interrupted by a spending limit can leave partial output.
This Actor does not resume interrupted runs. A run with existing output is rejected. Check partial output before retrying; a new run can process and save the same rows again.
Pricing
Check the Actor's Pricing panel for the pricing model that applies to your run.
For runs using pay per event:
- Flattened row produced: $0.0005 per valid row saved to the run's default Dataset ($0.50 per 1,000 rows).
- Actor start: $0.00005 per automatically charged start event. The event count depends on allocated memory; at this Actor's 512 MB allocation it is one event.
- Platform usage during the run is included in these event prices.
At 512 MB, the two-row example costs $0.00105 when PPE pricing applies. This excludes standard storage costs and dataset interactions after the run finishes.
If Apify shows pay per usage or a scheduled pricing change, the current pricing remains applicable until the displayed effective date. Under pay per usage, Apify platform usage determines the run cost and these per-row event prices do not yet apply.
Saved rows may still be charged if a later error leaves partial output. Rows that are read but not saved do not trigger the row event. Re-running the same input can incur charges again.
The default allocation is 512 MB and the default timeout is 120 seconds. Check the run status, confirmed saved count and any partial output before using results or retrying.
