Skip to content

Teamspaces

A MASV Team is a way to organize users, security, and access. A Teamspace organizes a subset of Team users into a group for a project, client, department and so on. With a Teamspace, a MASV Owner or Admin can do these tasks:

  • Control access to files sent to specific Portals.
  • A Team can have as many Teamspaces as needed.
  • Combine with Tags for an extra level of project tracking and billing.
  • See Transfer History and billing in the MASV Web App for each Teamspace.

Teamspace Creation

The MASV API allows authorized users to create Teamspaces under any team that they belong to.

Method Route
POST /v1/teams/{team_id}/spaces
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
Content-Type String Yes Must be application/json
URL Parameters
Name Type Required Description
team_id String Yes The ID of the team to own the Teamspace
BODY
Name Type Required Description
name String Yes Name of the Teamspace to create
member_ids Array of Strings No Membership ID(s) of team members to add to the Teamspace
REQUEST
curl  -d "{\"name\": \"$NAME\", \"\member_ids\": [\"$M1_MEMBERSHIP_ID\"]}" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-X POST https://api.massive.app/v1/teams/$TEAM_ID/spaces
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 201 Created and a body similar to the one below.

{
  "id": "01E8TP2TJCTDNW11G67NKHQW5J",
  "name": "Marketing-space",
  "members": [
    {
      "id": "01H6CTJJJ19PVMR0J0JXGFK96D",
      "name": "Jim Halpert",
      "user_id": "01H6CTJJHQAKKWJ50Y635NNEPD"
    }
  ]
}

Response Properties:

Property Description
id Teamspace ID of the Teamspace that was created.
name Name of the Teamspace that was created.
members List of members on the Teamspace.

Get Teamspace

Authorized users can see a Teamspace that they belong to subject to the access policy.

Method Route
GET /v1/spaces/{space_id}
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace to update
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1/spaces/$SPACE_ID
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 200 OK and a body similar to the one below.

{
  "id": "01DANEM9H2AMVH33X0EVDY8AJ",
  "name": "Marketing-space",
  "members": [
    {
      "id": "01H23X0EGDY8AJEM9H2AMVANEM",
      "user_id": "01CNH24NGPTJTMXGGEZJ8E2J2K",
      "name": "John Champion"
    },
    {
      "id": "010FXNFS0EGDY08GOT6HTYU0EVD",
      "user_id": "01CD4H2NGTPJTMXGGE8FWVG1V1",
      "name": "Jim Benglin"
    },
    {
      "id": "01DT70FEGDY8AJEM9H2AMVANEM",
      "user_id": "01G0MVH33X0EVDYYMXGY5R9H",
      "name": "Peter Drury"
    }
  ]
}
Property Description
id Teamspace ID of the Teamspace that was created.
name Name of the Teamspace that was created.
members List of members on the Teamspace.

Listing Teamspaces

Authorized users can list all Teamspaces under any team that they belong to (subject to access policy).

Method Route
GET /v1.1/teams/{team_id}/spaces
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL Parameters
Name Type Required Description
team_id String Yes The ID of the team that owns the Teamspace
QUERY PARAMETERS
Name Type Required Description
page Integer No The page number to access
Default Value: 0
limit Integer No The maximum number of records to fetch at a time (50 max)
Default Value: 50
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1.1/teams/$TEAM_ID/spaces
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 200 OK and a body similar to the one below.

