Browse the docs
API reference
Feed
The workspace's timeline of posts, with their comments and reactions.
List posts
GET/v1/feed
Posts in the workspace, newest first, with reaction and comment counts and what each post is about. Page back by passing the at of the last post you hold as before.
Requires feed.read
Query parameters
beforeISO dateOnly posts created before this time; an invalid date is ignored.
limitinteger1 to 50; defaults to 40.
curl "https://atrix.dev/api/v1/feed" \
-H "Authorization: Bearer $ATRIX_TOKEN"{
"items": [
{
"id": "cm3kc8h2j0010qz8fb3c4d5e6",
"body": "Checkout redesign is live for 10% of visitors.",
"at": "2026-10-27T09:12:00.000Z",
"author": {
"id": "cm3k8w1zz0004qz8fa1b2c3d4",
"name": "Sara Khan",
"image": null
},
"project": "Storefront",
"postKind": "UPDATE",
"about": {
"kind": "project",
"id": "storefront",
"label": "Storefront"
},
"reactions": 3,
"replies": 1
}
]
}Create a post
POST/v1/feed
Posts an update to the feed, optionally filed against a product. Posting notifies people, so treat it as something colleagues read.
Requires feed.post
Body
bodystringrequiredThe post text, up to 4000 characters.
projectIdstringA product in this workspace the post is about.
curl -X POST "https://atrix.dev/api/v1/feed" \
-H "Authorization: Bearer $ATRIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "body": "…" }'{
"ok": true,
"postId": "cm3kc8h2j0010qz8fb3c4d5e6",
"href": "/dashboard/activity#post-cm3kc8h2j0010qz8fb3c4d5e6"
}Get a post
GET/v1/feed/{id}
One post with parsed blocks, its attachment, per-emoji reactions and up to 100 comments in thread. yours says whether the caller wrote it; 404 when the post is not in this workspace.
Requires feed.read
Path parameters
idstringrequiredThe post's id.
curl "https://atrix.dev/api/v1/feed/ID" \
-H "Authorization: Bearer $ATRIX_TOKEN"{
"id": "cm3kc8h2j0010qz8fb3c4d5e6",
"body": "Checkout redesign is live for 10% of visitors.",
"blocks": [
{
"type": "paragraph",
"children": [
{
"type": "text",
"text": "Checkout redesign is live for 10% of visitors."
}
]
}
],
"at": "2026-10-27T09:12:00.000Z",
"author": {
"id": "cm3k8w1zz0004qz8fa1b2c3d4",
"name": "Sara Khan",
"image": null
},
"project": "Storefront",
"postKind": "UPDATE",
"about": {
"kind": "project",
"id": "storefront",
"label": "Storefront",
"detail": "Building",
"open": 14
},
"attachment": null,
"reactions": 3,
"reactionList": [
{
"emoji": "🔥",
"count": 2,
"mine": true
},
{
"emoji": "👍",
"count": 1,
"mine": false
}
],
"mine": false,
"yours": false,
"replies": 1,
"thread": [
{
"id": "cm3kc9k4m0012qz8fd5e6f7g8",
"body": "Nice, watching conversion today.",
"at": "2026-10-27T09:20:31.000Z",
"author": {
"id": "cm3k8v0yy0003qz8f9z8y7x6w",
"name": "Omar Ali",
"image": null
}
}
]
}Comment on a post
POST/v1/feed/{id}/comments
Adds a comment from the caller to the post's thread.
Requires feed.post
Path parameters
idstringrequiredThe post's id.
Body
bodystringrequiredThe comment, 1 to 2000 characters.
curl -X POST "https://atrix.dev/api/v1/feed/ID/comments" \
-H "Authorization: Bearer $ATRIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "body": "…" }'{
"ok": true
}Toggle a reaction
POST/v1/feed/{id}/reactions
Adds the caller's reaction to the post, or removes it if they already reacted with that emoji.
Requires feed.post
Path parameters
idstringrequiredThe post's id.
Body
emojienumrequiredOne of the feed's reactions.
👍🔥👀🎉🤔
curl -X POST "https://atrix.dev/api/v1/feed/ID/reactions" \
-H "Authorization: Bearer $ATRIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "emoji": "👍" }'{
"ok": true
}