Any platform that can export a trade history can almost certainly be imported. This is the format the generic parser reads.
The file
One header row on the first line, then one closed trade per row.
Comma or tab separated. Propfy decides which from the header row, so a tab-separated export needs no special handling. Semicolons are not supported, so save as comma-separated.
Fields may be quoted, and a doubled "" inside a quoted field is one quote character. Empty cells are fine and do not shift the columns beside them.
Plain text, .csv or .txt, maximum 4MB and 10,000 rows. Split a longer history into date ranges and upload them one after another.
Column names
Names match without case, with spaces turned into underscores, in any order, and extra columns are ignored. Spell the name as one of these:
Entry time: entrytime, time, date, timestamp, filledtime, open_time
Exit time: exittime, close_time
Realized P&L: pnl, profit, gain, realizedpnl, net_pnl
Fees: fees, commission, cost
Watch the spaces. "Entry Price" becomes entry_price, which is not on the list, so write entryprice as one word or use price instead.
Direction, and why rows get skipped
Direction is read from the words long, buy, short and sell, and from the single letters B and S. Anything else is unreadable, including an order type such as Market or Limit.
Propfy never guesses a direction. A row it cannot read is skipped, counted, and reported on the result card as rows skipped for an unreadable trade direction.
A row with no readable instrument is dropped too. Only the TradeZella format reports that as its own count; on other formats those rows never reach the totals.
After the import
The result card gives the honest breakdown: imported, already imported, failed, and each skip reason with its count.
If this format does not fit your platform, open a ticket telling us which platform you use.