Marketplace Sales Normalizer avatar

Marketplace Sales Normalizer

Under maintenance

Pricing

from $300.00 / 1,000 sales report normalizeds

Go to Apify Store
Marketplace Sales Normalizer

Marketplace Sales Normalizer

Under maintenance

Turn eBay, Poshmark, Mercari and Etsy sales-report CSV exports into one validated ledger JSON: exact amounts, fee breakdown, and every row's total price verified. No account access, no scraping - customer-owned exports only. Privacy by default: buyer PII never appears in output.

Pricing

from $300.00 / 1,000 sales report normalizeds

Rating

0.0

(0)

Developer

Andrew

Andrew

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Deterministic conversion of marketplace sales-report CSV exports into one validated ledger JSON. No account access, no scraping, no LLM — customer-owned exports only. Privacy by default: buyer PII never appears in output.

Supported platforms

PlatformReportStatus
eBaySeller Hub orders report (81-column layout, incl. renamed legacy columns)✅ implemented
PoshmarkSales report⏳ awaiting real sample export
MercariSales report⏳ awaiting real sample export
EtsyOrders CSV⏳ awaiting real sample export

What it does per row

  • Parses every money cell exactly (Decimal, never float) and dates to YYYY-MM-DD
  • Recomputes the line total and verifies it against the stated Total Price — every row is either verified or mismatch (both totals emitted, nothing invented)
  • Deduplicates repeated rows, sums exact totals, groups extra fees
  • Rejects files it cannot verify: unknown columns, missing required columns, empty money cells, unparseable dates, bad quantities, schema drift

See CONTRACT.md for the complete fail-closed rules and output schema.

Usage

CLI:

$python -m msales.cli examples/synthetic/ebay_orders_sample.csv

HTTP (loopback only, optional bearer via MSALES_BEARER):

python -m msales.server &
curl -X POST http://127.0.0.1:8787/normalize \
-H 'Content-Type: application/json' \
-d '{"content": "<csv text>", "platform": "ebay"}'

Apify

Actor input: {"content": "<csv text>", "platform": "ebay"}. Pay-per-event charge report-normalized fires once per successful file only when MSALES_CHARGE_ENABLED=1 (off by default).

Real-file validation

Synthetic fixtures cover the documented schema; real platform exports are the acceptance gate. Drop your own exports into examples/real/ (never committed) to validate a platform's descriptor before it ships.

Use from AI agents

Call via Apify MCP (search-actors -> fetch-actor-details -> call-actor) or the REST/Python/JS clients. Always pass a per-run spend cap: callOptions: {"maxTotalChargeUsd": <1.00>, "timeout": 120}. Deterministic and fail-closed: errors like SCHEMA_DRIFT or UNSUPPORTED_* mean the layout is unsupported - retrying will not help; surface the code to the user. Agent skill covering this and 7 sibling actors: https://github.com/ahf15811987-sketch/agent-skills