You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Bulk export** — download all sessions, incremental updates, or latest-day slice as a zip; if there is nothing to export, the API returns **422** with JSON body `{"error": "Nothing to export", "since": "<mode>"}` (the `since` field echoes your request: `"all"`, `"last"`, or `"incremental"`) instead of an empty zip
22
+
-**Bulk export** — download all sessions, incremental updates, or latest-day slice as a zip; if there is nothing to export, the API returns **422** with JSON body `{"error": "Nothing to export", "code": "EXPORT_NOTHING_TO_EXPORT", "since": "<mode>"}` (the `since` field echoes your request: `"all"`, `"last"`, or `"incremental"`) instead of an empty zip
23
+
24
+
### API error codes
25
+
26
+
JSON error responses include a machine-readable `"code"` (stable `UPPER_SNAKE_CASE`) and a human-readable `"error"` message. Common codes:
27
+
28
+
| Code | Typical HTTP | Meaning |
29
+
|------|--------------|---------|
30
+
|`SEARCH_INVALID_LIMIT`| 400 | Query param `limit` is not a positive integer |
31
+
|`INVALID_PATH`| 400 | Path traversal or unsafe project/session path |
32
+
|`SESSION_NOT_FOUND`| 404 | Session file missing or excluded |
33
+
|`INVALID_REQUEST_BODY`| 400 | POST body is not a JSON object |
34
+
|`INVALID_SINCE_MODE`| 400 | Bulk export `since` is not `all`, `last`, or `incremental`|
35
+
|`EXPORT_NOTHING_TO_EXPORT`| 422 | No sessions matched the export scope |
36
+
|`PARSE_ERROR`| 500 | Session file could not be parsed |
0 commit comments