Add a collection member
POST/api/v1/workspaces/{workspace_slug}/collections/{collection_id}/members/
Adds an explicit member to a private collection. The caller must be able to manage the collection.
Path Parameters
workspace_slug:requiredstringThe workspace slug.
collection_id:requireduuidThe collection ID.
Body Parameters
member:requireduuidThe workspace user's ID.
access:optionalinteger0 (view, default), 1 (comment), or 2 (edit).
Scopes
write or wiki.pages:write
Add a collection member
bash
curl -X POST "https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/members/" \
-H "X-API-Key: $PLANE_API_KEY" -H "Content-Type: application/json" \
-d '{"member":"6f356c85-bb22-47e0-b8b1-cf18aa6adad3","access":0}'python
import requests
url = "https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/members/"
response = requests.post(url, headers={"X-API-Key": "your-api-key"}, json={"member": "6f356c85-bb22-47e0-b8b1-cf18aa6adad3", "access": 0})
print(response.json())javascript
// Run this example server-side. Browser apps must call your backend to keep the API key secret.
const url =
"https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/members/";
const response = await fetch(url, {
method: "POST",
headers: { "X-API-Key": process.env.PLANE_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ member: "6f356c85-bb22-47e0-b8b1-cf18aa6adad3", access: 0 }),
});
console.log(await response.json());Response201
json
{
"id": "4edec253-26f4-4667-8f52-9488dca1c620",
"collection": "0a8a3e6a-3c32-49c7-bbb5-b7a8e32c2f10",
"member": "6f356c85-bb22-47e0-b8b1-cf18aa6adad3",
"access": 0,
"workspace": "95d1f03f-16e5-4807-a8c5-ec0c7cf0e4ab",
"created_at": "2026-08-18T10:00:00Z",
"updated_at": "2026-08-18T10:00:00Z",
"created_by": "d2f1b470-55e8-4e7a-8a61-7fc695bc1a4f",
"updated_by": "d2f1b470-55e8-4e7a-8a61-7fc695bc1a4f"
}
