API Reference

Every request to the ConverseIQ API must include an x-api-key header containing a valid API key. You can generate an API Key by going to Settings → API settings → Add new API key, where you’ll also have the option to label it.

For endpoints that return lists (like chats), results are returned in pages. Use query parameters like ?page=2&limit=10 to control pagination and retrieve segmented results in manageable batches.

The API supports the following request methods:

  • GET – retrieves data. For example, fetch a list of chats or a specific chat by ID.

  • POST – creates new records. For example, start a new chat or add a new contact.

  • PUT – updates existing records. Used to modify data such as updating chat details or changing contact info.

  • DELETE – removes records. For example, delete a chat, contact, or message.

Each method serves a different purpose. GET is for reading, POST for creating, PUT for editing, and DELETE for removing. Use them depending on what action you want the API to perform.

Endpoints which returns list of objects have this JSON schema:

{
"data": [
...array of objects
],
"page": 1,
"limit": 20,
"pages": 10,
"total": 299
}

You can use these query parameters to control pagination (segmented results):

Param Type Required Description
page Int no Page number. Starts from 1
limit Int no Limit items per request. Min: 1, Max: 100, Default: 20
example:
This would fetch the second page of results, with 10 chats per page.
GET https://api.converseiq.com.au/public/v1/chat?page=2&limit=10

Response format:

The API might return something like this in the JSON:

{
"data": [ /* 10 chat objects */ ],
"page": 2,
"limit": 10,
"pages": 5,
"total": 47
}

 This tells you:

  • You're on page 2

  • There are 10 results per page

  • There are 5 pages total

  • There are 47 items total

 

ConverseIQ API BASE URL: 

https://api.converseiq.com.au/public/v1

AUTHORIZATION = API Key

Key              x-api-key
Value           {{apiKey}}  - (This is the API Key created in ConverseIQ via Settings → API settings → Add new API key)
 
 

ConverseIQ API ENDPOINT URLS:

https://api.converseiq.com.au/public/v1/workspace
https://api.converseiq.com.au/public/v1/contact
https://api.converseiq.com.au/public/v1/chat
https://api.converseiq.com.au/public/v1/team

 ConverseIQ API ENDPOINT Requests:

Workspace
GET get workspace info
GET https://api.converseiq.com.au/public/v1/workspace

Return Workspace JSON object.

GET get workspace owner info
GET https://api.converseiq.com.au/public/v1/workspace/me

Return Workspace owner User JSON object.

Contact
GET get contacts list
GET https://api.converseiq.com.au/public/v1/contact

Returns an array of Contact objects.


GET search contact
GET https://api.converseiq.com.au/public/v1/contact/search?email={{contactEmail}}

Query params:

Param Type Required Description
email String yes Email address to search

Returns an array of Contact objects.

 
PARAMS
email      {{contactEmail}}

GET get contact info
GET https://api.converseiq.com.au/public/v1/contact/{{contactID}}

Query params:

Param Type Required Description
{{contactID}} String yes GUID of the contact

Returns a Contact JSON object


POST create a contact
POST https://api.converseiq.com.au/public/v1/contact

Request params:

Param Type Required Description
name String no Contact name
email String no Contact email address
phone String no Contact phone number
ip String no Contact IP address
origin String (URL) no Origin URL
description String no Description
country String no Country
zip_code String no ZIP code
city String no City
state String no State
address String no Address
company String no Company name
lang String no Contact language

Returns a Contact JSON object

Body raw (json)

{
"name": "{{contactName}}", // optional
"email": "{{contactEmail}}", // email address, should be unique in workspace, optional
"phone": "{{contactPhone}}", // optional
"ip": "{{contactIP}}", // IPv4 address, optional
"origin": "{{contactOrigin}}", // URL, optional
"description": "{{contactDescription}}", // optional
"country": "{{contactCountry}}", // optional
"zip_code": "{{contactZIP}}", // optional
"city": "{{contactCity}}", // optional
"state": "{{contactState}}", // optional
"address": "{{contactAddress}}", // optional
"company": "{{contactCompany}}", // optional
"lang": "{{contactLang}}" // optional
}
PUT update a contact
PUT https://api.converseiq.com.au/public/v1/contact/{{contactID}}

Query params:

Param Type Required Description
{{contactID}} String yes GUID of contact

Request params:

