Appearance
Moderation
About 13133 wordsAbout 44 min
Java SDK - Feeds API
Table of Contents
- insertActionLog
- appeal
- getAppeal
- queryAppeals
- ban
- bulkImageModeration
- bypass
- check
- checkS3Access
- upsertConfig
- getConfig
- deleteConfig
- queryModerationConfigs
- customCheck
- v2QueryTemplates
- v2UpsertTemplate
- v2DeleteTemplate
- flag
- getFlagCount
- queryModerationFlags
- queryModerationLogs
- upsertModerationRule
- getModerationRule
- deleteModerationRule
- queryModerationRules
- mute
- queryReviewQueue
- getReviewQueueItem
- submitAction
- unban
- unmute
- Types Reference
insertActionLog
Records a moderation action into the log, useful for tracking and auditing moderation activities performed on the platform.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Insert moderation action log
var response = feedsClient.insertActionLog(
new InsertActionLogRequest()
.setActionType("value")
.setEntityCreatorID("value")
.setEntityID("value")
.setEntityType("value")
.setCustom(Map.of())
.setReason("value")
).execute();
System.out.println(response);
}
}Response: InsertActionLogResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| action_type | String | Yes | Type of moderation action taken |
| entity_creator_id | String | Yes | ID of the user who created the entity |
| entity_id | String | Yes | ID of the entity the action was taken on |
| entity_type | String | Yes | Type of entity the action was taken on |
| custom | Map<String, Object> | No | Custom metadata for the action log |
| reason | String | No | Reason for the action |
appeal
Submit a request to review and potentially overturn a moderation decision; use this when you believe a moderation action was taken in error.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Appeal against the moderation decision
var response = feedsClient.appeal(
new AppealRequest()
.setAppealReason("value")
.setEntityID("value")
.setEntityType("value")
.setUserID("john")
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
).execute();
System.out.println(response);
}
}Example: with attachments
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Appeal against the moderation decision
var response = feedsClient.appeal(
new AppealRequest()
.setAppealReason("value")
.setEntityID("value")
.setEntityType("value")
.setAttachments(List.of())
).execute();
System.out.println(response);
}
}Response: AppealResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| appeal_reason | String | Yes | Explanation for why the content is being appealed |
| entity_id | String | Yes | Unique identifier of the entity being appealed |
| entity_type | String | Yes | Type of entity being appealed (e.g., message, user) |
| attachments | []string | No | Array of Attachment URLs(e.g., images) |
| user | UserRequest | No | - |
| user_id | String | No | - |
getAppeal
Retrieve details about a specific appeal, allowing you to track the status and outcome of your request for review.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Get appeal item
var response = feedsClient.getAppeal(
"activity-123"
).execute();
System.out.println(response);
}
}Response: GetAppealResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | - |
queryAppeals
Search and filter through multiple appeals to manage and assess ongoing or past moderation challenges effectively.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query Appeals
var response = feedsClient.queryAppeals(
new QueryAppealsRequest()
.setUserID("john")
.setLimit(25)
.setFilter(Map.of())
).execute();
System.out.println(response);
}
}Example: with sort and next
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query Appeals
var response = feedsClient.queryAppeals(
new QueryAppealsRequest()
.setSort(List.of())
.setNext(null)
).execute();
System.out.println(response);
}
}Example: with user and prev
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query Appeals
var response = feedsClient.queryAppeals(
new QueryAppealsRequest()
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setPrev(null)
).execute();
System.out.println(response);
}
}Response: QueryAppealsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | Filter conditions for appeals |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for appeals |
| user | UserRequest | No | - |
| user_id | String | No | - |
ban
Restrict a user from accessing services or content, useful when enforcing community guidelines and maintaining a safe environment.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Ban
var response = feedsClient.ban(
new BanRequest()
.setTargetUserID("value")
.setBannedBy(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setBannedByID("value")
).execute();
System.out.println(response);
}
}Example: with channel_cid and delete_messages
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Ban
var response = feedsClient.ban(
new BanRequest()
.setTargetUserID("value")
.setChannelCid("value")
.setDeleteMessages("value")
).execute();
System.out.println(response);
}
}Example: with ip_ban and reason
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Ban
var response = feedsClient.ban(
new BanRequest()
.setTargetUserID("value")
.setIpBan(false)
.setReason("value")
).execute();
System.out.println(response);
}
}Example: with shadow and timeout
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Ban
var response = feedsClient.ban(
new BanRequest()
.setTargetUserID("value")
.setShadow(false)
.setTimeout(10)
).execute();
System.out.println(response);
}
}Response: BanResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_user_id | String | Yes | ID of the user to ban |
| banned_by | UserRequest | No | Details about the user performing the ban |
| banned_by_id | String | No | ID of the user performing the ban |
| channel_cid | String | No | Channel where the ban applies |
| delete_messages | String | No | - |
| ip_ban | Boolean | No | Whether to ban the user's IP address |
| reason | String | No | Optional explanation for the ban |
| shadow | Boolean | No | Whether this is a shadow ban |
| timeout | Integer | No | Duration of the ban in minutes |
bulkImageModeration
Process multiple images simultaneously for content compliance, ideal for efficiently managing large batches of visual content.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Bulk image moderation
var response = feedsClient.bulkImageModeration(
new BulkImageModerationRequest()
.setCsvFile("value")
).execute();
System.out.println(response);
}
}Response: BulkImageModerationResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| csv_file | String | Yes | URL to CSV file containing image URLs to moderate |
bypass
Allows a specific content or user to bypass moderation checks, typically used in scenarios where trusted entities need uninterrupted access.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Bypass Moderation
var response = feedsClient.bypass(
new BypassRequest()
.setEnabled(false)
.setTargetUserID("value")
).execute();
System.out.println(response);
}
}Response: BypassResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | Yes | Whether to enable moderation bypass for this user |
| target_user_id | String | Yes | ID of the user to update |
check
Evaluate content against moderation policies to ensure compliance, used to verify that user-generated content adheres to community standards.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Check
var response = feedsClient.check(
new CheckRequest()
.setEntityCreatorID("value")
.setEntityID("value")
.setEntityType("value")
.setUserID("john")
.setConfigKey("value")
).execute();
System.out.println(response);
}
}Example: with config_team and content_published_at
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Check
var response = feedsClient.check(
new CheckRequest()
.setEntityCreatorID("value")
.setEntityID("value")
.setEntityType("value")
.setConfigTeam("value")
.setContentPublishedAt(10)
).execute();
System.out.println(response);
}
}Example: with moderation_payload and options
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Check
var response = feedsClient.check(
new CheckRequest()
.setEntityCreatorID("value")
.setEntityID("value")
.setEntityType("value")
.setModerationPayload(new ModerationPayload().setCustom(Map.of()))
.setOptions(Map.of())
).execute();
System.out.println(response);
}
}Example: with test_mode and user
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Check
var response = feedsClient.check(
new CheckRequest()
.setEntityCreatorID("value")
.setEntityID("value")
.setEntityType("value")
.setTestMode(false)
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
).execute();
System.out.println(response);
}
}Response: CheckResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_creator_id | String | Yes | ID of the user who created the entity |
| entity_id | String | Yes | Unique identifier of the entity to moderate |
| entity_type | String | Yes | Type of entity to moderate |
| config | ModerationConfig | No | Custom moderation configuration (test mode only) |
| config_key | String | No | Key of the moderation configuration to use |
| config_team | String | No | Team associated with the configuration |
| content_published_at | float | No | Original timestamp when the content was produced (for correlating flagged content with source vid... |
| moderation_payload | ModerationPayload | No | Content to be moderated |
| options | Map<String, Object> | No | Additional moderation configuration options |
| test_mode | Boolean | No | Whether to run moderation in test mode |
| user | UserRequest | No | - |
| user_id | String | No | - |
checkS3Access
Verifies if an image stored in Amazon S3 is accessible, ensuring that media files are correctly permissioned and available for use.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Check S3 image access
var response = feedsClient.checkS3Access(
new CheckS3AccessRequest()
.setS3URL("value")
).execute();
System.out.println(response);
}
}Response: CheckS3AccessResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| s3_url | String | No | Optional stream+s3:// reference to test access against |
upsertConfig
Create or update rules for content moderation, enabling customization and refinement of moderation strategies to suit specific needs.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Create or update moderation configuration
var response = feedsClient.upsertConfig(
new UpsertConfigRequest()
.setKey("value")
.setUserID("john")
.setAiTextConfig(new AITextConfig().setAsync(false))
).execute();
System.out.println(response);
}
}Example: with ai_video_config and async
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Create or update moderation configuration
var response = feedsClient.upsertConfig(
new UpsertConfigRequest()
.setKey("value")
.setAiVideoConfig(new AIVideoConfig().setAsync(false))
.setAsync(false)
).execute();
System.out.println(response);
}
}Example: with automod_platform_circumvention_config and automod_semantic_filters_config
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Create or update moderation configuration
var response = feedsClient.upsertConfig(
new UpsertConfigRequest()
.setKey("value")
.setAutomodPlatformCircumventionConfig(new AutomodPlatformCircumventionConfig().setAsync(false))
.setAutomodSemanticFiltersConfig(new AutomodSemanticFiltersConfig().setAsync(false))
).execute();
System.out.println(response);
}
}Example: with automod_toxicity_config and aws_rekognition_config
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Create or update moderation configuration
var response = feedsClient.upsertConfig(
new UpsertConfigRequest()
.setKey("value")
.setAutomodToxicityConfig(new AutomodToxicityConfig().setAsync(false))
.setAWSRekognitionConfig(new AIImageConfig().setAsync(false))
).execute();
System.out.println(response);
}
}Response: UpsertConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | Unique identifier for the moderation configuration |
| ai_image_config | AIImageConfig | No | Configuration for AI image analysis |
| ai_text_config | AITextConfig | No | Configuration for AI text analysis |
| ai_video_config | AIVideoConfig | No | Configuration for AI video analysis |
| async | Boolean | No | Whether moderation should be performed asynchronously |
| automod_platform_circumvention_config | AutomodPlatformCircumventionConfig | No | Configuration for platform circumvention detection |
| automod_semantic_filters_config | AutomodSemanticFiltersConfig | No | Configuration for semantic filtering |
| automod_toxicity_config | AutomodToxicityConfig | No | Configuration for toxicity detection |
| aws_rekognition_config | AIImageConfig | No | - |
| block_list_config | BlockListConfig | No | Configuration for block list filtering |
| bodyguard_config | AITextConfig | No | - |
| google_vision_config | GoogleVisionConfig | No | Configuration for Google Vision integration |
| llm_config | LLMConfig | No | Configuration for customer-configured LLM moderation |
| rule_builder_config | RuleBuilderConfig | No | Configuration for custom rule builder (max 3 rules, max 5 conditions per rule) |
| team | String | No | Team associated with the configuration |
| user | UserRequest | No | - |
| user_id | String | No | Optional user ID to associate with the audit log entry |
| velocity_filter_config | VelocityFilterConfig | No | Configuration for velocity-based filtering |
| video_call_rule_config | VideoCallRuleConfig | No | - |
getConfig
Access the current configuration settings for moderation, allowing you to review and understand the active rules and policies.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Get moderation configuration
var response = feedsClient.getConfig(
"value",
new GetConfigRequest()
.setTeam("value")
).execute();
System.out.println(response);
}
}Response: GetConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | - |
| team | String | No | - |
deleteConfig
Remove an existing moderation policy, useful for retiring outdated rules or simplifying moderation strategies.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Delete a moderation policy
var response = feedsClient.deleteConfig(
"value",
new DeleteConfigRequest()
.setUserID("john")
.setTeam("value")
).execute();
System.out.println(response);
}
}Response: DeleteModerationConfigResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | String | Yes | - |
| team | String | No | - |
| user_id | String | No | - |
queryModerationConfigs
Search through various moderation configurations to compare, audit, or manage different policy setups efficiently.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation configurations
var response = feedsClient.queryModerationConfigs(
new QueryModerationConfigsRequest()
.setUserID("john")
.setLimit(25)
.setFilter(Map.of())
).execute();
System.out.println(response);
}
}Example: with sort and next
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation configurations
var response = feedsClient.queryModerationConfigs(
new QueryModerationConfigsRequest()
.setSort(List.of())
.setNext(null)
).execute();
System.out.println(response);
}
}Example: with user and prev
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation configurations
var response = feedsClient.queryModerationConfigs(
new QueryModerationConfigsRequest()
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setPrev(null)
).execute();
System.out.println(response);
}
}Response: QueryModerationConfigsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | Filter conditions for moderation configs |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
customCheck
Performs a custom check on content to determine if it adheres to specific moderation criteria, useful for applying tailored moderation rules to unique content types.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Custom check endpoint
var response = feedsClient.customCheck(
new CustomCheckRequest()
.setEntityID("value")
.setEntityType("value")
.setFlags(List.of())
.setUserID("john")
.setModerationPayload(new ModerationPayloadRequest().setCustom(Map.of()))
).execute();
System.out.println(response);
}
}Example: with user and entity_creator_id
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Custom check endpoint
var response = feedsClient.customCheck(
new CustomCheckRequest()
.setEntityID("value")
.setEntityType("value")
.setFlags(List.of())
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setEntityCreatorID("value")
).execute();
System.out.println(response);
}
}Response: CustomCheckResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_id | String | Yes | Unique identifier of the entity |
| entity_type | String | Yes | Type of entity to perform custom check on |
| flags | []CustomCheckFlag | Yes | List of custom check flags (1-10 flags required) |
| entity_creator_id | String | No | ID of the user who created the entity (required for non-message entities) |
| moderation_payload | ModerationPayloadRequest | No | Content to be checked (required for non-message entities) |
| user | UserRequest | No | - |
| user_id | String | No | - |
v2QueryTemplates
Retrieves a list of available moderation templates, helping users to understand and select predefined moderation criteria that can be applied to their content.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query feed moderation templates
var response = feedsClient.v2QueryTemplates().execute();
System.out.println(response);
}
}Response: QueryFeedModerationTemplatesResponse
v2UpsertTemplate
Creates or updates a moderation template, allowing users to define or modify the criteria used for evaluating content across feeds.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Upsert feeds template
var response = feedsClient.v2UpsertTemplate(
new V2UpsertTemplateRequest()
.setConfig(new FeedsModerationTemplateConfigPayload().setDataTypes(Map.of()).setConfigKey("value"))
.setName("My Feed")
).execute();
System.out.println(response);
}
}Response: UpsertModerationTemplateResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| config | FeedsModerationTemplateConfigPayload | Yes | Configuration for the moderation template |
| name | String | Yes | Name of the moderation template |
v2DeleteTemplate
Removes a specified moderation template, enabling users to manage and streamline the moderation criteria available for content evaluation.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Delete a moderation template
var response = feedsClient.v2DeleteTemplate().execute();
System.out.println(response);
}
}Response: DeleteModerationTemplateResponse
flag
Marks content for moderation review, allowing users to identify and address potentially inappropriate or harmful content within their feeds.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Flag content for moderation
var response = feedsClient.flag(
new FlagRequest()
.setEntityID("value")
.setEntityType("value")
.setUserID("john")
.setEntityCreatorID("value")
).execute();
System.out.println(response);
}
}Example: with moderation_payload and reason
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Flag content for moderation
var response = feedsClient.flag(
new FlagRequest()
.setEntityID("value")
.setEntityType("value")
.setModerationPayload(new ModerationPayload().setCustom(Map.of()))
.setReason("value")
).execute();
System.out.println(response);
}
}Example: with user and custom
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Flag content for moderation
var response = feedsClient.flag(
new FlagRequest()
.setEntityID("value")
.setEntityType("value")
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setCustom(Map.of())
).execute();
System.out.println(response);
}
}Response: FlagResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_id | String | Yes | Unique identifier of the entity being flagged |
| entity_type | String | Yes | Type of entity being flagged (e.g., message, user) |
| custom | Map<String, Object> | No | Additional metadata about the flag |
| entity_creator_id | String | No | ID of the user who created the flagged entity |
| moderation_payload | ModerationPayload | No | Content being flagged |
| reason | String | No | Optional explanation for why the content is being flagged |
| user | UserRequest | No | - |
| user_id | String | No | - |
getFlagCount
Retrieves the total number of flags raised against a user, enabling moderation teams to assess user behavior and identify potential issues.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Get flag count for a user
var response = feedsClient.getFlagCount(
new GetFlagCountRequest()
.setEntityCreatorID("value")
.setEntityType("value")
).execute();
System.out.println(response);
}
}Response: GetFlagCountResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| entity_creator_id | String | Yes | ID of the user whose content was flagged |
| entity_type | String | No | Optional entity type filter (e.g., stream:chat:v1:message, stream:user) |
queryModerationFlags
Fetches a list of content that has been flagged for moderation, assisting users in monitoring and reviewing items that may breach community standards.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation flags
var response = feedsClient.queryModerationFlags(
new QueryModerationFlagsRequest()
.setLimit(25)
.setFilter(Map.of())
.setSort(List.of())
).execute();
System.out.println(response);
}
}Example: with prev and next
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation flags
var response = feedsClient.queryModerationFlags(
new QueryModerationFlagsRequest()
.setPrev(null)
.setNext(null)
).execute();
System.out.println(response);
}
}Response: QueryModerationFlagsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | - |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | - |
queryModerationLogs
Provides access to logs of moderation actions taken, offering users transparency and the ability to audit past moderation decisions and activities.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation action logs
var response = feedsClient.queryModerationLogs(
new QueryModerationLogsRequest()
.setUserID("john")
.setLimit(25)
.setFilter(Map.of())
).execute();
System.out.println(response);
}
}Example: with sort and next
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation action logs
var response = feedsClient.queryModerationLogs(
new QueryModerationLogsRequest()
.setSort(List.of())
.setNext(null)
).execute();
System.out.println(response);
}
}Example: with user and prev
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation action logs
var response = feedsClient.queryModerationLogs(
new QueryModerationLogsRequest()
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setPrev(null)
).execute();
System.out.println(response);
}
}Response: QueryModerationLogsResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | Filter conditions for moderation logs |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
upsertModerationRule
Creates or updates a specific moderation rule, enabling users to customize the criteria used to assess and manage content within their platform.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Upsert moderation rule
var response = feedsClient.upsertModerationRule(
new UpsertModerationRuleRequest()
.setName("My Feed")
.setRuleType("value")
.setUserID("john")
.setActionSequences(List.of())
).execute();
System.out.println(response);
}
}Example: with conditions and config_keys
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Upsert moderation rule
var response = feedsClient.upsertModerationRule(
new UpsertModerationRuleRequest()
.setName("My Feed")
.setRuleType("value")
.setConditions(List.of())
.setConfigKeys(List.of())
).execute();
System.out.println(response);
}
}Example: with cooldown_period and description
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Upsert moderation rule
var response = feedsClient.upsertModerationRule(
new UpsertModerationRuleRequest()
.setName("My Feed")
.setRuleType("value")
.setCooldownPeriod("value")
.setDescription("A description")
).execute();
System.out.println(response);
}
}Example: with enabled and groups
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Upsert moderation rule
var response = feedsClient.upsertModerationRule(
new UpsertModerationRuleRequest()
.setName("My Feed")
.setRuleType("value")
.setEnabled(false)
.setGroups(List.of())
).execute();
System.out.println(response);
}
}Response: UpsertModerationRuleResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Unique rule name |
| rule_type | String | Yes | Type of rule: user, content, or call |
| action | RuleBuilderAction | No | Action for user/content rules |
| action_sequences | []CallRuleActionSequence | No | Escalation sequences for call rules |
| conditions | []RuleBuilderCondition | No | Flat list of conditions (legacy) |
| config_keys | []string | No | List of config keys this rule applies to |
| cooldown_period | String | No | Duration before rule can trigger again (e.g. 24h, 7d) |
| description | String | No | Optional description of the rule |
| enabled | Boolean | No | Whether the rule is active |
| groups | []RuleBuilderConditionGroup | No | Nested condition groups |
| logic | String | No | Logical operator between conditions/groups: AND or OR |
| team | String | No | Team scope for the rule |
| user | UserRequest | No | - |
| user_id | String | No | Optional user ID to associate with the audit log entry |
getModerationRule
Retrieves details of a specified moderation rule, helping users to review and understand the criteria applied to content moderation processes.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Get moderation rule
var response = feedsClient.getModerationRule().execute();
System.out.println(response);
}
}Response: GetModerationRuleResponse
deleteModerationRule
Removes a specified moderation rule, allowing users to adjust and refine the moderation criteria in use by eliminating obsolete or unnecessary rules.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Delete moderation rule
var response = feedsClient.deleteModerationRule(
new DeleteModerationRuleRequest()
.setUserID("john")
).execute();
System.out.println(response);
}
}Response: DeleteModerationRuleResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | No | - |
queryModerationRules
Retrieve the current set of moderation rules to understand the guidelines and criteria used for moderating content. Use this method to ensure compliance with moderation standards or to inform users of the rules.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation rules
var response = feedsClient.queryModerationRules(
new QueryModerationRulesRequest()
.setUserID("john")
.setLimit(25)
.setFilter(Map.of())
).execute();
System.out.println(response);
}
}Example: with sort and next
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation rules
var response = feedsClient.queryModerationRules(
new QueryModerationRulesRequest()
.setSort(List.of())
.setNext(null)
).execute();
System.out.println(response);
}
}Example: with user and prev
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query moderation rules
var response = feedsClient.queryModerationRules(
new QueryModerationRulesRequest()
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setPrev(null)
).execute();
System.out.println(response);
}
}Response: QueryModerationRulesResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | Filter conditions for moderation rules |
| limit | Integer | No | - |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| user | UserRequest | No | - |
| user_id | String | No | - |
mute
Temporarily silence a user to prevent them from posting or interacting on the platform for a specific duration. Utilize this method to manage disruptive behavior without permanently banning the user.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Mute
var response = feedsClient.mute(
new MuteRequest()
.setTargetIds(List.of())
.setUserID("john")
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
).execute();
System.out.println(response);
}
}Example: with timeout
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Mute
var response = feedsClient.mute(
new MuteRequest()
.setTargetIds(List.of())
.setTimeout(10)
).execute();
System.out.println(response);
}
}Response: MuteResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_ids | []string | Yes | User IDs to mute (if multiple users) |
| timeout | Integer | No | Duration of mute in minutes |
| user | UserRequest | No | - |
| user_id | String | No | - |
queryReviewQueue
Access a list of content items pending review to manage and prioritize moderation tasks efficiently. Use this method to streamline the review process and address potential issues in a timely manner.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query review queue items
var response = feedsClient.queryReviewQueue(
new QueryReviewQueueRequest()
.setUserID("john")
.setLimit(25)
.setFilter(Map.of())
).execute();
System.out.println(response);
}
}Example: with sort and lock_items
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query review queue items
var response = feedsClient.queryReviewQueue(
new QueryReviewQueueRequest()
.setSort(List.of())
.setLockItems(false)
).execute();
System.out.println(response);
}
}Example: with next and prev
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query review queue items
var response = feedsClient.queryReviewQueue(
new QueryReviewQueueRequest()
.setNext(null)
.setPrev(null)
).execute();
System.out.println(response);
}
}Example: with lock_count and stats_only
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Query review queue items
var response = feedsClient.queryReviewQueue(
new QueryReviewQueueRequest()
.setLockCount(10)
.setStatsOnly(false)
).execute();
System.out.println(response);
}
}Response: QueryReviewQueueResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | Map<String, Object> | No | Filter conditions for review queue items |
| limit | Integer | No | - |
| lock_count | Integer | No | Number of items to lock (1-25) |
| lock_duration | Integer | No | Duration for which items should be locked |
| lock_items | Boolean | No | Whether to lock items for review (true), unlock items (false), or just fetch (nil) |
| next | String | No | - |
| prev | String | No | - |
| sort | []SortParamRequest | No | Sorting parameters for the results |
| stats_only | Boolean | No | Whether to return only statistics |
| user | UserRequest | No | - |
| user_id | String | No | - |
getReviewQueueItem
Retrieve detailed information about a specific item in the review queue to make informed moderation decisions. Employ this method when you need to assess an individual piece of content thoroughly.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Get review queue item
var response = feedsClient.getReviewQueueItem(
"activity-123"
).execute();
System.out.println(response);
}
}Response: GetReviewQueueItemResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | - |
submitAction
Execute a moderation action, such as approving or rejecting content, based on the review outcome. Use this method to enforce moderation decisions and maintain community standards.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Submit moderation action
var response = feedsClient.submitAction(
new SubmitActionRequest()
.setActionType("value")
.setUserID("john")
.setBan(new BanActionRequestPayload().setBanFromFutureChannels(false))
).execute();
System.out.println(response);
}
}Example: with block and bypass
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Submit moderation action
var response = feedsClient.submitAction(
new SubmitActionRequest()
.setActionType("value")
.setBlock(new BlockActionRequestPayload().setReason("value"))
.setBypass(new BypassActionRequest().setEnabled(false))
).execute();
System.out.println(response);
}
}Example: with custom and delete_activity
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Submit moderation action
var response = feedsClient.submitAction(
new SubmitActionRequest()
.setActionType("value")
.setCustom(new CustomActionRequestPayload().setID("activity-123"))
.setDeleteActivity(new DeleteActivityRequestPayload().setEntityID("value"))
).execute();
System.out.println(response);
}
}Example: with delete_comment and delete_message
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Submit moderation action
var response = feedsClient.submitAction(
new SubmitActionRequest()
.setActionType("value")
.setDeleteComment(new DeleteCommentRequestPayload().setEntityID("value"))
.setDeleteMessage(new DeleteMessageRequestPayload().setEntityID("value"))
).execute();
System.out.println(response);
}
}Response: SubmitActionResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| action_type | String | Yes | Type of moderation action to perform. One of: mark_reviewed, delete_message, delete_activity, del... |
| appeal_id | String | No | UUID of the appeal to act on (required for reject_appeal, optional for other actions) |
| ban | BanActionRequestPayload | No | Configuration for ban action |
| block | BlockActionRequestPayload | No | Configuration for block action |
| bypass | BypassActionRequest | No | Configuration for bypass moderation action |
| custom | CustomActionRequestPayload | No | Configuration for custom action |
| delete_activity | DeleteActivityRequestPayload | No | Configuration for activity deletion action |
| delete_comment | DeleteCommentRequestPayload | No | Configuration for comment deletion action |
| delete_message | DeleteMessageRequestPayload | No | Configuration for message deletion action |
| delete_reaction | DeleteReactionRequestPayload | No | Configuration for reaction deletion action |
| delete_user | DeleteUserRequestPayload | No | Configuration for user deletion action |
| escalate | EscalatePayload | No | Configuration for escalation action |
| flag | FlagRequest | No | Configuration for flag action |
| item_id | String | No | UUID of the review queue item to act on |
| mark_reviewed | MarkReviewedRequestPayload | No | Configuration for marking item as reviewed |
| reject_appeal | RejectAppealRequestPayload | No | Configuration for rejecting an appeal |
| restore | RestoreActionRequestPayload | No | Configuration for restore action |
| shadow_block | ShadowBlockActionRequestPayload | No | Configuration for shadow block action |
| unban | UnbanActionRequestPayload | No | Configuration for unban action |
| unblock | UnblockActionRequestPayload | No | Configuration for unblock action |
| user | UserRequest | No | - |
| user_id | String | No | - |
unban
Lift a ban on a user, restoring their ability to interact with the platform. Use this method to reinstate a previously banned user after determining that the ban is no longer necessary.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Unban
var response = feedsClient.unban(
new UnbanRequest()
.setTargetUserID("value")
.setChannelCid("value")
.setCreatedBy("value")
).execute();
System.out.println(response);
}
}Example: with unbanned_by and unbanned_by_id
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Unban
var response = feedsClient.unban(
new UnbanRequest()
.setTargetUserID("value")
.setUnbannedBy(new UserRequest().setID("activity-123").setCustom(Map.of()))
.setUnbannedByID("value")
).execute();
System.out.println(response);
}
}Response: UnbanResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_user_id | String | Yes | - |
| channel_cid | String | No | - |
| created_by | String | No | - |
| unbanned_by | UserRequest | No | Details about the user performing the unban |
| unbanned_by_id | String | No | ID of the user performing the unban |
unmute
Remove a mute restriction from a user, allowing them to resume posting and interacting on the platform. Use this method to restore communication privileges to a user after a mute period has ended or is deemed unnecessary.
Example
import io.getstream.services.FeedsImpl;
import io.getstream.services.framework.StreamHTTPClient;
import io.getstream.models.*;
import io.getstream.models.framework.StreamResponse;
public class Example {
public static void main(String[] args) throws Exception {
StreamHTTPClient httpClient = new StreamHTTPClient(apiKey, apiSecret);
FeedsImpl feedsClient = new FeedsImpl(httpClient);
// Unmute a user
var response = feedsClient.unmute(
new UnmuteRequest()
.setTargetIds(List.of())
.setUserID("john")
.setUser(new UserRequest().setID("activity-123").setCustom(Map.of()))
).execute();
System.out.println(response);
}
}Response: UnmuteResponse
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| target_ids | []string | Yes | User IDs to unmute |
| user | UserRequest | No | - |
| user_id | String | No | - |
Types Reference
This section documents the types/interfaces used in this API. These types are extracted from the OpenAPI specification.
AIImageConfig
public class AIImageConfig {
private Boolean async;
private Boolean enabled;
private List<OCRRule> ocr_rules;
private List<AWSRekognitionRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| ocr_rules | List<OCRRule> | No | |
| rules | List<AWSRekognitionRule> | No |
AIImageLabelDefinition
public class AIImageLabelDefinition {
private String description;
private String group;
private String key;
private String label;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | |
| group | String | Yes | |
| key | String | Yes | |
| label | String | Yes |
AITextConfig
public class AITextConfig {
private Boolean async;
private Boolean enabled;
private String profile;
private List<BodyguardRule> rules;
private List<BodyguardSeverityRule> severity_rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| profile | String | No | |
| rules | List<BodyguardRule> | No | |
| severity_rules | List<BodyguardSeverityRule> | No |
AIVideoConfig
public class AIVideoConfig {
private Boolean async;
private Boolean enabled;
private List<AWSRekognitionRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | List<AWSRekognitionRule> | No |
AWSRekognitionRule
public class AWSRekognitionRule {
private String action;
private String label;
private Double min_confidence;
private Map<String, Object> subclassifications;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes | |
| min_confidence | Double | Yes | |
| subclassifications | Map<String, Object> | No |
Action
public class Action {
private String name;
private String style;
private String text;
private String type;
private String value;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | |
| text | String | Yes | |
| type | String | Yes | |
| style | String | No | |
| value | String | No |
ActionLogResponse
public class ActionLogResponse {
private List<String> ai_providers;
private Double created_at;
private Map<String, Object> custom;
private String id;
private String reason;
private ReviewQueueItemResponse review_queue_item;
private UserResponse target_user;
private String target_user_id;
private String type;
private UserResponse user;
private String user_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_providers | List<String> | Yes | |
| created_at | Double | Yes | Timestamp when the action was taken |
| custom | Map<String, Object> | Yes | Additional metadata about the action |
| id | String | Yes | Unique identifier of the action log |
| reason | String | Yes | Reason for the moderation action |
| target_user_id | String | Yes | ID of the user who was the target of the action |
| type | String | Yes | Type of moderation action |
| user_id | String | Yes | ID of the user who performed the action |
| review_queue_item | ReviewQueueItemResponse | No | Associated review queue item |
| target_user | UserResponse | No | User who was the target of the action |
| user | UserResponse | No | User who performed the action |
ActionSequence
public class ActionSequence {
private String action;
private Boolean blur;
private Integer cooldown_period;
private Integer threshold;
private Integer time_window;
private Boolean warning;
private String warning_text;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | No | |
| blur | Boolean | No | |
| cooldown_period | Integer | No | |
| threshold | Integer | No | |
| time_window | Integer | No | |
| warning | Boolean | No | |
| warning_text | String | No |
ActivityRequest
public class ActivityRequest {
private List<Attachment> attachments;
private List<String> collection_refs;
private Boolean copy_custom_to_notification;
private Boolean create_notification_activity;
private Map<String, Object> custom;
private String expires_at;
private List<String> feeds;
private List<String> filter_tags;
private String id;
private List<String> interest_tags;
private Location location;
private List<String> mentioned_user_ids;
private String parent_id;
private String poll_id;
private String restrict_replies;
private Map<String, Object> search_data;
private Boolean skip_enrich_url;
private Boolean skip_push;
private String text;
private String type;
private String user_id;
private String visibility;
private String visibility_tag;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| feeds | List<String> | Yes | List of feeds to add the activity to with a default max limit of 25 feeds |
| type | String | Yes | Type of activity |
| attachments | List<Attachment> | No | List of attachments for the activity |
| collection_refs | List<String> | No | Collections that this activity references |
| copy_custom_to_notification | Boolean | No | Whether to copy custom data to the notification activity (only applies when c... |
| create_notification_activity | Boolean | No | Whether to create notification activities for mentioned users |
| custom | Map<String, Object> | No | Custom data for the activity |
| expires_at | String | No | Expiration time for the activity |
| filter_tags | List<String> | No | Tags for filtering activities |
| id | String | No | Optional ID for the activity |
| interest_tags | List<String> | No | Tags for indicating user interests |
| location | Location | No | Geographic location related to the activity |
| mentioned_user_ids | List<String> | No | List of users mentioned in the activity |
| parent_id | String | No | ID of parent activity for replies/comments |
| poll_id | String | No | ID of a poll to attach to activity |
| restrict_replies | String | No | Controls who can add comments/replies to this activity. One of: everyone, peo... |
| search_data | Map<String, Object> | No | Additional data for search indexing |
| skip_enrich_url | Boolean | No | Whether to skip URL enrichment for the activity |
| skip_push | Boolean | No | Whether to skip push notifications |
| text | String | No | Text content of the activity |
| user_id | String | No | ID of the user creating the activity |
| visibility | String | No | Visibility setting for the activity. One of: public, private, tag |
| visibility_tag | String | No | If visibility is 'tag', this is the tag name and is required |
AppealItemResponse
public class AppealItemResponse {
private String appeal_reason;
private List<String> attachments;
private Double created_at;
private String decision_reason;
private ModerationPayload entity_content;
private String entity_id;
private String entity_type;
private String id;
private String status;
private Double updated_at;
private UserResponse user;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_reason | String | Yes | Reason Text of the Appeal Item |
| created_at | Double | Yes | When the flag was created |
| entity_id | String | Yes | ID of the entity |
| entity_type | String | Yes | Type of entity |
| id | String | Yes | |
| status | String | Yes | Status of the Appeal Item |
| updated_at | Double | Yes | When the flag was last updated |
| attachments | List<String> | No | Attachments(e.g. Images) of the Appeal Item |
| decision_reason | String | No | Decision Reason of the Appeal Item |
| entity_content | ModerationPayload | No | |
| user | UserResponse | No | Details of the user who created the appeal |
AppealRequest
public class AppealRequest {
private String appeal_reason;
private List<String> attachments;
private String entity_id;
private String entity_type;
private UserRequest user;
private String user_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_reason | String | Yes | Explanation for why the content is being appealed |
| entity_id | String | Yes | Unique identifier of the entity being appealed |
| entity_type | String | Yes | Type of entity being appealed (e.g., message, user) |
| attachments | List<String> | No | Array of Attachment URLs(e.g., images) |
| user | UserRequest | No | |
| user_id | String | No |
AppealResponse
public class AppealResponse {
private String appeal_id;
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| appeal_id | String | Yes | Unique identifier of the created Appeal item |
| duration | String | Yes |
Attachment
An attachment is a message object that represents a file uploaded by a user.
public class Attachment {
private List<Action> actions;
private String asset_url;
private String author_icon;
private String author_link;
private String author_name;
private String color;
private Map<String, Object> custom;
private String fallback;
private List<Field> fields;
private String footer;
private String footer_icon;
private Images giphy;
private String image_url;
private String og_scrape_url;
private Integer original_height;
private Integer original_width;
private String pretext;
private String text;
private String thumb_url;
private String title;
private String title_link;
private String type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Map<String, Object> | Yes | |
| actions | List<Action> | No | |
| asset_url | String | No | |
| author_icon | String | No | |
| author_link | String | No | |
| author_name | String | No | |
| color | String | No | |
| fallback | String | No | |
| fields | List<Field> | No | |
| footer | String | No | |
| footer_icon | String | No | |
| giphy | Images | No | |
| image_url | String | No | |
| og_scrape_url | String | No | |
| original_height | Integer | No | |
| original_width | Integer | No | |
| pretext | String | No | |
| text | String | No | |
| thumb_url | String | No | |
| title | String | No | |
| title_link | String | No | |
| type | String | No | Attachment type (e.g. image, video, url) |
AutomodPlatformCircumventionConfig
public class AutomodPlatformCircumventionConfig {
private Boolean async;
private Boolean enabled;
private List<AutomodRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | List<AutomodRule> | No |
AutomodRule
public class AutomodRule {
private String action;
private String label;
private Double threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes | |
| threshold | Double | Yes |
AutomodSemanticFiltersConfig
public class AutomodSemanticFiltersConfig {
private Boolean async;
private Boolean enabled;
private List<AutomodSemanticFiltersRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | List<AutomodSemanticFiltersRule> | No |
AutomodSemanticFiltersRule
public class AutomodSemanticFiltersRule {
private String action;
private String name;
private Double threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| name | String | Yes | |
| threshold | Double | Yes |
AutomodToxicityConfig
public class AutomodToxicityConfig {
private Boolean async;
private Boolean enabled;
private List<AutomodRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | List<AutomodRule> | No |
BanActionRequestPayload
Configuration for ban moderation action
public class BanActionRequestPayload {
private Boolean ban_from_future_channels;
private Boolean channel_ban_only;
private String channel_cid;
private String delete_messages;
private Boolean ip_ban;
private String reason;
private Boolean shadow;
private String target_user_id;
private Integer timeout;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ban_from_future_channels | Boolean | No | Also ban user from all channels this moderator creates in the future |
| channel_ban_only | Boolean | No | Ban only from specific channel |
| channel_cid | String | No | |
| delete_messages | String | No | Message deletion mode: soft, pruning, or hard |
| ip_ban | Boolean | No | Whether to ban by IP address |
| reason | String | No | Reason for the ban |
| shadow | Boolean | No | Whether this is a shadow ban |
| target_user_id | String | No | Optional: ban user directly without review item |
| timeout | Integer | No | Duration of ban in minutes |
BanOptions
public class BanOptions {
private String delete_messages;
private Integer duration;
private Boolean ip_ban;
private String reason;
private Boolean shadow_ban;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delete_messages | String | No | |
| duration | Integer | No | |
| ip_ban | Boolean | No | |
| reason | String | No | |
| shadow_ban | Boolean | No |
BanResponse
public class BanResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
BlockActionRequestPayload
Configuration for block action
public class BlockActionRequestPayload {
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No | Reason for blocking |
BlockListConfig
public class BlockListConfig {
private Boolean async;
private Boolean enabled;
private Boolean match_substring;
private List<BlockListRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| enabled | Boolean | No | |
| match_substring | Boolean | No | |
| rules | List<BlockListRule> | No |
BlockListRule
public class BlockListRule {
private String action;
private String name;
private String team;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| name | String | No | |
| team | String | No |
BodyguardImageAnalysisConfig
public class BodyguardImageAnalysisConfig {
private List<BodyguardRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rules | List<BodyguardRule> | No |
BodyguardRule
public class BodyguardRule {
private String action;
private String label;
private List<BodyguardSeverityRule> severity_rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| label | String | Yes | |
| action | String | No | |
| severity_rules | List<BodyguardSeverityRule> | No |
BodyguardSeverityRule
public class BodyguardSeverityRule {
private String action;
private String severity;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| severity | String | Yes |
BulkImageModerationResponse
public class BulkImageModerationResponse {
private String duration;
private String task_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| task_id | String | Yes | ID of the task for processing the bulk image moderation |
BypassActionRequest
public class BypassActionRequest {
private Boolean enabled;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | No |
BypassResponse
public class BypassResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
CallActionOptions
public class CallActionOptions {
private Integer duration;
private String flag_reason;
private String kick_reason;
private Boolean mute_audio;
private Boolean mute_video;
private String reason;
private String warning_text;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | Integer | No | |
| flag_reason | String | No | |
| kick_reason | String | No | |
| mute_audio | Boolean | No | |
| mute_video | Boolean | No | |
| reason | String | No | |
| warning_text | String | No |
CallCustomPropertyParameters
public class CallCustomPropertyParameters {
private String operator;
private String property_key;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| property_key | String | No |
CallRuleActionSequence
public class CallRuleActionSequence {
private List<String> actions;
private CallActionOptions call_options;
private Integer violation_number;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | List<String> | No | |
| call_options | CallActionOptions | No | |
| violation_number | Integer | No |
CallTypeRuleParameters
public class CallTypeRuleParameters {
private String call_type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| call_type | String | No |
CallViolationCountParameters
public class CallViolationCountParameters {
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Integer | No | |
| time_window | String | No |
CheckResponse
public class CheckResponse {
private String duration;
private ReviewQueueItemResponse item;
private String recommended_action;
private String status;
private String task_id;
private TriggeredRuleResponse triggered_rule;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| recommended_action | String | Yes | Suggested action based on moderation results |
| status | String | Yes | Status of the moderation check (completed or pending) |
| item | ReviewQueueItemResponse | No | Review queue item (present if action != keep) |
| task_id | String | No | ID of the running moderation task |
| triggered_rule | TriggeredRuleResponse | No | Rule triggered by evaluation, with resolved actions and escalation details |
CheckS3AccessResponse
public class CheckS3AccessResponse {
private String duration;
private String message;
private Boolean success;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| success | Boolean | Yes | Whether the S3 access check succeeded |
| message | String | No | Descriptive message about the check result |
ClosedCaptionRuleParameters
public class ClosedCaptionRuleParameters {
private List<String> harm_labels;
private Map<String, Object> llm_harm_labels;
private Integer threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| llm_harm_labels | Map<String, Object> | No | |
| threshold | Integer | No |
ConfigResponse
public class ConfigResponse {
private AIImageConfig ai_image_config;
private List<AIImageLabelDefinition> ai_image_label_definitions;
private Map<String, Object> ai_image_subclassifications;
private AITextConfig ai_text_config;
private AIVideoConfig ai_video_config;
private Boolean async;
private AutomodPlatformCircumventionConfig automod_platform_circumvention_config;
private AutomodSemanticFiltersConfig automod_semantic_filters_config;
private AutomodToxicityConfig automod_toxicity_config;
private BlockListConfig block_list_config;
private Double created_at;
private String key;
private LLMConfig llm_config;
private List<String> supported_video_call_harm_types;
private String team;
private Double updated_at;
private VelocityFilterConfig velocity_filter_config;
private VideoCallRuleConfig video_call_rule_config;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | Yes | Whether moderation should be performed asynchronously |
| created_at | Double | Yes | When the configuration was created |
| key | String | Yes | Unique identifier for the moderation configuration |
| supported_video_call_harm_types | List<String> | Yes | |
| team | String | Yes | Team associated with the configuration |
| updated_at | Double | Yes | When the configuration was last updated |
| ai_image_config | AIImageConfig | No | Configuration for AI image analysis |
| ai_image_label_definitions | List<AIImageLabelDefinition> | No | Configurable image moderation label definitions for dashboard rendering |
| ai_image_subclassifications | Map<String, Object> | No | Available L2 subclassifications per L1 image moderation label, based on the a... |
| ai_text_config | AITextConfig | No | Configuration for AI text analysis |
| ai_video_config | AIVideoConfig | No | Configuration for AI video analysis |
| automod_platform_circumvention_config | AutomodPlatformCircumventionConfig | No | Configuration for platform circumvention detection |
| automod_semantic_filters_config | AutomodSemanticFiltersConfig | No | Configuration for semantic filtering |
| automod_toxicity_config | AutomodToxicityConfig | No | Configuration for toxicity detection |
| block_list_config | BlockListConfig | No | Configuration for block list filtering |
| llm_config | LLMConfig | No | Configuration for customer-configured LLM moderation |
| velocity_filter_config | VelocityFilterConfig | No | Configuration for velocity-based filtering |
| video_call_rule_config | VideoCallRuleConfig | No |
ContentCountRuleParameters
public class ContentCountRuleParameters {
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Integer | No | |
| time_window | String | No |
CustomActionRequestPayload
Configuration for custom moderation action
public class CustomActionRequestPayload {
private String id;
private Map<String, Object> options;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | No | Custom action identifier |
| options | Map<String, Object> | No | Custom action options |
CustomCheckFlag
public class CustomCheckFlag {
private Map<String, Object> custom;
private List<String> labels;
private String reason;
private String type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| type | String | Yes | Type of check (custom_check_text, custom_check_image, custom_check_video) |
| custom | Map<String, Object> | No | Additional metadata for the flag |
| labels | List<String> | No | Labels from various moderation sources |
| reason | String | No | Optional explanation for the flag |
CustomCheckResponse
public class CustomCheckResponse {
private String duration;
private String id;
private ReviewQueueItemResponse item;
private String status;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| id | String | Yes | Unique identifier of the custom check |
| status | String | Yes | Status of the custom check |
| item | ReviewQueueItemResponse | No | Review queue item details |
DeleteActivityRequestPayload
Configuration for activity deletion action
public class DeleteActivityRequestPayload {
private String entity_id;
private String entity_type;
private Boolean hard_delete;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | String | No | ID of the activity to delete (alternative to item_id) |
| entity_type | String | No | Type of the entity (required for delete_activity to distinguish v2 vs v3) |
| hard_delete | Boolean | No | Whether to permanently delete the activity |
| reason | String | No | Reason for deletion |
DeleteCommentRequestPayload
Configuration for comment deletion action
public class DeleteCommentRequestPayload {
private String entity_id;
private String entity_type;
private Boolean hard_delete;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | String | No | ID of the comment to delete (alternative to item_id) |
| entity_type | String | No | Type of the entity |
| hard_delete | Boolean | No | Whether to permanently delete the comment |
| reason | String | No | Reason for deletion |
DeleteMessageRequestPayload
Configuration for message deletion action
public class DeleteMessageRequestPayload {
private String entity_id;
private String entity_type;
private Boolean hard_delete;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | String | No | ID of the message to delete (alternative to item_id) |
| entity_type | String | No | Type of the entity |
| hard_delete | Boolean | No | Whether to permanently delete the message |
| reason | String | No | Reason for deletion |
DeleteModerationConfigResponse
public class DeleteModerationConfigResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
DeleteModerationRuleResponse
Basic response information
public class DeleteModerationRuleResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
DeleteModerationTemplateResponse
public class DeleteModerationTemplateResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
DeleteReactionRequestPayload
Configuration for reaction deletion action
public class DeleteReactionRequestPayload {
private String entity_id;
private String entity_type;
private Boolean hard_delete;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | String | No | ID of the reaction to delete (alternative to item_id) |
| entity_type | String | No | Type of the entity |
| hard_delete | Boolean | No | Whether to permanently delete the reaction |
| reason | String | No | Reason for deletion |
DeleteUserRequestPayload
Configuration for user deletion action
public class DeleteUserRequestPayload {
private Boolean delete_conversation_channels;
private Boolean delete_feeds_content;
private String entity_id;
private String entity_type;
private Boolean hard_delete;
private Boolean mark_messages_deleted;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delete_conversation_channels | Boolean | No | Also delete all user conversations |
| delete_feeds_content | Boolean | No | Delete flagged feeds content |
| entity_id | String | No | ID of the user to delete (alternative to item_id) |
| entity_type | String | No | Type of the entity |
| hard_delete | Boolean | No | Whether to permanently delete the user |
| mark_messages_deleted | Boolean | No | Also delete all user messages |
| reason | String | No | Reason for deletion |
EscalatePayload
Configuration for escalation action
public class EscalatePayload {
private String notes;
private String priority;
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| notes | String | No | Additional context for the reviewer |
| priority | String | No | Priority of the escalation (low, medium, high) |
| reason | String | No | Reason for the escalation (from configured escalation_reasons) |
FeedsModerationTemplateConfigPayload
Configuration for a feeds moderation template
public class FeedsModerationTemplateConfigPayload {
private String config_key;
private Map<String, Object> data_types;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| data_types | Map<String, Object> | Yes | Map of data type names to their content types |
| config_key | String | No | Key of the moderation configuration to use |
Field
public class Field {
private Boolean short;
private String title;
private String value;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| short | Boolean | Yes | |
| title | String | Yes | |
| value | String | Yes |
FilterConfigResponse
public class FilterConfigResponse {
private List<String> ai_text_labels;
private List<String> config_keys;
private List<String> llm_labels;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| llm_labels | List<String> | Yes | |
| ai_text_labels | List<String> | No | |
| config_keys | List<String> | No |
FlagCountRuleParameters
public class FlagCountRuleParameters {
private Integer threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Integer | No |
FlagRequest
public class FlagRequest {
private Map<String, Object> custom;
private String entity_creator_id;
private String entity_id;
private String entity_type;
private ModerationPayload moderation_payload;
private String reason;
private UserRequest user;
private String user_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| entity_id | String | Yes | Unique identifier of the entity being flagged |
| entity_type | String | Yes | Type of entity being flagged (e.g., message, user) |
| custom | Map<String, Object> | No | Additional metadata about the flag |
| entity_creator_id | String | No | ID of the user who created the flagged entity |
| moderation_payload | ModerationPayload | No | Content being flagged |
| reason | String | No | Optional explanation for why the content is being flagged |
| user | UserRequest | No | |
| user_id | String | No |
FlagResponse
public class FlagResponse {
private String duration;
private String item_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item_id | String | Yes | Unique identifier of the created moderation item |
FlagUserOptions
public class FlagUserOptions {
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No |
GetAppealResponse
public class GetAppealResponse {
private String duration;
private AppealItemResponse item;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item | AppealItemResponse | No | Current state of the appeal |
GetConfigResponse
public class GetConfigResponse {
private ConfigResponse config;
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| config | ConfigResponse | No | The retrieved moderation configuration |
GetFlagCountResponse
public class GetFlagCountResponse {
private Integer count;
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| count | Integer | Yes | Total number of flags against the specified user's content |
| duration | String | Yes |
GetModerationRuleResponse
Basic response information
public class GetModerationRuleResponse {
private String duration;
private ModerationRuleV2Response rule;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
GetReviewQueueItemResponse
public class GetReviewQueueItemResponse {
private String duration;
private ReviewQueueItemResponse item;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| item | ReviewQueueItemResponse | No | Current state of the review queue item |
GoogleVisionConfig
public class GoogleVisionConfig {
private Boolean enabled;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | No |
HarmConfig
public class HarmConfig {
private List<ActionSequence> action_sequences;
private Integer cooldown_period;
private List<String> harm_types;
private Integer severity;
private Integer threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_sequences | List<ActionSequence> | No | |
| cooldown_period | Integer | No | |
| harm_types | List<String> | No | |
| severity | Integer | No | |
| threshold | Integer | No |
ImageContentParameters
public class ImageContentParameters {
private List<String> harm_labels;
private String label_operator;
private Double min_confidence;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| label_operator | String | No | |
| min_confidence | Double | No |
ImageRuleParameters
public class ImageRuleParameters {
private List<String> harm_labels;
private Double min_confidence;
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| min_confidence | Double | No | |
| threshold | Integer | No | |
| time_window | String | No |
Images
public class Images {
private ImageData fixed_height;
private ImageData fixed_height_downsampled;
private ImageData fixed_height_still;
private ImageData fixed_width;
private ImageData fixed_width_downsampled;
private ImageData fixed_width_still;
private ImageData original;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| fixed_height | ImageData | Yes | |
| fixed_height_downsampled | ImageData | Yes | |
| fixed_height_still | ImageData | Yes | |
| fixed_width | ImageData | Yes | |
| fixed_width_downsampled | ImageData | Yes | |
| fixed_width_still | ImageData | Yes | |
| original | ImageData | Yes |
InsertActionLogResponse
Response after inserting a moderation action log
public class InsertActionLogResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
KeyframeRuleParameters
public class KeyframeRuleParameters {
private List<String> harm_labels;
private Double min_confidence;
private Integer threshold;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| min_confidence | Double | No | |
| threshold | Integer | No |
LLMConfig
public class LLMConfig {
private String app_context;
private Boolean async;
private Boolean enabled;
private List<LLMRule> rules;
private Map<String, Object> severity_descriptions;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| app_context | String | No | |
| async | Boolean | No | |
| enabled | Boolean | No | |
| rules | List<LLMRule> | No | |
| severity_descriptions | Map<String, Object> | No |
LLMRule
public class LLMRule {
private String action;
private String description;
private String label;
private List<BodyguardSeverityRule> severity_rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| description | String | Yes | |
| label | String | Yes | |
| action | String | No | |
| severity_rules | List<BodyguardSeverityRule> | No |
Location
public class Location {
private Double lat;
private Double lng;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| lat | Double | Yes | Latitude coordinate |
| lng | Double | Yes | Longitude coordinate |
MarkReviewedRequestPayload
Configuration for mark reviewed action
public class MarkReviewedRequestPayload {
private Integer content_to_mark_as_reviewed_limit;
private String decision_reason;
private Boolean disable_marking_content_as_reviewed;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| content_to_mark_as_reviewed_limit | Integer | No | Maximum content items to mark as reviewed |
| decision_reason | String | No | Reason for the appeal decision |
| disable_marking_content_as_reviewed | Boolean | No | Skip marking content as reviewed |
ModerationConfig
public class ModerationConfig {
private AIImageConfig ai_image_config;
private BodyguardImageAnalysisConfig ai_image_lite_config;
private AITextConfig ai_text_config;
private AIVideoConfig ai_video_config;
private Boolean async;
private AutomodPlatformCircumventionConfig automod_platform_circumvention_config;
private AutomodSemanticFiltersConfig automod_semantic_filters_config;
private AutomodToxicityConfig automod_toxicity_config;
private BlockListConfig block_list_config;
private Double created_at;
private GoogleVisionConfig google_vision_config;
private String key;
private LLMConfig llm_config;
private List<String> supported_video_call_harm_types;
private String team;
private Double updated_at;
private VelocityFilterConfig velocity_filter_config;
private VideoCallRuleConfig video_call_rule_config;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_image_config | AIImageConfig | No | |
| ai_image_lite_config | BodyguardImageAnalysisConfig | No | |
| ai_text_config | AITextConfig | No | |
| ai_video_config | AIVideoConfig | No | |
| async | Boolean | No | |
| automod_platform_circumvention_config | AutomodPlatformCircumventionConfig | No | |
| automod_semantic_filters_config | AutomodSemanticFiltersConfig | No | |
| automod_toxicity_config | AutomodToxicityConfig | No | |
| block_list_config | BlockListConfig | No | |
| created_at | Double | No | |
| google_vision_config | GoogleVisionConfig | No | |
| key | String | No | |
| llm_config | LLMConfig | No | |
| supported_video_call_harm_types | List<String> | No | |
| team | String | No | |
| updated_at | Double | No | |
| velocity_filter_config | VelocityFilterConfig | No | |
| video_call_rule_config | VideoCallRuleConfig | No |
ModerationFlagResponse
public class ModerationFlagResponse {
private Double created_at;
private Map<String, Object> custom;
private String entity_creator_id;
private String entity_id;
private String entity_type;
private List<String> labels;
private ModerationPayloadResponse moderation_payload;
private String reason;
private List<Map<String, Object>> result;
private ReviewQueueItemResponse review_queue_item;
private String review_queue_item_id;
private String type;
private Double updated_at;
private UserResponse user;
private String user_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Double | Yes | |
| entity_id | String | Yes | |
| entity_type | String | Yes | |
| result | List<Map<String, Object>> | Yes | |
| type | String | Yes | |
| updated_at | Double | Yes | |
| user_id | String | Yes | |
| custom | Map<String, Object> | No | |
| entity_creator_id | String | No | |
| labels | List<String> | No | |
| moderation_payload | ModerationPayloadResponse | No | |
| reason | String | No | |
| review_queue_item | ReviewQueueItemResponse | No | |
| review_queue_item_id | String | No | |
| user | UserResponse | No |
ModerationPayload
public class ModerationPayload {
private Map<String, Object> custom;
private List<String> images;
private List<String> texts;
private List<String> videos;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Map<String, Object> | No | |
| images | List<String> | No | |
| texts | List<String> | No | |
| videos | List<String> | No |
ModerationPayloadRequest
Content payload for moderation
public class ModerationPayloadRequest {
private Map<String, Object> custom;
private List<String> images;
private List<String> texts;
private List<String> videos;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| custom | Map<String, Object> | No | Custom data for moderation |
| images | List<String> | No | Image URLs to moderate (max 30) |
| texts | List<String> | No | Text content to moderate |
| videos | List<String> | No | Video URLs to moderate |
ModerationRuleV2Response
public class ModerationRuleV2Response {
private RuleBuilderAction action;
private List<CallRuleActionSequence> action_sequences;
private List<RuleBuilderCondition> conditions;
private List<String> config_keys;
private String cooldown_period;
private Double created_at;
private String description;
private Boolean enabled;
private List<RuleBuilderConditionGroup> groups;
private String id;
private String logic;
private String name;
private String rule_type;
private String team;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| config_keys | List<String> | Yes | |
| created_at | Double | Yes | |
| description | String | Yes | |
| enabled | Boolean | Yes | |
| id | String | Yes | |
| name | String | Yes | |
| rule_type | String | Yes | |
| team | String | Yes | |
| updated_at | Double | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | List<CallRuleActionSequence> | No | |
| conditions | List<RuleBuilderCondition> | No | |
| cooldown_period | String | No | |
| groups | List<RuleBuilderConditionGroup> | No | |
| logic | String | No |
MuteResponse
public class MuteResponse {
private String duration;
private List<UserMuteResponse> mutes;
private List<String> non_existing_users;
private OwnUserResponse own_user;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| mutes | List<UserMuteResponse> | No | Object with mutes (if multiple users were muted) |
| non_existing_users | List<String> | No | A list of users that can't be found. Common cause for this is deleted users |
| own_user | OwnUserResponse | No | Authorized user object with fresh mutes information |
OCRRule
public class OCRRule {
private String action;
private String label;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| label | String | Yes |
OwnUserResponse
public class OwnUserResponse {
private Integer avg_response_time;
private Boolean banned;
private List<String> blocked_user_ids;
private List<ChannelMute> channel_mutes;
private Double created_at;
private Map<String, Object> custom;
private Double deactivated_at;
private Double deleted_at;
private List<DeviceResponse> devices;
private String id;
private String image;
private Boolean invisible;
private String language;
private Double last_active;
private List<String> latest_hidden_channels;
private List<UserMuteResponse> mutes;
private String name;
private Boolean online;
private PrivacySettingsResponse privacy_settings;
private PushPreferencesResponse push_preferences;
private Double revoke_tokens_issued_before;
private String role;
private List<String> teams;
private Map<String, Object> teams_role;
private Integer total_unread_count;
private Map<String, Object> total_unread_count_by_team;
private Integer unread_channels;
private Integer unread_count;
private Integer unread_threads;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | Boolean | Yes | |
| channel_mutes | List<ChannelMute> | Yes | |
| created_at | Double | Yes | |
| custom | Map<String, Object> | Yes | |
| devices | List<DeviceResponse> | Yes | |
| id | String | Yes | |
| invisible | Boolean | Yes | |
| language | String | Yes | |
| mutes | List<UserMuteResponse> | Yes | |
| online | Boolean | Yes | |
| role | String | Yes | |
| teams | List<String> | Yes | |
| total_unread_count | Integer | Yes | |
| unread_channels | Integer | Yes | |
| unread_count | Integer | Yes | |
| unread_threads | Integer | Yes | |
| updated_at | Double | Yes | |
| avg_response_time | Integer | No | |
| blocked_user_ids | List<String> | No | |
| deactivated_at | Double | No | |
| deleted_at | Double | No | |
| image | String | No | |
| last_active | Double | No | |
| latest_hidden_channels | List<String> | No | |
| name | String | No | |
| privacy_settings | PrivacySettingsResponse | No | |
| push_preferences | PushPreferencesResponse | No | |
| revoke_tokens_issued_before | Double | No | |
| teams_role | Map<String, Object> | No | |
| total_unread_count_by_team | Map<String, Object> | No |
PagerRequest
public class PagerRequest {
private Integer limit;
private String next;
private String prev;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| limit | Integer | No | |
| next | String | No | |
| prev | String | No |
PrivacySettingsResponse
public class PrivacySettingsResponse {
private DeliveryReceiptsResponse delivery_receipts;
private ReadReceiptsResponse read_receipts;
private TypingIndicatorsResponse typing_indicators;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| delivery_receipts | DeliveryReceiptsResponse | No | |
| read_receipts | ReadReceiptsResponse | No | |
| typing_indicators | TypingIndicatorsResponse | No |
QueryAppealsResponse
public class QueryAppealsResponse {
private String duration;
private List<AppealItemResponse> items;
private String next;
private String prev;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| items | List<AppealItemResponse> | Yes | List of Appeal Items |
| next | String | No | |
| prev | String | No |
QueryFeedModerationTemplate
public class QueryFeedModerationTemplate {
private FeedsModerationTemplateConfigPayload config;
private Double created_at;
private String name;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Double | Yes | When the template was created |
| name | String | Yes | Name of the moderation template |
| updated_at | Double | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
QueryFeedModerationTemplatesResponse
public class QueryFeedModerationTemplatesResponse {
private String duration;
private List<QueryFeedModerationTemplate> templates;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| templates | List<QueryFeedModerationTemplate> | Yes | List of moderation templates |
QueryModerationConfigsResponse
public class QueryModerationConfigsResponse {
private List<ConfigResponse> configs;
private String duration;
private String next;
private String prev;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| configs | List<ConfigResponse> | Yes | List of moderation configurations |
| duration | String | Yes | |
| next | String | No | |
| prev | String | No |
QueryModerationFlagsResponse
Basic response information
public class QueryModerationFlagsResponse {
private String duration;
private List<ModerationFlagResponse> flags;
private String next;
private String prev;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| flags | List<ModerationFlagResponse> | Yes | |
| next | String | No | |
| prev | String | No |
QueryModerationLogsResponse
public class QueryModerationLogsResponse {
private String duration;
private List<ActionLogResponse> logs;
private String next;
private String prev;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| logs | List<ActionLogResponse> | Yes | List of moderation action logs |
| next | String | No | |
| prev | String | No |
QueryModerationRulesResponse
public class QueryModerationRulesResponse {
private List<AIImageLabelDefinition> ai_image_label_definitions;
private Map<String, Object> ai_image_subclassifications;
private List<String> closed_caption_labels;
private Map<String, Object> default_llm_labels;
private String duration;
private Map<String, Object> keyframe_label_classifications;
private List<String> keyframe_labels;
private String next;
private String prev;
private List<ModerationRuleV2Response> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ai_image_label_definitions | List<AIImageLabelDefinition> | Yes | AI image label definitions with metadata for dashboard rendering |
| ai_image_subclassifications | Map<String, Object> | Yes | Stream L1 to leaf-level label name mapping for AI image rules |
| closed_caption_labels | List<String> | Yes | Available harm labels for closed caption rules |
| default_llm_labels | Map<String, Object> | Yes | Default LLM label descriptions |
| duration | String | Yes | |
| keyframe_label_classifications | Map<String, Object> | Yes | L1 to L2 mapping of keyframe harm label classifications |
| keyframe_labels | List<String> | Yes | Deprecated: use keyframe_label_classifications instead. Available L1 harm lab... |
| rules | List<ModerationRuleV2Response> | Yes | List of moderation rules |
| next | String | No | |
| prev | String | No |
QueryReviewQueueResponse
public class QueryReviewQueueResponse {
private Map<String, Object> action_config;
private String duration;
private FilterConfigResponse filter_config;
private List<ReviewQueueItemResponse> items;
private String next;
private String prev;
private Map<String, Object> stats;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action_config | Map<String, Object> | Yes | Configuration for moderation actions |
| duration | String | Yes | |
| items | List<ReviewQueueItemResponse> | Yes | List of review queue items |
| stats | Map<String, Object> | Yes | Statistics about the review queue |
| filter_config | FilterConfigResponse | No | Configuration for filters in moderation review queue |
| next | String | No | |
| prev | String | No |
Reaction
public class Reaction {
private String activity_id;
private Map<String, Object> children_counts;
private Double created_at;
private Map<String, Object> data;
private Double deleted_at;
private String id;
private String kind;
private Map<String, Object> latest_children;
private Map<String, Object> moderation;
private Map<String, Object> own_children;
private String parent;
private Double score;
private List<String> target_feeds;
private Map<String, Object> target_feeds_extra_data;
private Double updated_at;
private User user;
private String user_id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| activity_id | String | Yes | |
| created_at | Double | Yes | |
| kind | String | Yes | |
| updated_at | Double | Yes | |
| user_id | String | Yes | |
| children_counts | Map<String, Object> | No | |
| data | Map<String, Object> | No | |
| deleted_at | Double | No | |
| id | String | No | |
| latest_children | Map<String, Object> | No | |
| moderation | Map<String, Object> | No | |
| own_children | Map<String, Object> | No | |
| parent | String | No | |
| score | Double | No | |
| target_feeds | List<String> | No | |
| target_feeds_extra_data | Map<String, Object> | No | |
| user | User | No |
RejectAppealRequestPayload
Configuration for rejecting an appeal
public class RejectAppealRequestPayload {
private String decision_reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | Yes | Reason for rejecting the appeal |
RestoreActionRequestPayload
Configuration for restore action
public class RestoreActionRequestPayload {
private String decision_reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | No | Reason for the appeal decision |
ReviewQueueItemResponse
public class ReviewQueueItemResponse {
private List<ActionLogResponse> actions;
private EnrichedActivity activity;
private String ai_text_severity;
private AppealItemResponse appeal;
private UserResponse assigned_to;
private List<BanInfoResponse> bans;
private CallResponse call;
private Double completed_at;
private String config_key;
private Double created_at;
private EntityCreatorResponse entity_creator;
private String entity_creator_id;
private String entity_id;
private String entity_type;
private Boolean escalated;
private Double escalated_at;
private String escalated_by;
private EscalationMetadata escalation_metadata;
private EnrichedActivity feeds_v2_activity;
private Reaction feeds_v2_reaction;
private FeedsV3ActivityResponse feeds_v3_activity;
private FeedsV3CommentResponse feeds_v3_comment;
private List<ModerationFlagResponse> flags;
private Integer flags_count;
private String id;
private List<String> languages;
private String latest_moderator_action;
private MessageResponse message;
private ModerationPayloadResponse moderation_payload;
private Reaction reaction;
private String recommended_action;
private Double reviewed_at;
private String reviewed_by;
private Integer severity;
private String status;
private List<String> teams;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | List<ActionLogResponse> | Yes | Moderation actions taken |
| ai_text_severity | String | Yes | AI-determined text severity |
| bans | List<BanInfoResponse> | Yes | Associated ban records |
| created_at | Double | Yes | When the item was created |
| entity_id | String | Yes | ID of the entity being reviewed |
| entity_type | String | Yes | Type of entity being reviewed |
| escalated | Boolean | Yes | Whether the item has been escalated |
| flags | List<ModerationFlagResponse> | Yes | Associated flag records |
| flags_count | Integer | Yes | |
| id | String | Yes | Unique identifier of the review queue item |
| languages | List<String> | Yes | Detected languages in the content |
| latest_moderator_action | String | Yes | |
| recommended_action | String | Yes | Suggested moderation action |
| reviewed_by | String | Yes | ID of the moderator who reviewed the item |
| severity | Integer | Yes | Severity level of the content |
| status | String | Yes | Current status of the review |
| updated_at | Double | Yes | When the item was last updated |
| activity | EnrichedActivity | No | |
| appeal | AppealItemResponse | No | Appeal submitted for this item if it exists |
| assigned_to | UserResponse | No | Moderator assigned to review this item |
| call | CallResponse | No | |
| completed_at | Double | No | When the review was completed |
| config_key | String | No | |
| entity_creator | EntityCreatorResponse | No | Details about who created the entity |
| entity_creator_id | String | No | ID of who created the entity |
| escalated_at | Double | No | When the item was escalated |
| escalated_by | String | No | ID of the moderator who escalated the item |
| escalation_metadata | EscalationMetadata | No | Escalation details including reason, notes, and priority |
| feeds_v2_activity | EnrichedActivity | No | Associated feed activity |
| feeds_v2_reaction | Reaction | No | Associated feed reaction |
| feeds_v3_activity | FeedsV3ActivityResponse | No | |
| feeds_v3_comment | FeedsV3CommentResponse | No | |
| message | MessageResponse | No | Associated message details |
| moderation_payload | ModerationPayloadResponse | No | Content being moderated |
| reaction | Reaction | No | |
| reviewed_at | Double | No | When the item was reviewed |
| teams | List<String> | No | Teams associated with this item |
RuleBuilderAction
public class RuleBuilderAction {
private BanOptions ban_options;
private CallActionOptions call_options;
private FlagUserOptions flag_user_options;
private Boolean skip_inbox;
private String type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| ban_options | BanOptions | No | |
| call_options | CallActionOptions | No | |
| flag_user_options | FlagUserOptions | No | |
| skip_inbox | Boolean | No | |
| type | String | No |
RuleBuilderCondition
public class RuleBuilderCondition {
private CallCustomPropertyParameters call_custom_property_params;
private CallTypeRuleParameters call_type_rule_params;
private CallViolationCountParameters call_violation_count_params;
private ClosedCaptionRuleParameters closed_caption_rule_params;
private Double confidence;
private ContentCountRuleParameters content_count_rule_params;
private FlagCountRuleParameters content_flag_count_rule_params;
private ImageContentParameters image_content_params;
private ImageRuleParameters image_rule_params;
private KeyframeRuleParameters keyframe_rule_params;
private TextContentParameters text_content_params;
private TextRuleParameters text_rule_params;
private String type;
private UserCreatedWithinParameters user_created_within_params;
private UserCustomPropertyParameters user_custom_property_params;
private FlagCountRuleParameters user_flag_count_rule_params;
private UserIdenticalContentCountParameters user_identical_content_count_params;
private UserRoleParameters user_role_params;
private UserRuleParameters user_rule_params;
private VideoContentParameters video_content_params;
private VideoRuleParameters video_rule_params;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| call_custom_property_params | CallCustomPropertyParameters | No | |
| call_type_rule_params | CallTypeRuleParameters | No | |
| call_violation_count_params | CallViolationCountParameters | No | |
| closed_caption_rule_params | ClosedCaptionRuleParameters | No | |
| confidence | Double | No | |
| content_count_rule_params | ContentCountRuleParameters | No | |
| content_flag_count_rule_params | FlagCountRuleParameters | No | |
| image_content_params | ImageContentParameters | No | |
| image_rule_params | ImageRuleParameters | No | |
| keyframe_rule_params | KeyframeRuleParameters | No | |
| text_content_params | TextContentParameters | No | |
| text_rule_params | TextRuleParameters | No | |
| type | String | No | |
| user_created_within_params | UserCreatedWithinParameters | No | |
| user_custom_property_params | UserCustomPropertyParameters | No | |
| user_flag_count_rule_params | FlagCountRuleParameters | No | |
| user_identical_content_count_params | UserIdenticalContentCountParameters | No | |
| user_role_params | UserRoleParameters | No | |
| user_rule_params | UserRuleParameters | No | |
| video_content_params | VideoContentParameters | No | |
| video_rule_params | VideoRuleParameters | No |
RuleBuilderConditionGroup
public class RuleBuilderConditionGroup {
private List<RuleBuilderCondition> conditions;
private String logic;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| conditions | List<RuleBuilderCondition> | No | |
| logic | String | No |
RuleBuilderConfig
public class RuleBuilderConfig {
private Boolean async;
private List<RuleBuilderRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| async | Boolean | No | |
| rules | List<RuleBuilderRule> | No |
RuleBuilderRule
public class RuleBuilderRule {
private RuleBuilderAction action;
private List<CallRuleActionSequence> action_sequences;
private List<RuleBuilderCondition> conditions;
private String cooldown_period;
private List<RuleBuilderConditionGroup> groups;
private String id;
private String logic;
private String rule_type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| rule_type | String | Yes | |
| action | RuleBuilderAction | No | |
| action_sequences | List<CallRuleActionSequence> | No | |
| conditions | List<RuleBuilderCondition> | No | |
| cooldown_period | String | No | |
| groups | List<RuleBuilderConditionGroup> | No | |
| id | String | No | |
| logic | String | No |
ShadowBlockActionRequestPayload
Configuration for shadow block action
public class ShadowBlockActionRequestPayload {
private String reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| reason | String | No | Reason for shadow blocking |
SortParamRequest
public class SortParamRequest {
private Integer direction;
private String field;
private String type;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| direction | Integer | No | Direction of sorting, 1 for Ascending, -1 for Descending, default is 1. One o... |
| field | String | No | Name of field to sort by |
| type | String | No | Type of field to sort by. Empty string or omitted means string type (default)... |
SubmitActionResponse
public class SubmitActionResponse {
private AppealItemResponse appeal_item;
private String duration;
private ReviewQueueItemResponse item;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| appeal_item | AppealItemResponse | No | Updated Appeal item after action was performed |
| item | ReviewQueueItemResponse | No | Updated review queue item after action was performed |
TextContentParameters
public class TextContentParameters {
private List<String> blocklist_match;
private Boolean contains_url;
private List<String> harm_labels;
private String label_operator;
private Map<String, Object> llm_harm_labels;
private String severity;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | List<String> | No | |
| contains_url | Boolean | No | |
| harm_labels | List<String> | No | |
| label_operator | String | No | |
| llm_harm_labels | Map<String, Object> | No | |
| severity | String | No |
TextRuleParameters
public class TextRuleParameters {
private List<String> blocklist_match;
private Boolean contains_url;
private List<String> harm_labels;
private Map<String, Object> llm_harm_labels;
private Double semantic_filter_min_threshold;
private List<String> semantic_filter_names;
private String severity;
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| blocklist_match | List<String> | No | |
| contains_url | Boolean | No | |
| harm_labels | List<String> | No | |
| llm_harm_labels | Map<String, Object> | No | |
| semantic_filter_min_threshold | Double | No | |
| semantic_filter_names | List<String> | No | |
| severity | String | No | |
| threshold | Integer | No | |
| time_window | String | No |
TriggeredRuleResponse
public class TriggeredRuleResponse {
private List<String> actions;
private CallActionOptions call_options;
private String rule_id;
private String rule_name;
private Integer violation_number;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| actions | List<String> | Yes | Action types resolved from the rule's action sequence |
| rule_id | String | Yes | ID of the moderation rule that triggered |
| call_options | CallActionOptions | No | Options for call actions (mute settings, warning text, kick reason) |
| rule_name | String | No | Name of the moderation rule that triggered |
| violation_number | Integer | No | Violation count for action sequence rules (1-based) |
UnbanActionRequestPayload
Configuration for unban moderation action
public class UnbanActionRequestPayload {
private String channel_cid;
private String decision_reason;
private Boolean remove_future_channels_ban;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| channel_cid | String | No | Channel CID for channel-specific unban |
| decision_reason | String | No | Reason for the appeal decision |
| remove_future_channels_ban | Boolean | No | Also remove the future channels ban for this user |
UnbanResponse
public class UnbanResponse {
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes |
UnblockActionRequestPayload
Configuration for unblock action
public class UnblockActionRequestPayload {
private String decision_reason;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| decision_reason | String | No | Reason for the appeal decision |
UnmuteResponse
public class UnmuteResponse {
private String duration;
private List<String> non_existing_users;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| non_existing_users | List<String> | No | A list of users that can't be found. Common cause for this is deleted users |
UpsertConfigResponse
public class UpsertConfigResponse {
private ConfigResponse config;
private String duration;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | |
| config | ConfigResponse | No | The created or updated moderation configuration |
UpsertModerationRuleResponse
Basic response information
public class UpsertModerationRuleResponse {
private String duration;
private ModerationRuleV2Response rule;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| duration | String | Yes | Duration of the request in milliseconds |
| rule | ModerationRuleV2Response | No |
UpsertModerationTemplateResponse
public class UpsertModerationTemplateResponse {
private FeedsModerationTemplateConfigPayload config;
private Double created_at;
private String duration;
private String name;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Double | Yes | When the template was created |
| duration | String | Yes | |
| name | String | Yes | Name of the moderation template |
| updated_at | Double | Yes | When the template was last updated |
| config | FeedsModerationTemplateConfigPayload | No | Configuration for the moderation template |
User
public class User {
private Map<String, Object> data;
private String id;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | |
| data | Map<String, Object> | No |
UserCreatedWithinParameters
public class UserCreatedWithinParameters {
private String max_age;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | String | No |
UserCustomPropertyParameters
public class UserCustomPropertyParameters {
private String operator;
private String property_key;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| property_key | String | No |
UserIdenticalContentCountParameters
public class UserIdenticalContentCountParameters {
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| threshold | Integer | No | |
| time_window | String | No |
UserMuteResponse
public class UserMuteResponse {
private Double created_at;
private Double expires;
private UserResponse target;
private Double updated_at;
private UserResponse user;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| created_at | Double | Yes | |
| updated_at | Double | Yes | |
| expires | Double | No | |
| target | UserResponse | No | |
| user | UserResponse | No |
UserRequest
User request object
public class UserRequest {
private Map<String, Object> custom;
private String id;
private String image;
private Boolean invisible;
private String language;
private String name;
private PrivacySettingsResponse privacy_settings;
private String role;
private List<String> teams;
private Map<String, Object> teams_role;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| id | String | Yes | User ID |
| custom | Map<String, Object> | No | Custom user data |
| image | String | No | User's profile image URL |
| invisible | Boolean | No | |
| language | String | No | |
| name | String | No | Optional name of user |
| privacy_settings | PrivacySettingsResponse | No | |
| role | String | No | User's global role |
| teams | List<String> | No | List of teams the user belongs to |
| teams_role | Map<String, Object> | No | Map of team-specific roles for the user |
UserResponse
User response object
public class UserResponse {
private Integer avg_response_time;
private Double ban_expires;
private Boolean banned;
private List<String> blocked_user_ids;
private Boolean bypass_moderation;
private Double created_at;
private Map<String, Object> custom;
private Double deactivated_at;
private Double deleted_at;
private List<DeviceResponse> devices;
private String id;
private String image;
private Boolean invisible;
private String language;
private Double last_active;
private String name;
private Boolean online;
private PrivacySettingsResponse privacy_settings;
private PushNotificationSettingsResponse push_notifications;
private Double revoke_tokens_issued_before;
private String role;
private Boolean shadow_banned;
private List<String> teams;
private Map<String, Object> teams_role;
private Double updated_at;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| banned | Boolean | Yes | Whether a user is banned or not |
| blocked_user_ids | List<String> | Yes | |
| created_at | Double | Yes | Date/time of creation |
| custom | Map<String, Object> | Yes | Custom data for this object |
| id | String | Yes | Unique user identifier |
| invisible | Boolean | Yes | |
| language | String | Yes | Preferred language of a user |
| online | Boolean | Yes | Whether a user online or not |
| role | String | Yes | Determines the set of user permissions |
| shadow_banned | Boolean | Yes | Whether a user is shadow banned |
| teams | List<String> | Yes | List of teams user is a part of |
| updated_at | Double | Yes | Date/time of the last update |
| avg_response_time | Integer | No | |
| ban_expires | Double | No | Date when ban expires |
| bypass_moderation | Boolean | No | |
| deactivated_at | Double | No | Date of deactivation |
| deleted_at | Double | No | Date/time of deletion |
| devices | List<DeviceResponse> | No | List of devices user is using |
| image | String | No | |
| last_active | Double | No | Date of last activity |
| name | String | No | Optional name of user |
| privacy_settings | PrivacySettingsResponse | No | User privacy settings |
| push_notifications | PushNotificationSettingsResponse | No | User push notification settings |
| revoke_tokens_issued_before | Double | No | Revocation date for tokens |
| teams_role | Map<String, Object> | No |
UserRoleParameters
public class UserRoleParameters {
private String operator;
private String role;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| operator | String | No | |
| role | String | No |
UserRuleParameters
public class UserRuleParameters {
private String max_age;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| max_age | String | No |
VelocityFilterConfig
public class VelocityFilterConfig {
private Boolean advanced_filters;
private Boolean async;
private Boolean cascading_actions;
private Integer cids_per_user;
private Boolean enabled;
private Boolean first_message_only;
private List<VelocityFilterConfigRule> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| advanced_filters | Boolean | No | |
| async | Boolean | No | |
| cascading_actions | Boolean | No | |
| cids_per_user | Integer | No | |
| enabled | Boolean | No | |
| first_message_only | Boolean | No | |
| rules | List<VelocityFilterConfigRule> | No |
VelocityFilterConfigRule
public class VelocityFilterConfigRule {
private String action;
private Integer ban_duration;
private String cascading_action;
private Integer cascading_threshold;
private Boolean check_message_context;
private Integer fast_spam_threshold;
private Integer fast_spam_ttl;
private Boolean ip_ban;
private Integer probation_period;
private Boolean shadow_ban;
private Integer slow_spam_ban_duration;
private Integer slow_spam_threshold;
private Integer slow_spam_ttl;
private Boolean url_only;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| action | String | Yes | |
| ban_duration | Integer | No | |
| cascading_action | String | No | |
| cascading_threshold | Integer | No | |
| check_message_context | Boolean | No | |
| fast_spam_threshold | Integer | No | |
| fast_spam_ttl | Integer | No | |
| ip_ban | Boolean | No | |
| probation_period | Integer | No | |
| shadow_ban | Boolean | No | |
| slow_spam_ban_duration | Integer | No | |
| slow_spam_threshold | Integer | No | |
| slow_spam_ttl | Integer | No | |
| url_only | Boolean | No |
VideoCallRuleConfig
public class VideoCallRuleConfig {
private Boolean flag_all_labels;
private List<String> flagged_labels;
private List<HarmConfig> rules;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| flag_all_labels | Boolean | No | |
| flagged_labels | List<String> | No | |
| rules | List<HarmConfig> | No |
VideoContentParameters
public class VideoContentParameters {
private List<String> harm_labels;
private String label_operator;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| label_operator | String | No |
VideoRuleParameters
public class VideoRuleParameters {
private List<String> harm_labels;
private Integer threshold;
private String time_window;
}Properties:
| Property | Type | Required | Description |
|---|---|---|---|
| harm_labels | List<String> | No | |
| threshold | Integer | No | |
| time_window | String | No |