Messages

The Messages API supports managing chat messages.

Create message

Creates a new message in the specified app.

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

App identifier (id or uid).

Body parameters
blobs array of integers

Ids of blobs to attach.

embed_id integer

Id of embed to attach.

meeting_id integer

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": "integer",
  "app": {
    "id": "integer",
    "rev": "integer",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "string",
    "directory_id": "integer",
    "created_at": "string",
    "updated_at": "string",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "string"
    ]
  },
  "parent": {
    "id": "integer",
    "type": "string"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "integer",
    "type": "string",
    "title": "string",
    "description": "string",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "cache_age": "integer",
    "thumbnail_url": "string",
    "thumbnail_width": "integer",
    "thumbnail_height": "integer",
    "url": "string",
    "width": "integer",
    "height": "integer",
    "html": "string",
    "original_url": "string"
  },
  "meeting": {
    "id": "integer",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "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": "integer",
  "app": {
    "id": "integer",
    "rev": "integer",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "string",
    "directory_id": "integer",
    "created_at": "string",
    "updated_at": "string",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "string"
    ]
  },
  "parent": {
    "id": "integer",
    "type": "string"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "integer",
    "type": "string",
    "title": "string",
    "description": "string",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "cache_age": "integer",
    "thumbnail_url": "string",
    "thumbnail_width": "integer",
    "thumbnail_height": "integer",
    "url": "string",
    "width": "integer",
    "height": "integer",
    "html": "string",
    "original_url": "string"
  },
  "meeting": {
    "id": "integer",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "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 integers

Ids of attached files.

blobs array of integers

Ids of additional blobs to attach.

embed_id integer

Id of embed to attach.

meeting_id integer

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": "integer",
  "app": {
    "id": "integer",
    "rev": "integer",
    "type": "string",
    "uid": "string",
    "name": "string",
    "description": "string",
    "archive_url": "string",
    "avatar_url": "string",
    "metadata": "object",
    "tags": [
      "string"
    ],
    "access": "string",
    "directory_id": "integer",
    "created_at": "string",
    "updated_at": "string",
    "is_pinned": "boolean",
    "is_starred": "boolean",
    "is_subscribed": "boolean",
    "is_trashed": "boolean",
    "is_unread": "boolean",
    "permissions": [
      "string"
    ]
  },
  "parent": {
    "id": "integer",
    "type": "string"
  },
  "text": "string",
  "html": "string",
  "plain": "string",
  "embed": {
    "id": "integer",
    "type": "string",
    "title": "string",
    "description": "string",
    "author_name": "string",
    "author_url": "string",
    "provider_name": "string",
    "provider_url": "string",
    "cache_age": "integer",
    "thumbnail_url": "string",
    "thumbnail_width": "integer",
    "thumbnail_height": "integer",
    "url": "string",
    "width": "integer",
    "height": "integer",
    "html": "string",
    "original_url": "string"
  },
  "meeting": {
    "id": "integer",
    "provider": "string",
    "provider_id": "string",
    "join_url": "string",
    "code": "string",
    "created_at": "string",
    "metadata": "object"
  },
  "attachments": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "options": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "reactions": {
    "data": [
      "object"
    ],
    "start": "integer",
    "end": "integer",
    "count": "integer"
  },
  "metadata": "object",
  "tags": [
    "string"
  ],
  "is_starred": "boolean",
  "is_subscribed": "boolean",
  "is_trashed": "boolean",
  "created_at": "string",
  "created_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "is_trashed": "boolean"
  },
  "updated_at": "string",
  "updated_by": {
    "id": "integer",
    "uid": "string",
    "name": "string",
    "given_name": "string",
    "middle_name": "string",
    "family_name": "string",
    "nickname": "string",
    "email": "string",
    "phone_number": "string",
    "avatar_url": "string",
    "presence": "string",
    "comment": "string",
    "tags": [
      "string"
    ],
    "metadata": "object",
    "created_at": "string",
    "updated_at": "string",
    "is_trashed": "boolean"
  }
}

List messages

List messages.

GET /api/messages
Query parameters
around integer

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.

tag string

List items with the specified tag.

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 integer

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

take integer

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": "integer",
      "text": "string",
      "html": "string",
      "plain": "string",
      "metadata": "object",
      "tags": [
        "string"
      ],
      "is_starred": "boolean",
      "is_subscribed": "boolean",
      "is_trashed": "boolean",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "start": "integer",
  "end": "integer",
  "count": "integer"
}

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 integer

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.

tag string

List items with the specified tag.

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 integer

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

take integer

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": "integer",
      "text": "string",
      "html": "string",
      "plain": "string",
      "metadata": "object",
      "tags": [
        "string"
      ],
      "is_starred": "boolean",
      "is_subscribed": "boolean",
      "is_trashed": "boolean",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "start": "integer",
  "end": "integer",
  "count": "integer"
}

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

Support

To access live chat with our developer success team you need a Weavy account.

Sign in or create a Weavy account