Input JSON
{
"format": "csv",
"sheets": [
{
"name": "Import",
"columns": [
{
"key": "label",
"label": "Label",
"type": "text"
}
],
"rows": [
{
"label": "=1+1"
},
{
"label": "Plain label"
}
]
}
]
}
Captured output JSON
{
"format": "csv",
"content_type": "text/csv; charset=utf-8",
"filename": "Import.csv",
"sheets": [
{
"name": "Import",
"rows": 2,
"columns": 1
}
],
"cells_written": 3,
"cells_repaired": 0,
"formula_guard": {
"guarded_cells": 1,
"triggers": [
"=",
"+",
"-",
"@",
"tab",
"cr"
],
"method": "apostrophe_prefix",
"note": "CSV has no cell formats, so a value starting with =, +, -, @, a tab or a carriage return is given a literal leading apostrophe. This is the one case where a value in the file differs from the value sent."
},
"dates": "Dates are written as the ISO 8601 text that was sent, because a CSV has no date format to apply.",
"text_storage": "Text is written as sent. A field holding a comma, a double quote or a line break is wrapped in double quotes with its own quotes doubled, per RFC 4180.",
"bytes": 30,
"sha256": "ad8e9a6d38966d0910376b4e76a12d3634fcd9dca751460603aa2c3c4c5f9658",
"file_base64": "CSV file, 30 bytes, base64 in the real response",
"source": "The file contains only the values supplied in the request. Nothing is looked up, calculated or added, and no copy of the data is kept after the response is sent.",
"checked_at": "2026-10-20T20:47:48.855Z"
}
API call
curl -s -X POST https://getattest.com.au/api/v1/sheets/build \
-H "authorization: Bearer $ATTEST_API_KEY" \
-H "content-type: application/json" \
--data-raw '{"format":"csv","sheets":[{"name":"Import","columns":[{"key":"label","label":"Label","type":"text"}],"rows":[{"label":"=1+1"},{"label":"Plain label"}]}]}'
Run this call with your own bearer key. Issue an API key.
About this example
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/sheets_build.mjs
Tool reference and limits · API key guide