Messages

The Messages API supports managing chat messages.

Create message

Creates a new message in the specified chat app.

POST /api/apps/{app}/messages
Path parameters
app string required

App identifier (id or uid).

Body parameters
blobs array of strings

Ids of blobs to attach.

embed_id string

Id of embed to attach.

meeting_id string

Id of meeting to attach.

options array of objects

List of poll options to attach.

text string

The message text.

metadata object

Additional metadata properties, e.g. { "color": "blue", "size": "XL" }.

tags array of strings

A list of tags to associate with the item.

Example request
curl {WEAVY-URL}/api/apps/acme-chat/messages
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
--json "{ 'text': 'This is a message' }"
Response codes

201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
422 Validation Failed

Response schema
{
  "id": "string",
  "app": {
    "id": "string",
    "rev": "string",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "object",
    "directory_id": "string",
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "object"
    ]
  },
  "parent": {
    "id": "string",
    "type": "object"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "string",
    "type": "object",
    "title": "string",
    "description": "string",
    "url": "string",
    "thumbnail_url": "string",
    "actions": [
      "string"
    ],
    "metadata": "object",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "html": "string",
    "width": "string",
    "height": "string"
  },
  "meeting": {
    "id": "string",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "annotations": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_reported": "boolean",
  "reported_at": "string",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  }
}

Get message

Gets a message by id.

GET /api/messages/{id}
Path parameters
id integer required

Id of the message.

Query parameters
trashed boolean

true to return message even if trashed.

Example request
curl {WEAVY-URL}/api/messages/1
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

200 OK
401 Unauthorized
404 Not Found

Response schema
{
  "id": "string",
  "app": {
    "id": "string",
    "rev": "string",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "object",
    "directory_id": "string",
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "object"
    ]
  },
  "parent": {
    "id": "string",
    "type": "object"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "string",
    "type": "object",
    "title": "string",
    "description": "string",
    "url": "string",
    "thumbnail_url": "string",
    "actions": [
      "string"
    ],
    "metadata": "object",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "html": "string",
    "width": "string",
    "height": "string"
  },
  "meeting": {
    "id": "string",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "annotations": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_reported": "boolean",
  "reported_at": "string",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  }
}

Update message

Updates a message.

PATCH /api/messages/{id}
Path parameters
id integer required

Id of the message.

Body parameters
attachments array of strings

Ids of attached files.

blobs array of strings

Ids of additional blobs to attach.

embed_id string

Id of embed to attach.

meeting_id string

Id of meeting to attach.

options array of objects

List of poll options for the item.

text string

The message text.

metadata object

Additional metadata properties, e.g. { "color": "blue", "size": "XL" }.

tags array of strings

A list of tags to associate with the item.

Example request
curl -X PATCH {WEAVY-URL}/api/messages/1
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
--json "{ 'text': 'This is an updated message' }"
Response codes

200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
422 Validation Failed

Response schema
{
  "id": "string",
  "app": {
    "id": "string",
    "rev": "string",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "object",
    "directory_id": "string",
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "object"
    ]
  },
  "parent": {
    "id": "string",
    "type": "object"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "string",
    "type": "object",
    "title": "string",
    "description": "string",
    "url": "string",
    "thumbnail_url": "string",
    "actions": [
      "string"
    ],
    "metadata": "object",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "html": "string",
    "width": "string",
    "height": "string"
  },
  "meeting": {
    "id": "string",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "annotations": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "string",
    "end": "string",
    "count": "string"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_reported": "boolean",
  "reported_at": "string",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "string",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "username": "string",
    "avatar_url": "string",
    "directories": [
      "object"
    ],
    "presence": "object",
    "comment": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "created_at": "string",
    "updated_at": "string",
    "is_blocked": "boolean",
    "is_followed": "boolean",
    "is_reported": "boolean",
    "is_trashed": "boolean"
  }
}

List messages

List messages.

GET /api/messages
Query parameters
directory string

Directory identifier (id or name). When specified only messages from apps in the specified directory are listed.

around string

A message id. Used to find results "around" a specific message.

q string

A string used to find matching items by name, e.g. q=test.

prefix boolean

When true, uses prefix/wildcard search for search terms in q.

tag array of strings

List items with the specified tags. May be specified multiple times to list items matching any of the given tags, e.g. tag=a&tag=b.

trashed boolean

Indicates whether trashed items should be listed (default is false). Specify null to list both trashed and non-trashed items.

order_by string

Specifies the sort order and direction for the listing, e.g. order_by=id or order_by=id+desc.

skip string

The number of items to skip. Used together with take to return a specific range of items (for pagination).

take string

Maximum number of items to return in the listing. Should be a value between 1 and 100. Default is 25.

count_only boolean

true to count the number of matching items instead of listing them; when specified the response will only contain the count property.

Example request
curl {WEAVY-URL}/api/messages
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

200 OK
401 Unauthorized

Response schema
{
  "data": [
    {
      "id": "string",
      "text": "string",
      "html": "string",
      "plain": "string",
      "metadata": "object",
      "tags": [
        "string"
      ],
      "is_starred": "boolean",
      "is_subscribed": "boolean",
      "is_reported": "boolean",
      "reported_at": "string",
      "is_trashed": "boolean",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "start": "string",
  "end": "string",
  "count": "string"
}

List app messages

List messages in the specified app.

GET /api/apps/{app}/messages
Path parameters
app string required

App identifier (id or uid)

Query parameters
around string

A message id. Used to find results "around" a specific message.

q string

A string used to find matching items by name, e.g. q=test.

prefix boolean

When true, uses prefix/wildcard search for search terms in q.

tag array of strings

List items with the specified tags. May be specified multiple times to list items matching any of the given tags, e.g. tag=a&tag=b.

trashed boolean

Indicates whether trashed items should be listed (default is false). Specify null to list both trashed and non-trashed items.

order_by string

Specifies the sort order and direction for the listing, e.g. order_by=id or order_by=id+desc.

skip string

The number of items to skip. Used together with take to return a specific range of items (for pagination).

take string

Maximum number of items to return in the listing. Should be a value between 1 and 100. Default is 25.

count_only boolean

true to count the number of matching items instead of listing them; when specified the response will only contain the count property.

Example request
curl {WEAVY-URL}/api/apps/acme-chat/messages?take=25
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

200 OK
401 Unauthorized
404 Not Found

Response schema
{
  "data": [
    {
      "id": "string",
      "text": "string",
      "html": "string",
      "plain": "string",
      "metadata": "object",
      "tags": [
        "string"
      ],
      "is_starred": "boolean",
      "is_subscribed": "boolean",
      "is_reported": "boolean",
      "reported_at": "string",
      "is_trashed": "boolean",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "start": "string",
  "end": "string",
  "count": "string"
}

Trash message

Move a message to the trash.

POST /api/messages/{id}/trash
Path parameters
id integer required

Id of the message to trash.

Example request
curl -X POST {WEAVY-URL}/api/messages/1/trash
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found

Restore message

Restore a message from the trash.

POST /api/messages/{id}/restore
Path parameters
id integer required

Id of the message to restore.

Example request
curl -X POST {WEAVY-URL}/api/messages/1/restore
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found

Delete message

Permanently delete a message.

DELETE /api/messages/{id}
Path parameters
id integer required

Id of the message.

Example request
curl -X DELETE {WEAVY-URL}/api/messages/1
-H "Authorization: Bearer {ACCESS-TOKEN | API-KEY}"
Response codes

204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found