Generate an output node's result as CSV (asynchronous; poll the export)
/v1/apps/{app}/outputs/{node}/exportsGenerates one output node's result as a CSV file and answers immediately with the export identifier to poll. Requires the exports:read scope. With no runId the file comes from the workspace's latest successful PUBLISHED run, and that answer can move between two otherwise identical requests; naming a runId pins it, which is what makes a load reproducible against an immutable run snapshot. Every field of the body is optional and the body itself may be omitted, which means the latest published run with the default dialect - but omit the Content-Type header with it, because an EMPTY payload declared as application/json is refused by the JSON parser as a 400 invalid_request before this operation sees it. Sending {} with the header is the equivalent request. The dialect resolves before anything is generated, and the 202 echoes the resolved run and the resolved dialect. Next: poll getExport.
Authorization
bearerAuth Obtain a token from https://id.ovidens.com/oauth/token using the client_credentials grant.
In: header
Path Parameters
The app's stable technicalId, as reported by listApps. It is a snake_case identifier, never a numeric id, and it survives a rename of the app.
1 <= length <= 64The output node's stable technicalId, as reported by listOutputs. It must be a successful node of the run being exported.
1 <= length <= 64Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
1 <= value <= 2147483647Value in
- "csv"
Value in
- "none"
- "gzip"
curl -X POST "https://example.com/v1/apps/string/outputs/string/exports" \ -H "Content-Type: application/json" \ -d '{ "runId": 4821, "compression": "gzip", "csv": { "delimiter": ";", "dateFormat": "%d.%m.%Y" } }'{ "exportId": "exp_5b1e7d0a3c92", "status": "generating", "runId": 4821, "runPinned": true, "format": "csv", "compression": "gzip", "csv": { "delimiter": ";", "quote": "\"", "escape": "\"", "encoding": "utf-8", "hasHeader": true, "decimalSeparator": ".", "thousandsSeparator": "", "dateFormat": "%d.%m.%Y", "timestampFormat": "%Y-%m-%dT%H:%M:%SZ", "columns": {} }, "expiresAt": "2026-08-08T02:07:10.000Z"}Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json