Conversations API

Direct-message inboxes for networks that allow it through their API.

OperationMethod and path
Get conversationsGET /api/v1/conversations
Get conversationGET /api/v1/conversations/{id}
Update conversationPATCH /api/v1/conversations/{id}
Get conversation messagesGET /api/v1/conversations/{id}/messages
Send a conversation messagePOST /api/v1/conversations/{id}/messages
React or unreact to a conversation messagePOST /api/v1/conversations/{id}/messages/{messageId}/reaction
Mark conversation as readPOST /api/v1/conversations/{id}/read
Send a private reply to a fetched Meta commentPOST /api/v1/conversations/private-reply
Archive conversationPOST /api/v1/conversations/{id}/archive
Open conversationPOST /api/v1/conversations/{id}/open
GET /api/v1/conversations

Get conversations

conversation.getList · requires x-api-key

Parameters

NameInTypeNotes
teamId required query string
platform query string One of INSTAGRAM, FACEBOOK
socialAccountId query string
status query string One of OPEN, ARCHIVED
offset query integer default 0 · nullable
limit query integer default 10 · nullable
cursor query string nullable

Example

curl -X GET "https://api.siaran.my/api/v1/conversations/?teamId=TEAM_ID" \
  -H "x-api-key: $SIAR_API_KEY"

Response 200

3 top-level fields
  • items object[] required
    20 fields
    • id string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • externalConversationId string nullable
    • externalParticipantId string required
    • participantUsername string nullable
    • participantDisplayName string nullable
    • participantAvatarUrl string nullable
    • status string required
      One of: OPEN ARCHIVED
    • lastMessageAt string nullable date-time
    • lastActivityAt string required nullable date-time
    • lastMessagePreview string nullable
    • lastReadAt string nullable date-time
    • unreadCount number required
    • platformSeenAt string nullable date-time
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      3 fields
      • canReply boolean nullable
      • lastInboundAt string nullable date-time
      • providerStateSync object nullable
        5 fields
        • action string required
          One of: ARCHIVE OPEN
        • status string required
          One of: SYNCED SYNC_FAILED UNSUPPORTED
        • reason string nullable
        • error string nullable
        • syncedAt string nullable date-time
    • socialAccount object
      26 fields
      • id string required
      • type string required
        One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
      • teamId string required
      • username string nullable
      • displayName string nullable
      • bio string nullable
      • avatarUrl string nullable
      • externalId string nullable
      • providerPageId string nullable
      • userUsername string nullable
      • userDisplayName string nullable
      • userEmail string nullable
      • userId string nullable
      • channels object[] nullable
        7 fields
        • id string required
        • name string nullable
        • username string nullable
        • address string nullable
        • avatarUrl string nullable
        • webhook object nullable
          4 fields
          • id string nullable
          • name string nullable
          • avatar string nullable
          • url string nullable
        • metadata object nullable
          5 fields
          • allowImages boolean nullable
          • allowVideos boolean nullable
          • allowGalleries boolean nullable
          • linkFlairEnabled boolean nullable
          • facebookPageId string nullable
      • mastodonServerId string nullable
      • instagramConnectionMethod string nullable
        One of: FACEBOOK INSTAGRAM
      • twitterSubType string nullable
        One of: none basic premium premium_plus
      • isTiktokBusinessAccount boolean nullable
      • disconnectedCheckTryAt string nullable date-time
      • deleteOn string nullable date-time
      • messagingStatus string default "DISABLED"
        One of: DISABLED ENABLED DISABLE_PENDING
      • messagingStatusUpdatedAt string nullable date-time
      • messagingLastError string nullable
      • createdAt string required nullable date-time
      • updatedAt string required nullable date-time
      • deletedAt string nullable date-time
  • total number
  • nextCursor string nullable

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

GET /api/v1/conversations/{id}

Get conversation

conversation.get · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Example

curl -X GET "https://api.siaran.my/api/v1/conversations/ID" \
  -H "x-api-key: $SIAR_API_KEY"

Response 200

