REST batch endpoints almost universally expect either a JSON array of objects in the request body or an envelope object with a known key like data or items containing the array. FixTools defaults to the bare array because it is the simpler and more common case, and you can wrap the array in your own envelope in one line of code if needed. The bare array is also what mongoimport with --jsonArray accepts, what GraphQL bulk mutation arguments accept, and what most webhook receivers expect. Producing the bare array means the converter output is reusable across all of these contexts.
Typing matters for API correctness. An endpoint that expects price as a number will reject or misinterpret a request where price is a string like "12.99". Type inference at conversion time ensures numeric columns end up as JSON numbers, boolean columns as booleans, and missing values as null. This is closer to what most server-side validation expects and avoids the per-field coercion that ad hoc JSON producers force on themselves.
Nested object support is crucial when the API contract has nested structure. A customer endpoint that expects address as a nested object cannot accept a flat structure where address.city is a top-level field. Dot-notation in CSV headers lets you express the nesting in the spreadsheet and have FixTools build the correct object hierarchy automatically. Arrays inside objects work with bracket index notation, so list-of-tags or list-of-line-items can be expressed in the same flat CSV.
Standards compliance is the final check before sending. The output must parse cleanly under whatever strict JSON parser the API server uses. FixTools emits double-quoted keys and strings, no trailing commas, no comments, and standard escape sequences. The result passes JSON.parse in any compliant parser. For final verification, paste the converted JSON into the FixTools JSON Validator before posting it to a production endpoint to catch any source-CSV oddities that might still trip strict consumers.