Invitations API Documentation
People join a library by invitation. An invitation names an email address and the role the person will have; the person receives a mail with a link, and becomes a collaborator when they accept it.
Invitations are sent, and sent again, on the site only, because an invitation is mail from the Spondulix domain to any address, which is not something an API token should be able to send. The API lists the invitations not yet accepted, fetches one and rescinds one. To invite someone, open the library’s collaborators page at https://app.spondulix.ai/my/libraries/{library_id}/collaborators.
Every endpoint here takes the admin role; rescinding also takes the catalog_admin scope.
Endpoints
GET /api/v1/libraries/{library_id}/invitations
Retrieve the invitations not yet accepted, oldest first. Not paged.
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| library_id | integer | ID of the library | Yes |
Response
{
"invitations": [
{
"id": 12,
"email": "[email protected]",
"role": "editor",
"created_at": "2026-09-29T15:05:00.000-05:00",
"updated_at": "2026-09-29T15:05:00.000-05:00",
"invited_by": "Floyd Lawson",
"url": "https://app.spondulix.ai/api/v1/libraries/2/invitations/12"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
| invitations | array | The invitations not yet accepted |
| id | integer | ID of the invitation |
| string | Address the invitation went to | |
| role | string | admin, editor or viewer: the role the person will have |
| created_at | string | Timestamp of when the invitation was sent |
| updated_at | string | Timestamp of when it was last changed |
| invited_by | string | null | Name of the user who sent it |
| url | string | URL of the invitation |
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful request |
403 Forbidden |
Your role is below admin |
404 Not Found |
Invalid library ID |
GET /api/v1/libraries/{library_id}/invitations/{id}
Retrieve one invitation not yet accepted.
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| library_id | integer | ID of the library | Yes |
| id | integer | ID of the invitation | Yes |
Response
Returns the invitation as shown in the list response.
HTTP Response Codes
| Code | Description |
|---|---|
200 OK |
Successful request |
403 Forbidden |
Your role is below admin |
404 Not Found |
Invalid library ID, or no open invitation with that ID |
DELETE /api/v1/libraries/{library_id}/invitations/{id}
Rescind an invitation. Its link stops working.
Path Parameters
| Name | Type | Description | Required |
|---|---|---|---|
| library_id | integer | ID of the library | Yes |
| id | integer | ID of the invitation | Yes |
Response
(no response body)
HTTP Response Codes
| Code | Description |
|---|---|
204 No Content |
The invitation was rescinded |
403 Forbidden |
Your role is below admin, or the token does not carry catalog_admin |
404 Not Found |
Invalid library ID, or no open invitation with that ID |