20 top-level fields
  • id string required
  • teamId string required
  • socialAccountId string required
  • platform string required
    One of: INSTAGRAM FACEBOOK
  • externalConversationId string nullable
  • externalParticipantId string required
  • participantUsername string nullable
  • participantDisplayName string nullable
  • participantAvatarUrl string nullable
  • status string required
    One of: OPEN ARCHIVED
  • lastMessageAt string nullable date-time
  • lastActivityAt string required nullable date-time
  • lastMessagePreview string nullable
  • lastReadAt string nullable date-time
  • unreadCount number required
  • platformSeenAt string nullable date-time
  • createdAt string required nullable date-time
  • updatedAt string required nullable date-time
  • platformData object default {}
    3 fields
    • canReply boolean nullable
    • lastInboundAt string nullable date-time
    • providerStateSync object nullable
      5 fields
      • action string required
        One of: ARCHIVE OPEN
      • status string required
        One of: SYNCED SYNC_FAILED UNSUPPORTED
      • reason string nullable
      • error string nullable
      • syncedAt string nullable date-time
  • socialAccount object
    26 fields
    • id string required
    • type string required
      One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
    • teamId string required
    • username string nullable
    • displayName string nullable
    • bio string nullable
    • avatarUrl string nullable
    • externalId string nullable
    • providerPageId string nullable
    • userUsername string nullable
    • userDisplayName string nullable
    • userEmail string nullable
    • userId string nullable
    • channels object[] nullable
      7 fields
      • id string required
      • name string nullable
      • username string nullable
      • address string nullable
      • avatarUrl string nullable
      • webhook object nullable
        4 fields
        • id string nullable
        • name string nullable
        • avatar string nullable
        • url string nullable
      • metadata object nullable
        5 fields
        • allowImages boolean nullable
        • allowVideos boolean nullable
        • allowGalleries boolean nullable
        • linkFlairEnabled boolean nullable
        • facebookPageId string nullable
    • mastodonServerId string nullable
    • instagramConnectionMethod string nullable
      One of: FACEBOOK INSTAGRAM
    • twitterSubType string nullable
      One of: none basic premium premium_plus
    • isTiktokBusinessAccount boolean nullable
    • disconnectedCheckTryAt string nullable date-time
    • deleteOn string nullable date-time
    • messagingStatus string default "DISABLED"
      One of: DISABLED ENABLED DISABLE_PENDING
    • messagingStatusUpdatedAt string nullable date-time
    • messagingLastError string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • deletedAt string nullable date-time

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

PATCH /api/v1/conversations/{id}

Update conversation

conversation.update · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Request body application/json

  • status string required
    One of: OPEN ARCHIVED

Example

curl -X PATCH "https://api.siaran.my/api/v1/conversations/ID" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "status": "OPEN"
  }'

Response 200

20 top-level fields
  • id string required
  • teamId string required
  • socialAccountId string required
  • platform string required
    One of: INSTAGRAM FACEBOOK
  • externalConversationId string nullable
  • externalParticipantId string required
  • participantUsername string nullable
  • participantDisplayName string nullable
  • participantAvatarUrl string nullable
  • status string required
    One of: OPEN ARCHIVED
  • lastMessageAt string nullable date-time
  • lastActivityAt string required nullable date-time
  • lastMessagePreview string nullable
  • lastReadAt string nullable date-time
  • unreadCount number required
  • platformSeenAt string nullable date-time
  • createdAt string required nullable date-time
  • updatedAt string required nullable date-time
  • platformData object default {}
    3 fields
    • canReply boolean nullable
    • lastInboundAt string nullable date-time
    • providerStateSync object nullable
      5 fields
      • action string required
        One of: ARCHIVE OPEN
      • status string required
        One of: SYNCED SYNC_FAILED UNSUPPORTED
      • reason string nullable
      • error string nullable
      • syncedAt string nullable date-time
  • socialAccount object
    26 fields
    • id string required
    • type string required
      One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
    • teamId string required
    • username string nullable
    • displayName string nullable
    • bio string nullable
    • avatarUrl string nullable
    • externalId string nullable
    • providerPageId string nullable
    • userUsername string nullable
    • userDisplayName string nullable
    • userEmail string nullable
    • userId string nullable
    • channels object[] nullable
      7 fields
      • id string required
      • name string nullable
      • username string nullable
      • address string nullable
      • avatarUrl string nullable
      • webhook object nullable
        4 fields
        • id string nullable
        • name string nullable
        • avatar string nullable
        • url string nullable
      • metadata object nullable
        5 fields
        • allowImages boolean nullable
        • allowVideos boolean nullable
        • allowGalleries boolean nullable
        • linkFlairEnabled boolean nullable
        • facebookPageId string nullable
    • mastodonServerId string nullable
    • instagramConnectionMethod string nullable
      One of: FACEBOOK INSTAGRAM
    • twitterSubType string nullable
      One of: none basic premium premium_plus
    • isTiktokBusinessAccount boolean nullable
    • disconnectedCheckTryAt string nullable date-time
    • deleteOn string nullable date-time
    • messagingStatus string default "DISABLED"
      One of: DISABLED ENABLED DISABLE_PENDING
    • messagingStatusUpdatedAt string nullable date-time
    • messagingLastError string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • deletedAt string nullable date-time

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

GET /api/v1/conversations/{id}/messages

Get conversation messages

conversation.getMessages · requires x-api-key

Parameters

NameInTypeNotes
id required path string
offset query integer default 0 · nullable
limit query integer default 10 · nullable
cursor query string nullable

Example

curl -X GET "https://api.siaran.my/api/v1/conversations/ID/messages" \
  -H "x-api-key: $SIAR_API_KEY"

Response 200

