Skip to content

Portable Asset Manifest for an asset

GET
/v1/assets/{id}/manifest
curl --request GET \
--url https://api.trustysweep.com/v1/assets/example/manifest \
--cookie sweep_session=<sweep_session>
id
required
string
/^ast_[0-9A-HJKMNP-TV-Z]{26}$/

OK

Media typeapplication/json

Portable Asset Manifest v1: a provider-independent, versioned, exportable description of one asset and its lineage.

object
manifestVersion
required
string
Allowed values: 1.0
manifestId
required

Prefixed ULID (mfs_…)

string
/^mfs_[0-9A-HJKMNP-TV-Z]{26}$/
assetId
required

Prefixed ULID (ast_…)

string
/^ast_[0-9A-HJKMNP-TV-Z]{26}$/
tenantRef
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
source
required
object
provider
required
string
Allowed values: google_gmail google_drive microsoft_outlook microsoft_onedrive dropbox apple_local s3_compatible trusty_vault simulated
sourceRef
required
string
accountLabel
string
objectId
required
string
parentId
One of:
string
version
One of:
string
path
One of:
string
containers
Array<string>
createdAt
One of:
string format: date-time
modifiedAt
One of:
string format: date-time
observedAt
required
string format: date-time
providerMetadata
object
key
additional properties
content
required
object
kind
required
string
Allowed values: message attachment file folder photo video statement other
name
required
string
sizeBytes
required
integer
mimeType
One of:
string
sha256
One of:
string
partSha256
Array<string>
message
object
from
string
to
Array<string>
cc
Array<string>
subject
string
date
string format: date-time
threadId
string
listId
string
listUnsubscribe
string
listUnsubscribePost
boolean
labels
Array<string>
snippet
string
permissions
Array<object>
object
principal
required
string
role
required
string
Allowed values: owner writer commenter reader unknown
type
required
string
Allowed values: user group domain anyone link unknown
preservedAtDestination
boolean
vault
One of:
object
vaultObjectId
required
string
storageKey
required
string
sha256
required
string
sizeBytes
required
integer
storageClass
string
Allowed values: standard infrequent_access
committedAt
required
string format: date-time
verifiedAt
required
string format: date-time
verification
required
string
Allowed values: hash_match size_and_etag part_hashes
transformations
Array<object>
object
type
required
string
Allowed values: raw_mime_capture attachment_extract text_extract ocr thumbnail format_normalize repackage
producedAt
required
string format: date-time
producer
required
string
outputRef
string
outputSha256
string
lossy
boolean
notes
string
derived
Array<object>
object
ref
required
string
type
required
string
sha256
string
destinations
Array<object>
object
destinationId
required
string
provider
required
string
Allowed values: google_gmail google_drive microsoft_outlook microsoft_onedrive dropbox apple_local s3_compatible trusty_vault simulated
objectId
One of:
string
path
One of:
string
mode
required
string
Allowed values: copy move restore
executionId
required
string
writtenAt
required
string format: date-time
verified
required
boolean
lossiness
Array<string>
lineage
Array<object>
object
from
required
string
to
required
string
relation
required
string
Allowed values: originated_from preserved_as derived_from moved_to restored_to duplicated_by copied_to
at
required
string format: date-time
executionId
string
executions
Array<string>
restore
required
object
capable
required
boolean
methods
Array<string>
Allowed values: vault_to_original vault_to_destination provider_untrash
originalRestorable
boolean
notes
string
hash
string
Example
{
"manifestVersion": "1.0",
"manifestId": "mfs_01J8Z3K9M2Q4R6S8T0V2W4X6Y8",
"assetId": "ast_01J8Z3K9M2Q4R6S8T0V2W4X6Y8",
"source": {
"provider": "google_gmail"
},
"content": {
"kind": "message"
},
"permissions": [
{
"role": "owner",
"type": "user"
}
],
"vault": {
"storageClass": "standard",
"verification": "hash_match"
},
"transformations": [
{
"type": "raw_mime_capture"
}
],
"destinations": [
{
"provider": "google_gmail",
"mode": "copy"
}
],
"lineage": [
{
"relation": "originated_from"
}
],
"restore": {
"methods": [
"vault_to_original"
]
}
}
RateLimit-Limit
integer

Requests allowed in the current window.

RateLimit-Remaining
integer

Requests remaining in the current window.

RateLimit-Reset
integer

Seconds until the window resets.

Validation failed

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}

Unauthenticated

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}

Forbidden / action denied / step-up required

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}

Not found

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}

Rate limited

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}
Retry-After
integer

Seconds to wait before retrying.

RateLimit-Limit
integer

Requests allowed in the current window.

RateLimit-Remaining
integer

Requests remaining in the current window.

RateLimit-Reset
integer

Seconds until the window resets.

Internal error

Media typeapplication/problem+json

RFC 9457 problem details.

object
type
required
title
required
string
status
required
integer
detail
string
code
required

Machine-readable error code from errors.json

string
request_id
required
string
errors
Array<object>
object
path
required
string
message
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"path": "example",
"message": "example"
}
]
}