This document is for py-amqp's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.


AMQP Messages.

class amqp.basic_message.Message(body='', children=None, channel=None, **properties)[source]

A Message for use with the Channel.basic_* methods.

Expected arg types

body: string children: (not supported)

Keyword properties may include:

content_type: shortstr

MIME content type

content_encoding: shortstr

MIME content encoding

application_headers: table

Message header field table, a dict with string keys, and string | int | Decimal | datetime | dict values.

delivery_mode: octet

Non-persistent (1) or persistent (2)

priority: octet

The message priority, 0 to 9

correlation_id: shortstr

The application correlation identifier

reply_to: shortstr

The destination to reply to

expiration: shortstr

Message expiration specification

message_id: shortstr

The application message identifier

timestamp: unsigned long

The message timestamp

type: shortstr

The message type name

user_id: shortstr

The creating user id

app_id: shortstr

The creating application id

cluster_id: shortstr

Intra-cluster routing identifier

Unicode bodies are encoded according to the ‘content_encoding’ argument. If that’s None, it’s set to ‘UTF-8’ automatically.


msg = Message('hello world',
                application_headers={'foo': 7})
PROPERTIES = [('content_type', 's'), ('content_encoding', 's'), ('application_headers', 'F'), ('delivery_mode', 'o'), ('priority', 'o'), ('correlation_id', 's'), ('reply_to', 's'), ('expiration', 's'), ('message_id', 's'), ('timestamp', 'L'), ('type', 's'), ('user_id', 's'), ('app_id', 's'), ('cluster_id', 's')]

Instances of this class have these attributes, which are passed back and forth as message properties between client and server


set by basic_consume/basic_get

property delivery_tag
property headers