{
  "service": "sendbird",
  "displayName": "Sendbird",
  "categories": [
    "Communication",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "SENDBIRD_API_TOKEN",
      "description": "Sendbird API token used with the Api-Token header. Find it in Sendbird Dashboard under Settings > Application > General > API tokens: https://sendbird.com/docs/chat/platform-api/v3/prepare-to-use-api.",
      "extraFields": [
        {
          "key": "applicationId",
          "label": "Application ID",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "sendbird-app-id",
          "description": "The Sendbird application ID used in the Platform API base URL, for example https://api-{application_id}.sendbird.com/v3."
        }
      ]
    }
  ],
  "homepageUrl": "https://sendbird.com",
  "actions": [
    {
      "id": "sendbird.add_members_group_channel",
      "service": "sendbird",
      "name": "add_members_group_channel",
      "description": "Invite members into an existing Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "hide_existing_messages": {
            "type": "boolean",
            "description": "Whether to hide previous messages from the invited users."
          },
          "seconds": {
            "type": "integer",
            "minimum": 0,
            "description": "The hide-existing-messages duration in seconds when required by Sendbird."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "user_ids"
        ],
        "description": "The input payload for adding members into a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "description": "The unique URL of the group channel."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel."
      }
    },
    {
      "id": "sendbird.ban_user_from_group_channel",
      "service": "sendbird",
      "name": "ban_user_from_group_channel",
      "description": "Ban a user from a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "seconds": {
            "type": "integer",
            "minimum": 0,
            "description": "The ban duration in seconds. Omit for a permanent ban."
          },
          "description": {
            "type": "string",
            "description": "The moderation reason to record."
          },
          "agent_id": {
            "type": "string",
            "description": "The moderator ID performing the action."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "user_id"
        ],
        "description": "The input payload for banning a user from a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The moderation result returned by Sendbird."
      }
    },
    {
      "id": "sendbird.create_channel",
      "service": "sendbird",
      "name": "create_channel",
      "description": "Create a Sendbird group channel with common JSON body fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The channel name."
          },
          "channel_url": {
            "type": "string",
            "description": "The custom channel URL to create."
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "operator_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "cover_url": {
            "type": "string",
            "description": "The cover image URL to assign to the channel."
          },
          "custom_type": {
            "type": "string",
            "description": "The custom type to assign to the channel."
          },
          "data": {
            "type": "string",
            "description": "The custom data payload to store for the channel."
          },
          "is_distinct": {
            "type": "boolean",
            "description": "Whether the channel should be distinct."
          },
          "is_public": {
            "type": "boolean",
            "description": "Whether the channel should be public."
          },
          "is_super": {
            "type": "boolean",
            "description": "Whether the channel should be a supergroup."
          },
          "is_ephemeral": {
            "type": "boolean",
            "description": "Whether the channel should be ephemeral."
          },
          "is_discoverable": {
            "type": "boolean",
            "description": "Whether the channel should be discoverable when supported by Sendbird."
          },
          "access_code": {
            "type": "string",
            "description": "The access code for a private public channel."
          },
          "strict": {
            "type": "boolean",
            "description": "Whether Sendbird should fail if a matching channel already exists."
          },
          "message_survival_seconds": {
            "type": "integer",
            "minimum": 0,
            "description": "The message survival duration in seconds when supported by Sendbird."
          }
        },
        "additionalProperties": true,
        "description": "The input payload for creating a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "description": "The unique URL of the group channel."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel."
      }
    },
    {
      "id": "sendbird.create_user",
      "service": "sendbird",
      "name": "create_user",
      "description": "Create a Sendbird user with common profile and metadata fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "nickname": {
            "type": "string",
            "description": "The nickname to assign to the new user."
          },
          "profile_url": {
            "type": "string",
            "description": "The URL of the user's profile image."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "A metadata value."
            },
            "description": "A metadata object whose keys and values are strings."
          },
          "issue_access_token": {
            "type": "boolean",
            "description": "Whether Sendbird should issue an access token for the user."
          },
          "discovery_keys": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "preferred_languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the user should be active."
          },
          "phone_number": {
            "type": "string",
            "description": "The phone number to store for the user."
          },
          "has_ever_logged_in": {
            "type": "boolean",
            "description": "Whether the user has logged in before when supported by Sendbird."
          }
        },
        "additionalProperties": true,
        "required": [
          "user_id"
        ],
        "description": "The input payload for creating a Sendbird user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "description": "The unique ID of the user."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird user object."
      }
    },
    {
      "id": "sendbird.delete_channel",
      "service": "sendbird",
      "name": "delete_channel",
      "description": "Delete a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for deleting a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.delete_message",
      "service": "sendbird",
      "name": "delete_message",
      "description": "Delete a Sendbird group channel message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The numeric identifier of the Sendbird message."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "message_id"
        ],
        "description": "The input payload for deleting a group channel message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.delete_user",
      "service": "sendbird",
      "name": "delete_user",
      "description": "Delete a Sendbird user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "hard_delete": {
            "type": "boolean",
            "description": "Whether to permanently delete the user and related data."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for deleting a Sendbird user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.get_number_of_channels_by_join_status",
      "service": "sendbird",
      "name": "get_number_of_channels_by_join_status",
      "description": "Get Sendbird group channel counts grouped by join status.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "super_mode": {
            "type": "string",
            "enum": [
              "all",
              "super",
              "nonsuper"
            ],
            "description": "Filter by whether the channel is a supergroup."
          },
          "public_mode": {
            "type": "string",
            "enum": [
              "all",
              "public",
              "private"
            ],
            "description": "Filter by whether the channel is public."
          },
          "distinct_mode": {
            "type": "string",
            "enum": [
              "all",
              "distinct",
              "nondistinct"
            ],
            "description": "Filter by whether the channel is distinct."
          },
          "hidden_mode": {
            "type": "string",
            "description": "The hidden-mode filter supported by the official API."
          },
          "unread_filter": {
            "type": "string",
            "description": "The unread filter supported by the official API."
          },
          "custom_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "state": {
            "type": "string",
            "enum": [
              "joined_only",
              "invited_only",
              "invited_by_friend",
              "invited_by_non_friend"
            ],
            "description": "When provided, only the specified join-state count is requested."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for getting group channel counts by join status."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "The total count of joined and invited group channels."
          },
          "joined": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of channels the user has joined."
          },
          "invited": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of channels the user has been invited to."
          },
          "invited_by_friend": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of channels the user was invited to by a friend."
          },
          "invited_by_non_friend": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of channels the user was invited to by a non-friend."
          }
        },
        "additionalProperties": false,
        "description": "The aggregated group channel counts by join status."
      }
    },
    {
      "id": "sendbird.get_number_of_unread_items",
      "service": "sendbird",
      "name": "get_number_of_unread_items",
      "description": "Get unread message, mention, and invitation counts for a Sendbird user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "item_keys": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A comma-separated unread item key list."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A non-empty string value."
                },
                "description": "A list of non-empty strings."
              }
            ],
            "description": "The unread item keys to retrieve."
          },
          "custom_types": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A comma-separated custom type list."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A non-empty string value."
                },
                "description": "A list of non-empty strings."
              }
            ],
            "description": "The custom channel types to filter the counts by."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for getting unread item counts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The unread item counts returned by Sendbird."
      }
    },
    {
      "id": "sendbird.issue_session_token",
      "service": "sendbird",
      "name": "issue_session_token",
      "description": "Issue a Sendbird session token for a user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "expires_at": {
            "type": "integer",
            "minimum": 0,
            "description": "A Unix timestamp in milliseconds."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for issuing a Sendbird session token."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The issued Sendbird session token."
      }
    },
    {
      "id": "sendbird.leave_group_channels",
      "service": "sendbird",
      "name": "leave_group_channels",
      "description": "Make a Sendbird user leave one or more joined group channels.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "should_leave_all": {
            "type": "boolean",
            "description": "Whether the user should leave all joined group channels."
          },
          "channel_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "custom_type": {
            "type": "string",
            "description": "Restrict the leave operation to channels with this custom type."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for leaving group channels."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.list_banned_members",
      "service": "sendbird",
      "name": "list_banned_members",
      "description": "List banned users from a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of results to return."
          },
          "token": {
            "type": "string",
            "description": "The pagination token returned by the previous response."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url"
        ],
        "description": "The input payload for listing banned users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "banned_list": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "user_id": {
                  "type": "string",
                  "description": "The unique ID of the banned user."
                }
              },
              "additionalProperties": true,
              "description": "A banned user record returned by Sendbird."
            },
            "description": "The banned users returned by Sendbird."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "The response returned when listing banned users."
      }
    },
    {
      "id": "sendbird.list_group_channel_messages",
      "service": "sendbird",
      "name": "list_group_channel_messages",
      "description": "List messages from a Sendbird group channel around a timestamp or message anchor.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The numeric identifier of the Sendbird message."
          },
          "message_ts": {
            "type": "integer",
            "minimum": 0,
            "description": "A Unix timestamp in milliseconds."
          },
          "prev_limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 200,
            "description": "The number of messages to return before the anchor."
          },
          "next_limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 200,
            "description": "The number of messages to return after the anchor."
          },
          "include": {
            "type": "boolean",
            "description": "Whether to include the anchor message."
          },
          "reverse": {
            "type": "boolean",
            "description": "Whether to reverse the result ordering."
          },
          "sender_id": {
            "type": "string",
            "description": "Restrict results to a single sender ID."
          },
          "sender_ids": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A comma-separated sender ID list."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A non-empty string value."
                },
                "description": "A list of non-empty strings."
              }
            ],
            "description": "Restrict results to the provided sender IDs."
          },
          "message_type": {
            "type": "string",
            "description": "Restrict results to the provided Sendbird message types."
          },
          "custom_types": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A comma-separated custom type list."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A non-empty string value."
                },
                "description": "A list of non-empty strings."
              }
            ],
            "description": "Restrict results to the provided custom message types."
          },
          "operator_filter": {
            "type": "string",
            "description": "Filter by whether the sender is an operator."
          },
          "include_reactions": {
            "type": "boolean",
            "description": "Whether to include reaction information."
          },
          "including_removed": {
            "type": "boolean",
            "description": "Whether to include removed messages."
          },
          "include_reply_type": {
            "type": "string",
            "description": "The reply-type filter supported by Sendbird."
          },
          "include_thread_info": {
            "type": "boolean",
            "description": "Whether to include thread information."
          },
          "include_poll_details": {
            "type": "boolean",
            "description": "Whether to include poll details."
          },
          "include_parent_message_info": {
            "type": "boolean",
            "description": "Whether to include parent message information."
          },
          "with_sorted_metaarray": {
            "type": "boolean",
            "description": "Whether to include sorted metaarray values."
          }
        },
        "additionalProperties": true,
        "required": [
          "channel_url"
        ],
        "description": "The input payload for listing group channel messages.",
        "anyOf": [
          {
            "required": [
              "message_id"
            ]
          },
          {
            "required": [
              "message_ts"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "message_id": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The unique message ID."
                }
              },
              "additionalProperties": true,
              "description": "A Sendbird group channel message."
            },
            "description": "The messages returned by Sendbird."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The pagination token for the next page when Sendbird returns one."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "The response returned when listing group channel messages."
      }
    },
    {
      "id": "sendbird.list_group_channels",
      "service": "sendbird",
      "name": "list_group_channels",
      "description": "List Sendbird group channels in the application with common filtering controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of results to return."
          },
          "token": {
            "type": "string",
            "description": "The pagination token returned by the previous response."
          },
          "name": {
            "type": "string",
            "description": "Filter by an exact channel name."
          },
          "show_empty": {
            "type": "boolean",
            "description": "Whether to include empty channels."
          },
          "show_frozen": {
            "type": "boolean",
            "description": "Whether to include frozen channels."
          },
          "show_metadata": {
            "type": "boolean",
            "description": "Whether to include channel metadata."
          },
          "show_member": {
            "type": "boolean",
            "description": "Whether to include channel members."
          },
          "show_read_receipt": {
            "type": "boolean",
            "description": "Whether to include read receipts."
          },
          "show_delivery_receipt": {
            "type": "boolean",
            "description": "Whether to include delivery receipts."
          },
          "show_hidden": {
            "type": "boolean",
            "description": "Whether to include hidden channels."
          },
          "show_member_info": {
            "type": "boolean",
            "description": "Whether to include detailed member information when supported by Sendbird."
          },
          "super_mode": {
            "type": "string",
            "enum": [
              "all",
              "super",
              "nonsuper"
            ],
            "description": "Filter by whether the channel is a supergroup."
          },
          "public_mode": {
            "type": "string",
            "enum": [
              "all",
              "public",
              "private"
            ],
            "description": "Filter by whether the channel is public."
          },
          "distinct_mode": {
            "type": "string",
            "enum": [
              "all",
              "distinct",
              "nondistinct"
            ],
            "description": "Filter by whether the channel is distinct."
          },
          "hidden_mode": {
            "type": "string",
            "description": "The hidden-mode filter supported by Sendbird."
          },
          "custom_types": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "channel_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "members_include_in": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "members_exactly_in": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "members_nickname": {
            "type": "string",
            "description": "Filter channels by a member nickname match."
          },
          "url_contains": {
            "type": "string",
            "description": "Filter by a substring of the channel URL."
          },
          "created_after": {
            "type": "integer",
            "minimum": 0,
            "description": "A Unix timestamp in milliseconds."
          },
          "created_before": {
            "type": "integer",
            "minimum": 0,
            "description": "A Unix timestamp in milliseconds."
          },
          "my_member_state": {
            "type": "string",
            "enum": [
              "all",
              "joined_only",
              "invited_only",
              "invited_by_friend",
              "invited_by_non_friend"
            ],
            "description": "Filter by the member state reported by Sendbird."
          }
        },
        "additionalProperties": true,
        "description": "The input payload for listing group channels."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "channel_url": {
                  "type": "string",
                  "description": "The unique URL of the group channel."
                }
              },
              "additionalProperties": true,
              "description": "A Sendbird group channel."
            },
            "description": "The group channels returned by Sendbird."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "The response returned when listing Sendbird group channels."
      }
    },
    {
      "id": "sendbird.list_members_group_channel",
      "service": "sendbird",
      "name": "list_members_group_channel",
      "description": "List members of a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of results to return."
          },
          "token": {
            "type": "string",
            "description": "The pagination token returned by the previous response."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The deprecated offset-based pagination value."
          },
          "order": {
            "type": "string",
            "enum": [
              "nickname_alphabetical",
              "operator_alphabetical"
            ],
            "description": "The ordering of the returned members."
          },
          "operator_filter": {
            "type": "string",
            "enum": [
              "all",
              "operator",
              "nonoperator"
            ],
            "description": "Filter by operator status."
          },
          "member_state_filter": {
            "type": "string",
            "enum": [
              "all",
              "joined_only",
              "invited_only"
            ],
            "description": "Filter by membership state."
          },
          "muted_member_filter": {
            "type": "string",
            "enum": [
              "all",
              "muted",
              "unmuted"
            ],
            "description": "Filter by whether the member is muted."
          },
          "nickname_startswith": {
            "type": "string",
            "description": "Filter by a member nickname prefix."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url"
        ],
        "description": "The input payload for listing group channel members."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "user_id": {
                  "type": "string",
                  "description": "The unique ID of the member."
                }
              },
              "additionalProperties": true,
              "description": "A Sendbird group channel member."
            },
            "description": "The members returned by Sendbird."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "total_count": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of matching members when Sendbird returns it."
          }
        },
        "additionalProperties": true,
        "description": "The response returned when listing group channel members."
      }
    },
    {
      "id": "sendbird.list_users",
      "service": "sendbird",
      "name": "list_users",
      "description": "List Sendbird users with common pagination and filtering controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of results to return."
          },
          "token": {
            "type": "string",
            "description": "The pagination token returned by the previous response."
          },
          "order": {
            "type": "string",
            "enum": [
              "nickname_alphabetical",
              "created_at",
              "user_id_alphabetical"
            ],
            "description": "The result ordering returned by Sendbird."
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "nickname": {
            "type": "string",
            "description": "Filter by an exact nickname match."
          },
          "nickname_contains": {
            "type": "string",
            "description": "Filter by a nickname substring match."
          },
          "nickname_startswith": {
            "type": "string",
            "description": "Filter by a nickname prefix supported by the official API."
          },
          "active_mode": {
            "type": "string",
            "enum": [
              "activated",
              "deactivated",
              "all"
            ],
            "description": "The official active-mode filter."
          },
          "show_bot": {
            "type": "boolean",
            "description": "Whether to include bot users in the results."
          },
          "metadatakey": {
            "type": "string",
            "description": "The official metadata key filter."
          },
          "metadatavalues_in": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "custom_type": {
            "type": "string",
            "description": "Filter by the user custom type when supported by Sendbird."
          },
          "has_ever_logged_in": {
            "type": "boolean",
            "description": "Filter by whether the user has logged in when supported by Sendbird."
          }
        },
        "additionalProperties": true,
        "description": "The input payload for listing Sendbird users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "user_id": {
                  "type": "string",
                  "description": "The unique ID of the user."
                }
              },
              "additionalProperties": true,
              "description": "A Sendbird user object."
            },
            "description": "The users returned by Sendbird."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "The pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "The response returned when listing Sendbird users."
      }
    },
    {
      "id": "sendbird.mark_all_user_messages_as_read",
      "service": "sendbird",
      "name": "mark_all_user_messages_as_read",
      "description": "Mark all messages as read for a Sendbird user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "channel_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "The input payload for marking all messages as read."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.mute_user",
      "service": "sendbird",
      "name": "mute_user",
      "description": "Mute a user in a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "seconds": {
            "type": "integer",
            "minimum": 0,
            "description": "The mute duration in seconds. Use 0 for an indefinite mute when supported by Sendbird."
          },
          "description": {
            "type": "string",
            "description": "The moderation reason to record."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "user_id"
        ],
        "description": "The input payload for muting a user in a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The moderation result returned by Sendbird."
      }
    },
    {
      "id": "sendbird.revoke_all_session_tokens",
      "service": "sendbird",
      "name": "revoke_all_session_tokens",
      "description": "Revoke all Sendbird session tokens for a user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for revoking all session tokens."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the request succeeded."
          }
        },
        "additionalProperties": false,
        "description": "A successful Sendbird write response."
      }
    },
    {
      "id": "sendbird.send_message",
      "service": "sendbird",
      "name": "send_message",
      "description": "Send a message into a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "message_type": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird message type to create."
          },
          "message": {
            "type": "string",
            "description": "The message text content."
          },
          "user_id": {
            "type": "string",
            "description": "The acting Sendbird user ID."
          },
          "data": {
            "type": "string",
            "description": "The custom data payload for the message."
          },
          "custom_type": {
            "type": "string",
            "description": "The custom type assigned to the message."
          },
          "mention_type": {
            "type": "string",
            "description": "The mention type for the message."
          },
          "mentioned_user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "parent_message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The parent message ID when creating a thread reply."
          },
          "is_silent": {
            "type": "boolean",
            "description": "Whether the message should be silent."
          },
          "is_operator_message": {
            "type": "boolean",
            "description": "Whether the message should be marked as an operator message."
          },
          "push_notification_delivery_option": {
            "type": "string",
            "description": "The push notification delivery option to use."
          },
          "translation_target_languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "metaarray": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "description": "The metadata key."
                },
                "value": {
                  "type": "string",
                  "description": "The metadata value."
                },
                "user_id": {
                  "type": "string",
                  "description": "The metadata user ID when provided."
                }
              },
              "additionalProperties": true,
              "description": "A message metadata entry."
            },
            "description": "The metadata entries to store for the message."
          }
        },
        "additionalProperties": true,
        "required": [
          "channel_url",
          "message_type"
        ],
        "description": "The input payload for sending a group channel message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The unique message ID."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel message."
      }
    },
    {
      "id": "sendbird.unban_user",
      "service": "sendbird",
      "name": "unban_user",
      "description": "Unban a user from a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "banned_user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The banned user ID to unban from the channel."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "banned_user_id"
        ],
        "description": "The input payload for unbanning a user from a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The moderation result returned by Sendbird."
      }
    },
    {
      "id": "sendbird.unmute_user",
      "service": "sendbird",
      "name": "unmute_user",
      "description": "Unmute a user in a Sendbird group channel.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "muted_user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The muted user ID to unmute from the channel."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "muted_user_id"
        ],
        "description": "The input payload for unmuting a user in a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "The moderation result returned by Sendbird."
      }
    },
    {
      "id": "sendbird.update_group_channel",
      "service": "sendbird",
      "name": "update_group_channel",
      "description": "Update a Sendbird group channel with common JSON body fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "name": {
            "type": "string",
            "description": "The new channel name."
          },
          "cover_url": {
            "type": "string",
            "description": "The new cover image URL."
          },
          "custom_type": {
            "type": "string",
            "description": "The custom type to assign to the channel."
          },
          "data": {
            "type": "string",
            "description": "The custom data payload to store for the channel."
          },
          "operators": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "is_distinct": {
            "type": "boolean",
            "description": "Whether the channel should be distinct."
          },
          "is_public": {
            "type": "boolean",
            "description": "Whether the channel should be public."
          },
          "is_super": {
            "type": "boolean",
            "description": "Whether the channel should be a supergroup."
          },
          "is_ephemeral": {
            "type": "boolean",
            "description": "Whether the channel should be ephemeral."
          },
          "access_code": {
            "type": "string",
            "description": "The access code to assign to the channel."
          },
          "my_count_preference": {
            "type": "string",
            "description": "The count preference to store when supported by Sendbird."
          }
        },
        "additionalProperties": true,
        "required": [
          "channel_url"
        ],
        "description": "The input payload for updating a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "description": "The unique URL of the group channel."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel."
      }
    },
    {
      "id": "sendbird.update_message",
      "service": "sendbird",
      "name": "update_message",
      "description": "Update an existing Sendbird group channel message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The numeric identifier of the Sendbird message."
          },
          "message": {
            "type": "string",
            "description": "The updated message text content."
          },
          "data": {
            "type": "string",
            "description": "The updated custom data payload."
          },
          "user_id": {
            "type": "string",
            "description": "The acting Sendbird user ID."
          },
          "custom_type": {
            "type": "string",
            "description": "The updated custom type."
          },
          "mention_type": {
            "type": "string",
            "description": "The updated mention type."
          },
          "mentioned_user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "is_silent": {
            "type": "boolean",
            "description": "Whether the update should be silent."
          },
          "push_notification_delivery_option": {
            "type": "string",
            "description": "The push notification delivery option to use."
          },
          "sorted_metaarray": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "An object returned by the official Sendbird API."
            },
            "description": "The sorted metaarray payload to store for the message."
          }
        },
        "additionalProperties": true,
        "required": [
          "channel_url",
          "message_id"
        ],
        "description": "The input payload for updating a group channel message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The unique message ID."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel message."
      }
    },
    {
      "id": "sendbird.update_user",
      "service": "sendbird",
      "name": "update_user",
      "description": "Update a Sendbird user's profile, metadata, or activation settings.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          },
          "nickname": {
            "type": "string",
            "description": "The new nickname for the user."
          },
          "profile_url": {
            "type": "string",
            "description": "The new profile image URL."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "A metadata value."
            },
            "description": "A metadata object whose keys and values are strings."
          },
          "issue_access_token": {
            "type": "boolean",
            "description": "Whether Sendbird should issue a new access token for the user."
          },
          "preferred_languages": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A non-empty string value."
            },
            "description": "A list of non-empty strings."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the user should remain active."
          },
          "phone_number": {
            "type": "string",
            "description": "The phone number to store for the user."
          },
          "has_ever_logged_in": {
            "type": "boolean",
            "description": "Whether the user has logged in before when supported by Sendbird."
          }
        },
        "additionalProperties": true,
        "required": [
          "user_id"
        ],
        "description": "The input payload for updating a Sendbird user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "description": "The unique ID of the user."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird user object."
      }
    },
    {
      "id": "sendbird.view_group_channel",
      "service": "sendbird",
      "name": "view_group_channel",
      "description": "Get a Sendbird group channel by channel URL.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "show_member": {
            "type": "boolean",
            "description": "Whether to include the member list."
          },
          "show_metadata": {
            "type": "boolean",
            "description": "Whether to include channel metadata."
          },
          "show_read_receipt": {
            "type": "boolean",
            "description": "Whether to include read receipt data."
          },
          "show_delivery_receipt": {
            "type": "boolean",
            "description": "Whether to include delivery receipt data."
          },
          "show_migration_info": {
            "type": "boolean",
            "description": "Whether to include migration information when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url"
        ],
        "description": "The input payload for getting a group channel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "description": "The unique URL of the group channel."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel."
      }
    },
    {
      "id": "sendbird.view_message",
      "service": "sendbird",
      "name": "view_message",
      "description": "Get a single Sendbird group channel message by message ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "channel_url": {
            "type": "string",
            "minLength": 1,
            "description": "The unique URL of the target group channel."
          },
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The numeric identifier of the Sendbird message."
          },
          "with_sorted_metaarray": {
            "type": "boolean",
            "description": "Whether to include sorted metaarray values."
          }
        },
        "additionalProperties": false,
        "required": [
          "channel_url",
          "message_id"
        ],
        "description": "The input payload for getting a Sendbird message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message_id": {
            "type": "integer",
            "minimum": 0,
            "description": "The unique message ID."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird group channel message."
      }
    },
    {
      "id": "sendbird.view_user",
      "service": "sendbird",
      "name": "view_user",
      "description": "Get a single Sendbird user by user ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Sendbird user ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting a Sendbird user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "description": "The unique ID of the user."
          }
        },
        "additionalProperties": true,
        "description": "A Sendbird user object."
      }
    }
  ]
}
