Vardast

Genel API Dokümantasyonu

نویسنده Vardast Ekibi

Base URL

Base URL: https://apigw.vardast.chat/uaa/public

Kimlik Doğrulama

API Anahtarı

İsteklerinizde X-API-Key başlığını ayarlayın.

"X-API-Key": "VdHRqM5x2h18QVj29298Ae3MZ6PG3f3-m6RJ6Yxeg1Q"

Sohbet

Mesaj işleme

  • Endpoint: POST /messenger/api/chat/public/process
  • Request Body: PublicChatRequest
{
"message": "string",
"channel_id": "string",
"contact_id": "string",
"assistant_id": "string | null" // Optional, defaults to channel's assistant
}
  • Response:
{
"status": "success | error",
"message_id": "uuid", // ID of the saved message if successful
"response": "string", // The AI response if successful
"error": "string" // Error message if failed
}

Kişinin Mesajlarını Getirme

  • Endpoint: GET /messenger/api/chat/{channel_id}/{contact_id}/
  • Query Parameters:
  • page: int (opsiyonel, default=1) - Sayfa numarası
  • size: int (opsiyonel, default=20) - Sayfa başına öğe sayısı
  • 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"
}

Tüm Kişileri Getirme

  • Endpoint: GET /messenger/api/chat/contacts/
  • Query Parameters:
  • page: int (opsiyonel, default=1) - Sayfa numarası
  • size: int (opsiyonel, default=20) - Sayfa başına öğe sayısı
  • channel_ids: string (opsiyonel) - Virgülle ayrılmış kanal kimlikleri listesi
  • platform: string (opsiyonel) - Platforma göre filtrele (TELEGRAM, INSTAGRAM, vb.)
  • 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"
}

Kanallar

Tüm Kanalları Getirme

  • Endpoint: GET /messenger/api/channel/
  • Response: ChannelResponse listesi
{
  "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"
    }
  ]
}

Asistanlar

Asistanları Getirme

  • Endpoint: GET /messenger/api/assistants/
  • Response: Oluşturulma tarihine göre sıralanmış asistan listesi (en yeniden en eskiye)
{
  "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"
    }
  ]
}

Asistan Oluşturma

  • Endpoint: POST /messenger/api/assistants/
  • Request Body: AssistantCreate
{
  "assistant_name": "string",
  "model": "string",
  "api_key": "string",
  "kb_id": "uuid | null",
  "functions": ["string"] | null
}

Promptlar

Prompt Oluşturma

  • Endpoint: POST /messenger/api/prompts/
  • Request Body: PromptCreate
{
    "assistant_id": "UUID",
    "text": "string",
    "prompt_json": "object",
    "language": "FA | EN",  // Defaults to "EN"
    "created_by": "string"
}
  • Response: Prompt
{
  "prompt_id": "uuid",
  "created_at": "datetime",
  "updated_at": "datetime",
  "user_id": "uuid"
}

Prompt Getirme

  • 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"
}

Kanal Kişilerini Getirme

GET /report/channel/{channel_id}/contacts

Belirli bir kanala ait kişileri sayfalama desteğiyle getirir.

Query Parameters:

  • id: UUID (opsiyonel) - Belirli bir kişiyi getir
  • page: int (opsiyonel, ≥1) - Sayfa numarası
  • page_size: int (opsiyonel, ≥1, ≤100) - Sayfa başına öğe sayısı

Response Schema:

{
    "items": [
        {
            "id": "UUID",
            "contact_id": "UUID",
            "channel_id": "UUID",
            "full_name": "string",
            "phone_number": "string",
            "detailed_address": "string",
            "postal_code": "string (optional)",
            "username": "string (optional)",
            "platform": "string (optional)",
            "comment": "string (optional)",
            "order_list": [
                {
                    "product_name": "string",
                    "quantity": "int",
                    "variants": "string (optional)"
                }
            ],
            "created_at": "datetime (optional)"
        }
    ],
    "total": "int",
    "page": "int",
    "size": "int",
    "pages": "int"
}

Kanal Siparişlerini Getirme

GET /report/channel/{channel_id}/orders

Belirli bir kanala ait siparişleri sayfalama desteğiyle getirir.

Query Parameters:

  • order_id: UUID (opsiyonel) - Belirli bir siparişi getir
  • page: int (opsiyonel, ≥1) - Sayfa numarası
  • page_size: int (opsiyonel, ≥1, ≤100) - Sayfa başına öğe sayısı

Response Schema:

{
    "items": [
        {
            "id": "UUID",
            "contact_id": "UUID",
            "channel_id": "UUID",
            "full_name": "string",
            "phone_number": "string",
            "detailed_address": "string",
            "postal_code": "string (optional)",
            "username": "string (optional)",
            "platform": "string (optional)",
            "comment": "string (optional)",
            "order_list": [
                {
                    "product_name": "string",
                    "quantity": "int",
                    "variants": "string (optional)"
                }
            ],
            "created_at": "datetime (optional)"
        }
    ],
    "total": "int",
    "page": "int",
    "size": "int",
    "pages": "int"
}

Kullanım

Kullanıcı Kullanım Bilgisini Getirme

  • 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"
    }
}

Kullanım Etkinliğini Getirme

  • Endpoint: GET /payment/get-usage-activity/
  • Query Parameters:
  • feature: string (zorunlu: iddatemodeperiod)
  • activity_id: uuid (feature=id ise zorunlu)
  • date: datetime (feature=date ise zorunlu)
  • mode: string (feature=mode ise zorunlu)
  • start_date: string (feature=period ise zorunlu)
  • end_date: string (feature=period ise zorunlu)
  • Response: UsageActivityResponseSchema
{
    "status": "string",
    "response": {
        "id": "uuid",
        "user_id": "uuid",
        "date": "date",
        "new_contacts": "integer",
        "message_requests": "integer"
    }
}

Kullanım Etkinliği Özet Yanıtı

{
    "status": "string",
    "response": [
        {
            "date": "date | string",
            "total_new_contacts": "integer",
            "total_message_requests": "integer"
        }
    ]
}

Hata Yanıtları

Tüm endpoint'ler aşağıdaki hata yanıtlarını döndürebilir:

  • 401 Unauthorized: Kimlik doğrulama başarısız olduğunda
  • 404 Not Found: İstenen kaynak bulunamadığında
  • 500 Internal Server Error: Beklenmedik bir hata oluştuğunda

Hata yanıtı formatı:

{
"detail": "Error message"
}