Upload a file
POST https://zulip.pleroma.social/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.pleroma.social/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"
}