Posts

Posts are content items on a wall. They are nested under walls in the URL — use GET /walls to find the wall ID first.

Required scope: read:posts, write:posts (and write:media if attaching media).

Endpoints

GET
/api/open/v1/walls/{wall_id}/posts

List posts on a wall (paginated)

GET
/api/open/v1/walls/{wall_id}/posts/{id}

Get a single post

POST
/api/open/v1/walls/{wall_id}/posts

Create a new post

PUT
/api/open/v1/walls/{wall_id}/posts/{id}

Update a post

DELETE
/api/open/v1/walls/{wall_id}/posts/{id}

Delete a post (returns 204)

List posts

Standard list parameters: page, per_page (max 50), since (ISO 8601 datetime — only return records created after this timestamp).

curl "https://customer.monotree.com/api/open/v1/walls/1/posts?per_page=10" \
  -H "Authorization: Bearer mono_your_token_here"

Create a post

curl -X POST https://customer.monotree.com/api/open/v1/walls/1/posts \
  -H "Authorization: Bearer mono_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{"body": "Hello from the API!"}'

Request body

FieldTypeNotes
bodystringRequired. Post content.
media_idsarray of integersOptional. IDs returned from POST /media. Requires write:media scope.

Create a post with media

Upload each file via POST /media first to get an ID, then reference the IDs in the optional media_ids array. All items must be the same type (image, video, or document). Maximum 10 per post — mixed types return 422.

curl -X POST https://customer.monotree.com/api/open/v1/walls/1/posts \
  -H "Authorization: Bearer mono_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{"body": "Look at this!", "media_ids": [42, 43]}'

Update a post

curl -X PUT https://customer.monotree.com/api/open/v1/walls/1/posts/123 \
  -H "Authorization: Bearer mono_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{"body": "Updated body"}'

Response

{
  "data": {
    "id": 123,
    "body": "Hello from the API!",
    "wall_id": 1,
    "wall_name": "General",
    "author": {
      "id": 1,
      "name": "John Doe",
      "email": "john@example.com",
      "type": "user",
      "groups": [
        { "id": 1, "name": "Kitchen Staff", "type": "department", "created_at": "2026-01-15T10:00:00+00:00" }
      ],
      "hired_at": "2025-06-01",
      "is_away": false,
      "last_active_on": "2026-03-22",
      "registered_at": "2025-06-01T09:00:00+00:00",
      "created_at": "2025-06-01T09:00:00+00:00"
    },
    "created_at": "2026-03-22T10:00:00+00:00",
    "updated_at": "2026-03-22T10:00:00+00:00"
  }
}