Skip to content

Contacts API

All endpoints require authentication. Base path: /api/v1/address-books.

MethodPathDescription
GET/v1/address-booksList address books
POST/v1/address-booksCreate an address book (name; 409 if it already exists)
PUT/v1/address-books/{addressBookId}Update an address book’s color
DELETE/v1/address-books/{addressBookId}Delete an address book
MethodPathDescription
GET/v1/address-books/contactsList all contacts
POST/v1/address-books/contacts/photosBulk-fetch contact photo URLs (max 10)
POST/v1/address-books/{addressBookId}/contactsCreate a contact
PUT/v1/address-books/{addressBookId}/contacts/{contactUri}Update a contact
DELETE/v1/address-books/{addressBookId}/contacts/{contactUri}Delete a contact
POST/v1/address-books/{addressBookId}/contacts/{contactUri}/photoUpload a contact photo (multipart)
DELETE/v1/address-books/{addressBookId}/contacts/{contactUri}/photoRemove a contact photo

Contact creation accepts full name parts (prefix, first, middle, last, suffix), multiple emails[] and phones[] with types (cell/home/work/other), groups[], organization, title, note, a full address, and an optional photo (base64).

MethodPathDescription
POST/v1/address-books/importStart an external CardDAV import (url, username, secret)
POST/v1/address-books/import/selectSelect address books to import
GET/v1/address-books/import/stateImport progress state