CA Crypto CSV Normalizer | Newton Kraken Shakepay
Pricing
from $0.00005 / actor start
CA Crypto CSV Normalizer | Newton Kraken Shakepay
Merge Canadian exchange CSV exports into one unified ledger. Pay per normalized row. Cloud twin of the Gumroad DIY kit — not tax advice.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Phil King
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
CA Crypto CSV Normalizer | Newton Kraken Shakepay Coinbase Binance
What it does: Merges Newton, Kraken, Shakepay, Coinbase, and Binance CSV exports into one sorted, unified ledger.
Try it now: Click Try for free on this Store page — sample Newton + Kraken CSVs are preloaded (~4 rows, ~$0.09 USD).
Sample output (proof run B1J6CnLyzKrqMo3lV)
| ts | exchange | asset | tx_type | amount |
|---|---|---|---|---|
| 2024-03-15T10:30:00 | newton | BTC | buy | 0.0015 |
| 2024-03-20T08:15:00 | kraken | BTC | trade | 0.002 |
| 2024-04-02T14:00:00 | newton | ETH | sell | 0.05 |
| 2024-05-01T16:45:00 | kraken | ETH | trade | -0.03 |
30-second walkthrough (no run required)



Prefer offline? CA Crypto CSV Starter (PWYW) — includes a Koinly-shaped export helper (not affiliated with Koinly). Same normalizer as the Try demo above.
Cloud twin of the Gumroad CA Crypto CSV Starter DIY kit. Paste exchange CSV exports; get one sorted, unified ledger. Not tax advice — organizational tooling only. Verify all output against your exchange records before filing with CRA.
Built by Phil King — IBM Db2 Genius Hub AI Engineer (Ontario, Canada). Same philosophy as the local CLI: reliable transforms, clear I/O, pay for what you use.
What it does
Canadian crypto holders often trade on Newton, Kraken, Shakepay, Coinbase, and Binance. Each export uses different column names. This Actor:
- Accepts one or more CSV file contents (paste into input)
- Auto-detects the exchange format
- Normalizes every row into a unified schema
- Returns a sorted dataset + a downloadable unified CSV blob
Use the output for Koinly import prep, CoinTracker, Excel review, or handing off to an accountant.
Input
{"csvTexts": ["Date,Transaction Type,Currency,Amount,CAD Value,Fee,Description\n2024-03-15 10:30:00,buy,BTC,0.001500,112.50,0.25,Market buy\n2024-04-02 14:00:00,sell,ETH,0.050000,180.00,0.50,Market sell","time,type,asset,amount,fee,txid,refid\n2024-03-20T08:15:00,trade,BTC,0.002000,0.00001000,TXK001,REF001\n2024-05-01T16:45:00,trade,ETH,-0.030000,0.00005000,TXK002,REF002"],"fileNames": ["newton.csv", "kraken.csv"]}
Copy-paste ready: see tests/fixtures/example_store_input.json (same fixtures used for the verified Store proof run).
| Field | Required | Description |
|---|---|---|
csvTexts | Yes | Array of raw CSV strings — one per exchange export |
fileNames | No | Labels aligned to csvTexts (defaults to upload_1.csv, …) |
Output
Dataset (one row per transaction)
| Column | Description |
|---|---|
ts | Timestamp (ISO when parseable) |
exchange | newton, kraken, shakepay, coinbase, or binance |
tx_type | buy, sell, deposit, withdrawal, etc. |
asset | BTC, ETH, CAD, … |
amount | Quantity |
amount_cad | CAD value when available |
fee_asset / fee_amount | Fee fields when present |
note | Reference ID or description |
source_file | Which upload this row came from |
Key-value store OUTPUT
{"row_count": 42,"exchanges": ["kraken", "newton"],"unified_csv": "ts,exchange,tx_type,asset,amount,...\n..."}
Copy unified_csv to a .csv file or pipe into downstream tools.
Supported exchanges
| Exchange | Detection | Notes |
|---|---|---|
| Newton | Transaction Type, Currency, CAD Value columns | Primary CA on-ramp |
| Kraken | txid, refid, asset, amount columns | Ledger export |
| Shakepay | Type, Amount (CAD) columns | Mobile-friendly exports |
| Coinbase | Quantity Transacted, Spot Price columns | CAD total only when Price Currency = CAD |
| Binance | UTC_Time, Operation, Coin columns | No CAD field (Binance doesn't report fiat) |
| Other | Generic fallback | Best-effort; verify output |
Pricing (pay per event)
| Event | Price (USD) | When charged |
|---|---|---|
apify-default-dataset-item (result) | $0.01 | Each normalized row in the dataset |
run-complete | $0.05 | Once per successful run |
apify-actor-start | ~$0.00005 | Actor start (platform minimum) |
Example: 200 rows ≈ $2.05 USD ($2.00 rows + $0.05 run). Typical tax-year export (500–2,000 rows) ≈ $5–20 USD — cheaper than manual spreadsheet work, no subscription.
Example use cases
- Multi-exchange trader — merge Newton buys + Kraken trades before Koinly import
- Accountant handoff — one CSV instead of three incompatible exports
- Automation / agents — call from a workflow; pay only for rows processed
- Try before DIY — run once here, then buy the local CLI starter for offline use
Limitations & disclaimer
- Not tax advice. Does not compute ACB, capital gains, or CRA forms.
- Best-effort parsing. Exchange CSV layouts change; always spot-check a sample of rows.
- No exchange login. You paste CSV text only — no API keys required.
- CAD fields depend on what the source export includes (Kraken often has no CAD column).
Related products
| Product | Channel | Best for |
|---|---|---|
| CA Crypto CSV Starter (PWYW) | Gumroad | Free/local CLI, privacy-first |
| CA Crypto Tax Prep Kit ($27) | Gumroad | Multi-exchange bundle + Koinly formatter |
| This Actor | Apify Store | One-off cloud runs, no install |
Keywords
koinly, crypto tax, csv normalize, newton, kraken, shakepay, coinbase, binance, CRA, ACB, canadian crypto, exchange export, ledger merge