Upload a file

POST https://zulip.apatosaurus.io/api/v1/user_uploads

Upload a single file and get the corresponding URL.

Initially, only you will be able to access the link. To share the uploaded file, you'll need to send a message containing the resulting link. Users who can already access the link can reshare it with other users by sending additional Zulip messages containing the link.

Usage examples

#!/usr/bin/env python3

import zulip

# Pass the path to your zuliprc file here.
client = zulip.Client(config_file="~/zuliprc")

# Upload a file.
with open(path_to_file, "rb") as fp:
    result = client.upload_file(fp)
# Share the file by including it in a message.
client.send_message(
    {
        "type": "stream",
        "to": "Denmark",
        "topic": "Castle",
        "content": "Check out [this picture]({}) of my castle!".format(result["url"]),
    }
)
print(result)

curl -sSX POST https://zulip.apatosaurus.io/api/v1/user_uploads \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -F filename=@/path/to/file

Parameters

As described above, the file to upload must be provided in the request's body.

Maximum file size

The maximum file size for uploads can be configured by the administrator of the Zulip server by setting MAX_FILE_UPLOAD_SIZE in the server's settings. MAX_FILE_UPLOAD_SIZE defaults to 25MB.

Response

Return values

  • uri: string

    The URL of the uploaded file. Alias of url.

    Changes: Deprecated in Zulip 9.0 (feature level 272). The term "URI" is deprecated in web standards.

  • url: string

    The URL of the uploaded file.

    Changes: New in Zulip 9.0 (feature level 272). Previously, this property was only available under the legacy uri name.

Example response(s)

Changes: As of Zulip 7.0 (feature level 167), if any parameters sent in the request are not supported by this endpoint, a successful JSON response will include an ignored_parameters_unsupported array.

A typical successful JSON response may look like:

{
    "msg": "",
    "result": "success",
    "uri": "/user_uploads/1/4e/m2A3MSqFnWRLUf9SaPzQ0Up_/zulip.txt",
    "url": "/user_uploads/1/4e/m2A3MSqFnWRLUf9SaPzQ0Up_/zulip.txt"
}