3 top-level fields
  • items object[] required
    20 fields
    • id string required
    • conversationId string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • direction string required
      One of: INBOUND OUTBOUND
    • status string required
      One of: PENDING SENT DELIVERED SEEN FAILED
    • source string required
      One of: PRIVATE_REPLY DM WEBHOOK API ECHO
    • externalMessageId string nullable
    • text string nullable
    • attachments object[] default []
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • sentAt string nullable date-time
    • failedAt string nullable date-time
    • error string nullable
    • seenAt string nullable date-time
    • replyTo object nullable
      3 fields
      • externalMessageId string nullable
      • isSelfReply boolean nullable
      • messageId string nullable
    • privateReplyContext object nullable
      10 fields
      • fetchedCommentId string required
      • externalCommentId string nullable
      • text string nullable
      • authorName string nullable
      • authorAvatarUrl string nullable
      • publishedAt string nullable date-time
      • postId string nullable
      • externalPostId string nullable
      • postPermalink string nullable
      • postThumbnailUrl string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      12 fields
      • replyTo object nullable
        2 fields
        • externalMessageId string nullable
        • isSelfReply boolean nullable
      • reactions object[]
        4 fields
        • senderId string required
        • reaction string nullable
        • emoji string nullable
        • reactedAt string nullable date-time
      • quickReplies object[]
        3 fields
        • id string min length 1max length 36
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000
      • buttons object | object | object[]
        One of 3 shapes

        type = POSTBACK

        • id string min length 1max length 36
        • type string required
          One of: POSTBACK
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000

        type = URL

        • id string min length 1max length 36
        • type string required
          One of: URL
        • label string required min length 1max length 20
        • url string required uri

        type = PHONE

        • id string min length 1max length 36
        • type string required
          One of: PHONE
        • label string required min length 1max length 20
        • phoneNumber string required min length 3max length 30
      • carousel object nullable
        1 field
        • cards object[] required min 1 itemsmax 10 items
          5 fields
          • id string min length 1max length 36
          • title string required min length 1max length 80
          • subtitle string nullable max length 80
          • imageUrl string nullable uri
          • buttons object | object | object[] max 3 items
            One of 3 shapes

            type = POSTBACK

            • id string min length 1max length 36
            • type string required
              One of: POSTBACK
            • label string required min length 1max length 20
            • payload string required min length 1max length 1,000

            type = URL

            • id string min length 1max length 36
            • type string required
              One of: URL
            • label string required min length 1max length 20
            • url string required uri

            type = PHONE

            • id string min length 1max length 36
            • type string required
              One of: PHONE
            • label string required min length 1max length 20
            • phoneNumber string required min length 3max length 30
      • isEcho boolean nullable
      • isEdited boolean nullable
      • editedAt string nullable date-time
      • isPostback boolean nullable
      • postbackPayload string nullable
      • isUnsent boolean nullable
      • unsentAt string nullable date-time
  • total number
  • nextCursor string nullable

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

POST /api/v1/conversations/{id}/messages

Send a conversation message

conversation.sendMessage · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Request body application/json

  • content object required
    5 fields
    • text string max length 1,000
    • attachments object[] max 10 items
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • quickReplies object[] max 13 items
      3 fields
      • id string min length 1max length 36
      • label string required min length 1max length 20
      • payload string required min length 1max length 1,000
    • buttons object | object | object[] max 3 items
      One of 3 shapes

      type = POSTBACK

      • id string min length 1max length 36
      • type string required
        One of: POSTBACK
      • label string required min length 1max length 20
      • payload string required min length 1max length 1,000

      type = URL

      • id string min length 1max length 36
      • type string required
        One of: URL
      • label string required min length 1max length 20
      • url string required uri

      type = PHONE

      • id string min length 1max length 36
      • type string required
        One of: PHONE
      • label string required min length 1max length 20
      • phoneNumber string required min length 3max length 30
    • carousel object
      1 field
      • cards object[] required min 1 itemsmax 10 items
        5 fields
        • id string min length 1max length 36
        • title string required min length 1max length 80
        • subtitle string nullable max length 80
        • imageUrl string nullable uri
        • buttons object | object | object[] max 3 items
          One of 3 shapes

          type = POSTBACK

          • id string min length 1max length 36
          • type string required
            One of: POSTBACK
          • label string required min length 1max length 20
          • payload string required min length 1max length 1,000

          type = URL

          • id string min length 1max length 36
          • type string required
            One of: URL
          • label string required min length 1max length 20
          • url string required uri

          type = PHONE

          • id string min length 1max length 36
          • type string required
            One of: PHONE
          • label string required min length 1max length 20
          • phoneNumber string required min length 3max length 30
  • replyToMessageId string min length 1

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/ID/messages" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "content": {}
  }'

Response 200