{
  "metadata": {
    "total": 2
  },
  "teamspaces": [
    {
      "id": "01DANEM9H2AMVH33X0EVDY8AJ",
      "name": "Marketing-space",
      "members": [
        {
          "id": "01H23X0EGDY8AJEM9H2AMVANEM",
          "user_id": "01CNH24NGPTJTMXGGEZJ8E2J2K",
          "name": "John Champion"
        },
        {
          "id": "010FXNFS0EGDY08GOT6HTYU0EVD",
          "user_id": "01CD4H2NGTPJTMXGGE8FWVG1V1",
          "name": "Jim Benglin"
        },
        {
          "id": "01DT70FEGDY8AJEM9H2AMVANEM",
          "user_id": "01G0MVH33X0EVDYYMXGY5R9H",
          "name": "Peter Drury"
        }
      ]
    },
    {
      "id": "01CNH4M8J88WSVS7P3NMB1HG42",
      "name": "Engineering",
      "members": [
        {
          "id": "01CXBDDNJ3298WQBGT1GMJR5QQ",
          "user_id": "01CNH4WNNKZC5FWVG1V100JTXH",
          "name": "Axe joe"
        },
        {
          "id": "01R5CCI6IK3XVCJ9T70FXNFS6YDPR",
          "user_id": "01CNH4WNNKZC5FWVG1V100JTXH",
          "name": "Gina Mane"
        },
        {
          "id": "01DTCI6I5Y1LC5ZdW7IOIIWMUNOS",
          "user_id": "01ZUYISINR5CCI6INBHY2THZ2UQ",
          "name": "Ade Tunde"
        }
      ]
    }
  ]
}
Property Description
id Teamspace ID of the Teamspace that was created.
name Name of the Teamspace that was created.
members List of members on the Teamspace.

Update Teamspace

The MASV API allows authorized users to update Teamspaces under any Team that they belong to subject to the access policy.

Method Route
PUT /v1/spaces/{space_id}
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
Content-Type String Yes Must be application/json
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace to update
BODY
Name Type Required Description
name String Yes A new name of the Teamspace
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-X PUT https://api.nmassive.app/v1/spaces/$SPACE_ID \
-d "{\"name\": \"$NAME\"}"
RESPONSE

After successful authentication, this endpoint returns an HTTP response with a status code 200 OK and a body similar to the oone below.

{
  "metadata": {
    "total": 2
  },
  "teamspaces": [
    {
      "id": "01DANEM9H2AMVH33X0EVDY8AJ",
      "name": "New-Marketing-space",
      "members": [
        {
          "id": "01H23X0EGDY8AJEM9H2AMVANEM",
          "user_id": "01CNH24NGPTJTMXGGEZJ8E2J2K",
          "name": "John Champion"
        },
        {
          "id": "010FXNFS0EGDY08GOT6HTYU0EVD",
          "user_id": "01CD4H2NGTPJTMXGGE8FWVG1V1",
          "name": "Jim Benglin"
        },
        {
          "id": "01DT70FEGDY8AJEM9H2AMVANEM",
          "user_id": "01G0MVH33X0EVDYYMXGY5R9H",
          "name": "Peter Drury"
        }
      ]
    },
    {
      "id": "01CNH4M8J88WSVS7P3NMB1HG42",
      "name": "Engineering",
      "members": [
        {
          "id": "01CXBDDNJ3298WQBGT1GMJR5QQ",
          "user_id": "01CNH4WNNKZC5FWVG1V100JTXH",
          "name": "Axe joe"
        },
        {
          "id": "01R5CCI6IK3XVCJ9T70FXNFS6YDPR",
          "user_id": "01CNH4WNNKZC5FWVG1V100JTXH",
          "name": "Gina Mane"
        },
        {
          "id": "01DTCI6I5Y1LC5ZdW7IOIIWMUNOS",
          "user_id": "01ZUYISINR5CCI6INBHY2THZ2UQ",
          "name": "Ade Tunde"
        }
      ]
    }
  ]
}

Response Properties:

Property Description
id Teamspace ID of the Teamspace.
name Name of the Teamspace.
members List of members on the Teamspace.

Delete Teamspace

The MASV API allows users to delete Teamspaces that they have created

Method Route
DELETE /v1/spaces/{space_id}
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace to delete
REQUEST
curl -X DELETE \
-H "X-API-KEY: $API_KEY" \
https://api.massive.app/v1/spaces/$SPACE_ID
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 204 No Content.

