GitScrum / Docs

Discussions

Manage discussion channels and messages. Create channels, send messages, and search conversations.

REST API — All endpoints require authentication via Bearer token. Include Authorization: Bearer {token} in every request. Tokens are managed in GitScrum Settings → API. Base URL: https://services.gitscrum.com — All request paths in this documentation are relative to this base URL.

Discussions provide threaded messaging channels within projects for team communication, decisions, and knowledge sharing.

List All Discussions

Returns all discussions across a project.

GET /discussions/all?company_slug={slug}&project_slug={slug}

Query Parameters

ParameterTypeRequiredDescription
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier

List Channels

Returns discussion channels for a project.

GET /discussions/channels?company_slug={slug}&project_slug={slug}

Example Request

curl -X GET "https://services.gitscrum.com/discussions/channels?company_slug=acme&project_slug=web-app" \
  -H "Authorization: Bearer {token}"

Example Response

{
  "data": [
    {
      "uuid": "e5f6a7b8-c9d0-1234-ef01-23456789abcd",
      "title": "Backend Architecture",
      "description": "Discuss API design and backend decisions",
      "messages_count": 47,
      "last_message": {
        "id": 892,
        "message": "Agreed. Let's go with the event-driven approach.",
        "user": {
          "username": "janedoe",
          "name": "Jane Doe"
        },
        "created_at": "2026-02-06T16:45:00Z"
      },
      "created_at": "2026-01-05T09:00:00Z"
    }
  ]
}

Get Channel

Returns details for a single channel.

GET /discussions/channels/{uuid}?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Create Channel

Creates a new discussion channel.

POST /discussions/channels

Request Body

FieldTypeRequiredDescription
titlestringYesChannel name
company_slugstringYesWorkspace identifier
project_slugstringYesProject identifier
descriptionstringNoChannel description

Example Request

curl -X POST "https://services.gitscrum.com/discussions/channels" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Release Planning",
    "company_slug": "acme",
    "project_slug": "web-app",
    "description": "Coordinate release schedules and blockers"
  }'

Channel Messages

Returns messages in a channel, with cursor-based pagination.

GET /discussions/channels/{uuid}/messages?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Example Response

{
  "data": [
    {
      "id": 893,
      "message": "Deployment to staging is complete.",
      "user": {
        "username": "johndoe",
        "name": "John Doe"
      },
      "created_at": "2026-02-07T10:00:00Z"
    }
  ]
}

Send Message

Sends a message to a channel.

POST /discussions/channels/{uuid}/messages?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Request Body

FieldTypeRequiredDescription
messagestringYesMessage content

Example Request

curl -X POST "https://services.gitscrum.com/discussions/channels/e5f6a7b8-c9d0-1234-ef01-23456789abcd/messages?company_slug=acme&project_slug=web-app" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "QA sign-off received. Ready for production deploy."
  }'

Update Message

Updates an existing message.

PUT /discussions/messages/{id}?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
idintegerMessage ID

Request Body

FieldTypeRequiredDescription
messagestringYesUpdated message content

Delete Message

Deletes a message.

DELETE /discussions/messages/{id}?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
idintegerMessage ID

Update Channel

Updates an existing discussion channel.

PUT /discussions/channels/{uuid}?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Request Body

FieldTypeRequiredDescription
titlestringNoUpdated channel name
descriptionstringNoUpdated description

Delete Channel

Deletes a discussion channel and all its messages.

DELETE /discussions/channels/{uuid}?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Search Channel Messages

Searches messages within a specific channel.

GET /discussions/channels/{uuid}/search?company_slug={slug}&project_slug={slug}&q={query}

Path Parameters

ParameterTypeDescription
uuidstringChannel UUID

Query Parameters

ParameterTypeRequiredDescription
qstringYesSearch query

Thread Replies

Returns replies to a specific message.

GET /discussions/messages/{id}/replies?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
idintegerParent message ID

Reply to Message

Sends a reply to a specific message, creating a thread.

POST /discussions/messages/{id}/replies?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
idintegerParent message ID

Request Body

FieldTypeRequiredDescription
messagestringYesReply content

Add Reaction

Adds a reaction to a message.

POST /discussions/messages/{id}/reactions?company_slug={slug}&project_slug={slug}

Path Parameters

ParameterTypeDescription
idintegerMessage ID

Request Body

FieldTypeRequiredDescription
reactionstringYesReaction emoji

Mark as Read

Marks all messages in a channel as read.

POST /discussions/channels/{uuid}/read?company_slug={slug}&project_slug={slug}

Field Reference

Channels

FieldTypeDescription
uuidstringUnique channel identifier
titlestringChannel name
descriptionstringChannel description
messages_countintegerTotal message count
last_messageobjectMost recent message
created_atstringCreation timestamp

Messages

FieldTypeDescription
idintegerMessage identifier
messagestringMessage content
userobjectAuthor (username, name)
created_atstringCreation timestamp