Appearance
CardDAV
16 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /carddav/accounts | List Accounts |
POST | /carddav/accounts | Create Account |
DELETE | /carddav/accounts/{account_id} | Delete Account |
PUT | /carddav/accounts/{account_id} | Update Account |
GET | /carddav/accounts/{account_id}/addressbooks | List Addressbooks For Account |
PUT | /carddav/accounts/{account_id}/addressbooks | Save Addressbooks For Account |
GET | /carddav/accounts/{account_id}/addressbooks/available | List Available Addressbooks For Account |
POST | /carddav/accounts/{account_id}/set-default | Set Default Account |
GET | /carddav/addressbooks | List Addressbooks |
PUT | /carddav/addressbooks | Save Addressbooks |
GET | /carddav/addressbooks/available | List Available Addressbooks |
DELETE | /carddav/connection | Delete Connection |
GET | /carddav/connection | Get Connection |
PUT | /carddav/connection | Save Connection |
POST | /carddav/sync | Sync Now |
POST | /carddav/test | Test Connection |
carddav
Test Connection
POST
/carddav/test
Validate credentials and return discovered addressbooks. Doesn't save.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "server_url": "string", "username": "string", "password": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Accounts
Create Account
POST
/carddav/accounts
Add a NEW CardDAV account. Validates credentials against the server.
Doesn't pick addressbooks — that's a follow-up PUT to
/accounts/{id}/addressbooks.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "server_url": "string", "username": "string", "password": "string", "label": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Update Account
PUT
/carddav/accounts/{account_id}
Update one account's credentials (validated against the server).
Parameters
Header Parameters
authorization
Path Parameters
account_id*
Type
Requiredstring
Request Body
application/json
JSON "server_url": "string", "username": "string", "password": "string", "label": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Delete Account
DELETE
/carddav/accounts/{account_id}
Remove one account. Cascades its addressbooks (+ contacts, decision (1)).
Parameters
Header Parameters
authorization
Path Parameters
account_id*
Type
Requiredstring
Query Parameters
delete_contacts
Type
boolean
Default
trueResponses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Set Default Account
List Available Addressbooks For Account
List Addressbooks For Account
Save Addressbooks For Account
PUT
/carddav/accounts/{account_id}/addressbooks
Set one account's enabled addressbook set (removed books cascade).
Parameters
Header Parameters
authorization
Path Parameters
account_id*
Type
Requiredstring
Request Body
application/json
JSON "urls": [ "string" ]
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Connection
Save Connection
PUT
/carddav/connection
LEGACY: save credentials — updates the default account, or creates
the first one. Validates them against the server first.
Doesn't pick addressbooks — that's a follow-up PUT to /addressbooks.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "server_url": "string", "username": "string", "password": "string"
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Delete Connection
DELETE
/carddav/connection
LEGACY: disconnect the user — removes ALL accounts and books.
By default cascades contacts (decision (1)).
Parameters
Header Parameters
authorization
Query Parameters
delete_contacts
Type
boolean
Default
trueResponses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Available Addressbooks
GET
/carddav/addressbooks/available
LEGACY: re-discover from the DEFAULT account's server.
Used by the settings UI when the user wants to refresh the picker
after adding a book server-side.
Parameters
Header Parameters
authorization
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Addressbooks
Save Addressbooks
PUT
/carddav/addressbooks
LEGACY: set the DEFAULT account's enabled addressbook set.
Decision (1): removed books cascade. Re-discovers from the server so
we know each book's display name and description without trusting
client input.
Parameters
Header Parameters
authorization
Request Body
application/json
JSON "urls": [ "string" ]
{
}
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}