3 top-level fields
  • conversation object required
    20 fields
    • id string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • externalConversationId string nullable
    • externalParticipantId string required
    • participantUsername string nullable
    • participantDisplayName string nullable
    • participantAvatarUrl string nullable
    • status string required
      One of: OPEN ARCHIVED
    • lastMessageAt string nullable date-time
    • lastActivityAt string required nullable date-time
    • lastMessagePreview string nullable
    • lastReadAt string nullable date-time
    • unreadCount number required
    • platformSeenAt string nullable date-time
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      3 fields
      • canReply boolean nullable
      • lastInboundAt string nullable date-time
      • providerStateSync object nullable
        5 fields
        • action string required
          One of: ARCHIVE OPEN
        • status string required
          One of: SYNCED SYNC_FAILED UNSUPPORTED
        • reason string nullable
        • error string nullable
        • syncedAt string nullable date-time
    • socialAccount object
      26 fields
      • id string required
      • type string required
        One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
      • teamId string required
      • username string nullable
      • displayName string nullable
      • bio string nullable
      • avatarUrl string nullable
      • externalId string nullable
      • providerPageId string nullable
      • userUsername string nullable
      • userDisplayName string nullable
      • userEmail string nullable
      • userId string nullable
      • channels object[] nullable
        7 fields
        • id string required
        • name string nullable
        • username string nullable
        • address string nullable
        • avatarUrl string nullable
        • webhook object nullable
          4 fields
          • id string nullable
          • name string nullable
          • avatar string nullable
          • url string nullable
        • metadata object nullable
          5 fields
          • allowImages boolean nullable
          • allowVideos boolean nullable
          • allowGalleries boolean nullable
          • linkFlairEnabled boolean nullable
          • facebookPageId string nullable
      • mastodonServerId string nullable
      • instagramConnectionMethod string nullable
        One of: FACEBOOK INSTAGRAM
      • twitterSubType string nullable
        One of: none basic premium premium_plus
      • isTiktokBusinessAccount boolean nullable
      • disconnectedCheckTryAt string nullable date-time
      • deleteOn string nullable date-time
      • messagingStatus string default "DISABLED"
        One of: DISABLED ENABLED DISABLE_PENDING
      • messagingStatusUpdatedAt string nullable date-time
      • messagingLastError string nullable
      • createdAt string required nullable date-time
      • updatedAt string required nullable date-time
      • deletedAt string nullable date-time
  • message object required
    20 fields
    • id string required
    • conversationId string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • direction string required
      One of: INBOUND OUTBOUND
    • status string required
      One of: PENDING SENT DELIVERED SEEN FAILED
    • source string required
      One of: PRIVATE_REPLY DM WEBHOOK API ECHO
    • externalMessageId string nullable
    • text string nullable
    • attachments object[] default []
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • sentAt string nullable date-time
    • failedAt string nullable date-time
    • error string nullable
    • seenAt string nullable date-time
    • replyTo object nullable
      3 fields
      • externalMessageId string nullable
      • isSelfReply boolean nullable
      • messageId string nullable
    • privateReplyContext object nullable
      10 fields
      • fetchedCommentId string required
      • externalCommentId string nullable
      • text string nullable
      • authorName string nullable
      • authorAvatarUrl string nullable
      • publishedAt string nullable date-time
      • postId string nullable
      • externalPostId string nullable
      • postPermalink string nullable
      • postThumbnailUrl string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      12 fields
      • replyTo object nullable
        2 fields
        • externalMessageId string nullable
        • isSelfReply boolean nullable
      • reactions object[]
        4 fields
        • senderId string required
        • reaction string nullable
        • emoji string nullable
        • reactedAt string nullable date-time
      • quickReplies object[]
        3 fields
        • id string min length 1max length 36
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000
      • buttons object | object | object[]
        One of 3 shapes

        type = POSTBACK

        • id string min length 1max length 36
        • type string required
          One of: POSTBACK
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000

        type = URL

        • id string min length 1max length 36
        • type string required
          One of: URL
        • label string required min length 1max length 20
        • url string required uri

        type = PHONE

        • id string min length 1max length 36
        • type string required
          One of: PHONE
        • label string required min length 1max length 20
        • phoneNumber string required min length 3max length 30
      • carousel object nullable
        1 field
        • cards object[] required min 1 itemsmax 10 items
          5 fields
          • id string min length 1max length 36
          • title string required min length 1max length 80
          • subtitle string nullable max length 80
          • imageUrl string nullable uri
          • buttons object | object | object[] max 3 items
            One of 3 shapes

            type = POSTBACK

            • id string min length 1max length 36
            • type string required
              One of: POSTBACK
            • label string required min length 1max length 20
            • payload string required min length 1max length 1,000

            type = URL

            • id string min length 1max length 36
            • type string required
              One of: URL
            • label string required min length 1max length 20
            • url string required uri

            type = PHONE

            • id string min length 1max length 36
            • type string required
              One of: PHONE
            • label string required min length 1max length 20
            • phoneNumber string required min length 3max length 30
      • isEcho boolean nullable
      • isEdited boolean nullable
      • editedAt string nullable date-time
      • isPostback boolean nullable
      • postbackPayload string nullable
      • isUnsent boolean nullable
      • unsentAt string nullable date-time
  • conflict boolean default false

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error · 503 Unavailable

POST /api/v1/conversations/{id}/messages/{messageId}/reaction

React or unreact to a conversation message

conversation.reactMessage · requires x-api-key

Parameters

NameInTypeNotes
id required path string
messageId required path string

Request body application/json

  • action string required
    One of: REACT UNREACT
  • reaction string
    One of: love like dislike haha wow sad angry

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/ID/messages/MESSAGEID/reaction" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "action": "REACT"
  }'

Response 200

