Input JSON
{
"from": "json",
"to": "csv",
"text": "[{\"item\":\"Sheet, cotton\",\"quantity\":12},{\"item\":\"Linen towel\",\"quantity\":7}]"
}
Convert product objects into a CSV table, including correct quoting for a value containing a comma.
{
"from": "json",
"to": "csv",
"text": "[{\"item\":\"Sheet, cotton\",\"quantity\":12},{\"item\":\"Linen towel\",\"quantity\":7}]"
}{
"from": "json",
"to": "csv",
"input_source": "text",
"input_encoding": "utf-8",
"bytes_in": 76,
"bytes_out": 48,
"response_bytes": 56,
"result_text": "item,quantity\r\n\"Sheet, cotton\",12\r\nLinen towel,7",
"truncated": false,
"stats": {
"rows": 2,
"rows_returned": 2,
"columns": 2
},
"warnings": [],
"limits": {
"max_input_bytes": 6291456,
"max_base64_characters": 8388608,
"max_output_bytes": 3145728,
"max_response_bytes": 3670016,
"max_rows": 200000,
"max_columns": 2000,
"max_inline_image_bytes": 65536
},
"supported_pairs": [
"docx -> html",
"docx -> markdown",
"docx -> text",
"html -> markdown",
"html -> text",
"markdown -> html",
"csv -> json",
"csv -> tsv",
"json -> csv",
"tsv -> csv"
],
"source": "Converted in this process from the bytes supplied with the request. Formatting that has no equivalent in the target format (page layout, fonts, colours, comments, tracked changes) is dropped, so the output is a working copy of the content, not a reproduction of the original document. General information, not advice.",
"checked_at": "2026-10-20T20:47:48.424Z"
}curl -s -X POST https://getattest.com.au/api/v1/files/convert \
-H "authorization: Bearer $ATTEST_API_KEY" \
-H "content-type: application/json" \
--data-raw '{"from":"json","to":"csv","text":"[{\"item\":\"Sheet, cotton\",\"quantity\":12},{\"item\":\"Linen towel\",\"quantity\":7}]"}'Run this call with your own bearer key. Issue an API key.
The input was validated and run locally through the registered service. The output above is a display preview of the captured service result. File bytes are described instead of printed, and strings longer than 400 characters are truncated; the HTTP API also adds call_id, credits_charged and credits_remaining. Timestamps and generated identifiers will vary.
Source: apps/api/svc/file_convert.mjs