REST API & MCP

API Documentation

Everything you need to integrate Curyloop into your workflows. Authenticate with API keys, manage groups and sessions, and connect via MCP for AI-powered access.

Create and manage groups, invite members, and control access with the Groups API endpoints.

Groups

Groups are the primary organizational unit in Curyloop. They represent teams, communities, or projects that share knowledge together.

List Groups

Retrieve all groups you're a member of.

GET /api/v1/groups

Response

json
{
  "data": [
    {
      "id": "uuid",
      "name": "Engineering Team",
      "slug": "engineering-team",
      "description": "Frontend and backend engineering discussions",
      "is_public": false,
      "member_count": 12,
      "created_at": "2026-01-15T10:00:00Z"
    }
  ]
}

Get Group

Retrieve a single group by ID.

GET /api/v1/groups/:id

Response

json
{
  "data": {
    "id": "uuid",
    "name": "Engineering Team",
    "slug": "engineering-team",
    "description": "Frontend and backend engineering discussions",
    "is_public": false,
    "member_count": 12,
    "role": "admin",
    "created_at": "2026-01-15T10:00:00Z"
  }
}

Create Group

Create a new group. You become the owner automatically.

POST /api/v1/groups

Body

json
{
  "name": "Design Team",
  "description": "UI/UX research and design system discussions",
  "is_public": false
}
FieldTypeRequiredDescription
namestringYesGroup name (max 100 chars)
descriptionstringNoGroup description
is_publicbooleanNoDefault false

Response

json
{
  "data": {
    "id": "uuid",
    "name": "Design Team",
    "slug": "design-team",
    "created_at": "2026-03-07T10:00:00Z"
  }
}

List Members

Retrieve all members of a group.

GET /api/v1/groups/:id/members

Response

json
{
  "data": [
    {
      "user_id": "uuid",
      "name": "Jane Doe",
      "email": "jane@example.com",
      "role": "admin",
      "joined_at": "2026-01-15T10:00:00Z"
    }
  ]
}

Invite Member

Invite a new member to the group. Requires admin or owner role.

POST /api/v1/groups/:id/invite

Body

json
{
  "email": "newmember@example.com",
  "role": "member"
}
FieldTypeRequiredDescription
emailstringYesEmail to invite
rolestringNomember (default) or admin