MinIO · AsyncAPI Specification

Minio Bucket Notifications Webhooks

Version

View Spec View on GitHub Object StorageStorageS3 CompatibleCloud NativeKubernetesData InfrastructureAI StorageCompanyAsyncAPIWebhooksEvents

AsyncAPI Specification

minio-bucket-notifications-webhooks.yml Raw ↑
generated: '2026-07-20'
method: searched
source: https://docs.min.io/enterprise/aistor-object-store/administration/bucket-notifications/
spec_type: Webhooks
summary: >-
  MinIO (and AIStor) emit S3-style bucket event notifications when objects and
  buckets change. Events are published to configured targets/queues; the Webhook
  target delivers the same S3 event record JSON to an HTTP endpoint. This is the
  provider's event/webhook surface. MinIO does not publish a formal AsyncAPI
  document, so the event and target catalog is captured here (derived from the
  documented event types and targets). Never fabricated.
payload:
  format: S3 event notification record (JSON, s3:* eventName), same shape as the
    Amazon S3 event message structure
  envelope_fields: [Records, eventVersion, eventSource, awsRegion, eventTime, eventName, s3]
targets:
  - id: webhook
    kind: http-webhook
    description: Publish notifications to an HTTP webhook endpoint
  - id: kafka
    kind: message-queue
    description: Publish notifications to a Kafka service
  - id: amqp
    kind: message-queue
    description: Publish notifications to an AMQP service such as RabbitMQ
  - id: mqtt
    kind: message-queue
    description: Publish notifications to an MQTT service
  - id: nats
    kind: message-queue
    description: Publish notifications to a NATS service
  - id: nsq
    kind: message-queue
    description: Publish notifications to a NSQ service
  - id: redis
    kind: datastore
    description: Publish notifications to a Redis service
  - id: elasticsearch
    kind: datastore
    description: Publish notifications to an Elasticsearch service
  - id: postgresql
    kind: datastore
    description: Publish notifications to a PostgreSQL service
  - id: mysql
    kind: datastore
    description: Publish notifications to a MySQL service
events:
  object_created:
    - s3:ObjectCreated:*
    - s3:ObjectCreated:Put
    - s3:ObjectCreated:Post
    - s3:ObjectCreated:Copy
    - s3:ObjectCreated:CompleteMultipartUpload
    - s3:ObjectCreated:PutTagging
    - s3:ObjectCreated:DeleteTagging
    - s3:ObjectCreated:PutRetention
    - s3:ObjectCreated:PutLegalHold
  object_removed:
    - s3:ObjectRemoved:*
    - s3:ObjectRemoved:Delete
    - s3:ObjectRemoved:DeleteMarkerCreated
  object_accessed:
    - s3:ObjectAccessed:*
    - s3:ObjectAccessed:Get
    - s3:ObjectAccessed:Head
    - s3:ObjectAccessed:GetRetention
    - s3:ObjectAccessed:GetLegalHold
  replication:
    - s3:Replication:*
    - s3:Replication:OperationCompletedReplication
    - s3:Replication:OperationFailedReplication
    - s3:Replication:OperationMissedThreshold
    - s3:Replication:OperationNotTracked
    - s3:Replication:OperationReplicatedAfterThreshold
    - s3:ObjectReplicationMissedThreshold
    - s3:ObjectReplicationReplicatedAfterThreshold
  ilm_transition:
    - s3:ObjectRestore:*
    - s3:ObjectRestore:Post
    - s3:ObjectRestore:Completed
    - s3:ObjectTransition:*
    - s3:ObjectTransition:Failed
    - s3:ObjectTransition:Complete
  scanner:
    - s3:Scanner:*
    - s3:Scanner:ManyVersions
    - s3:Scanner:LargeVersions
    - s3:Scanner:BigPrefix
configuration:
  mechanism: >-
    Targets are registered via `mc admin config set` (or environment variables),
    then a bucket-level event subscription is added with `mc event add
    ALIAS/BUCKET arn:minio:sqs::ID:TARGET --event <event-type>`. Target ARNs take
    the form arn:minio:sqs::<ID>:<target>.
docs: https://docs.min.io/enterprise/aistor-object-store/administration/bucket-notifications/