Skip to content

Legacy

Listing sent packages (legacy)

Info

To retrieve a list of packages, MASV recommends paginated requests for better performance and more flexible querying. See Listing Sent Packages.

Authorized users can retrieve a list of all packages sent by a Team that they belong to, subject to the MASV access policy.

Method Route
GET /v1/teams/{{ team_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
expired Boolean No If expired packages should be included in response
Default Value: true
finalized Boolean No If finalized packages should be included in response
Default Value: true
new Boolean No If new packages should be included in response
Default Value: false
archived Boolean No If archived packages should be included in response
Default Value: false

Note

The query parameters are optional and allow for filtering of the package list to match certain states.

URL Parameters
Name Type Required Description
team_id String Yes The team id returned during auth request
REQUEST
curl -H "X-API-KEY: $API_KEY" \
    -H "Content-Type: application/json" \
    -X POST https://api.massive.app/v1/teams/$TEAM_ID/packages

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

[
    {
        "access_token": "xxxxxxxxxxxxxxxxx",
        "created_at": "2020-10-30T17:37:00.998Z",
        "custom_expiry": true,
        "expiry": "2022-11-21T17:37:00.998Z",
        "extra_storage_updated_at": "2020-10-30T17:37:00.998Z",
        "extra_storage_days": 3,
        "extras": {},
        "id": "01ENX9B1J68NT9Y4QHXD7T0X6S",
        "links": [{
                "access_limit": 3,
                "access_limit_enabled": true,
                "accessed_at": "0001-01-01T00:00:00.000Z",
                "active": false,
                "created_at": "2022-04-25T15:03:01.666Z",
                "email": "[email protected]",
                "expiry": "2022-05-05T15:03:01.608Z",
                "id": "01G1GKYMS2941W6EFC7K9DEYBP",
                "recipient_notified": "pending",
                "unlimited_storage": false,
                "usage_updated_at": "2022-04-25T15:03:01.666Z"
            }],
        "name": "test",
        "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        "contains_virus": true,
        "tag": {
            "id": "01ENX9B1JBH8A9Y4QHXD7T0X6S",
            "name": "example tag name"
        },
        "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]",
        "state": "new",
        "teamspace_id": "01H6D3W6RM3VBKWE25AJ5ZD2X8",
        "updated_at": "2020-10-30T13:37:00.999Z",
        "usage_updated_at": "2020-10-30T17:37:00.998Z"
    }
]

Response Properties:

Property Description
team_id The team id that the package is bound to.
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
contains_virus Built in virus protection will detect if packages contains a virus.
progress_channels PubNub progress events.
tag An object with the package's tag name and ID. This field is only included if the package has a tag, otherwise it is excluded from the response.
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.
extra_storage_days Number of days of extra storage that have been set on the package.
teamspace_id ID of the Teamspace that the package is bound to. Empty or omitted if the package is not attached to a Teamspace.

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.

Listing Portals (legacy)

Info

To retrieve a list of Portals, MASV recommends paginated requests for better performance and more flexible querying. See Listing Portals.

Authorized users can list packages uploaded to any Portal under their Team(s) (subject to access policy).

Method Route
GET /v1/teams/{team_id}/portals
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
URL parameters
Name Type Required Description
team_id String Yes The Team id to bind the Portal to.
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1/teams/$TEAM_ID/portals

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

[
    {
        "id": "01CNH24NGPTJTMXWWM2J8E2V8V",
        "message": "Hello world!",
        "name": "My Portal",
        "subdomain": "myportal",
        "has_access_code": true,
        "has_download_password": true,
        "tag": {
          "id": "01CNH24NGPTJTMXGGEZJ8E2J2K",
          "name": "test tag name"
        },
        "custom_expiry_days": 0,
        "recipients": [
            "[email protected]",
            "[email protected]"
        ],
        "language": "en",
        "access_level": "regular",
        "teamspace_id" : "01H6D3W6RM3VBKWE25AJ5ZD2X8"
    },
    {
        "id": "01CNEM9H2AG0MVH33X0EVDY8AQ",
        "message": "Hello world, again!",
        "name": "My other Portal",
        "subdomain": "myotherportal",
        "has_access_code": false,
        "has_download_password": false,
        "custom_expiry_days": 0,
        "recipients": [
            "[email protected]"
        ],
        "language": "fr",
        "access_level": "private",
        "access_list": [
          {
            "membership_id": "01CNEM9H2AG0MVH33X0EVDYYPT",
            "name": "user1",
            "email": "[email protected]"
          },
          {
            "membership_id": "01CD5R9H08GOT6HTYU0EVDQW3E",
            "name": "user2",
            "email": "[email protected]"
          },
          ...            
        ]
    },
    ...
]
Response Properties:

Property Description
[] Top level array of portal objects.

Listing Portal packages (legacy)

Info

To retrieve a list of a Portal's packages, MASV recommends paginated requests for better performance and more flexible querying. See Listing Portal Packages.

Authorized users can list packages uploaded to any Portal under their Team(s) subject to access policy).

Method Route
GET /v1/portals/{portal_id}/packages?expired=1&finalized=1&new=1
HEADERS
Name Type Required Description
X-API-KEY String Yes API key
QUERY PARAMETERS
Name Type Required Description
expired Boolean No If expired packages should be included in response
finalized Boolean No If finalized packages should be included in response
new Boolean No If new packages should be included in response
archived Boolean No If archived packages should be included in response

Note

The expired, finalized, new and archived parameters are optional and allow for filtering the package list to include packages in these states. If none of them are passed or all are set to 0 then only packages in the finalized and expired states will be returned.

URL parameters
Name Type Required Description
portal_id String Yes The Portal id that we are getting packages from.
REQUEST
curl -H "X-API-KEY: $API_KEY" \
-X GET https://api.massive.app/v1/portals/$PORTAL_ID/packages?expired=1&finalized=1&new=0

After a successful request, this endpoint will return 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]",
    "teamspace_id" : "01H6D3W6RM3VBKWE25AJ5ZD2X8"
  },
  {
    "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,
    "teamspace_id": "01H6D3W6RM3VBKWE25AJ5ZD2X8"
  }
]

Note

If the referenced Portal has a tag, each package created after the Portal was given a tag will have the Portal's tag.

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 Array of download links created for this package.
teamspace_id ID of the Teamspace that the package belongs to.

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.