3 top-level fields
  • conversation object required
    20 fields
    • id string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • externalConversationId string nullable
    • externalParticipantId string required
    • participantUsername string nullable
    • participantDisplayName string nullable
    • participantAvatarUrl string nullable
    • status string required
      One of: OPEN ARCHIVED
    • lastMessageAt string nullable date-time
    • lastActivityAt string required nullable date-time
    • lastMessagePreview string nullable
    • lastReadAt string nullable date-time
    • unreadCount number required
    • platformSeenAt string nullable date-time
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      3 fields
      • canReply boolean nullable
      • lastInboundAt string nullable date-time
      • providerStateSync object nullable
        5 fields
        • action string required
          One of: ARCHIVE OPEN
        • status string required
          One of: SYNCED SYNC_FAILED UNSUPPORTED
        • reason string nullable
        • error string nullable
        • syncedAt string nullable date-time
    • socialAccount object
      26 fields
      • id string required
      • type string required
        One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
      • teamId string required
      • username string nullable
      • displayName string nullable
      • bio string nullable
      • avatarUrl string nullable
      • externalId string nullable
      • providerPageId string nullable
      • userUsername string nullable
      • userDisplayName string nullable
      • userEmail string nullable
      • userId string nullable
      • channels object[] nullable
        7 fields
        • id string required
        • name string nullable
        • username string nullable
        • address string nullable
        • avatarUrl string nullable
        • webhook object nullable
          4 fields
          • id string nullable
          • name string nullable
          • avatar string nullable
          • url string nullable
        • metadata object nullable
          5 fields
          • allowImages boolean nullable
          • allowVideos boolean nullable
          • allowGalleries boolean nullable
          • linkFlairEnabled boolean nullable
          • facebookPageId string nullable
      • mastodonServerId string nullable
      • instagramConnectionMethod string nullable
        One of: FACEBOOK INSTAGRAM
      • twitterSubType string nullable
        One of: none basic premium premium_plus
      • isTiktokBusinessAccount boolean nullable
      • disconnectedCheckTryAt string nullable date-time
      • deleteOn string nullable date-time
      • messagingStatus string default "DISABLED"
        One of: DISABLED ENABLED DISABLE_PENDING
      • messagingStatusUpdatedAt string nullable date-time
      • messagingLastError string nullable
      • createdAt string required nullable date-time
      • updatedAt string required nullable date-time
      • deletedAt string nullable date-time
  • message object required
    20 fields
    • id string required
    • conversationId string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • direction string required
      One of: INBOUND OUTBOUND
    • status string required
      One of: PENDING SENT DELIVERED SEEN FAILED
    • source string required
      One of: PRIVATE_REPLY DM WEBHOOK API ECHO
    • externalMessageId string nullable
    • text string nullable
    • attachments object[] default []
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • sentAt string nullable date-time
    • failedAt string nullable date-time
    • error string nullable
    • seenAt string nullable date-time
    • replyTo object nullable
      3 fields
      • externalMessageId string nullable
      • isSelfReply boolean nullable
      • messageId string nullable
    • privateReplyContext object nullable
      10 fields
      • fetchedCommentId string required
      • externalCommentId string nullable
      • text string nullable
      • authorName string nullable
      • authorAvatarUrl string nullable
      • publishedAt string nullable date-time
      • postId string nullable
      • externalPostId string nullable
      • postPermalink string nullable
      • postThumbnailUrl string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      12 fields
      • replyTo object nullable
        2 fields
        • externalMessageId string nullable
        • isSelfReply boolean nullable
      • reactions object[]
        4 fields
        • senderId string required
        • reaction string nullable
        • emoji string nullable
        • reactedAt string nullable date-time
      • quickReplies object[]
        3 fields
        • id string min length 1max length 36
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000
      • buttons object | object | object[]
        One of 3 shapes

        type = POSTBACK

        • id string min length 1max length 36
        • type string required
          One of: POSTBACK
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000

        type = URL

        • id string min length 1max length 36
        • type string required
          One of: URL
        • label string required min length 1max length 20
        • url string required uri

        type = PHONE

        • id string min length 1max length 36
        • type string required
          One of: PHONE
        • label string required min length 1max length 20
        • phoneNumber string required min length 3max length 30
      • carousel object nullable
        1 field
        • cards object[] required min 1 itemsmax 10 items
          5 fields
          • id string min length 1max length 36
          • title string required min length 1max length 80
          • subtitle string nullable max length 80
          • imageUrl string nullable uri
          • buttons object | object | object[] max 3 items
            One of 3 shapes

            type = POSTBACK

            • id string min length 1max length 36
            • type string required
              One of: POSTBACK
            • label string required min length 1max length 20
            • payload string required min length 1max length 1,000

            type = URL

            • id string min length 1max length 36
            • type string required
              One of: URL
            • label string required min length 1max length 20
            • url string required uri

            type = PHONE

            • id string min length 1max length 36
            • type string required
              One of: PHONE
            • label string required min length 1max length 20
            • phoneNumber string required min length 3max length 30
      • isEcho boolean nullable
      • isEdited boolean nullable
      • editedAt string nullable date-time
      • isPostback boolean nullable
      • postbackPayload string nullable
      • isUnsent boolean nullable
      • unsentAt string nullable date-time
  • conflict boolean default false

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error · 503 Unavailable

POST /api/v1/conversations/{id}/read

Mark conversation as read

conversation.markRead · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Request body application/json

  • readAt string nullable date-time

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/ID/read" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "readAt": "2026-11-02T09:00:00.000Z"
  }'

Response 200

