Spreadsheets and CSV
Add format=csv to any list and you get the same page as a spreadsheet, one row per record.
curl "https://harlo-api-dev.pages.dev/v1/invoices?format=csv&limit=100" \
-H "Authorization: Bearer $HARLO_API_KEY"harlo-invoices.csv
id,object,number,status,load.id,load.number,load.customer_reference,customer.id,customer.name,…,amount,amount_paid,balance,lines,…
a3b858d0-…,invoice,INV-L-00001,paid,d614de50-…,L-00001,BLL-55102,f96a1a46-…,Blue Lake Logistics LLC,…,2760.00,2760.00,0.00,"[{""type"":""Linehaul"",…}]",…How records become rows
- Nested fields become columns with a dot:
customer.name,load.number,equipment.type. - Lists inside a record (a load's stops, an invoice's lines) stay in one cell as JSON. Use the JSON response if you need them as rows.
- Columns come in the order the reference lists the fields, so they don't move between pages.
- A cell that starts with
=,+,-or@is prefixed with an apostrophe so a spreadsheet shows it rather than running it as a formula. Negative numbers are left alone.
More than one page
CSV pages work like JSON pages: up to 100 rows. When there are more, the response has an X-Next-Cursor header; send it back as cursor for the next rows.
Spreadsheets that refresh
For a sheet that updates itself, see Google Sheets or Excel and Power BI. They read every page for you.