Groups

Groups are where communities live in VEO — they are a collection of contacts you're talking about video. On this page, we'll dive into the different group endpoints you can use to manage groups programmatically. We'll look at how to query, create, update, and delete groups.

Group types

IdTypeDescription
1GroupThe most common type of group - used for collaboration between users.
2Video bankUsed to store a collection of videos
3CommunityMore of a focus on timelines and files.
4CohortBased around groups within a school

The group model

The group model contains all the information about your groups, it may differ slightly between endpoints depending on the use case but the following indicates a good starting point for reference:

Properties

  • Name
    Id
    Type
    long
    Description

    Unique identifier for the group.

  • Name
    Name
    Type
    string
    Description

    The name for the group.

  • Name
    Description
    Type
    string
    Description

    The description for the group.

  • Name
    TypeId
    Type
    int
    Description

    The type of community.

  • Name
    AdministratorIds
    Type
    int[]
    Description

    An array of user IDs who are administrators of the group.


GET/communities

List all groups

This endpoint allows you to retrieve a paginated list of all your groups.

The query string parameters which can be passed include:

  • Name
    name
    Type
    string
    Description

    A string to match the groups name

  • Name
    OrganisationId
    Type
    string
    Description

    The identity of the organisation you're searching. This must be an organisation that you belong to. If you don't know your organisation ID you can get this from the /me endpoint

  • Name
    createdByMe
    Type
    bool
    Description

    Set to true if you only want to show groups created by your user id.

Request

GET
/v1/groups
curl --location 'https://api.veo.co.uk/api/communities' \
--header 'Authorization: Bearer {token}' \

POST/communities

Create a group

This endpoint allows you to create a new group.

  • Name
    Name
    Type
    string
    Description

    The group name.

  • Name
    Description
    Type
    string
    Description

    The group description.

  • Name
    TypeId
    Type
    int
    Description

    Your chosen group type ID.

  • Name
    PrivacyLevelId
    Type
    int
    Description

    Must be 1

  • Name
    VisibilityId
    Type
    int
    Description

    Must be 3

  • Name
    InviteTypeId
    Type
    int
    Description

    Must be 2

  • Name
    PostingPermissionTypeId
    Type
    int
    Description

    Must be 1

  • Name
    CommentPostsType
    Type
    bool
    Description

    Must be true.

The response from the endpoint will be your new group ID.

Request

POST
/communities
curl --location 'https://api.veo.co.uk/api/communities' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"Name":"Group Name",
"Description":"Group Description",
"TypeId":1,
"PrivacyLevelId":1,
"VisibilityId":3,
"InviteTypeId":2,
"PostingPermissionTypeId":1,
"CommentPostsType":true
}'

GET/communities/{GroupId}

Retrieve a group

This endpoint allows you to retrieve a group by providing the group id.

Request

GET
/communities/{GroupId}
curl --location 'https://api.veo.co.uk/api/communities/{GroupId}' \
--header 'Authorization: Bearer {token}' \

PUT/communities/{groupId}

Update a group

This endpoint allows you to perform an update on a group. The model is similar to that of the create endpoint.

Request

PUT
communities/{groupId}
curl --location --request PUT 'https://api.veo.co.uk/api/communities/{groupId}' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"Name": "Test",
"Description": "",
"PrivacyLevelId": 1,
"VisibilityId": 3,
"InviteTypeId": 2,
"CommentPostsType": true,
"PostingPermissionTypeId": 1,
"FeatureActivity": true,
"FeatureTimeline": true,
"FeatureVideo": true,
"FeatureFile": true,
"ProfileBackgroundColor": "#AE2A35",
"DefaultLandingPage": null
}'

DELETE/Communities/{GroupId}

Delete a group

This endpoint allows you to delete groups. The response should be a 204 - No content.

Request

DELETE
/Communities/{GroupId}
curl --location --request DELETE 'https://api.veo.co.uk/api/communities/1646' \
--header 'Authorization: Bearer {token}' \

POST/community/{GroupId}/members/addmember/{UserId}?admin=false

Add a member to a group

This endpoint allows you to add member to the group. It's a post request without an empty payload.

The user to add and the group to add them are contained within the url. An optional ?admin= querystring determines if you wish to add the user as an admin of the group.

The response will be a 200 and the payload will be the user ID you just added.

Request

POST
/community/{GroupId}/members/addmember/{UserId}?admin=false
curl --location --request POST 'https://api.veo.co.uk/api/community/{groupId}/members/addmember/{userId}?admin=false' \
--header 'Authorization: Bearer {token}' \

POST/community/members/members/{{GroupId}}

Get group membners

This endpoint allows you to retieve the members of the group.

Request

GET
/community/members/members/{{GroupId}}
curl --location --request GET 'https://api.veo.co.uk/api/community/members/members/{{GroupId}}' \
--header 'Authorization: Bearer {token}' \

Other endpoints

For other endpoints please visit the swagger documentation.