Before you start
- A Xano workspace with an API endpoint that accepts the data you want to import, for example
POST /customers. - Swagger documentation turned on for the API group that contains the endpoint. In Xano, open the API group → Settings and set Swagger documentation to Public or Private (with token). It must not be Disabled.
- The full spec URL for the API group. For a private group, copy the URL including
?token=....
The spec URL must be publicly reachable. Private and internal network addresses are rejected.
How it works
1
Select Xano as the destination type
Open your sheet, go to Destination, and choose Xano from the list.
2
Load your API spec
Paste your Xano spec URL, for example:Click Load Endpoints. CSVbox downloads the spec and lists every endpoint that accepts
POST, PUT, or PATCH.If the URL has no token= parameter and your docs are protected, add a Docs Auth token. You can use a Bearer token, or a custom header name and value.3
Select the endpoint
Pick the endpoint that should receive the data. CSVbox loads its input fields (name, type, required, and allowed values) and detects whether the endpoint expects a single object or an array of objects.
4
Test the connection (optional)
Click Test Connection. This is a read-only check: it fetches your spec URL and confirms that it contains a valid
paths object. It doesn’t call your endpoint or create any data.5
Map sheet columns to the endpoint fields
Match each column in your sheet to an input field of the endpoint. You can also map custom attributes, such as
user_id, to send them with every row.- Use dot notation for nested objects, such as
address.city. - Use brackets for arrays, such as
tags[0]oritems[0].sku. - Columns you leave unmapped aren’t sent.
- Required fields from the spec are highlighted. Map all of them, or Xano rejects the request.
6
Save the destination
Click Save. The destination is active for all new uploads.
How data is sent
One request per row
By default, each row becomes one request. Progress is updated after every row.One request per file
If the request body of the selected endpoint is an array, CSVbox sends all rows in a single request:Type conversion
CSVbox converts each value to the type declared in your Xano input before sending it.- Empty cells are sent as
null. - A row that fails conversion isn’t sent. It’s logged with the reason, for example
field age: cannot coerce 'abc' to integer.
Error handling
Import results
Row-level errors appear in the import’s error log with the row number, the field (when known), the HTTP status, and the message.
Troubleshooting
Good to know
- The spec URL and token are stored per sheet. If you regenerate the token in Xano, reload the spec and save again.
- Switching to a different endpoint resets the available fields, so check your mapping again.
- Only
POST,PUT, andPATCHendpoints are listed. - A single file is limited by your plan’s row limit. Rows beyond the limit aren’t sent.