Listing Teamspace packages

Authorized users can retrieve a list of all packages sent by a Teamspace that they belong to and that that they are authorized to view. (access policy).

Method Route
GET /v1.1/spaces/{space_id}/packages
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
Content-Type String Yes Must be application/json
QUERY PARAMETERS
Name Type Required Description
page Integer No The page number to access
Default Value: 0
limit Integer No The maximum number of records to return (from 1 to 100)
Example Value: 50
sort String No Sort results ascending (fieldname) or descending (-fieldname)
Example Value: -name
status String No Retrieve records that match one of the specified states: [new, finalized, expired, archived] default: [finalized, expired]
Example Value: new
name String No Retrieve records where name is like the value specified (includes partial matches)
Example Value: packagename
sender String No Sender's email address
Example Value: [email protected]
tags String No Retrieve records where tag is equal to one of these values
Example Value: comma separated tag IDs
created_at_start String No Retrieve records that were created on or after (YYYY-MM-DD)
Example Value: 2022-11-10
created_at_end String No Retrieve records that were created on or before (YYYY-MM-DD)
Example Value: 2022-11-10
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace to retrieve package from
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1.1/spaces/$SPACE_ID/packages?page=1&tags=engineering,marketing&created_at_end=2022-11-10
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 200 OK and a body similar to the one below:

[
  {
    "id": "01CNH4M62513B3FT70FXNFS6YS",
    "created_at": "2018-08-22T11:39:07.717-04:00",
    "updated_at": "2018-08-22T11:39:10.271-04:00"
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzU1NTgxMDksImx2bCI6ImYiLCJzdWIiOiIwMUNOSDRNNjI1MTNCM0ZUNzBGWE5GUzZZUyIsInR5cCI6InBhY2thZ2UifQ.T1tTJkqcaaptWtHg59Ta94LcYl8DomtnY8ieYVdqP_I",
    "state": "finalized",
    "name": "Test package #1",
    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
    "progress_channels": [],
    "unlimited_storage": false,
    "sender": "[email protected]"
  },
  {
    "id": "01CNH4WNNKZC5FWVG1V100JTXH",
    "created_at": "2018-08-22T11:43:45.843-04:00",
    "updated_at": "2018-08-22T11:43:47.111-04:00"
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzU1NTgxMDksImx2bCI6ImYiLCJzdWIiOiIwMUNOSDRXTk5LWkM1RldWRzFWMTAwSlRYSCIsInR5cCI6InBhY2thZ2UifQ.Y2gI_a_utNNlU_nujZch0zLIDdZ5EDMtQpohIFifvXA",
    "state": "new",
    "name": "Another package",
    "description": "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium",
    "progress_channels": [
        {
            "auth": {
                "token": "xxxxxxxxxxxxxxxxx",
                "channel_name": "proc.upload.01CNH4WNNKZC5FWVG1V100JTXH",
                "publish_key": "pub-c-xxxxx-xxxxxxxxxxxxx",
                "subscribe_key": "sub-c-xxxxx-xxxxxxxxxxxxx"
            },
            "topic":"upload",
            "provider": "pubnub"
        }
    ],
    "sender": "[email protected]",
    "unlimited_storage": false
  },
  {
    "id": "01CXBDDNMJR5QQJ3298WQBGT1G",
    "created_at": "2018-08-22T11:43:45.843-04:00",
    "updated_at": "2018-08-22T11:43:47.111-04:00"
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzU1NTgxMDksImx2bCI6ImYiLCJzdWIiOiIwMUNOSDRXTk5LWkM1RldWRzFWMTAwSlRYSCIsInR5cCI6InBhY2thZ2UifQ.Y2gI_a_utNNlU_nujZch0zLIDdZ5EDMtQpohIFifvXA",
    "state": "expired",
    "name": "Another package",
    "description": "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium",
    "progress_channels": [],
    "sender": "[email protected]",
    "unlimited_storage": false
  }
]
Response Properties:

Property Description
id The package ID requested.
created_at Time that the object was created at
updated_at Last time the package was updated.
access_token Auth token required to interact with the package.
state Indicates the state of the package
Possible Values: new, finalized, expired, archived
progress_channels PubNub progress events.
progress_channels.zip Reports the progress of zip file creation for finalized packages.
progress_channels.upload Reports the progress of initial package upload for new packages only.
links List of download links created for this package.

Note

MASV integrates with PubNub for publishing and subscribing to progress messages. They provide client SDKs in several programming languages. More details can be found on their developer documentation website.

Warning

PubNub has recently migrated their authentication mechanism to rely on tokens instead of authentication codes. The progress_channels auth.token property should be used for all authentication requests with PubNub and the now deprecated auth.auth_key property should no longer be used at all. More details on how to switch from auth_key to token can be found on their migration guide.

Add Team members to Teamspace

Authorized users can add Team members to a Teamspace. While Team Owners and Admins already have read and write access to all Teamspaces in their team, Team members will need to be added to access a Teamspace. A Team member can be added to multiple Teamspaces.

Method Route
POST /v1/spaces/{space_id}/members
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
Content-Type String Yes Must be application/json
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace
BODY
Name Type Required Description
member_ids Array of Strings Yes Membership ID(s) of team members to add to the Teamspace
REQUEST
curl -d "{\"\member_ids\": [\"$M1_MEMBERSHIP_ID\"]}" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-X POST https://api.massive.app/v1/spaces/$SPACE_ID/members
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 201 Created and a body similar to the one below.

[
  {
    "id": "01H6D3W6RM3VBKWE25AJ5ZD2X8",
    "membership_id": "01H6CTJJJ19PVMR0J0JXGFK96D",
    "teamspace_id": "01H6CKTEYSSTD7CABVSP54K4DE"
  }
]

Response Properties:

Property Description
[] Top level array of teamspace membership objects.

Teamspace membership objects:

Property Description
id Teamspace membership ID.
membership_id Team membeership ID.
teamspace_id Teamspace ID that the member was added to.

Listing Teamspace members

Authorized users can list all members under a Teamspace they belong to (subject to access policy).

Method Route
GET /v1/spaces/{space_id}/members
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1/spaces/$SPACE_ID/members
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 200 OK and a body similar to the one below.

[
  {
    "id": "01H6D3W6RM3VBKWE25AJ5ZD2X8",
    "membership_id": "01H6CTJJJ19PVMR0J0JXGFK96D",
    "teamspace_id": "01H6CKTEYSSTD7CABVSP54K4DE"
  },
  {
    "id": "01GW63QXJ3E2N5HPJ9HYSB1R7V",
    "membership_id": "01H6CMC1WE4TZRH5ZF4CS1H1D2",
    "teamspace_id": "01H6CKTEYSSTD7CABVSP54K4DE"
  }
]

Response Properties:

Property Description
[] Top level array of teamspace membership objects.

Teamspace membership objects:

Property Description
id Teamspace membership ID.
membership_id Team membership ID.
teamspace_id Teamspace ID.

Remove members from Teamspace

The MASV API allows authorized users to remove Team members from a Teamspace.

Method Route
DELETE /v1/spaces/{space_id}/members/{teamspace_membership_id}
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL Parameters
Name Type Required Description
space_id String Yes The ID of the Teamspace
teamspace_membership_id String Yes User’s Teamspace Membership ID
REQUEST
curl -X DELETE \
-H "X-API-KEY: $API_KEY" \
https://api.massive.app/v1/spaces/$SPACE_ID/members/$TEAMSPACE_MEMBERSHIP_ID
RESPONSE

After a successful request, this endpoint returns an HTTP response with a status code of 204 No Content.