Knock Messages API

The Messages API from Knock — 24 operation(s) for messages.

Operations 27

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/channels/{channel_id}/messages/bulk/{action} Bulk change message statuses on a channel · Bulk update message statuses for channel #
Ask an LLM
“How do I mark every message on one channel as read at once?”
“Can I bulk archive a channel's messages older than a certain date?”
Tell an agent
Apply {action} to all messages on channel {channel_id}.
Apply {action} to channel {channel_id} messages older than {older_than}.
GET /v1/messages/{message_id}/delivery_logs List a message's delivery logs · List delivery logs #
Ask an LLM
“How do I see the raw provider requests and responses for a sent message?”
“Why did a message fail to deliver, according to its delivery logs?”
Tell an agent
List delivery logs for message {message_id}.
Show the provider delivery attempts for message {message_id}.
GET /v1/messages List messages across the environment · List messages #
Ask an LLM
“Which notifications were sent across the whole environment recently?”
“Can I filter all messages by delivery status or channel?”
Tell an agent
List all messages in this environment.
List environment messages with status {status} on channel {channel_id}.
DELETE /v1/messages/{message_id}/unseen Mark a message unseen (unseen endpoint) · Mark message as unseen #
Ask an LLM
“Is there a dedicated unseen endpoint for flipping one message back to unseen?”
“Can I call an /unseen route on a single message instead of removing its seen status?”
Tell an agent destructive · confirm first
Call the unseen endpoint for message {message_id}.
Flip message {message_id} to unseen using the /unseen route.
POST /v1/messages/batch/unarchived Unarchive several messages · Mark messages as unarchived #
Ask an LLM
“How do I restore a batch of archived notifications to the feed?”
“Can I unarchive many messages in one request?”
Tell an agent
Unarchive messages {message_ids}.
Bring these archived messages back into the feed: {message_ids}.
DELETE /v1/messages/{message_id}/unread Mark a message unread (unread endpoint) · Mark message as unread #
Ask an LLM
“Is there a dedicated unread endpoint for a single message?”
“Can I call an /unread route on one message instead of removing its read status?”
Tell an agent destructive · confirm first
Call the unread endpoint for message {message_id}.
Flip message {message_id} to unread using the /unread route.
DELETE /v1/messages/{message_id}/seen Mark a message unseen · Mark message as unseen #
Ask an LLM
“How do I reverse the seen state on a single message?”
“Can I make one notification count as new again in the badge?”
Tell an agent destructive · confirm first
Mark message {message_id} as unseen.
Remove the seen status from message {message_id}.
PUT /v1/messages/{message_id}/seen Mark a message seen · Mark message as seen #
Ask an LLM
“How do I record that a user viewed one notification in their feed?”
“What's the difference between seen and read for a single message?”
Tell an agent
Mark message {message_id} as seen.
Record that message {message_id} was viewed in the feed.
GET /v1/messages/{message_id}/events List a message's events · List events #
Ask an LLM
“What status events has a message gone through?”
“Can I see when a message was sent, delivered and read?”
Tell an agent
List events for message {message_id}.
Show the event history of message {message_id}.
POST /v1/messages/batch/seen Mark several messages seen · Mark messages as seen #
Ask an LLM
“How do I mark a whole batch of notifications as seen?”
“Can I clear the unseen badge for many messages at once?”
Tell an agent
Mark messages {message_ids} as seen.
Record these messages as viewed: {message_ids}.
POST /v1/messages/batch/unseen Mark several messages unseen · Mark messages as unseen #
Ask an LLM
“How do I reset many messages back to unseen in one call?”
“Can I undo seen on a batch of notifications?”
Tell an agent
Mark messages {message_ids} as unseen.
Reset these messages to unseen: {message_ids}.
DELETE /v1/messages/{message_id}/read Mark a message unread · Mark message as unread #
Ask an LLM
“How do I reverse the read state on a single message?”
“Can a user mark one notification as unread again?”
Tell an agent destructive · confirm first
Mark message {message_id} as unread.
Remove the read status from message {message_id}.
PUT /v1/messages/{message_id}/read Mark a message read · Mark message as read #
Ask an LLM
“How do I record that a user actually read a notification's content?”
“Can I mark a single message read when it's opened?”
Tell an agent
Mark message {message_id} as read.
Record that message {message_id} has been read.
GET /v1/messages/batch/content Get the content of several messages · Batch get message contents #
Ask an LLM
“How do I fetch the rendered content for many messages at once?”
“Can I load several messages' bodies in one request?”
Tell an agent
Get the contents of messages {message_ids}.
Fetch rendered bodies for these messages in one call: {message_ids}.
GET /v1/messages/{message_id}/content Get a message's rendered content · Get message content #
Ask an LLM
“What exactly did a sent message say, as rendered for its channel?”
“Can I see the final email or SMS body of one message?”
Tell an agent
Get the rendered content of message {message_id}.
Show me what message {message_id} looked like when sent.
GET /v1/messages/{message_id}/activities List a message's activities · List activities #
Ask an LLM
“Which batched activities make up a message?”
“Can I filter a message's activities by trigger data?”
Tell an agent
List activities for message {message_id}.
Show message {message_id} activities matching trigger data {trigger_data}.
POST /v1/messages/batch/unread Mark several messages unread · Mark messages as unread #
Ask an LLM
“How do I set many notifications back to unread at once?”
“Can I undo read on a batch of messages?”
Tell an agent
Mark messages {message_ids} as unread.
Reset these messages to unread: {message_ids}.
DELETE /v1/messages/{message_id}/archived Unarchive a message (archived route) · Unarchive message #
Ask an LLM
“Can I unarchive a single message by removing its archived status?”
“Is there a delete-the-archived-flag way to restore one message?”
Tell an agent destructive · confirm first
Remove the archived status from message {message_id}.
Delete the archived flag on message {message_id}.
PUT /v1/messages/{message_id}/archived Archive a message · Archive message #
Ask an LLM
“How do I hide one notification from a user's default feed?”
“Can an archived message be restored later?”
Tell an agent
Archive message {message_id}.
Hide message {message_id} from the default feed.
POST /v1/messages/batch/archived Archive several messages · Mark messages as archived #
Ask an LLM
“How do I archive a batch of notifications in one request?”
“Can I clear many messages out of the feed at once?”
Tell an agent
Archive messages {message_ids}.
Hide these messages from the feed: {message_ids}.
PUT /v1/messages/{message_id}/interacted Record an interaction on a message · Mark message as interacted #
Ask an LLM
“How do I record that a user clicked a button in a notification?”
“How many metadata fields can I attach to a message interaction?”
Tell an agent
Mark message {message_id} as interacted.
Record an interaction on message {message_id} with metadata {metadata}.
DELETE /v1/messages/{message_id}/unarchived Unarchive a message (unarchived route) · Unarchive message #
Ask an LLM
“Is there a dedicated unarchived endpoint to restore one message to the feed?”
“Can I call an /unarchived route on a single message?”
Tell an agent destructive · confirm first
Call the unarchived endpoint for message {message_id}.
Restore message {message_id} using the /unarchived route.
POST /v1/messages/batch/read Mark several messages read · Mark messages as read #
Ask an LLM
“How do I implement a mark-all-as-read for a set of messages?”
“Can I mark many notifications read in one call?”
Tell an agent
Mark messages {message_ids} as read.
Record these messages as read: {message_ids}.
GET /v1/messages/{message_id} Get a message by ID · Get message #
Ask an LLM
“How do I look up a single message's status and recipient?”
“Can I retrieve one notification by its message ID?”
Tell an agent
Get message {message_id}.
Show the status and details of message {message_id}.
POST /v1/messages/batch/interacted Record interactions on several messages · Mark messages as interacted #
Ask an LLM
“How do I log interactions on a batch of messages at once?”
“Can I attach the same metadata to many message interactions?”
Tell an agent
Mark messages {message_ids} as interacted.
Record interactions on {message_ids} with metadata {metadata}.
GET /v1/objects/{collection}/{id}/messages List messages sent to an object · List messages #
Ask an LLM
“Which notifications were sent to an object like a project or team?”
“Can I filter an object's messages by engagement status?”
Tell an agent
List messages for object {id} in {collection}.
Show {collection}/{id} messages with engagement status {engagement_status}.
GET /v1/users/{user_id}/messages List messages sent to a user · List user messages #
Ask an LLM
“What notifications has a particular user received?”
“Why are a user's older messages missing from the list?”
Tell an agent
List messages for user {user_id}.
Show user {user_id}'s messages on channel {channel_id}.

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/knock-app:knock-app-messages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

knock-app-messages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knock App Messages API
  version: '1.0'
  contact:
    name: Knock
    url: https://knock.app
  license:
    name: Proprietary
  description: 'Operations tagged Messages across 4 of this provider''s published API definitions: knock-channels-api-openapi.yml, knock-messages-api-openapi.yml, knock-objects-api-openapi.yml, knock-users-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:


# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/knock-app/refs/heads/main/openapi/knock-app-messages-api-openapi.yml