Public API's

Authorization

All of ReplyCX's APIs use Bearer token-based authentication.

Your account token can be found at Settings 🡪 Account Settings.

Adding a data source to a knowledge base

POST /api/v1/ai/knowledge-base/<knowledge_base_id>/upload/sources

Using this API, you can add a data source to an existing knowledge base.

Headers:

Name

Value

Content-Type

multipart/form-data

Authorization

Bearer <token>

Body:

The API accepts files and text as multipart form data for upload. Each form field should be a unique key and contain either a file or text content.

Response:

{
"q1": [
{
"id": 330783,
"type": "text",
"name": "sample.txt",
"status": "in-progress",
"errors": null
},
{
"id": 330784,
"type": "text",
"name": "sample2.txt",
"status": "in-progress",
"errors": null
},
{
"id": 330785,
"type": "file",
"name": "File.pdf",
"status": "in-progress",
"errors": null
}
],
"d2": [
{
"id": 330786,
"type": "file",
"name": "File2.pdf",
"status": "in-progress",
"errors": null
}
],
"knowledge_base_id": 876,
"ok": true
}

Get training status of a data source:

GET /api/v1/ai/status/sources

Using this API, you can fetch the status of one or more data sources in a knowledge base to know it its training is - in progress / completed / failed.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

Name

Type

Descriptions

source_ids

query params

Comma-separated list of data source IDs to be passed as query params.

Response:

{
    "sources": [
        {
            "id": 330778,
            "name": "sample.txt",
            "status": "in-progress",
            "knowledge_base_id": 876
        }
    ],
    "ok": true
}

Creating a conversation:

POST /v1/conversations

Using this endpoint, you can start/create a new conversation.

Headers:

Name

Value

Content-sType

application/json

Authorization

Bearer <token>

Body:

Contains the message payload. Payload differs based on channel.

{
"channel": "SMS",
"from": "1-123-1231230",
"to": {
"phone": "1-1321231320",
"name": "John Doe",
"email": "[email protected]"
},
"message": {
"type": "text",
"text": "Hii"
},
"assignee": "[email protected]"
}

Response:

{
"ok": true,
"conversation": {
"id": "12wfegrgt4t",
"message_id": "sdvgret4353b",
"created_at": "",
"assignee": {
"id": 123,
"to": "[email protected]"
}
},
"contact": {
"id": "11111111",
"name": "John Doe",
"phone": "1234567890",
"email": "[email protected]"
}
}

Send agent response to a conversation

POST /api/v1/conversation/<conversation_id>/messages

For every response sent by the agent on the third-party system, this API is to be invoked so it can relay this response to the user.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

{
"message": {
"text": "Helo there!",
"type": "text"
},
"user": {
"by": "[email protected]"
}
}

Response:

{
  "ok": true,
  "message_id": "6HRBshHEcV8P103039226478taGDJQxC"
}

Closing a conversation:

POST /api/v1/conversation/{conversation_id}/events

Use this end point to open the conversation.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

{
"event": "status",
"status": "CLOSE",
"user": {
"by": "[email protected]"
}
}

Response:

{
"ok": true
}

Changing assignee in a conversation:

POST /api/v1/conversation/{conversation_id}/events

Use this endpoint to change the assignee in an open conversation.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

// Change from assignee to assignee
{
"event": "assignee",
"user": {
"by": "[email protected]",
"to": "[email protected]"
}
}
// Change from assignee to team
{
"event": "assignee",
"team": {
"by": "[email protected]",
"to": "Sales"
}
}

Response:

{
"ok": true
}

Update variable of a conversation:

POST /v1/accounts/{account_id}/conversations/{conversation_id}/variables

Use this endpoint to update the variables in the conversation.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

{
"variables": [
{
"name": "name",
"type": "conversation",
"value": "John Doe"
},
{
"name": "phone",
"type": "contact",
"value": "9999999999"
},
{
"name": "company",
"type": "conversation",
"value": "ReplyCx"
},
{
"name": "email",
"type": "contact",
"value": "[email protected]"
} 
} 
}

Response:

{
  "ok": true
}

Set webhook URL for Events feature:

POST /v1/accounts/{account_id}/webhook

Use this endpoint to set webhook for receiving conversation related events from the account.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Body:

{
"webhook_url": "",
"subscribed_events": [
{
"key": "conversation_create",
"is_subscribed": true
},
{
"key": "message",
"is_subscribed": true
},
{
"key": "status",
"is_subscribed": true
},
{
"key": "assignee_change",
"is_subscribed": true
},
{
"key": "sla_breached",
"is_subscribed": true
},
{
"key": "variables",
"is_subscribed": true
},
{
"key": "conversation_labels",
"is_subscribed": true
},
{
"key": "note",
"is_subscribed": true
}
],
"is_enabled": true,
"token": "Test"
}

Response:

{
“Ok”: true
}

Fetch Bots List:

GET /v1/accounts/{account_id}/bots

Use this endpoint to fetch list of bots available in the account.

Headers:

Name

Value

Content-Type

application/json

Authorization

Bearer <token>

Response:

{
"ok": true,
"bots": [
{
"bot_title": "Appointment Booking",
"channels": [
{
"name": "WEB"
}
],
"is_active": false,
"bot_key": "7SgQLb4qUbp61059137828254t5QVE0H",
"last_deployed_at": "2025-01-22 13:26:40.554000",
"is_inactive_by_system": false,
"priority": 1,
"preferred_bot_language": {
"label": "English",
"code": "EN"
},
"type": "inbound",
"outbound_type": null,
"bot_owner": {
"id": 14764,
"name": "John Doe"
"email": "[email protected]"
}
"created_at": "2024-02-09 10:59:13.783000",
"preview_key": "6H7PD4WwTmsU105913782825Zk3KCj3t",
"bot_id": 9633
}
]
}

Last updated

Was this helpful?