All export endpoints stream CSV files containing the authenticated user's data. They accept either a session cookie or a Bearer sync token, so mobile, native, and CLI clients can export data.
| Method | Path | Description |
|---|---|---|
| GET | /api/exports/messages | Your messages as CSV. |
| GET | /api/exports/lists | Your list definitions (title, description, visibility) as CSV. The schema/columns are not included in this export. Accepts ?scope=. |
| GET | /api/exports/list-data-rows | Row data from all your lists as CSV. Accepts ?scope=. |
| GET | /api/exports/follows | Your followers and following relationships as CSV. |
curl -s "https://interlinedlist.com/api/exports/messages" \
-H "Cookie: interlinedlist_session=<your-session-cookie>" \
-o my-messages.csv
In the browser, navigating to the URL while signed in triggers a file download (the server sets Content-Disposition: attachment).
| Endpoint | Columns (exact CSV header row) |
|---|---|
/api/exports/messages | ID, Content, Publicly Visible, Tags, Parent ID, Created At, Updated At |
/api/exports/lists | ID, Title, Description, Is Public, Parent ID, Access, Created At, Updated At |
/api/exports/list-data-rows | ID, List ID, List Title, Row Data (JSON), Row Number, Access, Created At, Updated At. The row's fields are not split into per-field columns; the whole rowData is emitted as one JSON string in Row Data (JSON). |
/api/exports/follows | ID, Relationship Type, Follower Username, Follower Display Name, Following Username, Following Display Name, Status, Created At, Updated At |
Changed: the follows export used to carry
Follower EmailandFollowing Email. It no longer does. A follow is a relationship between two accounts; the participants' addresses are not part of it, and the export handed each side the other's address without their consent. UseFollower Username/Following Usernameas the handle.
scope: owned, accessible, or allThe two list exports accept a scope parameter, because "export my data" and
"my access" are not the same set. A collaborator with manager on a list has
full edit rights, schema control and delete rights — and used to be unable to
export it.
scope | Covers |
|---|---|
owned | Default. Lists you own. |
accessible | Lists shared with you — as watcher, collaborator, or manager. |
all | The union of both. |
curl -s "https://interlinedlist.com/api/exports/lists?scope=all" \
-H "Authorization: Bearer <sync-token>" \
-o my-lists.csv
owned is the default, so a request without scope returns exactly what it
always did. An unrecognised value is a 400 with code bad_request rather than
a silent fallback — a typo'd scope must not quietly hand back a different set of
rows than the caller asked for.
The Access column is emitted under every scope, reading owner for your
own lists. It is not conditional on the parameter: a column that appears and
disappears with a query string breaks every script that parses CSV by index.
Revoked access takes effect immediately — a list you can no longer read drops
out of accessible, and its rows drop out of the row export with it.
The messages and follows exports cover your own account only and take no
scope.
UTF-8 CSV with header row. Fields containing commas, quotes, or newlines are quoted per RFC 4180. Timestamps are ISO 8601 UTC.