How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Zulip messages API

The messages API from Zulip — 16 operation(s) for messages.

Zulip messages API is one of 17 APIs that Zulip publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Message. The published artifact set on APIs.io includes an OpenAPI specification.

This API exposes 20 operations across 16 paths, and defines 17 schemas. It is described by OpenAPI 3.2.0, at version 1.0.0.

Requests are made against 5 base URLs: https://{subdomain}.zulipchat.com/api/v1, {server}/api/v1, https://chat.zulip.org/api/v1, http://localhost:9991/api/v1, http://{subdomain}.testserver/json.

20 operations 16 paths 17 schemas 2 DELETE7 GET1 PATCH10 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0.0
Servers
https://{subdomain}.zulipchat.com/api/v1
{server}/api/v1
https://chat.zulip.org/api/v1
http://localhost:9991/api/v1
http://{subdomain}.testserver/json
Authentication
HTTP Basic
License
Resource Areas
1

Authentication & Security 1

Zulip messages API declares 1 security scheme for authenticating requests. It accepts HTTP basic authentication (BasicAuth). By default, every request must be authenticated.

  • BasicAuth — Basic authentication, with the user's email as the username, and the API key as the password. The API key can be fetched using the /fetchapikey or /devfetchapi…

Paths & Operations 20

Across 16 paths, the API surfaces 20 operations — 2 DELETE, 7 GET, 1 PATCH, 10 POST. Each is listed below with its method, path, parameters, and response codes.

messages 20
POST
/mark_all_as_readdeprecated
Mark all messages as read
mark-all-as-read → 200
POST
/mark_stream_as_readdeprecated
Mark messages in a channel as read
mark-stream-as-read body → 200
POST
/mark_topic_as_readdeprecated
Mark messages in a topic as read
mark-topic-as-read body → 200
GET
/messages
Get messages
get-messages 11 params → 200
POST
/messages
Send a message
send-message body → 200400
GET
/messages/{message_id}/history
Get a message's edit history
get-message-history 2 params → 200400
POST
/messages/flags
Update personal message flags
update-message-flags body → 200
POST
/messages/flags/narrow
Update personal message flags for narrow
update-message-flags-for-narrow body → 200
POST
/messages/render
Render a message
render-message body → 200
POST
/messages/{message_id}/reactions
Add an emoji reaction
add-reaction 1 param body → 200400
DELETE
/messages/{message_id}/reactions
Remove an emoji reaction
remove-reaction 1 param body → 200400
GET
/messages/{message_id}/read_receipts
Get a message's read receipts
get-read-receipts 1 param → 200400
GET
/messages/matches_narrow
Check if messages match a narrow
check-messages-match-narrow 2 params → 200
GET
/messages/{message_id}
Fetch a single message
get-message 3 params → 200400
PATCH
/messages/{message_id}
Edit a message
update-message 1 param body → 200400
DELETE
/messages/{message_id}
Delete a message
delete-message 1 param → 200400
POST
/messages/{message_id}/report
Report a message
report-message 1 param body → 200400
POST
/user_uploads
Upload a file
upload-file body → 200
GET
/thumbnail/status/{realm_id_str}/{filename}
Check thumbnail status
check-thumbnail-status 2 params → 200
GET
/user_uploads/{realm_id_str}/{filename}
Get public temporary URL for an uploaded file
get-file-temporary-url 2 params → 200

Schemas 17

The contract defines 17 schemas that model the data the API accepts and returns. The most detailed are MessagesBase (22 properties), Attachment (6 properties), EmojiBase (3 properties), JsonResponseBase (1 property). Each schema is shown below with its type and property counts.

IgnoredParametersUnsupported
array
An array of any parameters sent in the request that are not supported by the endpoint. See [error handling](/api/rest-error-handlingignored-parameters) documen…
CodedErrorBase
Attachment
object
Dictionary containing details of a file uploaded by a user.
6 properties
EmojiReaction
RequiredContent
string
The content of the message. Clients should use the maxmessagelength returned by the [POST /register](/api/register-queue) endpoint to determine the maximum mes…
CodedError
ReactionType
string
A string indicating the type of emoji. Each emoji reactiontype has an independent namespace for values of emojicode. If an API client is adding/removing a vote…
Anchor
string
JsonSuccessBase
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…
MessagesBase
object
Object containing details of the message.
22 properties
EmojiCode
string
A unique identifier, defining the specific emoji codepoint requested, within the namespace of the reactiontype. For most API clients, you won't need this, but…
OptionalContent
string
The updated content of the target message. Clients should use the maxmessagelength returned by the [POST /register](/api/register-queue) endpoint to determine…
EmojiBase
object
3 properties
InvalidMessageError
JsonResponseBase
object
1 property
JsonSuccess
NonExistingChannelNameError

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

zulip-messages-api-openapi.yml Raw ↑

Other APIs Zulip publishes across the network.

Zulip REST API
Zulip Events API
Zulip Webhooks
Zulip authentication API
Zulip bots API
Zulip channels API
Zulip drafts API
Zulip invites API
Zulip mobile API
Zulip navigation_views API
Zulip real_time_events API
Zulip reminders API
Where this information came from

This is an independent, third-party profile of Zulip messages API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.