Hello David,
The numbers should be exactly the same provided you use the same report parameters, dates and retrieve data at the same time.
Common cause for discrepancies are objects unavailable in the API (shared ads, video campaigns), or report ran on different dates.
If still in doubt, please send us the UI screenshot and full API report defition over email (Reply to author on the right).
-Danial, AdWords API Team.