20 top-level fields
  • id string required
  • teamId string required
  • socialAccountId string required
  • platform string required
    One of: INSTAGRAM FACEBOOK
  • externalConversationId string nullable
  • externalParticipantId string required
  • participantUsername string nullable
  • participantDisplayName string nullable
  • participantAvatarUrl string nullable
  • status string required
    One of: OPEN ARCHIVED
  • lastMessageAt string nullable date-time
  • lastActivityAt string required nullable date-time
  • lastMessagePreview string nullable
  • lastReadAt string nullable date-time
  • unreadCount number required
  • platformSeenAt string nullable date-time
  • createdAt string required nullable date-time
  • updatedAt string required nullable date-time
  • platformData object default {}
    3 fields
    • canReply boolean nullable
    • lastInboundAt string nullable date-time
    • providerStateSync object nullable
      5 fields
      • action string required
        One of: ARCHIVE OPEN
      • status string required
        One of: SYNCED SYNC_FAILED UNSUPPORTED
      • reason string nullable
      • error string nullable
      • syncedAt string nullable date-time
  • socialAccount object
    26 fields
    • id string required
    • type string required
      One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
    • teamId string required
    • username string nullable
    • displayName string nullable
    • bio string nullable
    • avatarUrl string nullable
    • externalId string nullable
    • providerPageId string nullable
    • userUsername string nullable
    • userDisplayName string nullable
    • userEmail string nullable
    • userId string nullable
    • channels object[] nullable
      7 fields
      • id string required
      • name string nullable
      • username string nullable
      • address string nullable
      • avatarUrl string nullable
      • webhook object nullable
        4 fields
        • id string nullable
        • name string nullable
        • avatar string nullable
        • url string nullable
      • metadata object nullable
        5 fields
        • allowImages boolean nullable
        • allowVideos boolean nullable
        • allowGalleries boolean nullable
        • linkFlairEnabled boolean nullable
        • facebookPageId string nullable
    • mastodonServerId string nullable
    • instagramConnectionMethod string nullable
      One of: FACEBOOK INSTAGRAM
    • twitterSubType string nullable
      One of: none basic premium premium_plus
    • isTiktokBusinessAccount boolean nullable
    • disconnectedCheckTryAt string nullable date-time
    • deleteOn string nullable date-time
    • messagingStatus string default "DISABLED"
      One of: DISABLED ENABLED DISABLE_PENDING
    • messagingStatusUpdatedAt string nullable date-time
    • messagingLastError string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • deletedAt string nullable date-time

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

POST /api/v1/conversations/private-reply

Send a private reply to a fetched Meta comment

conversation.privateReply · requires x-api-key

Request body application/json

  • teamId string required
  • fetchedCommentId string required
  • content object required
    3 fields
    • text string required min length 1max length 1,000
    • attachments object[] max 10 items
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • carousel object
      1 field
      • cards object[] required min 1 itemsmax 10 items
        5 fields
        • id string min length 1max length 36
        • title string required min length 1max length 80
        • subtitle string nullable max length 80
        • imageUrl string nullable uri
        • buttons object | object | object[] max 3 items
          One of 3 shapes

          type = POSTBACK

          • id string min length 1max length 36
          • type string required
            One of: POSTBACK
          • label string required min length 1max length 20
          • payload string required min length 1max length 1,000

          type = URL

          • id string min length 1max length 36
          • type string required
            One of: URL
          • label string required min length 1max length 20
          • url string required uri

          type = PHONE

          • id string min length 1max length 36
          • type string required
            One of: PHONE
          • label string required min length 1max length 20
          • phoneNumber string required min length 3max length 30

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/private-reply" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "teamId": "TEAM_ID",
    "fetchedCommentId": "FETCHEDCOMMENT_ID",
    "content": {
      "text": "Hello from Siar"
    }
  }'

Response 200

