zulip/templates/zerver/api/update-message.md
Hemanth V. Alluri ffd2bccd4e openapi: Standardize URL format to use {var_name} syntax.
The previous code for the validator test was fairly messy due to
checking for both formats of the openapi url, one with
<variable_name> and the other with {variable_name}. To eliminate
this, we have standardized the format and restricted it to
{variable_name} as per the official format at:
https://swagger.io/docs/specification/describing-parameters.
2019-07-11 11:01:40 -07:00

1.5 KiB

Update a message

Edit/update the content or topic of a message.

PATCH {{ api_url }}/v1/messages/{msg_id}

{msg_id} in the above URL should be replaced with the ID of the message you wish you update.

Usage examples

{start_tabs} {tab|python}

{generate_code_example(python)|/messages/{message_id}:patch|example}

{tab|js}

More examples and documentation can be found here.

const zulip = require('zulip-js');

// Pass the path to your zuliprc file here.
const config = {
    zuliprc: 'zuliprc',
};

zulip(config).then((client) => {
    // Update a message
    const params = {
        message_id: 131,
        content: 'New Content',
    }

    client.messages.update(params).then(console.log);
});

{tab|curl}

curl -X "PATCH" {{ api_url }}/v1/messages/{msg_id} \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d $"content=New content"

{end_tabs}

Permissions

You only have permission to edit a message if:

  1. You sent it, OR:
  2. This is a topic-only edit for a (no topic) message, OR:
  3. This is a topic-only edit and you are an admin.

Arguments

{generate_api_arguments_table|zulip.yaml|/messages/{message_id}:patch}

Response

Example response

A typical successful JSON response may look like:

{generate_code_example|/messages/{message_id}:patch|fixture(200)}

A typical JSON response for when one doesn't have the permission to edit a particular message:

{generate_code_example|/messages/{message_id}:patch|fixture(400)}