Skip to content
Fluxer API

Bulk jobs

A bulk job applies one operation to a list of user or guild IDs. Queueing one returns a job ID right away. Follow its progress with Get job and stop it with Cancel job.

FieldTypeDescription
job_idsnowflakeThe queued job

The task field selects the body and the Admin ACL you need.

TaskACLDescription
update_user_flagsbulk:update:user_flagsAdds and removes account flags on each user
update_guild_featuresbulk:update:guild_featuresAdds and removes features on each guild
add_guild_membersbulk:add:guild_membersAdds each user to one guild
schedule_user_deletionbulk:delete:usersCloses each account and schedules its deletion
delete_user_messagesbulk:delete:user_messagesDeletes every message each user wrote

Get job reports each task under its job task type in task_type.

TaskJob task type
update_user_flagsbulkUpdateUserFlags
update_guild_featuresbulkUpdateGuildFeatures
add_guild_membersbulkAddGuildMembers
schedule_user_deletionbulkScheduleUserDeletion
delete_user_messagesbulkDeleteMessagesForUsers
POST/v1/admin/bulk-jobsAudit reason

Queues one bulk operation and returns a bulk job creation object. You need the ACL for the task you send.

FieldTypeDescription
taskstringAlways update_user_flags
user_idsarray[snowflake]The users to update (up to 1000)
add_flags?array[string]Account flag values to add, as unsigned decimal strings (up to 64, default empty)
remove_flags?array[string]Account flag values to remove, as unsigned decimal strings (up to 64, default empty)
FieldTypeDescription
taskstringAlways update_guild_features
guild_idsarray[snowflake]The guilds to update (up to 1000)
add_features?array[string]Guild features to add (up to 100, default empty)
remove_features?array[string]Guild features to remove (up to 100, default empty)
FieldTypeDescription
taskstringAlways add_guild_members
guild_idsnowflakeThe guild that receives the users
user_idsarray[snowflake]The users to add as members (up to 1000)
FieldTypeDescription
taskstringAlways schedule_user_deletion
user_idsarray[snowflake]The users to schedule for deletion (up to 1000)
days_until_deletionintegerDays until each account is deleted (1-365, raised to 14 if lower)
basis1basis objectWhy the accounts are closed
FieldTypeDescription
taskstringAlways delete_user_messages
user_idsarray[snowflake]The users whose messages are deleted (up to 1000)
basis1basis objectWhy the messages are deleted

1 With type set to enforcement, decision takes reason_code, source (always own_review), automation and a required statement, and it can't link reports or evidence messages.

StatusBodyCondition
200bulk job creation objectThe job was queued
400error responseINVALID_FORM_BODY, also when add_flags has a restriction flag
400error responseENFORCEMENT_INTERNAL_NOTE_REQUIRED when an enforcement basis has no X-Audit-Log-Reason
403error responseMISSING_ACL without the ACL that task selects

Fluxer works through the IDs in order. A failed ID doesn't stop the job, and the final progress_message gives the successful and failed counts. Cancelling stops the job between IDs and keeps the changes already made.

Queueing writes a queue_bulk_job audit entry, and each job writes one summary entry when it ends.

Each task works like its single-target route and sends the same Gateway events.

The rate limit is 20 requests per minute, on the admin:bulk:operation bucket.