The MASV API allows authorized users to manage packages that have been sent and received under their account.
Users can retrieve a list of packages in a Team that meets specific criteria, subject to the MASV access policy .
This endpoint returns a list of packages that were sent to a Team. To retrieve a list of packages received from a Portal, see Listing Portal packages .
Method Route GET/v1.1/teams/{team_id}/packages
Name Type Required Description X-API-KEYString Yes API key Content-TypeString Yes Must be application/json
Name Type Required Description pageInteger Yes Page number. Default: 1 limitInteger Yes Records per page, 1–50. Default: 50 sortString No Sort ascending (fieldname) or descending (-fieldname). Accepted: name, created_at, size, usage_total_bytes, expiry, sender, status, teamspace_id statusString[] No Filter by state: new, finalized, expired, archived. Default: [finalized, expired] nameString No Substring match on package name senderString No Match sender email tagsString No Comma-separated tag IDs created_at_startString No Created after date. Format: ISO 8601 created_at_endString No Created before date. Format: ISO 8601 teamspacesString No Comma-separated Teamspace IDs expiry_startString No Expires after date expiry_endString No Expires before date extra_storageBoolean No Filter by extra storage usage
Name Type Required Description team_idString Yes The Team ID
curl -H " Content-Type: application/json " \
-H " X-API-KEY: $API_KEY " \
-X GET " https://api.massive.app/v1.1/teams/ $TEAM_ID /packages?page=1&limit=3 "
Returns 200 OK:
"created_at" : " 2022-11-01T20:09:48.249Z " ,
"description" : " Good day to you " ,
"expiry" : " 2022-11-06T20:09:48.175Z " ,
"id" : " E1XGADMXPSLEE9NGH7WRWJ069D " ,
"name" : " Delta's Team - 202211012009 " ,
"sender" : " gretta@example.com " ,
Property Description metadataContains total — the total number of matching packages recordsArray of up to limit package objects
Method Route PUT/v1/packages/{package_id}
Name Type Required Description X-Package-TokenString Yes Package access token Content-TypeString Yes Must be application/json
Name Type Required Description nameString Yes Name for the package
curl -d ' {"name": "$NAME"} ' \
-H " X-Package-Token: $PACKAGE_TOKEN " \
-H " Content-Type: application/json " \
-X PUT https://api.massive.app/v1/packages/ $PACKAGE_ID
Returns 200 OK with the updated package object.
MASV stores an uploaded package until its expiry time. When it expires, MASV deletes the package. Expired packages cannot be downloaded and links do not give access to the package.
Method Route PUT/v1/packages/{package_id}/expiry
Name Type Required Description X-Package-TokenString Yes Package access token Content-TypeString Yes Must be application/json
Name Type Required Description expiryString Yes Date-time expiry. Format: ISO 8601 unlimited_storageBoolean No If true, omit expiry from the request. Default: false
curl -d ' {"expiry": "$EXPIRY"} ' \
-H " X-Package-Token: $PACKAGE_TOKEN " \
-H " Content-Type: application/json " \
-X PUT https://api.massive.app/v1/packages/ $PACKAGE_ID /expiry
Returns 200 OK with the updated package object.
When MASV deletes a package, it deletes the package’s files and custom metadata from MASV storage. It keeps the package’s name, recipient list, and related information, and sets the package’s state to expired.
Method Route DELETE/v1/packages/{package_id}
Name Type Required Description X-Package-TokenString Yes Package access token
curl -H " X-Package-Token: $PACKAGE_TOKEN " \
-X DELETE https://api.massive.app/v1/packages/ $PACKAGE_ID
Returns 204 No Content.
Authorized users can archive or unarchive any package that was previously in an expired state. The unarchive endpoint puts the package back to an expired state.
Method Route PUT/v1/packages/{package_id}/archivePUT/v1/packages/{package_id}/unarchive
curl -H " X-Package-Token: $PACKAGE_TOKEN " \
-H " Content-Type: application/json " \
-X PUT https://api.massive.app/v1/packages/ $PACKAGE_ID /archive
Returns 204 No Content.
Archive or unarchive multiple expired packages sent by the Team within a date range.
Method Route PUT/v1/teams/{team_id}/archivePUT/v1/teams/{team_id}/unarchive
Name Type Required Description expiry_startString Yes Earliest package expiry date-time expiry_endString Yes Latest package expiry date-time
curl -d ' {"expiry_start": "$EXPIRY_START", "expiry_end": "$EXPIRY_END"} ' \
-H " X-API-KEY: $API_KEY " \
-H " Content-Type: application/json " \
-X PUT https://api.massive.app/v1/teams/ $TEAM_ID /archive
Returns 200 OK:
Archive or unarchive multiple expired packages received through a Portal.
Method Route PUT/v1/teams/{team_id}/inbox/archivePUT/v1/teams/{team_id}/inbox/unarchive
Same body and response format as archiving sent packages above.
Property Type Description access_limitInteger Default access limit for new links access_tokenString Access token for managing the package contains_virusBoolean Whether the package contains a virus created_atString Creation date-time (ISO 8601) custom_expiryBoolean Whether a custom expiry was set custom_metadata_idString ID of the associated form response descriptionString Package description expiryString Expiry date-time (ISO 8601) idString Unique package ID nameString Package name passwordString Default password for new links (empty if none) recipientsString[] Recipient email addresses senderString Sender’s email address sizeInteger Package size in bytes stateString Status: new, finalized, expired, or archived teamspaceObject The Teamspace the package belongs to total_filesInteger Number of files in the package unlimited_storageBoolean Whether unlimited storage is enabled updated_atString Last modified date-time chunk_sizeInteger Chunk size in bytes for file uploads (0 if not specified)