Consumes messages from the queue. You must use the messages endpoint to consume messages. The messages endpoint may be different for different queues. Use ``GetQueue` <>`__ to find the queue’s messagesEndpoint. GetMessages accepts optional channelFilter query parameter that can filter source channels of the messages. When channelFilter is present, service will return available messages from the channel which ID exactly matched the filter. When filter is not specified, messages will be returned from a random non-empty channel within a queue.


oci queue messages get-messages [OPTIONS]

Required Parameters

--queue-id [text]

The unique queue identifier.

Optional Parameters

--channel-filter [text]

Optional parameter to filter the channels.

--from-json [text]

Provide input to this command as a JSON document from a file using the file://path-to/file syntax.

The --generate-full-command-json-input option can be used to generate a sample json file to be used with this command option. The key names are pre-populated and match the command option names (converted to camelCase format, e.g. compartment-id –> compartmentId), while the values of the keys need to be populated by the user before using the sample file as an input to this command. For any command option that accepts multiple values, the value of the key can be a JSON array.

Options can still be provided on the command line. If an option exists in both the JSON document and the command line then the command line specified value will be used.

For examples on usage of this option, please see our “using CLI with advanced JSON options” link:

--limit [integer]

The limit parameter controls how many messages is returned at-most.

--timeout-in-seconds [integer]

If the timeoutInSeconds parameter isn’t set or it is set to a value greater than 0, the request is using the long-polling mode and will only return when a message is available for consumption (it does not wait for limit messages but still only returns at-most limit messages) or after timeoutInSeconds seconds (in which case it will return an empty response), whichever comes first.

If the parameter is set to 0, the request is using the short-polling mode and immediately returns whether messages have been retrieved or not. In same rare-cases a long-polling request could be interrupted (returned with empty response) before the end of the timeout.

--visibility-in-seconds [integer]

If the visibilityInSeconds parameter is set, messages will be hidden for visibilityInSeconds seconds and won’t be consumable by other consumers during that time. If it isn’t set it defaults to the value set at the queue level.

Using a visibilityInSeconds value of 0 effectively acts as a peek functionality. Messages retrieved that way aren’t meant to be deleted because they will most likely be delivered to another consumer as their visibility won’t change, but will still increase the delivery count by one.

Example using required parameter

Copy the following CLI commands into a file named Run the command by typing “bash” and replacing the example parameters with your own.

Please note this sample will only work in the POSIX-compliant bash-like shell. You need to set up the OCI configuration and appropriate security policies before trying the examples.

    export compartment_id=<substitute-value-of-compartment_id> #
    export display_name=<substitute-value-of-display_name> #

    queue_id=$(oci queue queue-admin queue create --compartment-id $compartment_id --display-name $display_name --query --raw-output)

    oci queue messages get-messages --queue-id $queue_id