Contacts
As the name suggests, contacts are a core part of Coherent — the very reason Coherent exists is so you can have secure conversations with your contacts. On this page, we'll dive into the different contact endpoints you can use to manage contacts programmatically. We'll look at how to query, create, update, and delete contacts.
The contact model
The contact model contains all the information about your contacts, such as their username, avatar, and phone number. It also contains a reference to the conversation between you and the contact and information about when they were last active on Coherent.
Properties
- Name
id
- Type
- string
- Description
Unique identifier for the contact.
- Name
username
- Type
- string
- Description
The username for the contact.
- Name
phone_number
- Type
- string
- Description
The phone number for the contact.
- Name
avatar_url
- Type
- string
- Description
The avatar image URL for the contact.
- Name
display_name
- Type
- string
- Description
The contact display name in the contact list. By default, this is just the username.
- Name
conversation_id
- Type
- string
- Description
Unique identifier for the conversation associated with the contact.
- Name
last_active_at
- Type
- timestamp
- Description
Timestamp of when the contact was last active on the platform.
- Name
created_at
- Type
- timestamp
- Description
Timestamp of when the contact was created.
List all contacts
This endpoint allows you to retrieve a paginated list of all your contacts. By default, a maximum of ten contacts are shown per page.
Optional attributes
- Name
limit
- Type
- integer
- Description
Limit the number of contacts returned.
Request
curl -G https://api.protocol.chat/v1/contacts \
-H "Authorization: Bearer {token}" \
-d active=true \
-d limit=10
Response
{
"has_more": false,
"data": [
{
"id": "WAz8eIbvDR60rouK",
"username": "FrankMcCallister",
"phone_number": "1-800-759-3000",
"avatar_url": "https://assets.protocol.chat/avatars/frank.jpg",
"display_name": null,
"conversation_id": "xgQQXg3hrtjh7AvZ",
"last_active_at": 705103200,
"created_at": 692233200
},
{
"id": "hSIhXBhNe8X1d8Et"
// ...
}
]
}
Create a contact
This endpoint allows you to add a new contact to your contact list in Coherent. To add a contact, you must provide their Coherent username and phone number.
Required attributes
- Name
username
- Type
- string
- Description
The username for the contact.
- Name
phone_number
- Type
- string
- Description
The phone number for the contact.
Optional attributes
- Name
avatar_url
- Type
- string
- Description
The avatar image URL for the contact.
- Name
display_name
- Type
- string
- Description
The contact display name in the contact list. By default, this is just the username.
Request
curl https://api.protocol.chat/v1/contacts \
-H "Authorization: Bearer {token}" \
-d username="FrankMcCallister" \
-d phone_number="1-800-759-3000" \
-d avatar_url="https://assets.protocol.chat/avatars/frank.jpg"
Response
{
"id": "WAz8eIbvDR60rouK",
"username": "FrankMcCallister",
"phone_number": "1-800-759-3000",
"avatar_url": "https://assets.protocol.chat/avatars/frank.jpg",
"display_name": null,
"conversation_id": "xgQQXg3hrtjh7AvZ",
"last_active_at": null,
"created_at": 692233200
}
Retrieve a contact
This endpoint allows you to retrieve a contact by providing their Coherent id. Refer to the list at the top of this page to see which properties are included with contact objects.
Request
curl https://api.protocol.chat/v1/contacts/WAz8eIbvDR60rouK \
-H "Authorization: Bearer {token}"
Response
{
"id": "WAz8eIbvDR60rouK",
"username": "FrankMcCallister",
"phone_number": "1-800-759-3000",
"avatar_url": "https://assets.protocol.chat/avatars/frank.jpg",
"display_name": null,
"conversation_id": "xgQQXg3hrtjh7AvZ",
"last_active_at": 705103200,
"created_at": 692233200
}
Update a contact
This endpoint allows you to perform an update on a contact. Currently, the only attribute that can be updated on contacts is the display_name
attribute which controls how a contact appears in your contact list in Coherent.
Optional attributes
- Name
display_name
- Type
- string
- Description
The contact display name in the contact list. By default, this is just the username.
Request
curl -X PUT https://api.protocol.chat/v1/contacts/WAz8eIbvDR60rouK \
-H "Authorization: Bearer {token}" \
-d display_name="UncleFrank"
Response
{
"id": "WAz8eIbvDR60rouK",
"username": "FrankMcCallister",
"phone_number": "1-800-759-3000",
"avatar_url": "https://assets.protocol.chat/avatars/frank.jpg",
"display_name": "UncleFrank",
"conversation_id": "xgQQXg3hrtjh7AvZ",
"last_active_at": 705103200,
"created_at": 692233200
}
Delete a contact
This endpoint allows you to delete contacts from your contact list in Coherent. Note: This will also delete your conversation with the given contact.
Request
curl -X DELETE https://api.protocol.chat/v1/contacts/WAz8eIbvDR60rouK \
-H "Authorization: Bearer {token}"