Me API Documentation
Who the token belongs to, what it may do, and the account itself: its name and password, its API token, the browsers signed in as it and the applications connected to it.
Reading is open to any token. Changing the account, replacing the API token, and ending sessions or connections take an API token or the catalog_admin scope.
Endpoints
GET /api/v1/me
Retrieve the user the token belongs to. Takes no parameters. A client can call this once after signing in to show the user’s name and to learn which scopes an OAuth token was granted.
curl https://app.spondulix.ai/api/v1/me \
-H "Authorization: Bearer your-api-token-here"
Response
{
"id": 9,
"name": "Floyd Lawson",
"email": "[email protected]",
"company_name": "Floyd's Barber Shop",
"scopes": ["catalog", "search", "catalog_write"],
"libraries_count": 1,
"auth_token_hint": "…/PfD"
}
Response Fields
| Field | Type | Description |
|---|---|---|
| id | integer | ID of the user |
| name | string | Name of the user |
| string | Email address of the user | |
| company_name | string | null | Name of the user’s company |
| scopes | array | null | Scopes of an OAuth token; null for an API token, which carries none and may do whatever its user may |
| libraries_count | integer | Number of libraries the user owns or collaborates on |
| auth_token_hint | string | The last four characters of the user’s API token, after an ellipsis. The token itself is never returned here. |
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful request |
401 Unauthorized |
Missing or bad token |
PUT /api/v1/me
Change the account. PATCH works the same way, and only the fields you send change.
Request Body
Wrap the fields in a user key.
| Field | Type | Description | Required |
|---|---|---|---|
| name | string | Name of the user | No |
| company_name | string | Name of the user’s company | No |
| password | string | A new password | No |
| password_confirmation | string | The same, again | With password |
{ "user": { "name": "Floyd Lawson", "company_name": "Floyd's Barber Shop" } }
Response
Returns the account as GET does.
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful update |
403 Forbidden |
The token does not carry catalog_admin |
422 Unprocessable Content |
Field name to list of messages |
POST /api/v1/me/reset_auth_token
Replace the API token. No body.
The old token stops working at once, everywhere it is used. The new one is in this answer and nowhere else, ever: keep it before doing anything else. A client that calls this with the API token is, from the next request, using a token that no longer works.
Response
{ "auth_token": "..." }
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
The token was replaced |
403 Forbidden |
The token does not carry catalog_admin |
GET /api/v1/me/sessions
Retrieve the browser sessions signed in as this user, oldest first. Not paged.
Response
{
"sessions": [
{
"id": 44,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) ...",
"ip_address": "203.0.113.7",
"created_at": "2026-09-28T08:12:03.115-05:00",
"updated_at": "2026-09-29T10:40:51.902-05:00"
}
]
}
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful request |
DELETE /api/v1/me/sessions/{id}
Sign that browser out.
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | integer | ID of the session | Yes |
Response
(no response body)
HTTP Response Codes
| Code | Description |
|---|---|
204 No Content |
The session was ended |
403 Forbidden |
The token does not carry catalog_admin |
404 Not Found |
No such session of this user’s |
GET /api/v1/me/connected_apps
Retrieve the OAuth applications that hold a token of the user’s that has not been revoked. Not paged.
Response
{
"connected_apps": [
{ "id": 3, "name": "Spondulix CLI (floyds-mac)", "uid": "b1c2d3e4f5..." }
]
}
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful request |
DELETE /api/v1/me/connected_apps/{id}
Disconnect an application: every token it holds for the user is revoked, and it must sign in again to reconnect.
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| id | integer | ID of the application | Yes |
Response
(no response body)
HTTP Response Codes
| Code | Description |
|---|---|
204 No Content |
The application was disconnected |
403 Forbidden |
The token does not carry catalog_admin |
404 Not Found |
No such application connected to this user |