Param Type Required Description
name String no Contact name
email String no Contact email address
phone String no Contact phone number
ip String no Contact IP address
origin String (URL) no Origin URL
description String no Description
country String no Country
zip_code String no ZIP code
city String no City
state String no State
address String no Address
company String no Company name
lang String no Contact language

Returns a Contact JSON object

Body raw (json) 

{
"name": "{{contactName}}", // optional
"email": "{{contactEmail}}", // email address, should be unique in workspace, optional
"phone": "{{contactPhone}}", // optional
"ip": "{{contactIP}}", // IPv4 address, optional
"origin": "{{contactOrigin}}", // URL, optional
"description": "{{contactDescription}}", // optional
"country": "{{contactCountry}}", // optional
"zip_code": "{{contactZIP}}", // optional
"city": "{{contactCity}}", // optional
"state": "{{contactState}}", // optional
"address": "{{contactAddress}}", // optional
"company": "{{contactCompany}}", // optional
"lang": "{{contactLang}}" // optional
}
DELETE delete a contact
DELETE https://api.converseiq.com.au/public/v1/contact/{{contactID}}

Return status 200 OK width empty body. 

Chat
GET get chats list
GET https://api.converseiq.com.au/public/v1/chat

Returns array of Chat objects


GET get chat info
GET https://api.converseiq.com.au/public/v1/chat/{{chatID}}

Return Chat object 


GET get chat messages list
GET https://api.converseiq.com.au/public/v1/chat/{{chatID}}/message

Return array of Message objects of selected chat in DESC order. 


GET get chat message
GET https://api.converseiq.com.au/public/v1/chat/{{chatID}}/message/{{messageID}}

Return selected Message object of selected chat 


POST Start new chat
POST https://api.converseiq.com.au/public/v1/chat

Initiate a new conversation. In the LiveChatWeb channel, messages can be sent on behalf of the agent, bot, or contact. In all other channels, messages can only be sent on behalf of the agent or bot.

List of body params:

Param Type Required Description
channel String (GUID) yes Channel GUID.
message String yes Initial message to start new chat.
chatflow Int no Start chatflow (if channel is connected to the chatflow). 0 - no, 1 - yes
agent String (GUID) no GUID of the agent.
bot String (GUID) no GUID of the bot.
contact String (GUID) no GUID of the contact.

To send a message on behalf of someone, you need to provide at least one of the following parameters: agent, bot, or contact.

Body raw (json)

{
"channel": "{{channelID}}", // channel ID, required
"message": "{{message}}", // message text, required
"chatflow": "{{startChatFlow}}", // start chat flow, optional
"agent": "{{teamMemberID}}", // agent ID, optional
"bot": "{{botID}}", // bot ID, optional
"contact": "{{contactID}}" // contact, optional
}
POST Send a message to existing chat
POST https://api.converseiq.com.au/public/v1/chat/{{chatID}}/message
Param Type Required Description
message String yes Initial message to start new chat.
agent String (GUID) no GUID of the agent.
bot String (GUID) no GUID of the bot.
contact String (GUID) no GUID of the contact.

To send a message on behalf of someone, you need to provide at least one of the following parameters: agent, bot, or contact.

Body raw (json)

{
"message": "{{message}}", // message text, required
"agent": "{{teamMemberID}}", // agent ID, optional
"bot": "{{botID}}", // bot ID, optional
"contact": "{{contactID}}" // contact, optional
}
PUT update chat info
PUT https://api.converseiq.com.au/public/v1/chat/{{chatID}}

This endpoint enables you to modify certain details of an existing chat. Currently, you can only update the chat's title. By default, the chat title matches the contact's name, but this endpoint allows you to rename it. If you want to reset the chat title, you can pass a null value as the title parameter. 

Body raw (json)

{
"title": "{{chatTitle}}" // new title of the chat or empty string to reset
}
DELETE delete chat
DELETE https://api.converseiq.com.au/public/v1/chat/{{chatID}}
Team
GET get team members list
GET https://api.converseiq.com.au/public/v1/team

Returns an array of TeamMember objects for current workspace. 


GET get team member info
GET https://api.converseiq.com.au/public/v1/team/{{memberID}}

Query params:

Param Type Required Description
{{memberID}} String yes GUID of the team member

Returns a TeamMember JSON object

 


Was this article helpful?