3 top-level fields
  • conversation object required
    20 fields
    • id string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • externalConversationId string nullable
    • externalParticipantId string required
    • participantUsername string nullable
    • participantDisplayName string nullable
    • participantAvatarUrl string nullable
    • status string required
      One of: OPEN ARCHIVED
    • lastMessageAt string nullable date-time
    • lastActivityAt string required nullable date-time
    • lastMessagePreview string nullable
    • lastReadAt string nullable date-time
    • unreadCount number required
    • platformSeenAt string nullable date-time
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      3 fields
      • canReply boolean nullable
      • lastInboundAt string nullable date-time
      • providerStateSync object nullable
        5 fields
        • action string required
          One of: ARCHIVE OPEN
        • status string required
          One of: SYNCED SYNC_FAILED UNSUPPORTED
        • reason string nullable
        • error string nullable
        • syncedAt string nullable date-time
    • socialAccount object
      26 fields
      • id string required
      • type string required
        One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
      • teamId string required
      • username string nullable
      • displayName string nullable
      • bio string nullable
      • avatarUrl string nullable
      • externalId string nullable
      • providerPageId string nullable
      • userUsername string nullable
      • userDisplayName string nullable
      • userEmail string nullable
      • userId string nullable
      • channels object[] nullable
        7 fields
        • id string required
        • name string nullable
        • username string nullable
        • address string nullable
        • avatarUrl string nullable
        • webhook object nullable
          4 fields
          • id string nullable
          • name string nullable
          • avatar string nullable
          • url string nullable
        • metadata object nullable
          5 fields
          • allowImages boolean nullable
          • allowVideos boolean nullable
          • allowGalleries boolean nullable
          • linkFlairEnabled boolean nullable
          • facebookPageId string nullable
      • mastodonServerId string nullable
      • instagramConnectionMethod string nullable
        One of: FACEBOOK INSTAGRAM
      • twitterSubType string nullable
        One of: none basic premium premium_plus
      • isTiktokBusinessAccount boolean nullable
      • disconnectedCheckTryAt string nullable date-time
      • deleteOn string nullable date-time
      • messagingStatus string default "DISABLED"
        One of: DISABLED ENABLED DISABLE_PENDING
      • messagingStatusUpdatedAt string nullable date-time
      • messagingLastError string nullable
      • createdAt string required nullable date-time
      • updatedAt string required nullable date-time
      • deletedAt string nullable date-time
  • message object required
    20 fields
    • id string required
    • conversationId string required
    • teamId string required
    • socialAccountId string required
    • platform string required
      One of: INSTAGRAM FACEBOOK
    • direction string required
      One of: INBOUND OUTBOUND
    • status string required
      One of: PENDING SENT DELIVERED SEEN FAILED
    • source string required
      One of: PRIVATE_REPLY DM WEBHOOK API ECHO
    • externalMessageId string nullable
    • text string nullable
    • attachments object[] default []
      8 fields
      • type string required
        One of: IMAGE VIDEO AUDIO FILE POST UNKNOWN
      • url string nullable
      • externalId string nullable
      • mimeType string nullable
      • name string nullable
      • captionTrackUrl string nullable
      • captionLanguage string nullable
      • captionLabel string nullable
    • sentAt string nullable date-time
    • failedAt string nullable date-time
    • error string nullable
    • seenAt string nullable date-time
    • replyTo object nullable
      3 fields
      • externalMessageId string nullable
      • isSelfReply boolean nullable
      • messageId string nullable
    • privateReplyContext object nullable
      10 fields
      • fetchedCommentId string required
      • externalCommentId string nullable
      • text string nullable
      • authorName string nullable
      • authorAvatarUrl string nullable
      • publishedAt string nullable date-time
      • postId string nullable
      • externalPostId string nullable
      • postPermalink string nullable
      • postThumbnailUrl string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • platformData object default {}
      12 fields
      • replyTo object nullable
        2 fields
        • externalMessageId string nullable
        • isSelfReply boolean nullable
      • reactions object[]
        4 fields
        • senderId string required
        • reaction string nullable
        • emoji string nullable
        • reactedAt string nullable date-time
      • quickReplies object[]
        3 fields
        • id string min length 1max length 36
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000
      • buttons object | object | object[]
        One of 3 shapes

        type = POSTBACK

        • id string min length 1max length 36
        • type string required
          One of: POSTBACK
        • label string required min length 1max length 20
        • payload string required min length 1max length 1,000

        type = URL

        • id string min length 1max length 36
        • type string required
          One of: URL
        • label string required min length 1max length 20
        • url string required uri

        type = PHONE

        • id string min length 1max length 36
        • type string required
          One of: PHONE
        • label string required min length 1max length 20
        • phoneNumber string required min length 3max length 30
      • carousel object nullable
        1 field
        • cards object[] required min 1 itemsmax 10 items
          5 fields
          • id string min length 1max length 36
          • title string required min length 1max length 80
          • subtitle string nullable max length 80
          • imageUrl string nullable uri
          • buttons object | object | object[] max 3 items
            One of 3 shapes

            type = POSTBACK

            • id string min length 1max length 36
            • type string required
              One of: POSTBACK
            • label string required min length 1max length 20
            • payload string required min length 1max length 1,000

            type = URL

            • id string min length 1max length 36
            • type string required
              One of: URL
            • label string required min length 1max length 20
            • url string required uri

            type = PHONE

            • id string min length 1max length 36
            • type string required
              One of: PHONE
            • label string required min length 1max length 20
            • phoneNumber string required min length 3max length 30
      • isEcho boolean nullable
      • isEdited boolean nullable
      • editedAt string nullable date-time
      • isPostback boolean nullable
      • postbackPayload string nullable
      • isUnsent boolean nullable
      • unsentAt string nullable date-time
  • conflict boolean default false

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error · 503 Unavailable

POST /api/v1/conversations/{id}/archive

Archive conversation

conversation.archive · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/ID/archive" \
  -H "x-api-key: $SIAR_API_KEY"

Response 200

