Dokumentasi Public API
Base URL
Base URL: https://apigw.vardast.chat/uaa/public
Authorization
API Key
Atur header X-API-Key pada permintaan Anda.
"X-API-Key": "VdHRqM5x2h18QVj29298Ae3MZ6PG3f3-m6RJ6Yxeg1Q"
Chat
Process message
- Endpoint: POST /messenger/api/chat/public/process
- Request Body: PublicChatRequest
{
"message": "string",
"channel_id": "string",
"contact_id": "string",
"assistant_id": "string | null" // Opsional, default ke assistant milik channel
}
- Response:
{
"status": "success | error",
"message_id": "uuid", // ID pesan yang tersimpan jika sukses
"response": "string", // Respons AI jika sukses
"error": "string" // Pesan error jika gagal
}
Get Contact Messages
- Endpoint: GET /messenger/api/chat/{channel_id}/{contact_id}/
- Query Parameters:
- page: int (opsional, default=1) - Nomor halaman
- size: int (opsional, default=20) - Item per halaman
- Response: PaginatedResponse[MessageResponse]
{
"items": [
{
"id": "uuid",
"text": "string",
"platform": "string",
"sender_id": "string",
"receiver_id": "string",
"is_output": "boolean",
"ai_created": "boolean",
"channel_id": "uuid",
"timestamp": "datetime",
"is_in_thread": "boolean"
}
],
"total": "int",
"page": "int",
"size": "int",
"pages": "int"
}
Get All Contacts
- Endpoint: GET /messenger/api/chat/contacts/
- Query Parameters:
- page: int (opsional, default=1) - Nomor halaman
- size: int (opsional, default=20) - Item per halaman
- channel_ids: string (opsional) - Daftar ID channel dipisahkan koma
- platform: string (opsional) - Filter berdasarkan platform (TELEGRAM, INSTAGRAM, dsb.)
- Response: PaginatedResponse[ContactResponse]
{
"items": [
{
"id": "uuid",
"name": "string",
"username": "string",
"identifier": "string",
"platform": "string",
"channel_id": "uuid",
"is_stopped": "boolean",
"created_at": "datetime",
"updated_at": "datetime"
}
],
"total": "int",
"page": "int",
"size": "int",
"pages": "int"
}
Channels
Get All Channels
- Endpoint: GET /messenger/api/channel/
- Response: List of ChannelResponse
{
"items": [
{
"id": "uuid",
"name": "string",
"platform": "INSTAGRAM | TELEGRAM | BALE",
"user_id": "string",
"identifier": "string",
"access_token": "string",
"assistant": "string | null",
"is_stopped": "boolean",
"reply_to_story": "boolean",
"reply_to_comments": "boolean",
"account_id": "string",
"created_at": "datetime",
"updated_at": "datetime"
}
]
}
Assistants
Get Assistants
- Endpoint: GET /messenger/api/assistants/
- Response: Daftar assistant diurutkan berdasarkan tanggal pembuatan (terbaru dulu)
{
"items": [
{
"id": "uuid",
"assistant_name": "string",
"model": "string",
"api_key": "string",
"kb_id": "uuid | null",
"functions": ["string"] | null,
"user_id": "uuid",
"created_at": "datetime",
"updated_at": "datetime"
}
]
}
Create Assistant
- Endpoint: POST /messenger/api/assistants/
- Request Body: AssistantCreate
{
"assistant_name": "string",
"model": "string",
"api_key": "string",
"kb_id": "uuid | null",
"functions": ["string"] | null
}
Prompts
Create Prompt
- Endpoint: POST /messenger/api/prompts/
- Request Body: PromptCreate
{
"assistant_id": "UUID",
"text": "string",
"prompt_json": "object",
"language": "FA | EN", // Default "EN"
"created_by": "string"
}
- Response: Prompt
{
"prompt_id": "uuid",
"created_at": "datetime",
"updated_at": "datetime",
"user_id": "uuid"
}
Get Prompt
- Endpoint: GET /messenger/api/prompts/{prompt_id}
- Response: Prompt
{
"prompt_id": "uuid",
"assistant_id": "uuid",
"text": "string",
"prompt_json": "object",
"language": "FA | EN",
"created_by": "string",
"created_at": "datetime",
"updated_at": "datetime",
"user_id": "uuid"
}
Get Channel Contacts
GET /report/channel/{channel_id}/contacts
Mengambil kontak untuk channel tertentu dengan dukungan paginasi.
Query Parameters:
- id: UUID (opsional) - Ambil kontak tertentu
- page: int (opsional, ≥1) - Nomor halaman
- page_size: int (opsional, ≥1, ≤100) - Item per halaman
Skema Response:
{
"items": [
{
"id": "UUID",
"contact_id": "UUID",
"channel_id": "UUID",
"full_name": "string",
"phone_number": "string",
"detailed_address": "string",
"postal_code": "string (opsional)",
"username": "string (opsional)",
"platform": "string (opsional)",
"comment": "string (opsional)",
"order_list": [
{
"product_name": "string",
"quantity": "int",
"variants": "string (opsional)"
}
],
"created_at": "datetime (opsional)"
}
],
"total": "int",
"page": "int",
"size": "int",
"pages": "int"
}
Get Channel Orders
GET /report/channel/{channel_id}/orders
Mengambil order untuk channel tertentu dengan dukungan paginasi.
Query Parameters:
- order_id: UUID (opsional) - Ambil order tertentu
- page: int (opsional, ≥1) - Nomor halaman
- page_size: int (opsional, ≥1, ≤100) - Item per halaman
Skema Response:
{
"items": [
{
"id": "UUID",
"contact_id": "UUID",
"channel_id": "UUID",
"full_name": "string",
"phone_number": "string",
"detailed_address": "string",
"postal_code": "string (opsional)",
"username": "string (opsional)",
"platform": "string (opsional)",
"comment": "string (opsional)",
"order_list": [
{
"product_name": "string",
"quantity": "int",
"variants": "string (opsional)"
}
],
"created_at": "datetime (opsional)"
}
],
"total": "int",
"page": "int",
"size": "int",
"pages": "int"
}
Usage
Get User Usage Info
- Endpoint: GET /payment/get-usage-info/
- Response: UsageResponseSchema
{
"status": "string",
"response": {
"user_id": "uuid",
"mode": "string",
"active_features": {
"feature_name": "boolean"
},
"chat_credit": "integer",
"all_chat_credit": "integer",
"total_chats": "integer",
"contact_credit": "integer",
"total_contacts": "integer",
"is_allowed": "boolean",
"next_due_date": "datetime",
"time_credit": "datetime"
}
}
Get Usage Activity
- Endpoint: GET /payment/get-usage-activity/
- Query Parameters:
- feature: string (wajib: id, date, mode, period)
- activity_id: uuid (wajib jika feature=id)
- date: datetime (wajib jika feature=date)
- mode: string (wajib jika feature=mode)
- start_date: string (wajib jika feature=period)
- end_date: string (wajib jika feature=period)
- Response: UsageActivityResponseSchema
{
"status": "string",
"response": {
"id": "uuid",
"user_id": "uuid",
"date": "date",
"new_contacts": "integer",
"message_requests": "integer"
}
}
Usage Activity Summary Response
{
"status": "string",
"response": [
{
"date": "date | string",
"total_new_contacts": "integer",
"total_message_requests": "integer"
}
]
}
Error Responses
Semua endpoint dapat mengembalikan respons error berikut:
- 401 Unauthorized: Saat autentikasi gagal
- 404 Not Found: Saat resource yang diminta tidak ditemukan
- 500 Internal Server Error: Saat terjadi error tak terduga
Format respons error:
{
"detail": "Pesan error"
}