20 top-level fields
  • id string required
  • teamId string required
  • socialAccountId string required
  • platform string required
    One of: INSTAGRAM FACEBOOK
  • externalConversationId string nullable
  • externalParticipantId string required
  • participantUsername string nullable
  • participantDisplayName string nullable
  • participantAvatarUrl string nullable
  • status string required
    One of: OPEN ARCHIVED
  • lastMessageAt string nullable date-time
  • lastActivityAt string required nullable date-time
  • lastMessagePreview string nullable
  • lastReadAt string nullable date-time
  • unreadCount number required
  • platformSeenAt string nullable date-time
  • createdAt string required nullable date-time
  • updatedAt string required nullable date-time
  • platformData object default {}
    3 fields
    • canReply boolean nullable
    • lastInboundAt string nullable date-time
    • providerStateSync object nullable
      5 fields
      • action string required
        One of: ARCHIVE OPEN
      • status string required
        One of: SYNCED SYNC_FAILED UNSUPPORTED
      • reason string nullable
      • error string nullable
      • syncedAt string nullable date-time
  • socialAccount object
    26 fields
    • id string required
    • type string required
      One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
    • teamId string required
    • username string nullable
    • displayName string nullable
    • bio string nullable
    • avatarUrl string nullable
    • externalId string nullable
    • providerPageId string nullable
    • userUsername string nullable
    • userDisplayName string nullable
    • userEmail string nullable
    • userId string nullable
    • channels object[] nullable
      7 fields
      • id string required
      • name string nullable
      • username string nullable
      • address string nullable
      • avatarUrl string nullable
      • webhook object nullable
        4 fields
        • id string nullable
        • name string nullable
        • avatar string nullable
        • url string nullable
      • metadata object nullable
        5 fields
        • allowImages boolean nullable
        • allowVideos boolean nullable
        • allowGalleries boolean nullable
        • linkFlairEnabled boolean nullable
        • facebookPageId string nullable
    • mastodonServerId string nullable
    • instagramConnectionMethod string nullable
      One of: FACEBOOK INSTAGRAM
    • twitterSubType string nullable
      One of: none basic premium premium_plus
    • isTiktokBusinessAccount boolean nullable
    • disconnectedCheckTryAt string nullable date-time
    • deleteOn string nullable date-time
    • messagingStatus string default "DISABLED"
      One of: DISABLED ENABLED DISABLE_PENDING
    • messagingStatusUpdatedAt string nullable date-time
    • messagingLastError string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • deletedAt string nullable date-time

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error

POST /api/v1/conversations/{id}/open

Open conversation

conversation.open · requires x-api-key

Parameters

NameInTypeNotes
id required path string

Example

curl -X POST "https://api.siaran.my/api/v1/conversations/ID/open" \
  -H "x-api-key: $SIAR_API_KEY"

Response 200

20 top-level fields
  • id string required
  • teamId string required
  • socialAccountId string required
  • platform string required
    One of: INSTAGRAM FACEBOOK
  • externalConversationId string nullable
  • externalParticipantId string required
  • participantUsername string nullable
  • participantDisplayName string nullable
  • participantAvatarUrl string nullable
  • status string required
    One of: OPEN ARCHIVED
  • lastMessageAt string nullable date-time
  • lastActivityAt string required nullable date-time
  • lastMessagePreview string nullable
  • lastReadAt string nullable date-time
  • unreadCount number required
  • platformSeenAt string nullable date-time
  • createdAt string required nullable date-time
  • updatedAt string required nullable date-time
  • platformData object default {}
    3 fields
    • canReply boolean nullable
    • lastInboundAt string nullable date-time
    • providerStateSync object nullable
      5 fields
      • action string required
        One of: ARCHIVE OPEN
      • status string required
        One of: SYNCED SYNC_FAILED UNSUPPORTED
      • reason string nullable
      • error string nullable
      • syncedAt string nullable date-time
  • socialAccount object
    26 fields
    • id string required
    • type string required
      One of: TIKTOK YOUTUBE INSTAGRAM FACEBOOK TWITTER THREADS LINKEDIN PINTEREST REDDIT MASTODON DISCORD SLACK BLUESKY GOOGLE_BUSINESS SNAPCHAT
    • teamId string required
    • username string nullable
    • displayName string nullable
    • bio string nullable
    • avatarUrl string nullable
    • externalId string nullable
    • providerPageId string nullable
    • userUsername string nullable
    • userDisplayName string nullable
    • userEmail string nullable
    • userId string nullable
    • channels object[] nullable
      7 fields
      • id string required
      • name string nullable
      • username string nullable
      • address string nullable
      • avatarUrl string nullable
      • webhook object nullable
        4 fields
        • id string nullable
        • name string nullable
        • avatar string nullable
        • url string nullable
      • metadata object nullable
        5 fields
        • allowImages boolean nullable
        • allowVideos boolean nullable
        • allowGalleries boolean nullable
        • linkFlairEnabled boolean nullable
        • facebookPageId string nullable
    • mastodonServerId string nullable
    • instagramConnectionMethod string nullable
      One of: FACEBOOK INSTAGRAM
    • twitterSubType string nullable
      One of: none basic premium premium_plus
    • isTiktokBusinessAccount boolean nullable
    • disconnectedCheckTryAt string nullable date-time
    • deleteOn string nullable date-time
    • messagingStatus string default "DISABLED"
      One of: DISABLED ENABLED DISABLE_PENDING
    • messagingStatusUpdatedAt string nullable date-time
    • messagingLastError string nullable
    • createdAt string required nullable date-time
    • updatedAt string required nullable date-time
    • deletedAt string nullable date-time

Errors: 400 Validation failed · 401 Missing or invalid API key · 403 Plan limit or permission · 404 Not found · 429 Rate limited · 500 Server error · 502 Network error