Synapse REST API (v1)

Download OpenAPI specification:Download

Authentication

bearerAuth

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

Authentication Services

, Provides REST APIs for managing and obtaining the necessary credentials to access Synapse. ,

, ,

, Authentication to Synapse services requires an access token passed in the HTTP Authorization header, as per the ,,HTTP bearer authorization,, standard. The access token incorporates a set of 'scopes' and the documentation for each service requiring authorization lists the scopes which the access token must include in order to use that service. ,

, ,

, Synapse currently supports four modes of obtaining an access token: ,

, ,
    , ,
  • ,Present username and password,
  • , ,
  • ,Authentication via a whitelisted OAuth 2.0 provider,
  • , ,
  • ,Authentication via a registered OAuth 2.0 client,
  • , ,
  • ,Exchange an access token for Personal Access Token,
  • , ,
, ,

, The username and password are exchanged for an access token using ,,POST /login2,, service. This method should only be used by Synapse itself. No other application should prompt a user for their user name and password. ,

, ,

, Synapse allows authentication via a white listed OAuth 2.0 provider. Currently only Google is supported. The final step is ,,POST /oauth2/session2,, which returns an access token which is included as a Bearer token in the Authorization header of subsequent requests as described above. Only Synapse itself may use this service, as redirection back from the OAuth2 provider is only allowed to the Synapse web portal. ,

, ,

, A registered OAuth 2.0 client can use the ,,OAuth 2.0 services,, to authenticate, the final step of which is a request to the token endpoint: ,,POST /oauth2/token,, The returned access token is included as a Bearer token in the Authorization header of subsequent requests as described above. ,

, ,

, A user may freely generate up to 100 Personal access tokens (PATs) with scoped access using ,,POST /personalAccessToken,,. Unlike OAuth access tokens, ,

    , ,
  • ,PATs can be freely generated by a user alone and are not linked to any third party OAuth client and,
  • , ,
  • ,While ATs have a strict 24 hour lifetime, PATs are long lived, and will only expire if unused for 180 consecutive days,
  • , ,
, For these reasons, it is critical to treat PATs as sensitive credentials, like passwords. If a user creates more than 100 tokens, then the least-recently used token(s) will be deleted until the user has no more than 100 tokens. ,

, ,

, The returned personal access token is included as a Bearer token in the Authorization header of subsequent requests as described above. ,

post-/auth/v1/login2

Request Body schema: application/json
username
string
password
string
authenticationReceipt
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "authenticationReceipt": "string"
}

Response samples

Content type
application/json
{
  • "sessionToken": "string",
  • "accessToken": "string",
  • "acceptsTermsOfUse": true,
  • "authenticationReceipt": "string"
}

get-/auth/v1/authenticatedOn

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "authenticatedOn": "string"
}

post-/auth/v1/user/password/reset

query Parameters
passwordResetEndpoint
required
string

the Portal's url prefix for handling password resets.

Request Body schema: application/json
email
string

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

post-/auth/v1/user/changePassword

Request Body schema: application/json
One of
newPassword
string
concreteType
string
object (org.sagebionetworks.repo.model.auth.PasswordResetSignedToken)

Signed token containing the the information necessary to reset the password for a user.

Responses

Request samples

Content type
application/json
Example
{
  • "newPassword": "string",
  • "concreteType": "string",
  • "passwordChangeToken": {
    }
}

post-/auth/v1/termsOfUse2

Request Body schema: application/json
accessToken
string

Responses

Request samples

Content type
application/json
{
  • "accessToken": "string"
}

get-/auth/v1/secretKey

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "secretKey": "string"
}

delete-/auth/v1/secretKey

Authorizations:

Responses

post-/auth/v1/oauth2/authurl

Request Body schema: application/json
provider
string
redirectUrl
string
state
string

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "redirectUrl": "string",
  • "state": "string"
}

Response samples

Content type
application/json
{
  • "authorizationUrl": "string"
}

post-/auth/v1/oauth2/session2

Request Body schema: application/json
provider
string
authenticationCode
string
redirectUrl
string

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "authenticationCode": "string",
  • "redirectUrl": "string"
}

Response samples

Content type
application/json
{
  • "sessionToken": "string",
  • "accessToken": "string",
  • "acceptsTermsOfUse": true,
  • "authenticationReceipt": "string"
}

post-/auth/v1/oauth2/alias

Authorizations:
Request Body schema: application/json
provider
string
authenticationCode
string
redirectUrl
string

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "authenticationCode": "string",
  • "redirectUrl": "string"
}

Response samples

Content type
application/json
{
  • "aliasId": 0,
  • "etag": "string",
  • "principalId": 0,
  • "alias": "string",
  • "type": "string"
}

delete-/auth/v1/oauth2/alias

Authorizations:
query Parameters
provider
required
string

the OAuth provider through which the alias was associated

alias
required
string

the alias for the user given by the provider

Responses

post-/auth/v1/oauth2/account2

Request Body schema: application/json
provider
string
authenticationCode
string
redirectUrl
string
userName
string

Responses

Request samples

Content type
application/json
{
  • "provider": "string",
  • "authenticationCode": "string",
  • "redirectUrl": "string",
  • "userName": "string"
}

Response samples

Content type
application/json
{
  • "sessionToken": "string",
  • "accessToken": "string",
  • "acceptsTermsOfUse": true,
  • "authenticationReceipt": "string"
}

post-/auth/v1/personalAccessToken

Authorizations:
header Parameters
Synapse-Authorization
string
Request Body schema: application/json
scope
Array of strings

The scopes that have been granted to this token

object

The OIDC claims that can be accessed using this token.

name
string

Responses

Request samples

Content type
application/json
{
  • "scope": [
    ],
  • "userInfoClaims": {
    },
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/auth/v1/personalAccessToken

Authorizations:
query Parameters
nextPageToken
string

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

get-/auth/v1/personalAccessToken/{id}

Authorizations:
path Parameters
id
required
number

The unique ID of the token, which is the unique ID (the "jti" claim) contained in the JWT

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "scopes": [
    ],
  • "userInfoClaims": {
    },
  • "name": "string",
  • "createdOn": "string",
  • "lastUsed": "string",
  • "state": "string"
}

delete-/auth/v1/personalAccessToken/{id}

Authorizations:
path Parameters
id
required
number

The unique ID of the token, which is the unique ID (the "jti" claim) contained in the JWT

Responses

OpenID Connect Services

The OpenID Connect (OIDC) services implement OAuth 2.0 with the OpenID identity extensions.

get-/auth/v1/.well-known/openid-configuration

Responses

Response samples

Content type
application/json
{
  • "issuer": "string",
  • "authorization_endpoint": "string",
  • "token_endpoint": "string",
  • "revocation_endpoint": "string",
  • "userinfo_endpoint": "string",
  • "jwks_uri": "string",
  • "registration_endpoint": "string",
  • "scopes_supported": [
    ],
  • "response_types_supported": [
    ],
  • "grant_types_supported": [
    ],
  • "subject_types_supported": [
    ],
  • "id_token_signing_alg_values_supported": [
    ],
  • "userinfo_signing_alg_values_supported": [
    ],
  • "request_object_signing_alg_values_supported": [
    ],
  • "claims_supported": [
    ],
  • "service_documentation": "string",
  • "claims_parameter_supported": true,
  • "token_endpoint_auth_methods_supported": [
    ]
}

get-/auth/v1/oauth2/jwks

Responses

Response samples

Content type
application/json
{
  • "keys": [
    ]
}

post-/auth/v1/oauth2/client

Authorizations:
Request Body schema: application/json
client_id
string
client_name
string
redirect_uris
Array of strings

Array of Redirection URI values used by the Client. One of these registered Redirection URI values MUST exactly match the redirect_uri parameter value used in each Authorization Request. If the 'sector_identifier_uri' is provided then the URIs in this list must be in the list of URIs in the JSON document referenced by the sector_identifier_uri.

verified
boolean
client_uri
string
policy_uri
string
tos_uri
string
sector_identifier_uri
string
sector_identifier
string
userinfo_signed_response_alg
string
createdOn
string
modifiedOn
string
createdBy
string
etag
string

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

get-/auth/v1/oauth2/client

Authorizations:
query Parameters
nextPageToken
string

returned along with a page of results, this is passed to the server to retrieve the next page.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

post-/auth/v1/oauth2/client/secret/{id}

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "client_id": "string",
  • "client_secret": "string"
}

get-/auth/v1/oauth2/client/{id}

Authorizations:
path Parameters
id
required
string

the ID of the client to retrieve

Responses

Response samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

put-/auth/v1/oauth2/client/{id}

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
client_id
string
client_name
string
redirect_uris
Array of strings

Array of Redirection URI values used by the Client. One of these registered Redirection URI values MUST exactly match the redirect_uri parameter value used in each Authorization Request. If the 'sector_identifier_uri' is provided then the URIs in this list must be in the list of URIs in the JSON document referenced by the sector_identifier_uri.

verified
boolean
client_uri
string
policy_uri
string
tos_uri
string
sector_identifier_uri
string
sector_identifier
string
userinfo_signed_response_alg
string
createdOn
string
modifiedOn
string
createdBy
string
etag
string

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

delete-/auth/v1/oauth2/client/{id}

Authorizations:
path Parameters
id
required
string

the ID of the client to delete

Responses

put-/auth/v1/oauth2/client/{id}/verificationPrecheck

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
client_id
string
client_name
string
redirect_uris
Array of strings

Array of Redirection URI values used by the Client. One of these registered Redirection URI values MUST exactly match the redirect_uri parameter value used in each Authorization Request. If the 'sector_identifier_uri' is provided then the URIs in this list must be in the list of URIs in the JSON document referenced by the sector_identifier_uri.

verified
boolean
client_uri
string
policy_uri
string
tos_uri
string
sector_identifier_uri
string
sector_identifier
string
userinfo_signed_response_alg
string
createdOn
string
modifiedOn
string
createdBy
string
etag
string

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "client_name": "string",
  • "redirect_uris": [
    ],
  • "verified": true,
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "sector_identifier_uri": "string",
  • "sector_identifier": "string",
  • "userinfo_signed_response_alg": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "reverificationRequired": true
}

post-/auth/v1/oauth2/description

Request Body schema: application/json
clientId
string
scope
string
object (org.sagebionetworks.repo.model.oauth.OIDCClaimsRequest)

Stores OIDC claims and details in accordance with OIDC Core 1.0 Claims Request. The keys used in these maps are OIDCClaimNames

responseType
string
redirectUri
string
nonce
string
userId
string
authenticatedAt
string
authorizedAt
string

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "scope": "string",
  • "claims": {
    },
  • "responseType": "string",
  • "redirectUri": "string",
  • "nonce": "string",
  • "userId": "string",
  • "authenticatedAt": "string",
  • "authorizedAt": "string"
}

Response samples

Content type
application/json
{
  • "clientId": "string",
  • "redirect_uri": "string",
  • "scope": [
    ]
}

post-/auth/v1/oauth2/consentcheck

Authorizations:
Request Body schema: application/json
clientId
string
scope
string
object (org.sagebionetworks.repo.model.oauth.OIDCClaimsRequest)

Stores OIDC claims and details in accordance with OIDC Core 1.0 Claims Request. The keys used in these maps are OIDCClaimNames

responseType
string
redirectUri
string
nonce
string
userId
string
authenticatedAt
string
authorizedAt
string

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "scope": "string",
  • "claims": {
    },
  • "responseType": "string",
  • "redirectUri": "string",
  • "nonce": "string",
  • "userId": "string",
  • "authenticatedAt": "string",
  • "authorizedAt": "string"
}

Response samples

Content type
application/json
{
  • "granted": true
}

post-/auth/v1/oauth2/consent

Authorizations:
Request Body schema: application/json
clientId
string
scope
string
object (org.sagebionetworks.repo.model.oauth.OIDCClaimsRequest)

Stores OIDC claims and details in accordance with OIDC Core 1.0 Claims Request. The keys used in these maps are OIDCClaimNames

responseType
string
redirectUri
string
nonce
string
userId
string
authenticatedAt
string
authorizedAt
string

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "scope": "string",
  • "claims": {
    },
  • "responseType": "string",
  • "redirectUri": "string",
  • "nonce": "string",
  • "userId": "string",
  • "authenticatedAt": "string",
  • "authorizedAt": "string"
}

Response samples

Content type
application/json
{
  • "access_code": "string"
}

post-/auth/v1/oauth2/token

query Parameters
grant_type
required
string (org.sagebionetworks.repo.model.oauth.OAuthGrantType)
Enum: "authorization_code" "refresh_token"

authorization_code or refresh_token

code
string

required if grant_type is authorization_code

redirect_uri
string
refresh_token
string

required if grant_type is refresh_token

scope
string

only provided if grant_type is refresh_token

header Parameters
verifiedOauthClientId
required
string

Responses

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "refresh_token": "string",
  • "id_token": "string",
  • "token_type": "string",
  • "expires_in": 0
}

get-/auth/v1/oauth2/userinfo

header Parameters
Synapse-Authorization
string

Responses

Response samples

Content type
application/json
{ }

post-/auth/v1/oauth2/userinfo

header Parameters
Synapse-Authorization
string

Responses

Response samples

Content type
application/json
{ }

get-/auth/v1/oauth2/audit/grantedClients

Authorizations:
query Parameters
nextPageToken
string

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

get-/auth/v1/oauth2/audit/grantedClients/{clientId}/tokens

Authorizations:
path Parameters
clientId
required
string
query Parameters
nextPageToken
string

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

get-/auth/v1/oauth2/audit/tokens/{tokenId}/metadata

Authorizations:
path Parameters
tokenId
required
string

Responses

Response samples

Content type
application/json
{
  • "tokenId": "string",
  • "clientId": "string",
  • "principalId": "string",
  • "name": "string",
  • "scopes": [
    ],
  • "claims": {
    },
  • "authorizedOn": "string",
  • "lastUsed": "string",
  • "modifiedOn": "string",
  • "etag": "string"
}

put-/auth/v1/oauth2/audit/tokens/{tokenId}/metadata

Authorizations:
path Parameters
tokenId
required
string
Request Body schema: application/json
tokenId
string
clientId
string
principalId
string
name
string
scopes
Array of strings

An array containing each scope that this refresh token grants access to.

object (org.sagebionetworks.repo.model.oauth.OIDCClaimsRequest)

Stores OIDC claims and details in accordance with OIDC Core 1.0 Claims Request. The keys used in these maps are OIDCClaimNames

authorizedOn
string
lastUsed
string
modifiedOn
string
etag
string

Responses

Request samples

Content type
application/json
{
  • "tokenId": "string",
  • "clientId": "string",
  • "principalId": "string",
  • "name": "string",
  • "scopes": [
    ],
  • "claims": {
    },
  • "authorizedOn": "string",
  • "lastUsed": "string",
  • "modifiedOn": "string",
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "tokenId": "string",
  • "clientId": "string",
  • "principalId": "string",
  • "name": "string",
  • "scopes": [
    ],
  • "claims": {
    },
  • "authorizedOn": "string",
  • "lastUsed": "string",
  • "modifiedOn": "string",
  • "etag": "string"
}

get-/auth/v1/oauth2/token/{tokenId}/metadata

path Parameters
tokenId
required
string
header Parameters
verifiedOauthClientId
required
string

Responses

Response samples

Content type
application/json
{
  • "tokenId": "string",
  • "clientId": "string",
  • "principalId": "string",
  • "name": "string",
  • "scopes": [
    ],
  • "claims": {
    },
  • "authorizedOn": "string",
  • "lastUsed": "string",
  • "modifiedOn": "string",
  • "etag": "string"
}

post-/auth/v1/oauth2/audit/grantedClients/{clientId}/revoke

Authorizations:
path Parameters
clientId
required
string

Responses

post-/auth/v1/oauth2/audit/tokens/{tokenId}/revoke

Authorizations:
path Parameters
tokenId
required
string

Responses

post-/auth/v1/oauth2/revoke

header Parameters
verifiedOauthClientId
required
string
Request Body schema: application/json
token
string
token_type_hint
string

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "token_type_hint": "string"
}

Authentication Services (2FA)

, APIs to manage two factor authentication (2FA) in Synapse. ,<,/p ,

, Synapse currently supports using authenticator applications that can generate a ,,TOTP,, that is used as a second factor. ,

, ,

, To enable 2FA two requests are involved:

,

    , ,
  1. ,,POST /2fa/enroll,,: Generates a shared secret that is added to the user authenticator application,
  2. , ,
  3. ,,POST /2fa,,: Enables a specific secret generated by 1. to be used as second factor,
  4. , ,
, ,

,

,

, In order to login through 2FA an additional request needs to be performed after the user attempts to authenticate (e.g. through the ,,POST /login2,, API). If the user has 2FA enabled, they will receive a 401 and the body of the response will contain a twoFaToken that can be used in the ,,POST /2fa/token,, API to obtain an access token. ,

,

,

, The user can additionally generate a set of recovery codes using the ,,POST /2fa/recoveryCodes,, API. The codes are one time use and can be used in place of a TOTP code when performing 2FA authentication. The body of the ,,POST /2fa/token,, request should specify as otpType RECOVERY_CODE and the value of the otpCode should match one of the generated codes. ,

post-/auth/v1/2fa/enroll

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "secretId": "string",
  • "secret": "string",
  • "alg": "string",
  • "digits": 0,
  • "period": 0
}

post-/auth/v1/2fa

Authorizations:
Request Body schema: application/json
secretId
string
totp
string

Responses

Request samples

Content type
application/json
{
  • "secretId": "string",
  • "totp": "string"
}

Response samples

Content type
application/json
{
  • "status": "string"
}

get-/auth/v1/2fa

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

delete-/auth/v1/2fa

Authorizations:

Responses

post-/auth/v1/2fa/token

Request Body schema: application/json
userId
integer <int32>
twoFaToken
string
otpCode
string
otpType
string

Responses

Request samples

Content type
application/json
{
  • "userId": 0,
  • "twoFaToken": "string",
  • "otpCode": "string",
  • "otpType": "string"
}

Response samples

Content type
application/json
{
  • "sessionToken": "string",
  • "accessToken": "string",
  • "acceptsTermsOfUse": true,
  • "authenticationReceipt": "string"
}

post-/auth/v1/2fa/recoveryCodes

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "codes": [
    ]
}

Drs Services

, The ,, Data Repository Service,, API provides access to data objects in single, standard way regardless of where they are stored and how they are managed. The data objects for which information can be fetched are ,,FileEntity,, and ,,Dataset,,.The data object that is downloaded is a file. ,

, ,

, The supported end points for DRS are: ,

, ,

, ,

, Use the ,, GET /service-info ,, API to get information about GA4GH-compliant web services, including DRS services, to be aggregated into registries and made available via a standard API. ,

, Use the ,, GET /objects/{object_id} ,, API to get information about individual DRS objects. ,

get-/ga4gh/drs/v1/service-info

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "type": {
    },
  • "description": "string",
  • "organization": {
    },
  • "contactUrl": "string",
  • "documentationUrl": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "environment": "string",
  • "version": "string"
}

get-/ga4gh/drs/v1/objects/{object_id}

Authorizations:
path Parameters
object_id
required
string
query Parameters
expand
required
boolean

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "self_uri": "string",
  • "size": 0,
  • "created_time": "string",
  • "updated_time": "string",
  • "version": "string",
  • "mime_type": "string",
  • "checksums": [
    ],
  • "contents": [
    ],
  • "access_methods": [
    ],
  • "description": "string"
}

get-/ga4gh/drs/v1/objects/{object_id}/access/{access_id}

Authorizations:
path Parameters
object_id
required
string
access_id
required
string

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

File Services

, A FileHandle is an abstraction for a reference to a file in Synapse. For details on the various types see: ,,FileHandle,,. ,

, ,

, ,,Multi-part File Upload API,, ,

, ,

, In order to ensure file upload is robust, all files must be uploaded to Synapse in 'parts'. This means clients are expected to divide each file into 'parts' and upload each part separately. Since Synapse tracks the state of all multi-part uploads, upload failure can be recovered simply by uploading all parts that Synapse reports as missing. ,

, ,

, ,,Note: For multi-part upload 1 MB is defined as 1024*1024 bytes ,, ,

, ,

, The first task in multi-part upload is choosing a part size. The minimum part size is 5 MB (1024*1024*5) and the maximum part size is 5 GB (1024*1024*1024*5). Therefore, any file with a size less than or equal to 5 MB will have a single part and a partSize=5242880. The maximum number of parts for a single file 10,000 parts. The following should be used to choose a part size: ,

, ,

, partSize = max(5242880, (fileSize/10000)) ,

, ,

, Once a partSize is chosen, a multi-part upload can be started using the following: ,,POST /file/multipart,, which will return an ,,MultipartUploadStatus,,. The client is expected to use MultipartUploadStatus to drive the upload. The client will need to upload each missing part (parts with '0' in the partsState) as follows: ,

, ,

, ,

    , ,
  1. ,Get a pre-signed URL to upload the part to using: ,,POST /file/multipart/{uploadId}/presigned/url/batch,,
  2. , ,
  3. ,Upload the part to the pre-signed URL using HTTPs PUT,
  4. , ,
  5. ,Add the part to the multi-part upload using: ,,PUT /file/multipart/{uploadId}/add/{partNumber},,
  6. , ,
, ,

, ,

, Once all parts have been successfully added to the multi-part upload, the upload can be completed using: ,,PUT /file/multipart/{uploadId}/complete,, to produce a new ,,FileHandle,, If the upload fails for any reason, the client should start over ( ,,POST /file/multipart,,) and continue by uploading any parts that are reported as missing. ,

, ,

, ,,Multi-part File Copy API,, ,

, ,

, The multipart API supports a robust copy of existing files to other locations (e.g. in case of a data migration) without the need to download and re-upload the file. This is currently supported only from and to S3 storage locations that reside in the same region. In order to initiate a multipart copy, a ,,POST /file/multipart,, request can be sent using as the body of the request a ,,MultipartUploadCopyRequest,,. ,

, ,

, The part size allows to parallelize the copy in multiple sub-parts, the same limits of the upload applies to the copy (e.g. it is possible to copy a file in a single part up to 5 GB). When initiating a copy we recommend to choose the part size as follows: ,

, ,

, partSize = max(104857600, (fileSize/10000)) ,

, ,

, Once the multipart copy is initiated the process is the same as the multipart upload: ,

, ,

, ,

    , ,
  1. , Get the part copy pre-signed URLs using: ,,POST /file/multipart/{uploadId}/presigned/url/batch,, ,
  2. , ,
  3. , For each pre-signed URL perform an HTTP PUT request with no body, the response of the previous endpoint contains a map of headers that are signed with the URL, all of the headers MUST be included in the PUT request. ,
  4. , ,
  5. ,Once the copy request is performed, add the part to the multi-part copy using: ,,PUT /file/multipart/{uploadId}/add/{partNumber},,. The value of the partMD5Hex parameter will be MD5 checksum returned in the response of the request sent to the pre-signed URL. ,
  6. , ,
  7. , Once all parts have been successfully added to the multi-part copy, the copy can be completed using: ,,PUT /file/multipart/{uploadId}/complete,, to produce a new ,,FileHandle,, ,
  8. , ,
, ,

, ,

, Note about the copy integrity: The resulting file handle will have the same content MD5 of the source file handle, but synapse does not try to re-compute or verify this value. Instead, the integrity check is performed by the cloud provider (currently only S3) during the copy request for the part (the request sent to the pre-signed URL). Each copy pre-signed URL is signed with a special header that makes sure that the source file didn't change during the copy, if this is the case the PUT request to the pre-signed URL will fail and a new copy should be re-started. ,

, ,

, ,,Associating FileHandles with Synapse objects,, ,

, ,

, FileHandles can be associated with various type of objects such as a ,,FileEntity,, and ,,WikiPage,,. The full list of association types can be found in the ,,FileHandleAssociateType,, enumeration. ,

, Note that a file handle MUST always be associated with an object, if a file handle is not associated with an objects for more than 30 days Synapse will mark it as ,,UNLINKED,, and eventually archive or delete it from the system. ,

, ,

, For more information see the following: ,

, ,, ,,Service Limits,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,
,resource,,limit,,notes,
,Minimum file size,,0 bytes,,
,Maximum file size,,5 TB (5,497,558,100,000 bytes),,
,Maximum number of parts,,10,000,,
,Minimum file part size,,5 MB (5,242,880 bytes),,The recommended part size for an upload is max(5242880, (fileSize/10000)). For a copy max(104857600, (fileSize/10000)).,
,Maximum file part size,,5 GB (5,368,709,120 bytes),,

post-/file/v1/fileHandle/batch

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.file.FileHandleAssociation)

Defines the files to get.

includePreSignedURLs
boolean
includeFileHandles
boolean
includePreviewPreSignedURLs
boolean

Responses

Request samples

Content type
application/json
{
  • "requestedFiles": [
    ],
  • "includePreSignedURLs": true,
  • "includeFileHandles": true,
  • "includePreviewPreSignedURLs": true
}

Response samples

Content type
application/json
{
  • "requestedFiles": [
    ]
}

post-/file/v1/fileHandle/{handleIdToCopyFrom}/copy

Authorizations:
path Parameters
handleIdToCopyFrom
required
string

the file handle it from which to duplicate the data

Request Body schema: application/json
id
string
etag
string
createdBy
string
createdOn
string
modifiedOn
string
concreteType
string
contentType
string
contentMd5
string
fileName
string
storageLocationId
integer <int32>
contentSize
integer <int32>
status
string
bucketName
string
key
string
previewId
string
isPreview
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

get-/file/v1/fileHandle/{handleId}

Authorizations:
path Parameters
handleId
required
string

The ID of the FileHandle to fetch.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "endpointUrl": "string",
  • "bucket": "string",
  • "fileKey": "string"
}

delete-/file/v1/fileHandle/{handleId}

Authorizations:
path Parameters
handleId
required
string

Responses

delete-/file/v1/fileHandle/{handleId}/filepreview

Authorizations:
path Parameters
handleId
required
string

The ID of the FileHandle whose preview should be cleared.

Responses

post-/file/v1/externalFileHandle

Authorizations:
Request Body schema: application/json
One of
id
string
etag
string
createdBy
string
createdOn
string
modifiedOn
string
concreteType
string
contentType
string
contentMd5
string
fileName
string
storageLocationId
integer <int32>
contentSize
integer <int32>
status
string
endpointUrl
string
bucket
string
fileKey
string

Responses

Request samples

Content type
application/json
Example
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "endpointUrl": "string",
  • "bucket": "string",
  • "fileKey": "string"
}

Response samples

Content type
application/json
Example
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "endpointUrl": "string",
  • "bucket": "string",
  • "fileKey": "string"
}

post-/file/v1/externalFileHandle/s3

Authorizations:
Request Body schema: application/json
id
string
etag
string
createdBy
string
createdOn
string
modifiedOn
string
concreteType
string
contentType
string
contentMd5
string
fileName
string
storageLocationId
integer <int32>
contentSize
integer <int32>
status
string
bucketName
string
key
string
previewId
string
isPreview
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

post-/file/v1/externalFileHandle/googleCloud

Authorizations:
Request Body schema: application/json
id
string
etag
string
createdBy
string
createdOn
string
modifiedOn
string
concreteType
string
contentType
string
contentMd5
string
fileName
string
storageLocationId
integer <int32>
contentSize
integer <int32>
status
string
bucketName
string
key
string
previewId
string
isPreview
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "concreteType": "string",
  • "contentType": "string",
  • "contentMd5": "string",
  • "fileName": "string",
  • "storageLocationId": 0,
  • "contentSize": 0,
  • "status": "string",
  • "bucketName": "string",
  • "key": "string",
  • "previewId": "string",
  • "isPreview": true
}

get-/file/v1/entity/{id}/uploadDestinationLocations

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/file/v1/entity/{id}/uploadDestination/{storageLocationId}

Authorizations:
path Parameters
id
required
string
storageLocationId
required
number

Responses

Response samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "storageLocationId": 0,
  • "uploadType": "string",
  • "banner": "string",
  • "endpointUrl": "string",
  • "bucket": "string",
  • "keyPrefixUUID": "string"
}

get-/file/v1/entity/{id}/uploadDestination

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "storageLocationId": 0,
  • "uploadType": "string",
  • "banner": "string",
  • "endpointUrl": "string",
  • "bucket": "string",
  • "keyPrefixUUID": "string"
}

get-/file/v1/fileHandle/{handleId}/url

Authorizations:
path Parameters
handleId
required
string
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

post-/file/v1/file/bulk/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
Array of objects (org.sagebionetworks.repo.model.file.FileHandleAssociation)

The files to be included in the download.

zipFileName
string
zipFileFormat
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "requestedFiles": [
    ],
  • "zipFileName": "string",
  • "zipFileFormat": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/file/v1/file/bulk/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "resultZipFileHandleId": "string",
  • "fileSummary": [
    ],
  • "userId": "string"
}

get-/file/v1/file/{id}

Authorizations:
path Parameters
id
required
string

the ID of the file handle to be downloaded

query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

fileAssociateType
required
string (org.sagebionetworks.repo.model.file.FileHandleAssociateType)
Enum: "FileEntity" "TableEntity" "WikiAttachment" "WikiMarkdown" "UserProfileAttachment" "MessageAttachment" "TeamAttachment" "SubmissionAttachment" "VerificationSubmission" "AccessRequirementAttachment" "DataAccessRequestAttachment" "DataAccessSubmissionAttachment" "FormData"

the type of object with which the file is associated

fileAssociateId
required
string

the ID fo the object with which the file is associated

Responses

post-/file/v1/file/multipart

Authorizations:
query Parameters
forceRestart
boolean

Optional parameter. When 'forceRestart=true' is included, any upload state for the given file will be cleared and a new upload will be started.

Request Body schema: application/json
One of
concreteType
string
partSizeBytes
integer <int32>
fileName
string
storageLocationId
integer <int32>
generatePreview
boolean
object (org.sagebionetworks.repo.model.file.FileHandleAssociation)

Describes an association of a FileHandle with another object.

Responses

Request samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "partSizeBytes": 0,
  • "fileName": "string",
  • "storageLocationId": 0,
  • "generatePreview": true,
  • "sourceFileHandleAssociation": {
    }
}

Response samples

Content type
application/json
{
  • "uploadId": "string",
  • "startedBy": "string",
  • "startedOn": "string",
  • "updatedOn": "string",
  • "partsState": "string",
  • "state": "string",
  • "resultFileHandleId": "string"
}

post-/file/v1/file/multipart/{uploadId}/presigned/url/batch

Authorizations:
path Parameters
uploadId
required
string

The unique identifier of the file upload.

Request Body schema: application/json
uploadId
string
partNumbers
Array of integers <int32>

The part numbers to get pre-signed URLs for.

contentType
string

Responses

Request samples

Content type
application/json
{
  • "uploadId": "string",
  • "partNumbers": [
    ],
  • "contentType": "string"
}

Response samples

Content type
application/json
{
  • "partPresignedUrls": [
    ]
}

put-/file/v1/file/multipart/{uploadId}/add/{partNumber}

Authorizations:
path Parameters
uploadId
required
string

The unique identifier of the file upload.

partNumber
required
integer

The part number to add. Must be a number between 1 and 10,000.

query Parameters
partMD5Hex
required
string

The MD5 of the uploaded part represented as a hexadecimal string. If the provided MD5 does not match the MD5 of the uploaded part, the add will fail.

Responses

Response samples

Content type
application/json
{
  • "uploadId": "string",
  • "partNumber": 0,
  • "addPartState": "string",
  • "errorMessage": "string"
}

put-/file/v1/file/multipart/{uploadId}/complete

Authorizations:
path Parameters
uploadId
required
string

The unique identifier of the file upload.

Responses

Response samples

Content type
application/json
{
  • "uploadId": "string",
  • "startedBy": "string",
  • "startedOn": "string",
  • "updatedOn": "string",
  • "partsState": "string",
  • "state": "string",
  • "resultFileHandleId": "string"
}

post-/file/v1/filehandles/copy

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.file.FileHandleCopyRequest)

Defines the copy requests.

Responses

Request samples

Content type
application/json
{
  • "copyRequests": [
    ]
}

Response samples

Content type
application/json
{
  • "copyResults": [
    ]
}

post-/file/v1/download/list/add/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
folderId
string
object (org.sagebionetworks.repo.model.table.Query)

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "folderId": "string",
  • "query": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/file/v1/download/list/add/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "downloadList": {
    }
}

post-/file/v1/download/list/add

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.file.FileHandleAssociation)

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "updatedOn": "string",
  • "etag": "string",
  • "filesToDownload": [
    ]
}

post-/file/v1/download/list/remove

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.file.FileHandleAssociation)

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "updatedOn": "string",
  • "etag": "string",
  • "filesToDownload": [
    ]
}

delete-/file/v1/download/list

Authorizations:

Responses

get-/file/v1/download/list

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "updatedOn": "string",
  • "etag": "string",
  • "filesToDownload": [
    ]
}

post-/file/v1/download/order

Authorizations:
query Parameters
zipFileName
required
string

The name to given to the resulting zip file.

Responses

Response samples

Content type
application/json
{
  • "files": [
    ],
  • "orderId": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "zipFileName": "string",
  • "totalSizeBytes": 0,
  • "totalNumberOfFiles": 0
}

get-/file/v1/download/order/{orderId}

Authorizations:
path Parameters
orderId
required
string

The ID of the download order to fetch.

Responses

Response samples

Content type
application/json
{
  • "files": [
    ],
  • "orderId": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "zipFileName": "string",
  • "totalSizeBytes": 0,
  • "totalNumberOfFiles": 0
}

post-/file/v1/download/order/history

Authorizations:
Request Body schema: application/json
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

post-/file/v1/fileHandle/restore/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
fileHandleIds
Array of strings

The list of file handle ids to restore.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "fileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/file/v1/fileHandle/restore/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "restoreResults": [
    ]
}

Download List Services

Services for managing a user's download list. ,

, Files can be added to the user's download list using ,,POST /download/list/add,,. Files can be removed from the user's download by calling either ,,POST /download/list/remove,,, or the entire list can be cleared with: ,,DELETE /download/list,,. ,

, In order to query the files on a user's download list, first start an asynchronous job using ,,POST /download/list/query/async/start,, to get an asynchToken. The job results can be monitored using ,,GET /download/list/query/async/get/{asyncToken},,. While the job is still processing the GET call will return a status code of 202 (ACCEPTED). Once the job is complete the GET call will return a status code of 200 with the response body. ,

, ,,Download List Service Limits,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,
,resource,,limit,,notes,
,Maximum number of files on a user's download list,,100,000 files,,
,Maximum batch size for adding/removing files,,1000 files,,

post-/repo/v1/download/list/add

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.download.DownloadListItem)

The batch of files to add to the user's download list. Note: There is a limit of 1000 files per batch.

Responses

Request samples

Content type
application/json
{
  • "batchToAdd": [
    ]
}

Response samples

Content type
application/json
{
  • "numberOfFilesAdded": 0
}

post-/repo/v1/download/list/remove

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.download.DownloadListItem)

The batch of files to remove from the user's download list. Note: There is a limit of 1000 files per batch.

Responses

Request samples

Content type
application/json
{
  • "batchToRemove": [
    ]
}

Response samples

Content type
application/json
{
  • "numberOfFilesRemoved": 0
}

delete-/repo/v1/download/list

Authorizations:

Responses

post-/repo/v1/download/list/query/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
org.sagebionetworks.repo.model.download.ActionRequiredRequest (object) or org.sagebionetworks.repo.model.download.FilesStatisticsRequest (object) or org.sagebionetworks.repo.model.download.AvailableFilesRequest (object) (org.sagebionetworks.repo.model.download.QueryRequestDetails)

Required. Must be one of the implementations of QueryRequestDetails.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "requestDetails": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/download/list/query/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "responseDetails": {
    }
}

post-/repo/v1/download/list/add/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
object (org.sagebionetworks.repo.model.table.Query)
parentId
string
useVersionNumber
boolean

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "query": {
    },
  • "parentId": "string",
  • "useVersionNumber": true
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/download/list/add/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "numberOfFilesAdded": 0
}

post-/repo/v1/download/list/package/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
zipFileName
string
includeManifest
boolean
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "zipFileName": "string",
  • "includeManifest": true,
  • "csvTableDescriptor": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/download/list/package/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "resultFileHandleId": "string"
}

post-/repo/v1/download/list/manifest/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "csvTableDescriptor": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/download/list/manifest/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "resultFileHandleId": "string"
}

Team Services

Teams are groups of users. Teams can be granted access permissions to projects, folders and files, and share other resources by adding them to ,,Access Control Lists (ACLs),,. Any authenticated Synapse user may create a Team, for which they become an administrator. Team administrators may: ,

    , ,
  • , invite other users to join the Team, ,
  • , accept membership requests from users wishing to join the Team, ,
  • , grant or revoke administrative control to Team members, ,
  • , remove a user from the Team.
    ,
, ,
, Other Synapse users may: ,
    , ,
  • , issue membership requests to a Team, ,
  • , accept Team membership invitations (join the Team), ,
  • , unilaterally choose to leave a Team once added. ,

post-/repo/v1/team

Authorizations:
Request Body schema: application/json
id
string
name
string
description
string
icon
string
canPublicJoin
boolean
canRequestMembership
boolean
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "icon": "string",
  • "canPublicJoin": true,
  • "canRequestMembership": true,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "icon": "string",
  • "canPublicJoin": true,
  • "canRequestMembership": true,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

put-/repo/v1/team

Authorizations:
Request Body schema: application/json
id
string
name
string
description
string
icon
string
canPublicJoin
boolean
canRequestMembership
boolean
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "icon": "string",
  • "canPublicJoin": true,
  • "canRequestMembership": true,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "icon": "string",
  • "canPublicJoin": true,
  • "canRequestMembership": true,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

get-/repo/v1/teams

query Parameters
fragment
string

a prefix of the Team name, or a prefix of any sub-string in the name preceded by a space.
If omitted, all Teams are returned.

limit
integer

the maximum number of Teams to return (default 10, max limit 50)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/user/{id}/team

path Parameters
id
required
string

the principal ID of the user of interest.

query Parameters
limit
integer

the maximum number of Teams to return (default 10)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/user/{id}/team/id

path Parameters
id
required
string
query Parameters
nextPageToken
string

controls pagination

sort
string (org.sagebionetworks.repo.model.TeamSortOrder)
Value: "TEAM_NAME"

the field to sort the team IDs on. Available options ,,TeamSortOrder,

ascending
boolean

the direction of sort: true for ascending, and false for descending

Responses

Response samples

Content type
application/json
{
  • "teamIds": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/teamList

Request Body schema: application/json
list
Array of integers <int32>

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/team/{id}/member/{principalId}

path Parameters
id
required
string
principalId
required
string

Responses

Response samples

Content type
application/json
{
  • "teamId": "string",
  • "member": {
    },
  • "isAdmin": true
}

put-/repo/v1/team/{id}/member/{principalId}

Authorizations:
path Parameters
id
required
string

the ID of the Team to which the user is to be added.

principalId
required
string

the ID of the user to be added to the Team.

query Parameters
teamEndpoint
string

the portal prefix for the Team URL. The team ID is appended to create the complete URL.

notificationUnsubscribeEndpoint
string

the portal prefix for one-click email unsubscription.
A signed, serialized token is appended to create the complete URL: ,<,ahref="${org.sagebionetworks.repo.model.message.NotificationSettingsSignedToken}",>,NotificationSettingsSignedToken,

Responses

delete-/repo/v1/team/{id}/member/{principalId}

Authorizations:
path Parameters
id
required
string

the Team ID

principalId
required
string

the member's principal ID

Responses

get-/repo/v1/team/{id}

path Parameters
id
required
string

the ID of the Team of interest

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "icon": "string",
  • "canPublicJoin": true,
  • "canRequestMembership": true,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

delete-/repo/v1/team/{id}

Authorizations:
path Parameters
id
required
string

the ID of the Team to delete.

Responses

get-/repo/v1/team/{id}/icon

Authorizations:
path Parameters
id
required
string

the ID of the Team

query Parameters
redirect
boolean

if true or omitted, then redirect to the URL. If false then simply return the URL.

Responses

get-/repo/v1/team/{id}/icon/preview

Authorizations:
path Parameters
id
required
string

the ID of the Team

query Parameters
redirect
boolean

if true or omitted, then redirect to the URL. If false then simply return the URL.

Responses

put-/repo/v1/teamMember

query Parameters
teamEndpoint
string
notificationUnsubscribeEndpoint
string
Request Body schema: application/json
concreteType
string
hmac
string
version
integer <int32>
expiresOn
string
createdOn
string
userId
string
teamId
string
memberId
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "userId": "string",
  • "teamId": "string",
  • "memberId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get-/repo/v1/team/{id}/member/{principalId}/membershipStatus

Authorizations:
path Parameters
id
required
string

the Team ID

principalId
required
string

the user ID

Responses

Response samples

Content type
application/json
{
  • "teamId": "string",
  • "userId": "string",
  • "isMember": true,
  • "hasOpenInvitation": true,
  • "hasOpenRequest": true,
  • "canJoin": true,
  • "membershipApprovalRequired": true,
  • "hasUnmetAccessRequirement": true,
  • "canSendEmail": true
}

get-/repo/v1/teamMembers/{id}

path Parameters
id
required
string

the id of the Team of interest

query Parameters
fragment
string

a prefix of the user's first or last name or email address (optional)

memberType
string (org.sagebionetworks.repo.model.TeamMemberTypeFilterOptions)
Enum: "ADMIN" "MEMBER" "ALL"

the type of team user to retrieve (optional; default "ALL")

limit
integer

the maximum number of members to return (default 10, max limit 50)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/teamMembers/count/{id}

path Parameters
id
required
string

the id of the Team of interest

query Parameters
fragment
string

a prefix of the user's first or last name or email address (optional)

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

post-/repo/v1/team/{id}/memberList

path Parameters
id
required
number
Request Body schema: application/json
list
Array of integers <int32>

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

post-/repo/v1/user/{id}/memberList

path Parameters
id
required
number

user's ID

Request Body schema: application/json
list
Array of integers <int32>

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/team/{id}/acl

Authorizations:
path Parameters
id
required
string

the ID of the Team of interest

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

put-/repo/v1/team/acl

Authorizations:
Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Statistics Services

Services that expose statistics computed by the backend.

post-/repo/v1/statistics

Authorizations:
Request Body schema: application/json
One of
concreteType
string
objectId
string
fileDownloads
boolean
fileUploads
boolean

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "objectId": "string",
  • "fileDownloads": true,
  • "fileUploads": true
}

Response samples

Content type
application/json
{
  • "objectId": "string",
  • "concreteType": "string",
  • "fileDownloads": {
    },
  • "fileUploads": {
    }
}

Storage Report Services

Provides REST APIs for generating Storage Reports. These may only be used by the Synapse Report Team.

post-/repo/v1/storageReport/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
reportType
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "reportType": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/storageReport/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

The async job token from the create/update call

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "resultsFileHandleId": "string"
}

Entity Bundle Services V2

, The Entity Bundle Services provide bundled access to Entities and their related data components. An EntityBundle can be used to create, fetch, or update an Entity and associated objects with a single web service request. ,

post-/repo/v1/entity/{id}/bundle2

Authorizations:
path Parameters
id
required
string
  • The ID of the entity to fetch.
Request Body schema: application/json
includeEntity
boolean
includeAnnotations
boolean
includePermissions
boolean
includeEntityPath
boolean
includeHasChildren
boolean
includeAccessControlList
boolean
includeFileHandles
boolean
includeTableBundle
boolean
includeRootWikiId
boolean
includeBenefactorACL
boolean
includeDOIAssociation
boolean
includeFileName
boolean
includeThreadCount
boolean
includeRestrictionInformation
boolean

Responses

Request samples

Content type
application/json
{
  • "includeEntity": true,
  • "includeAnnotations": true,
  • "includePermissions": true,
  • "includeEntityPath": true,
  • "includeHasChildren": true,
  • "includeAccessControlList": true,
  • "includeFileHandles": true,
  • "includeTableBundle": true,
  • "includeRootWikiId": true,
  • "includeBenefactorACL": true,
  • "includeDOIAssociation": true,
  • "includeFileName": true,
  • "includeThreadCount": true,
  • "includeRestrictionInformation": true
}

Response samples

Content type
application/json
{
  • "entity": {
    },
  • "entityType": "string",
  • "annotations": {
    },
  • "permissions": {
    },
  • "path": {
    },
  • "hasChildren": true,
  • "accessControlList": {
    },
  • "fileHandles": [
    ],
  • "tableBundle": {
    },
  • "rootWikiId": "string",
  • "benefactorAcl": {
    },
  • "doiAssociation": {
    },
  • "fileName": "string",
  • "threadCount": 0,
  • "restrictionInformation": {
    }
}

put-/repo/v1/entity/{id}/bundle2

Authorizations:
path Parameters
id
required
string
query Parameters
generatedBy
string
Request Body schema: application/json
org.sagebionetworks.repo.model.docker.DockerRepository (object) or org.sagebionetworks.repo.model.table.DatasetCollection (object) or org.sagebionetworks.repo.model.table.EntityView (object) or org.sagebionetworks.repo.model.table.VirtualTable (object) or org.sagebionetworks.repo.model.Link (object) or org.sagebionetworks.repo.model.Preview (object) or org.sagebionetworks.repo.model.FileEntity (object) or org.sagebionetworks.repo.model.table.TableEntity (object) or org.sagebionetworks.repo.model.Folder (object) or org.sagebionetworks.repo.model.table.SubmissionView (object) or org.sagebionetworks.repo.model.table.MaterializedView (object) or org.sagebionetworks.repo.model.Project (object) or org.sagebionetworks.repo.model.table.Dataset (object) or org.sagebionetworks.repo.model.ExampleEntity (object) (org.sagebionetworks.repo.model.Entity)

This is the base interface that all Entities implement.

object (org.sagebionetworks.repo.model.annotation.v2.Annotations)

Annotations are additional key-value pair metadata that are associated with an object.

object (org.sagebionetworks.repo.model.AccessControlList)

Contains list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "entity": {
    },
  • "annotations": {
    },
  • "accessControlList": {
    }
}

Response samples

Content type
application/json
{
  • "entity": {
    },
  • "entityType": "string",
  • "annotations": {
    },
  • "permissions": {
    },
  • "path": {
    },
  • "hasChildren": true,
  • "accessControlList": {
    },
  • "fileHandles": [
    ],
  • "tableBundle": {
    },
  • "rootWikiId": "string",
  • "benefactorAcl": {
    },
  • "doiAssociation": {
    },
  • "fileName": "string",
  • "threadCount": 0,
  • "restrictionInformation": {
    }
}

post-/repo/v1/entity/{id}/version/{versionNumber}/bundle2

Authorizations:
path Parameters
id
required
string
  • The ID of the entity to fetch.
versionNumber
required
number
  • The version of the entity to fetch
Request Body schema: application/json
includeEntity
boolean
includeAnnotations
boolean
includePermissions
boolean
includeEntityPath
boolean
includeHasChildren
boolean
includeAccessControlList
boolean
includeFileHandles
boolean
includeTableBundle
boolean
includeRootWikiId
boolean
includeBenefactorACL
boolean
includeDOIAssociation
boolean
includeFileName
boolean
includeThreadCount
boolean
includeRestrictionInformation
boolean

Responses

Request samples

Content type
application/json
{
  • "includeEntity": true,
  • "includeAnnotations": true,
  • "includePermissions": true,
  • "includeEntityPath": true,
  • "includeHasChildren": true,
  • "includeAccessControlList": true,
  • "includeFileHandles": true,
  • "includeTableBundle": true,
  • "includeRootWikiId": true,
  • "includeBenefactorACL": true,
  • "includeDOIAssociation": true,
  • "includeFileName": true,
  • "includeThreadCount": true,
  • "includeRestrictionInformation": true
}

Response samples

Content type
application/json
{
  • "entity": {
    },
  • "entityType": "string",
  • "annotations": {
    },
  • "permissions": {
    },
  • "path": {
    },
  • "hasChildren": true,
  • "accessControlList": {
    },
  • "fileHandles": [
    ],
  • "tableBundle": {
    },
  • "rootWikiId": "string",
  • "benefactorAcl": {
    },
  • "doiAssociation": {
    },
  • "fileName": "string",
  • "threadCount": 0,
  • "restrictionInformation": {
    }
}

post-/repo/v1/entity/bundle2/create

Authorizations:
query Parameters
generatedBy
string
Request Body schema: application/json
org.sagebionetworks.repo.model.docker.DockerRepository (object) or org.sagebionetworks.repo.model.table.DatasetCollection (object) or org.sagebionetworks.repo.model.table.EntityView (object) or org.sagebionetworks.repo.model.table.VirtualTable (object) or org.sagebionetworks.repo.model.Link (object) or org.sagebionetworks.repo.model.Preview (object) or org.sagebionetworks.repo.model.FileEntity (object) or org.sagebionetworks.repo.model.table.TableEntity (object) or org.sagebionetworks.repo.model.Folder (object) or org.sagebionetworks.repo.model.table.SubmissionView (object) or org.sagebionetworks.repo.model.table.MaterializedView (object) or org.sagebionetworks.repo.model.Project (object) or org.sagebionetworks.repo.model.table.Dataset (object) or org.sagebionetworks.repo.model.ExampleEntity (object) (org.sagebionetworks.repo.model.Entity)

This is the base interface that all Entities implement.

object (org.sagebionetworks.repo.model.annotation.v2.Annotations)

Annotations are additional key-value pair metadata that are associated with an object.

object (org.sagebionetworks.repo.model.AccessControlList)

Contains list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "entity": {
    },
  • "annotations": {
    },
  • "accessControlList": {
    }
}

Response samples

Content type
application/json
{
  • "entity": {
    },
  • "entityType": "string",
  • "annotations": {
    },
  • "permissions": {
    },
  • "path": {
    },
  • "hasChildren": true,
  • "accessControlList": {
    },
  • "fileHandles": [
    ],
  • "tableBundle": {
    },
  • "rootWikiId": "string",
  • "benefactorAcl": {
    },
  • "doiAssociation": {
    },
  • "fileName": "string",
  • "threadCount": 0,
  • "restrictionInformation": {
    }
}

Certified User Services

To become a Synapse Certified User you must pass a test. The Synapse APIs include a service to provide the test and a service to submit a test result. There are also administrative services to retrieve the history of test submissions.

get-/repo/v1/certifiedUserTest

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "header": "string",
  • "questions": [
    ]
}

post-/repo/v1/certifiedUserTestResponse

Authorizations:
Request Body schema: application/json
id
integer <int32>
quizId
integer <int32>
createdBy
string
createdOn
string
Array of org.sagebionetworks.repo.model.quiz.MultichoiceResponse (object) or org.sagebionetworks.repo.model.quiz.TextFieldResponse (object) (org.sagebionetworks.repo.model.quiz.QuestionResponse)

The list of responses to the questions in the Quiz

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "quizId": 0,
  • "createdBy": "string",
  • "createdOn": "string",
  • "questionResponses": [
    ]
}

Response samples

Content type
application/json
{
  • "userId": "string",
  • "quizId": 0,
  • "responseId": 0,
  • "score": 0,
  • "passed": true,
  • "passedOn": "string",
  • "corrections": [
    ]
}

get-/repo/v1/admin/certifiedUserTestResponse

Authorizations:
query Parameters
principalId
number

If specified, only retrieve the quiz for this user, if it exists.

limit
integer

Limits the size of the page returned. For example, a page size of 10 requires limit = 10.

offset
integer

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

delete-/repo/v1/admin/certifiedUserTestResponse/{id}

Authorizations:
path Parameters
id
required
number

Responses

get-/repo/v1/user/{id}/certifiedUserPassingRecord

Authorizations:
path Parameters
id
required
number

Responses

Response samples

Content type
application/json
{
  • "userId": "string",
  • "quizId": 0,
  • "responseId": 0,
  • "score": 0,
  • "passed": true,
  • "passedOn": "string",
  • "corrections": [
    ]
}

get-/repo/v1/admin/user/{id}/certifiedUserPassingRecords

Authorizations:
path Parameters
id
required
number
query Parameters
limit
integer
offset
integer

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

put-/repo/v1/admin/user/{id}/certificationStatus

Authorizations:
path Parameters
id
required
number
query Parameters
isCertified
required
boolean

true to set as certified or false to 'de-certify'

Responses

Docker Registry Event Services

These services process events from the Docker Registry. They are separated from other Docker Controllers because the authorization is different, i.e. basic authorization using a key/value pair.

These services are not intended to be used by Synapse clients, only by the Docker registry.

post-/dockerRegistryListener/v1/events

Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.docker.DockerRegistryEvent)

A list of events that occurred in a docker registry

Responses

Request samples

Content type
application/json
{
  • "events": [
    ]
}

Subscription Services

,While working in Synapse, users may want to subscribe to different topics to receive notifications about changes in those topics.,

, ,
, ,

,These services provide the APIs for Synapse users to manage their subscriptions.,

, ,

post-/repo/v1/subscription

Authorizations:
Request Body schema: application/json
objectId
string
objectType
string

Responses

Request samples

Content type
application/json
{
  • "objectId": "string",
  • "objectType": "string"
}

Response samples

Content type
application/json
{
  • "subscriptionId": "string",
  • "subscriberId": "string",
  • "objectId": "string",
  • "objectType": "string",
  • "createdOn": "string"
}

post-/repo/v1/subscription/all

Authorizations:
query Parameters
objectType
required
string (org.sagebionetworks.repo.model.subscription.SubscriptionObjectType)
Enum: "FORUM" "THREAD" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS"
  • SubscriptionObjectType to subscribe to

Responses

Response samples

Content type
application/json
{
  • "subscriptionId": "string",
  • "subscriberId": "string",
  • "objectId": "string",
  • "objectType": "string",
  • "createdOn": "string"
}

get-/repo/v1/subscription/all

Authorizations:
query Parameters
limit
required
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 100.
offset
required
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.
objectType
required
string (org.sagebionetworks.repo.model.subscription.SubscriptionObjectType)
Enum: "FORUM" "THREAD" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS"
  • User can use this param to filter the results by the type of object they subscribed to.
sortBy
string (org.sagebionetworks.repo.model.subscription.SortByType)
Enum: "SUBSCRIPTION_ID" "SUBSCRIBER_ID" "OBJECT_ID" "OBJECT_TYPE" "CREATED_ON"
sortDirection
string (org.sagebionetworks.repo.model.subscription.SortDirection)
Enum: "ASC" "DESC"
  • When provided, the results will be sorted in this direction.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

delete-/repo/v1/subscription/all

Authorizations:

Responses

post-/repo/v1/subscription/list

Authorizations:
Request Body schema: application/json
objectType
string
idList
Array of strings

The list of objectId

sortByType
string
sortDirection
string

Responses

Request samples

Content type
application/json
{
  • "objectType": "string",
  • "idList": [
    ],
  • "sortByType": "string",
  • "sortDirection": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

get-/repo/v1/subscription/{id}

Authorizations:
path Parameters
id
required
string
  • the ID of the subscription that is created when the user subscribed to the topic

Responses

Response samples

Content type
application/json
{
  • "subscriptionId": "string",
  • "subscriberId": "string",
  • "objectId": "string",
  • "objectType": "string",
  • "createdOn": "string"
}

delete-/repo/v1/subscription/{id}

Authorizations:
path Parameters
id
required
string
  • the ID of the subscription that is created when the user subscribed to the topic

Responses

post-/repo/v1/subscription/subscribers

Authorizations:
query Parameters
nextPageToken
string
Request Body schema: application/json
objectId
string
objectType
string

Responses

Request samples

Content type
application/json
{
  • "objectId": "string",
  • "objectType": "string"
}

Response samples

Content type
application/json
{
  • "subscribers": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/subscription/subscribers/count

Authorizations:
Request Body schema: application/json
objectId
string
objectType
string

Responses

Request samples

Content type
application/json
{
  • "objectId": "string",
  • "objectType": "string"
}

Response samples

Content type
application/json
{
  • "count": 0
}

Activity Services

, The ,,Activity,, model represents the main record of Provenance in Synapse. It is analygous to the Activity defined in the ,,W3C Specification on Provenance,,. ,

, ,
,Used ,&, Generated By,
, ,

, Used links are stored directly in the Activity model object as an array of ,,Used,, objects. There is a flag in ,,Used,, that marks if it was "executed". ,,Used,, is an interface that is implemented by two objects: ,

, ,
    , ,
  • ,,UsedEntity,, - For referencing ,,Entities,, already stored in Synapse,
  • , ,
  • ,,UsedURL,, - For referencing URL-accessed resources stored outside of Synapse. In Provenance visualizations, some URLs are given a special icon, such as links to ,,GitHub,,. Note: it is also possible to wrap a URL with a ,,FileEntity,, if you want all the resources that come with Synapse entities.,
  • , ,
, ,

, wasGeneratedBy links are stored for each version of each Entity. Thus you update the entity with the activity id that generated it. You can ask the entity service which activity generated it, and conversely you can ask the activity service what entity versions were generatedBy a given activity. ,

, ,
,Access Control for Activities,
, ,

, Access to ,,Activity,, objects is dictated by the following rules: ,

    , ,
  • ,,READ,, - Granted to those users who can see a single Entity that was generated by this Activity.,
  • , ,
  • ,,UPDATE/DELETE,, - You must be the creator of the Activity to modify or delete it.,
  • , ,
  • ,,Setting generatedBy for an Entity,, (see ,,POST /entity,,) - You must be the creator of the activity to connect it to an Entity. (The Entity services allow you to specify an activityId that creates a generatedBy relationship between an Activity and an Entity.),
  • , ,
,

,

post-/repo/v1/activity

Authorizations:
Request Body schema: application/json
id
string
name
string
description
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
Array of org.sagebionetworks.repo.model.provenance.UsedURL (object) or org.sagebionetworks.repo.model.provenance.UsedEntity (object) (org.sagebionetworks.repo.model.provenance.Used)

The entities used by this Activity.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

get-/repo/v1/activity/{id}

Authorizations:
path Parameters
id
required
string

The ID of the activity to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

put-/repo/v1/activity/{id}

Authorizations:
path Parameters
id
required
string

The id of the activity to update.

Request Body schema: application/json
id
string
name
string
description
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
Array of org.sagebionetworks.repo.model.provenance.UsedURL (object) or org.sagebionetworks.repo.model.provenance.UsedEntity (object) (org.sagebionetworks.repo.model.provenance.Used)

The entities used by this Activity.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

delete-/repo/v1/activity/{id}

Authorizations:
path Parameters
id
required
string

The id of activity to delete.

Responses

get-/repo/v1/activity/{id}/generated

Authorizations:
path Parameters
id
required
string
query Parameters
offset
integer
limit
integer

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

Evaluation Services

, The Evaluation API is designed to support open-access data analysis and modeling challenges in Synapse. This framework provides tools for administrators to collect and analyze data models from Synapse users created for a specific goal or purpose. ,

,

,

, The data model of the Evaluation API is built around around two primary objects: ,

    , ,
  • , ,,Evaluation,,: The primary object representing a Synapse Evaluation. Access to Evaluations is governed by an ,,Access Control List (ACL),,. ,
  • , ,
  • , ,,Submission,,: A user in a Synapse Evaluation can submit a Synapse Entity as Submission to that Evaluation. Submission data is owned by the parent Evaluation, and is immutable. ,
, ,

,

,

, The data model includes additional objects to support scoring of Submissions and convenient data access: ,

    , ,
  • , ,,SubmissionStatus,,: An object used to track scoring information for a single Submission. This object is intended to be modified by the users (or test harnesses) managing the Evaluation. ,
  • , ,
  • , ,,SubmissionBundle,,: A convenience object to transport a Submission and its accompanying SubmissionStatus in a single web service call. ,
  • , ,
  • , ,,SubmissionView,,: A submission view can be created using the ,,Entity Services,, providing as scope a list of evaluation ids, in order to query the set of submissions through the ,,Table Query Services,,. ,,Annotations,, set in the submissionAnnotations property of a ,,SubmissionStatus,, can be exposed in the view. ,
  • , ,
, ,

,

The Evaluation API supports data access mechanisms to monitor Evaluation activity for on-demand scoring and leaderboarding.

post-/repo/v1/evaluation

Authorizations:
Request Body schema: application/json
id
string
etag
string
name
string
description
string
ownerId
string
createdOn
string
contentSource
string
submissionInstructionsMessage
string
submissionReceiptMessage
string
object (org.sagebionetworks.evaluation.model.SubmissionQuota)

DEPRECATED: use EvaluationRound APIs instead. No SubmissionQuota will be returned with the Evaluation. Any SubmissionQuotas submitted will be instead be converted into similar EvaluationRounds.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

get-/repo/v1/evaluation

Authorizations:
query Parameters
accessType
string (org.sagebionetworks.repo.model.ACCESS_TYPE)
Enum: "CREATE" "READ" "UPDATE" "DELETE" "CHANGE_PERMISSIONS" "DOWNLOAD" "UPLOAD" "PARTICIPATE" "SUBMIT" "READ_PRIVATE_SUBMISSION" "UPDATE_SUBMISSION" "DELETE_SUBMISSION" "TEAM_MEMBERSHIP_UPDATE" "SEND_MESSAGE" "CHANGE_SETTINGS" "MODERATE" "REVIEW_SUBMISSIONS"

The type of access for the user to filter for, optional and defaults to ,,ACCESS_TYPE.READ,

activeOnly
boolean

If 'true' then return only those evaluations with rounds defined and for which the current time is in one of the rounds.

evaluationIds
string

an optional, comma-delimited list of evaluation IDs to which the response is limited

offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{evalId}

Authorizations:
path Parameters
evalId
required
string
  • the ID of the desired Evaluation

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

put-/repo/v1/evaluation/{evalId}

Authorizations:
path Parameters
evalId
required
string
  • the ID of the Evaluation being updated
Request Body schema: application/json
id
string
etag
string
name
string
description
string
ownerId
string
createdOn
string
contentSource
string
submissionInstructionsMessage
string
submissionReceiptMessage
string
object (org.sagebionetworks.evaluation.model.SubmissionQuota)

DEPRECATED: use EvaluationRound APIs instead. No SubmissionQuota will be returned with the Evaluation. Any SubmissionQuotas submitted will be instead be converted into similar EvaluationRounds.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

delete-/repo/v1/evaluation/{evalId}

Authorizations:
path Parameters
evalId
required
string
  • the ID of the requested Evaluation

Responses

get-/repo/v1/entity/{id}/evaluation

Authorizations:
path Parameters
id
required
string

the ID of the project

query Parameters
accessType
string (org.sagebionetworks.repo.model.ACCESS_TYPE)
Enum: "CREATE" "READ" "UPDATE" "DELETE" "CHANGE_PERMISSIONS" "DOWNLOAD" "UPLOAD" "PARTICIPATE" "SUBMIT" "READ_PRIVATE_SUBMISSION" "UPDATE_SUBMISSION" "DELETE_SUBMISSION" "TEAM_MEMBERSHIP_UPDATE" "SEND_MESSAGE" "CHANGE_SETTINGS" "MODERATE" "REVIEW_SUBMISSIONS"

The type of access for the user to filter for, optional and defaults to ,,ACCESS_TYPE.READ,

activeOnly
boolean

If 'true' then return only those evaluations with rounds defined and for which the current time is in one of the rounds.

evaluationIds
string

an optional, comma-delimited list of evaluation IDs to which the response is limited

offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/available

Authorizations:
query Parameters
activeOnly
boolean
evaluationIds
string

an optional, comma-delimited list of evaluation IDs to which the response is limited

offset
number

The offset index determines where this page will start from. An index of 0 is the first evaluation. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/name/{name}

Authorizations:
path Parameters
name
required
string
  • the name of the desired Evaluation.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "name": "string",
  • "description": "string",
  • "ownerId": "string",
  • "createdOn": "string",
  • "contentSource": "string",
  • "submissionInstructionsMessage": "string",
  • "submissionReceiptMessage": "string",
  • "quota": {
    }
}

get-/repo/v1/evaluation/{evalId}/team/{id}/submissionEligibility

Authorizations:
path Parameters
evalId
required
string
id
required
string

Responses

Response samples

Content type
application/json
{
  • "teamId": "string",
  • "evaluationId": "string",
  • "teamEligibility": {
    },
  • "membersEligibility": [
    ],
  • "eligibilityStateHash": 0
}

post-/repo/v1/evaluation/submission

Authorizations:
query Parameters
etag
string
submissionEligibilityHash
string

The hash provided by the ,,TeamSubmissionEligibility,, object.

challengeEndpoint
required
string

The portal endpoint prefix to the an entity/challenge page. The entity ID of the challenge project is appended to create the complete URL. In normal operation, this parameter should be omitted.

notificationUnsubscribeEndpoint
required
string

The portal endpoint prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL: ,,NotificationSettingsSignedToken,,. In normal operation, this parameter should be omitted.

Request Body schema: application/json
id
string
userId
string
submitterAlias
string
evaluationId
string
evaluationRoundId
string
entityId
string
entityBundleJSON
string
versionNumber
integer <int32>
dockerRepositoryName
string
dockerDigest
string
name
string
createdOn
string
teamId
string
Array of objects (org.sagebionetworks.evaluation.model.SubmissionContributor)

User ids of the submitter and (if a team submission) the team members involved in creating the submission.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "submitterAlias": "string",
  • "evaluationId": "string",
  • "evaluationRoundId": "string",
  • "entityId": "string",
  • "entityBundleJSON": "string",
  • "versionNumber": 0,
  • "dockerRepositoryName": "string",
  • "dockerDigest": "string",
  • "name": "string",
  • "createdOn": "string",
  • "teamId": "string",
  • "contributors": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "submitterAlias": "string",
  • "evaluationId": "string",
  • "evaluationRoundId": "string",
  • "entityId": "string",
  • "entityBundleJSON": "string",
  • "versionNumber": 0,
  • "dockerRepositoryName": "string",
  • "dockerDigest": "string",
  • "name": "string",
  • "createdOn": "string",
  • "teamId": "string",
  • "contributors": [
    ]
}

post-/repo/v1/admin/evaluation/submission/{subId}/contributor

Authorizations:
path Parameters
subId
required
string
Request Body schema: application/json
principalId
string
createdOn
string

Responses

Request samples

Content type
application/json
{
  • "principalId": "string",
  • "createdOn": "string"
}

Response samples

Content type
application/json
{
  • "principalId": "string",
  • "createdOn": "string"
}

get-/repo/v1/evaluation/submission/{subId}

Authorizations:
path Parameters
subId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "userId": "string",
  • "submitterAlias": "string",
  • "evaluationId": "string",
  • "evaluationRoundId": "string",
  • "entityId": "string",
  • "entityBundleJSON": "string",
  • "versionNumber": 0,
  • "dockerRepositoryName": "string",
  • "dockerDigest": "string",
  • "name": "string",
  • "createdOn": "string",
  • "teamId": "string",
  • "contributors": [
    ]
}

delete-/repo/v1/evaluation/submission/{subId}

Authorizations:
path Parameters
subId
required
string
  • the ID of the Submission to be deleted.

Responses

get-/repo/v1/evaluation/submission/{subId}/status

Authorizations:
path Parameters
subId
required
string
  • the ID of the requested SubmissionStatus.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "modifiedOn": "string",
  • "status": "string",
  • "score": 0,
  • "report": "string",
  • "annotations": {
    },
  • "submissionAnnotations": {
    },
  • "entityId": "string",
  • "versionNumber": 0,
  • "statusVersion": 0,
  • "canCancel": true,
  • "cancelRequested": true
}

put-/repo/v1/evaluation/submission/{subId}/status

Authorizations:
path Parameters
subId
required
string
  • the ID of the SubmissionStatus being updated.
Request Body schema: application/json
id
string
etag
string
modifiedOn
string
status
string
score
number
report
string
object (org.sagebionetworks.repo.model.annotation.Annotations)

Primary container object for Annotations on a Synapse object

object (org.sagebionetworks.repo.model.annotation.v2.Annotations)

Annotations are additional key-value pair metadata that are associated with an object.

entityId
string
versionNumber
integer <int32>
statusVersion
integer <int32>
canCancel
boolean
cancelRequested
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "modifiedOn": "string",
  • "status": "string",
  • "score": 0,
  • "report": "string",
  • "annotations": {
    },
  • "submissionAnnotations": {
    },
  • "entityId": "string",
  • "versionNumber": 0,
  • "statusVersion": 0,
  • "canCancel": true,
  • "cancelRequested": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "modifiedOn": "string",
  • "status": "string",
  • "score": 0,
  • "report": "string",
  • "annotations": {
    },
  • "submissionAnnotations": {
    },
  • "entityId": "string",
  • "versionNumber": 0,
  • "statusVersion": 0,
  • "canCancel": true,
  • "cancelRequested": true
}

put-/repo/v1/evaluation/{evalId}/statusBatch

Authorizations:
path Parameters
evalId
required
string

the ID of the Evaluation to which the SubmissionSatus objects belong.

Request Body schema: application/json
Array of objects (org.sagebionetworks.evaluation.model.SubmissionStatus)

A collection of Submission Statuses

batchToken
string
isFirstBatch
boolean
isLastBatch
boolean

Responses

Request samples

Content type
application/json
{
  • "statuses": [
    ],
  • "batchToken": "string",
  • "isFirstBatch": true,
  • "isLastBatch": true
}

Response samples

Content type
application/json
{
  • "nextUploadToken": "string"
}

get-/repo/v1/evaluation/{evalId}/submission/all

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.
query Parameters
offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10, max value 100.

status
required
string

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{evalId}/submission/status/all

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.
query Parameters
offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10, max value 100.

status
required
string

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{evalId}/submission/bundle/all

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.
query Parameters
offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10, max value 100.

status
required
string

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{evalId}/submission

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.
query Parameters
offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{evalId}/submission/bundle

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.
query Parameters
offset
number

The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.

limit
number

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/submission/{subId}/file/{fileHandleId}

Authorizations:
path Parameters
subId
required
string
fileHandleId
required
string
  • the ID of the requested FileHandle contained in the Submission.
query Parameters
redirect
boolean

Responses

get-/repo/v1/evaluation/{evalId}/submission/count

Authorizations:
path Parameters
evalId
required
string
  • the ID of the specified Evaluation.

Responses

Response samples

Content type
application/json
0

get-/repo/v1/evaluation/{evalId}/access

Authorizations:
path Parameters
evalId
required
string
query Parameters
accessType
required
string

Responses

Response samples

Content type
application/json
true

put-/repo/v1/evaluation/acl

Authorizations:
Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

get-/repo/v1/evaluation/{evalId}/acl

Authorizations:
path Parameters
evalId
required
string

The ID of the evaluation whose ACL is being retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

get-/repo/v1/evaluation/{evalId}/permissions

Authorizations:
path Parameters
evalId
required
string

The ID of the evaluation over which the user permission are being retrieved.

Responses

Response samples

Content type
application/json
{
  • "canChangePermissions": true,
  • "canView": true,
  • "canPublicRead": true,
  • "canEdit": true,
  • "canDelete": true,
  • "canParticipate": true,
  • "canSubmit": true,
  • "canViewPrivateSubmissionStatusAnnotations": true,
  • "canEditSubmissionStatuses": true,
  • "canDeleteSubmissions": true,
  • "ownerPrincipalId": 0
}

put-/repo/v1/evaluation/submission/{subId}/cancellation

Authorizations:
path Parameters
subId
required
string

Responses

post-/repo/v1/evaluation/{evalId}/round

Authorizations:
path Parameters
evalId
required
string
Request Body schema: application/json
id
string
etag
string
evaluationId
string
roundStart
string
roundEnd
string
Array of objects (org.sagebionetworks.evaluation.model.EvaluationRoundLimit)

Optional. Sets limits for maximum submissions in this round.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "evaluationId": "string",
  • "roundStart": "string",
  • "roundEnd": "string",
  • "limits": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "evaluationId": "string",
  • "roundStart": "string",
  • "roundEnd": "string",
  • "limits": [
    ]
}

get-/repo/v1/evaluation/{evalId}/round/{roundId}

Authorizations:
path Parameters
evalId
required
string
roundId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "evaluationId": "string",
  • "roundStart": "string",
  • "roundEnd": "string",
  • "limits": [
    ]
}

put-/repo/v1/evaluation/{evalId}/round/{roundId}

Authorizations:
path Parameters
evalId
required
string
roundId
required
string
Request Body schema: application/json
id
string
etag
string
evaluationId
string
roundStart
string
roundEnd
string
Array of objects (org.sagebionetworks.evaluation.model.EvaluationRoundLimit)

Optional. Sets limits for maximum submissions in this round.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "evaluationId": "string",
  • "roundStart": "string",
  • "roundEnd": "string",
  • "limits": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "evaluationId": "string",
  • "roundStart": "string",
  • "roundEnd": "string",
  • "limits": [
    ]
}

delete-/repo/v1/evaluation/{evalId}/round/{roundId}

Authorizations:
path Parameters
evalId
required
string
roundId
required
string

Responses

post-/repo/v1/evaluation/{evalId}/round/list

Authorizations:
path Parameters
evalId
required
string
Request Body schema: application/json
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/evaluation/{evalId}/migratequota

Authorizations:
path Parameters
evalId
required
string

Responses

Challenge Services

A Challenge is a special object that supplements a project, providing additional features specific to challenges. This set of services provides "CRUD" for Challenge objects and ChallengeTeam objects, which register a Team for a Challenge. The services also provide a number of queries regarding Challenges, challenge participants and challenge Teams.

post-/repo/v1/challenge

Authorizations:
Request Body schema: application/json
id
string
etag
string
projectId
string
participantTeamId
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

get-/repo/v1/challenge

Authorizations:
query Parameters
participantId
required
number
limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

get-/repo/v1/challenge/{challengeId}

Authorizations:
path Parameters
challengeId
required
number

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

put-/repo/v1/challenge/{challengeId}

Authorizations:
path Parameters
challengeId
required
number
Request Body schema: application/json
id
string
etag
string
projectId
string
participantTeamId
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

delete-/repo/v1/challenge/{challengeId}

Authorizations:
path Parameters
challengeId
required
number

Responses

get-/repo/v1/entity/{id}/challenge

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "projectId": "string",
  • "participantTeamId": "string"
}

get-/repo/v1/challenge/{challengeId}/participant

Authorizations:
path Parameters
challengeId
required
number
query Parameters
affiliated
boolean

If affiliated=true, return just participants affiliated with some registered Team. If false, return those not affiliated with any registered Team.
If omitted return all participants.

limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

post-/repo/v1/challenge/{challengeId}/challengeTeam

Authorizations:
path Parameters
challengeId
required
number
Request Body schema: application/json
id
string
etag
string
challengeId
string
teamId
string
message
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "challengeId": "string",
  • "teamId": "string",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "challengeId": "string",
  • "teamId": "string",
  • "message": "string"
}

get-/repo/v1/challenge/{challengeId}/challengeTeam

Authorizations:
path Parameters
challengeId
required
number
query Parameters
limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

get-/repo/v1/challenge/{challengeId}/registratableTeam

Authorizations:
path Parameters
challengeId
required
number
query Parameters
limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

put-/repo/v1/challenge/{challengeId}/challengeTeam/{challengeTeamId}

Authorizations:
path Parameters
challengeId
required
number
challengeTeamId
required
number
Request Body schema: application/json
id
string
etag
string
challengeId
string
teamId
string
message
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "challengeId": "string",
  • "teamId": "string",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "challengeId": "string",
  • "teamId": "string",
  • "message": "string"
}

delete-/repo/v1/challengeTeam/{challengeTeamId}

Authorizations:
path Parameters
challengeTeamId
required
number

Responses

get-/repo/v1/challenge/{challengeId}/submissionTeams

Authorizations:
path Parameters
challengeId
required
number
query Parameters
limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

Message Services

, Provides REST APIs for sending messages to other Synapse users and for commenting on Synapse entities. ,

post-/repo/v1/message

Authorizations:
Request Body schema: application/json
id
string
createdBy
string
fileHandleId
string
createdOn
string
recipients
Array of strings

The unique identifiers of the intended recipients of a message

subject
string
inReplyTo
string
inReplyToRoot
string
notificationUnsubscribeEndpoint
string
userProfileSettingEndpoint
string
withUnsubscribeLink
boolean
withProfileSettingLink
boolean
isNotificationMessage
boolean
to
string
cc
string
bcc
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

post-/repo/v1/cloudMailInMessage

query Parameters
notificationUnsubscribeEndpoint
string
Request Body schema: application/json
object (org.sagebionetworks.repo.model.message.cloudmailin.Envelope)

Message Envelope

object (org.sagebionetworks.repo.model.message.cloudmailin.Headers)

The headers from the email message.

plain
string
html
string
reply_plain
string
Array of objects (org.sagebionetworks.repo.model.message.cloudmailin.Attachment)

Attachments to the message.

Responses

Request samples

Content type
application/json
{
  • "envelope": {
    },
  • "headers": {
    },
  • "plain": "string",
  • "html": "string",
  • "reply_plain": "string",
  • "attachments": [
    ]
}

post-/repo/v1/cloudMailInAuthorization

Request Body schema: application/json
to
string
from
string
size
integer <int32>
helo_domain
string
remote_ip
string

Responses

Request samples

Content type
application/json
{
  • "to": "string",
  • "from": "string",
  • "size": 0,
  • "helo_domain": "string",
  • "remote_ip": "string"
}

get-/repo/v1/message/inbox

Authorizations:
query Parameters
inboxFilter
required
string
orderBy
required
string
descending
required
boolean
limit
required
number
offset
required
number

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/message/outbox

Authorizations:
query Parameters
orderBy
required
string
descending
required
boolean
limit
required
number
offset
required
number

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/message/{messageId}

Authorizations:
path Parameters
messageId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

post-/repo/v1/message/{messageId}/forward

Authorizations:
path Parameters
messageId
required
string
Request Body schema: application/json
recipients
Array of strings

The unique identifiers of the intended recipients of a message

Responses

Request samples

Content type
application/json
{
  • "recipients": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

get-/repo/v1/message/{messageId}/conversation

Authorizations:
path Parameters
messageId
required
string
query Parameters
orderBy
required
string
descending
required
boolean
limit
required
number
offset
required
number

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

put-/repo/v1/message/status

Authorizations:
Request Body schema: application/json
messageId
string
recipientId
string
status
string

Responses

Request samples

Content type
application/json
{
  • "messageId": "string",
  • "recipientId": "string",
  • "status": "string"
}

delete-/repo/v1/admin/message/{messageId}

Authorizations:
path Parameters
messageId
required
string

Responses

get-/repo/v1/message/{messageId}/file

Authorizations:
path Parameters
messageId
required
string
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

post-/repo/v1/entity/{id}/message

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
id
string
createdBy
string
fileHandleId
string
createdOn
string
recipients
Array of strings

The unique identifiers of the intended recipients of a message

subject
string
inReplyTo
string
inReplyToRoot
string
notificationUnsubscribeEndpoint
string
userProfileSettingEndpoint
string
withUnsubscribeLink
boolean
withProfileSettingLink
boolean
isNotificationMessage
boolean
to
string
cc
string
bcc
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "fileHandleId": "string",
  • "createdOn": "string",
  • "recipients": [
    ],
  • "subject": "string",
  • "inReplyTo": "string",
  • "inReplyToRoot": "string",
  • "notificationUnsubscribeEndpoint": "string",
  • "userProfileSettingEndpoint": "string",
  • "withUnsubscribeLink": true,
  • "withProfileSettingLink": true,
  • "isNotificationMessage": true,
  • "to": "string",
  • "cc": "string",
  • "bcc": "string"
}

Table Services

, A Synapse ,,TableEntity,, model object represents the metadata of a table. Each TableEntity is defined by a list of ,,ColumnModel,, IDs. Use ,,POST /column,, to create new ColumnModel objects. Each ColumnModel object is immutable, so to change a column of a table a new column must be added and the old column must be removed. TableEntities can be created, updated, read and deleted like any other entity: ,

, ,

, ,

, ,

, All ColumnModel objects are publicly viewable and usable. Since each ColumnModel is immutable it is safe to re-use ColumnModels created by other users. Use the ,,GET /column,, services to list all of the existing ColumnModels that are currently in use. ,

,

Once the columns for a TableEntity have been created and assigned to the TableEntity, rows can be added to the table using ,,POST /entity/{id}/table/transaction/async/start,,. Each ,,Row,, appended to the table will automatically be assigned a rowId and a versionNumber and can be found in the resulting ,,RowReferenceSet,,. To update a row, simply include the row's rowId in the passed ,,RowSet,,. Any row without a rowId will be treated as a new row. When a row is updated a new versionNumber will automatically be assigned the Row. While previous versions of any row are kept, only the current version of any row will appear in the table index used to support the query service: ,,POST /entity/{id}/table/query/async/start,, ,

, ,

, Use the ,,POST /entity/{id}/table/query/async/start,, services to query for the current rows of a table. The returned ,,RowSet,, of the table query can be modified and returned to update the rows of a table using ,,POST /entity/{id}/table/transaction/async/start,,. ,

, ,

, There is also an ,,asynchronous service,, to ,,upload,, and ,,download,, csv files, suitable for large datasets. ,

, ,

, ,,Table Service Limits,, ,

, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,
,resource,,limit,,notes,
,Maximum size of column names,,256 characters,,
,Maximum number of enumeration values for a single column,,100,,
,Maximum number of columns per table/view,,152,,
,The maximum possible width of a table/view,,64 KB,,Each ,,ColumnType,, has a maximum possible size. The total width of a table/view is the sum of the maximum size of each of its columns,
,The maximum number of LARG_TEXT columns per table/view,,30,,
,Maximum table size,,~146 GB,,All row changes applied to a table are automatically batched into changes sets with a maximum size of 5242880 bytes (5 MB). Currently, there is a limit of 30,000 change sets per table. Therefore, the theoretical maximum size of table is 5242880 bytes * 30,000 = ~ 146 GB.,
,The maximum number of projects/folder per view scope,,30 K,,Recursive sub-folders count towards this limit. For example, if a project contains more than 30 K sub-folders then it cannot be included in a view's scope.,
,The maximum number of rows per view,,200 M,,A single folder cannot contain more then 10 K files/folders. Since a view's scope is limited to 30 K project/folders, the maximum number of rows per view is 10 K * 30 K = 300 M.,
,The maximum file size of a CSV that can be appended to a table,,1 GB,,
,The maximum size of a single query result,,512000 bytes,,
,Entity View only: The maximum total character length for a STRING or STRING_LIST ,,ColumnType,,,500 characters,,Entity Views ONLY! This follows limitations placed on Annotations. For the type STRING_LIST, the total character count is the cumulative length of all string contained in the list.,
,Entity View only: The maximum list length for "_LIST" suffixed ,,ColumnType,,,100 values,,Entity Views ONLY! This follows limitations placed on Annotations.,

post-/repo/v1/column

Authorizations:
Request Body schema: application/json
name
string
columnType
string
facetType
string
id
string
defaultValue
string
maximumSize
integer <int32>
maximumListLength
integer <int32>
enumValues
Array of strings

Columns of type STRING can be constrained to an enumeration values set on this list. The maximum number of entries for an enum is 100

Array of objects (org.sagebionetworks.repo.model.table.JsonSubColumnModel)

For column of type JSON that represents the combination of multiple sub-columns, this property is used to define each sub-column.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "columnType": "string",
  • "facetType": "string",
  • "id": "string",
  • "defaultValue": "string",
  • "maximumSize": 0,
  • "maximumListLength": 0,
  • "enumValues": [
    ],
  • "jsonSubColumns": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "columnType": "string",
  • "facetType": "string",
  • "id": "string",
  • "defaultValue": "string",
  • "maximumSize": 0,
  • "maximumListLength": 0,
  • "enumValues": [
    ],
  • "jsonSubColumns": [
    ]
}

get-/repo/v1/column

Authorizations:
query Parameters
prefix
string

When included, only columns with a name that starts with this prefix will be returned.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 100. The default Limit is 10;

offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

post-/repo/v1/column/batch

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.table.ColumnModel)

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/column/{columnId}

Authorizations:
path Parameters
columnId
required
string

The ID of the ColumnModel to get.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "columnType": "string",
  • "facetType": "string",
  • "id": "string",
  • "defaultValue": "string",
  • "maximumSize": 0,
  • "maximumListLength": 0,
  • "enumValues": [
    ],
  • "jsonSubColumns": [
    ]
}

get-/repo/v1/entity/{id}/column

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity to get the ColumnModels for.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

get-/repo/v1/column/tableview/defaults

query Parameters
viewEntityType
string (org.sagebionetworks.repo.model.table.ViewEntityType)
Enum: "entityview" "submissionview" "dataset" "datasetcollection"

The ,,entity type,, of the view, if omitted use entityview

viewTypeMask
number

Bit mask representing the types to include in the view. Not required for a submission view. For an entity view following are the possible types: (type=,,): File=0x01, Project=0x02, Table=0x04, Folder=0x08, View=0x10, Docker=0x20, SubmissionView=0x40, Dataset=0x80, DatasetCollection=0x100, MaterializedView=0x200).

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

post-/repo/v1/entity/{id}/table/transaction/async/start

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity to update.

Request Body schema: application/json
concreteType
string
entityId
string
Array of org.sagebionetworks.repo.model.table.TableSearchChangeRequest (object) or org.sagebionetworks.repo.model.table.AppendableRowSetRequest (object) or org.sagebionetworks.repo.model.table.UploadToTableRequest (object) or org.sagebionetworks.repo.model.table.TableSchemaChangeRequest (object) (org.sagebionetworks.repo.model.table.TableUpdateRequest)

List of changes that describes schema and/or row changes to a table. For a view the changes are eventually consistent.

createSnapshot
boolean
object (org.sagebionetworks.repo.model.table.SnapshotRequest)

Request to create a new snapshot of a table or view. The provided comment, label, and activity ID will be applied to the current version thereby creating a snapshot and locking the current version. After the snapshot is created a new version will be started with an 'in-progress' label.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "entityId": "string",
  • "changes": [
    ],
  • "createSnapshot": true,
  • "snapshotOptions": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/entity/{id}/table/transaction/async/get/{asyncToken}

Authorizations:
path Parameters
id
required
string

The ID of the table entity.

asyncToken
required
string

The token returned when the job was started.

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "results": [
    ],
  • "snapshotVersionNumber": 0
}

post-/repo/v1/entity/{id}/table/filehandles

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity to append rows to.

Request Body schema: application/json
tableId
string
etag
string
Array of objects (org.sagebionetworks.repo.model.table.SelectColumn)

The list of ColumnModels ID that describes the rows of this set.

Array of objects (org.sagebionetworks.repo.model.table.RowReference)

Each RowReference of this list refers to a single version of a single row of a TableEntity.

Responses

Request samples

Content type
application/json
{
  • "tableId": "string",
  • "etag": "string",
  • "headers": [
    ],
  • "rows": [
    ]
}

Response samples

Content type
application/json
{
  • "tableId": "string",
  • "headers": [
    ],
  • "rows": [
    ]
}

get-/repo/v1/entity/{id}/table/column/{columnId}/row/{rowId}/version/{versionNumber}/file

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

columnId
required
string
rowId
required
number
versionNumber
required
number
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/entity/{id}/table/column/{columnId}/row/{rowId}/version/{versionNumber}/filepreview

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

columnId
required
string
rowId
required
number
versionNumber
required
number
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

post-/repo/v1/entity/{id}/table/query/async/start

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

Request Body schema: application/json
concreteType
string
entityId
string
object (org.sagebionetworks.repo.model.table.Query)
partMask
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "entityId": "string",
  • "query": {
    },
  • "partMask": 0
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/entity/{id}/table/query/async/get/{asyncToken}

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "queryResult": {
    },
  • "queryCount": 0,
  • "selectColumns": [
    ],
  • "maxRowsPerPage": 0,
  • "columnModels": [
    ],
  • "facets": [
    ],
  • "sumFileSizes": {
    },
  • "lastUpdatedOn": "string",
  • "combinedSql": "string",
  • "actionsRequired": [
    ]
}

post-/repo/v1/entity/{id}/table/download/csv/async/start

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

Request Body schema: application/json
concreteType
string
entityId
string
writeHeader
boolean
includeRowIdAndRowVersion
boolean
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

fileName
string
sql
string
Array of org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter (object) or org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter (object) or org.sagebionetworks.repo.model.table.TextMatchesQueryFilter (object) (org.sagebionetworks.repo.model.table.QueryFilter)

Appends additional filters to the SQL query. These are applied before facets. Filters within the list have an AND relationship. If a WHERE clause already exists on the SQL query or facets are selected, it will also be ANDed with the query generated by these additional filters.

Array of org.sagebionetworks.repo.model.table.FacetColumnValuesRequest (object) or org.sagebionetworks.repo.model.table.FacetColumnRangeRequest (object) (org.sagebionetworks.repo.model.table.FacetColumnRequest)

The selected facet filters.

includeEntityEtag
boolean
selectFileColumn
integer <int32>
offset
integer <int32>
limit
integer <int32>
Array of objects (org.sagebionetworks.repo.model.table.SortItem)

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "entityId": "string",
  • "writeHeader": true,
  • "includeRowIdAndRowVersion": true,
  • "csvTableDescriptor": {
    },
  • "fileName": "string",
  • "sql": "string",
  • "additionalFilters": [
    ],
  • "selectedFacets": [
    ],
  • "includeEntityEtag": true,
  • "selectFileColumn": 0,
  • "offset": 0,
  • "limit": 0,
  • "sort": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/entity/{id}/table/download/csv/async/get/{asyncToken}

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "resultsFileHandleId": "string",
  • "tableId": "string",
  • "etag": "string",
  • "headers": [
    ]
}

post-/repo/v1/table/upload/csv/preview/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
uploadFileHandleId
string
linesToSkip
integer <int32>
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

doFullFileScan
boolean

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "uploadFileHandleId": "string",
  • "linesToSkip": 0,
  • "csvTableDescriptor": {
    },
  • "doFullFileScan": true
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/table/upload/csv/preview/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "suggestedColumns": [
    ],
  • "sampleRows": [
    ],
  • "rowsScanned": 0
}

post-/repo/v1/entity/{id}/table/upload/csv/async/start

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

Request Body schema: application/json
concreteType
string
entityId
string
tableId
string
uploadFileHandleId
string
updateEtag
string
linesToSkip
integer <int32>
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

columnIds
Array of strings

Deprecated.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "entityId": "string",
  • "tableId": "string",
  • "uploadFileHandleId": "string",
  • "updateEtag": "string",
  • "linesToSkip": 0,
  • "csvTableDescriptor": {
    },
  • "columnIds": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/entity/{id}/table/upload/csv/async/get/{asyncToken}

Authorizations:
path Parameters
id
required
string

The ID of the TableEntity.

asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "rowsProcessed": 0,
  • "etag": "string"
}

post-/repo/v1/column/view/scope/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
object (org.sagebionetworks.repo.model.table.ViewScope)

List of parent IDs that define a view scope.

includeDerivedAnnotations
boolean
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "viewScope": {
    },
  • "includeDerivedAnnotations": true,
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/column/view/scope/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "results": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/entity/{id}/table/snapshot

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
snapshotComment
string
snapshotLabel
string
snapshotActivityId
string

Responses

Request samples

Content type
application/json
{
  • "snapshotComment": "string",
  • "snapshotLabel": "string",
  • "snapshotActivityId": "string"
}

Response samples

Content type
application/json
{
  • "snapshotVersionNumber": 0
}

post-/repo/v1/validateDefiningSql

Request Body schema: application/json
definingSql
string
entityType
string

Responses

Request samples

Content type
application/json
{
  • "definingSql": "string",
  • "entityType": "string"
}

Response samples

Content type
application/json
{
  • "isValid": true,
  • "invalidReason": "string"
}

Verification Services

Identity verification is a service offered by the Synapse Access and Compliance Team to add an additional layer of legitimacy to a user account, beyond the basic requirements for creating an account in Synapse. After completing their user profile a user may submit a verification request, including supporting documentation. The ACT reviews the information then approves or rejects it. After approval, the ACT retains the authority to suspend verification of an account previously verified. Once rejected or suspended a user may create a new verification request.

post-/repo/v1/verificationSubmission

Authorizations:
query Parameters
notificationUnsubscribeEndpoint
string
Request Body schema: application/json
id
string
createdOn
string
createdBy
string
firstName
string
lastName
string
emails
Array of strings

The list of user email addresses registered to this user.

notificationEmail
string
location
string
company
string
orcid
string
Array of objects (org.sagebionetworks.repo.model.verification.VerificationState)

List of state changes the submission has passed through, ordered by time. The last in the list contains the current state of the submission.

Array of objects (org.sagebionetworks.repo.model.verification.AttachmentMetadata)

Metadata of Files attached to the submission. The list will be emptied after the state is APPROVED or REJECTED.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "emails": [
    ],
  • "notificationEmail": "string",
  • "location": "string",
  • "company": "string",
  • "orcid": "string",
  • "stateHistory": [
    ],
  • "attachments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "emails": [
    ],
  • "notificationEmail": "string",
  • "location": "string",
  • "company": "string",
  • "orcid": "string",
  • "stateHistory": [
    ],
  • "attachments": [
    ]
}

get-/repo/v1/verificationSubmission

Authorizations:
query Parameters
verifiedUserId
number

filter on the user requesting verification (optional)

currentVerificationState
string (org.sagebionetworks.repo.model.verification.VerificationStateEnum)
Enum: "SUBMITTED" "APPROVED" "REJECTED" "SUSPENDED"

filter on the state of the verification submission (optional)

limit
number

page size pagination parameter (optional)

offset
number

page start pagination parameter (zero offset, optional)

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

post-/repo/v1/verificationSubmission/{id}/state

Authorizations:
path Parameters
id
required
number

the ID of the verification submission

query Parameters
notificationUnsubscribeEndpoint
string

the portal prefix for one-click email unsubscription

Request Body schema: application/json
createdOn
string
createdBy
string
state
string
reason
string
notes
string

Responses

Request samples

Content type
application/json
{
  • "createdOn": "string",
  • "createdBy": "string",
  • "state": "string",
  • "reason": "string",
  • "notes": "string"
}

delete-/repo/v1/verificationSubmission/{id}

Authorizations:
path Parameters
id
required
number

Responses

Principal Services

A ,, Principal,, in Synapse can be a User, Group, or a Team. This is a set of services that provides the means to look-up principals by their various attributes and also to test unique names such as USER_NAME, USER_EMAIL, or TEAM_NAME are available for use.

post-/repo/v1/principal/available

Request Body schema: application/json
alias
string
type
string

Responses

Request samples

Content type
application/json
{
  • "alias": "string",
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "available": true,
  • "valid": true
}

post-/repo/v1/account/emailValidation

query Parameters
portalEndpoint
required
string

the beginning of the URL included in the email verification message. When concatenated with a list of ampersand (,&,) separated request parameters, must become a well formed URL. The concatenated string must be included with the ,,POST /account,, request.

Request Body schema: application/json
email
string
firstName
string
lastName
string
userName
string
oauthProvider
string
subject
string
encodedMembershipInvtnSignedToken
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "userName": "string",
  • "oauthProvider": "string",
  • "subject": "string",
  • "encodedMembershipInvtnSignedToken": "string"
}

post-/repo/v1/account2

Request Body schema: application/json
firstName
string
lastName
string
username
string
password
string
object (org.sagebionetworks.repo.model.principal.EmailValidationSignedToken)

Signed token containing the the information necessary to create a new account or add an email address to an existing account.

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "password": "string",
  • "emailValidationSignedToken": {
    }
}

Response samples

Content type
application/json
{
  • "sessionToken": "string",
  • "accessToken": "string",
  • "acceptsTermsOfUse": true,
  • "authenticationReceipt": "string"
}

post-/repo/v1/account/{id}/emailValidation

Authorizations:
path Parameters
id
required
string

the ID of the user account to which the email address is to be added. Must match the ID of the user making the request.

query Parameters
portalEndpoint
required
string

the beginning of the URL included in the email verification message. When concatenated with a list of ampersand (,&,) separated request parameters, must become a well formed URL. The concatenated string must be included with the ,,POST /email,, request.

Request Body schema: application/json
email
string

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

post-/repo/v1/email

Authorizations:
query Parameters
setAsNotificationEmail
boolean

if true then the newly added email address becomes the address used by the system for sending messages to the user.

Request Body schema: application/json
concreteType
string
hmac
string
version
integer <int32>
expiresOn
string
createdOn
string
email
string
userId
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "email": "string",
  • "userId": "string"
}

delete-/repo/v1/email

Authorizations:
query Parameters
email
required
string

the email address to remove

Responses

put-/repo/v1/notificationEmail

Authorizations:
Request Body schema: application/json
email
string

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

get-/repo/v1/notificationEmail

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "email": "string",
  • "quarantineStatus": {
    }
}

post-/repo/v1/principal/alias

Request Body schema: application/json
alias
string
type
string

Responses

Request samples

Content type
application/json
{
  • "alias": "string",
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "principalId": 0
}

Discussion Services

,Discussions in Synapse are captured in the Project's Forum. Each Project has a Forum. Each Forum has a set of Moderators. The Moderators manage the content of the Forum.,

, ,
, ,

,A Forum has multiple Threads. A Thread is created by an authorized user. Other authorized users can view and reply to an existing Thread.,

, ,
, ,

,These services provide the APIs for Moderators and authorized users to create, edit, and manage the conversations that happen in Synapse.,

, ,

get-/repo/v1/project/{projectId}/forum

Authorizations:
path Parameters
projectId
required
string
  • The ID of the project to which the forum belongs.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "projectId": "string",
  • "etag": "string"
}

get-/repo/v1/forum/{forumId}

Authorizations:
path Parameters
forumId
required
string
  • The ID of the forum.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "projectId": "string",
  • "etag": "string"
}

get-/repo/v1/forum/{forumId}/threads

Authorizations:
path Parameters
forumId
required
string
  • The forum ID to which the returning threads belong
query Parameters
limit
required
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 20.
offset
required
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.
sort
string (org.sagebionetworks.repo.model.discussion.DiscussionThreadOrder)
Enum: "NUMBER_OF_REPLIES" "NUMBER_OF_VIEWS" "PINNED_AND_LAST_ACTIVITY" "THREAD_TITLE"
ascending
boolean
  • The direction of sort: true for ascending, and false for descending
filter
required
string (org.sagebionetworks.repo.model.discussion.DiscussionFilter)
Enum: "NO_FILTER" "DELETED_ONLY" "EXCLUDE_DELETED"

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

post-/repo/v1/thread

Authorizations:
Request Body schema: application/json
forumId
string
title
string
messageMarkdown
string

Responses

Request samples

Content type
application/json
{
  • "forumId": "string",
  • "title": "string",
  • "messageMarkdown": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "title": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "numberOfViews": 0,
  • "numberOfReplies": 0,
  • "lastActivity": "string",
  • "activeAuthors": [
    ],
  • "isEdited": true,
  • "isDeleted": true,
  • "isPinned": true
}

get-/repo/v1/thread/{threadId}

Authorizations:
path Parameters
threadId
required
string
  • The ID of the thread being requested

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "title": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "numberOfViews": 0,
  • "numberOfReplies": 0,
  • "lastActivity": "string",
  • "activeAuthors": [
    ],
  • "isEdited": true,
  • "isDeleted": true,
  • "isPinned": true
}

delete-/repo/v1/thread/{threadId}

Authorizations:
path Parameters
threadId
required
string
  • the ID of the thread being marked as deleted

Responses

put-/repo/v1/thread/{threadId}/title

Authorizations:
path Parameters
threadId
required
string
  • The ID of the thread being updated
Request Body schema: application/json
title
string

Responses

Request samples

Content type
application/json
{
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "title": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "numberOfViews": 0,
  • "numberOfReplies": 0,
  • "lastActivity": "string",
  • "activeAuthors": [
    ],
  • "isEdited": true,
  • "isDeleted": true,
  • "isPinned": true
}

put-/repo/v1/thread/{threadId}/message

Authorizations:
path Parameters
threadId
required
string
  • The ID of the thread being updated
Request Body schema: application/json
messageMarkdown
string

Responses

Request samples

Content type
application/json
{
  • "messageMarkdown": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "title": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "numberOfViews": 0,
  • "numberOfReplies": 0,
  • "lastActivity": "string",
  • "activeAuthors": [
    ],
  • "isEdited": true,
  • "isDeleted": true,
  • "isPinned": true
}

put-/repo/v1/thread/{threadId}/restore

Authorizations:
path Parameters
threadId
required
string
  • the ID of the thread that was marked as deleted

Responses

put-/repo/v1/thread/{threadId}/pin

Authorizations:
path Parameters
threadId
required
string
  • the ID of the thread being marked as pinned

Responses

put-/repo/v1/thread/{threadId}/unpin

Authorizations:
path Parameters
threadId
required
string
  • the ID of the thread being unpinned

Responses

get-/repo/v1/thread/messageUrl

Authorizations:
query Parameters
messageKey
required
string

Responses

Response samples

Content type
application/json
{
  • "messageUrl": "string"
}

post-/repo/v1/reply

Authorizations:
Request Body schema: application/json
threadId
string
messageMarkdown
string

Responses

Request samples

Content type
application/json
{
  • "threadId": "string",
  • "messageMarkdown": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "threadId": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "isEdited": true,
  • "isDeleted": true
}

get-/repo/v1/reply/{replyId}

Authorizations:
path Parameters
replyId
required
string
  • The ID of the reply being requested

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "threadId": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "isEdited": true,
  • "isDeleted": true
}

delete-/repo/v1/reply/{replyId}

Authorizations:
path Parameters
replyId
required
string
  • the ID of the reply being marked as deleted

Responses

put-/repo/v1/reply/{replyId}/message

Authorizations:
path Parameters
replyId
required
string
  • The ID of the reply being updated
Request Body schema: application/json
messageMarkdown
string

Responses

Request samples

Content type
application/json
{
  • "messageMarkdown": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "threadId": "string",
  • "forumId": "string",
  • "projectId": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "messageKey": "string",
  • "isEdited": true,
  • "isDeleted": true
}

get-/repo/v1/thread/{threadId}/replies

Authorizations:
path Parameters
threadId
required
string
  • The thread ID to which the returning replies belong
query Parameters
limit
required
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 100.
offset
required
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.
sort
string (org.sagebionetworks.repo.model.discussion.DiscussionReplyOrder)
Value: "CREATED_ON"
ascending
boolean
  • The direction of sort: true for ascending, and false for descending
filter
required
string (org.sagebionetworks.repo.model.discussion.DiscussionFilter)
Enum: "NO_FILTER" "DELETED_ONLY" "EXCLUDE_DELETED"

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/reply/messageUrl

Authorizations:
query Parameters
messageKey
required
string
  • DiscussionReplyBundle.messageKey

Responses

Response samples

Content type
application/json
{
  • "messageUrl": "string"
}

get-/repo/v1/forum/{forumId}/threadcount

Authorizations:
path Parameters
forumId
required
string
  • The forum ID to which the returning threads belong
query Parameters
filter
required
string (org.sagebionetworks.repo.model.discussion.DiscussionFilter)
Enum: "NO_FILTER" "DELETED_ONLY" "EXCLUDE_DELETED"

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

get-/repo/v1/thread/{threadId}/replycount

Authorizations:
path Parameters
threadId
required
string
  • The thread ID to which the returning replies belong
query Parameters
filter
required
string (org.sagebionetworks.repo.model.discussion.DiscussionFilter)
Enum: "NO_FILTER" "DELETED_ONLY" "EXCLUDE_DELETED"

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

get-/repo/v1/entity/{id}/threads

Authorizations:
path Parameters
id
required
string
  • The request entityId
query Parameters
limit
required
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 20.
offset
required
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.
sort
string (org.sagebionetworks.repo.model.discussion.DiscussionThreadOrder)
Enum: "NUMBER_OF_REPLIES" "NUMBER_OF_VIEWS" "PINNED_AND_LAST_ACTIVITY" "THREAD_TITLE"
ascending
boolean
  • The direction of sort: true for ascending, and false for descending

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

post-/repo/v1/entity/threadcounts

Authorizations:
Request Body schema: application/json
idList
Array of strings

A list of entity IDs. Limit size 20.

Responses

Request samples

Content type
application/json
{
  • "idList": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/forum/{forumId}/moderators

Authorizations:
path Parameters
forumId
required
string
  • The forum ID to which the returning mederators belong
query Parameters
limit
required
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 100.
offset
required
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "totalNumberOfResults": 0
}

post-/repo/v1/forum/{forumId}/search

Authorizations:
path Parameters
forumId
required
string

The ID of the forum where the search is performed

Request Body schema: application/json
searchString
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "searchString": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "matches": [
    ],
  • "nextPageToken": "string"
}

Search Services

Search for Entities on Synapse

post-/repo/v1/search

Authorizations:
Request Body schema: application/json
queryTerm
Array of strings

The free text search terms. This will search the name of the Entity and its Wiki contents

Array of objects (org.sagebionetworks.repo.model.search.query.KeyValue)

One or more key-value pairs that define a boolean search. Multiple expressions are joined with a top-level AND. Key is the facet field name, value is the facet value.

Array of objects (org.sagebionetworks.repo.model.search.query.KeyRange)

One or more key-value-range filters that filter values of a key based on the specified range where min<=value<=max. Multiple expressions are joined with a top-level AND.

Array of objects (org.sagebionetworks.repo.model.search.query.SearchFacetOption)

Specify which fields should be returned as facets and the format of the results for each field

returnFields
Array of strings

Specifies the document fields to include in the response. By default, only the document ids of the hits are returned.

start
integer <int32>
size
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "queryTerm": [
    ],
  • "booleanQuery": [
    ],
  • "rangeQuery": [
    ],
  • "facetOptions": [
    ],
  • "returnFields": [
    ],
  • "start": 0,
  • "size": 0
}

Response samples

Content type
application/json
{
  • "found": 0,
  • "start": 0,
  • "matchExpression": "string",
  • "hits": [
    ],
  • "facets": [
    ]
}

User &#38 Group Services

Auto-generated description

get-/repo/v1/userGroup

Authorizations:
query Parameters
offset
integer
limit
integer
sort
string
ascending
boolean

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

JSON Schema Services

This set of services provide project designers with tools to define their own schemas to control and validate metadata applied to Projects, Folders, and Files. All schemas are defined using JSON schemas following ,,json-schema.org,, specification. ,

, To get started, you will need to either create a new ,,Organization,, or join an existing Organization. Each Organization has an AccessControlList (ACL) that controls which users/teams are authorized to contribute schemas under that Organization's name-space. The Organization's name-space is referenced using the Organization's name, which is also the root of all schema $ids within the Organization.

post-/repo/v1/schema/organization

Authorizations:
Request Body schema: application/json
organizationName
string

Responses

Request samples

Content type
application/json
{
  • "organizationName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

get-/repo/v1/schema/organization

Authorizations:
query Parameters
name
required
string

The name of the Organization to lookup.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

post-/repo/v1/schema/organization/list

Request Body schema: application/json
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

delete-/repo/v1/schema/organization/{id}

Authorizations:
path Parameters
id
required
string

The numeric identifier of the organization.

Responses

get-/repo/v1/schema/organization/{id}/acl

Authorizations:
path Parameters
id
required
string

The numeric identifier of the organization.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

put-/repo/v1/schema/organization/{id}/acl

Authorizations:
path Parameters
id
required
string

The numeric identifier of the organization.

Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

post-/repo/v1/schema/type/create/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
object (org.sagebionetworks.repo.model.schema.JsonSchema)

The JSON schema is defined by: json-schema.org, specifically draft-07. Only features listed here are currently supported.

dryRun
boolean

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "schema": {
    },
  • "dryRun": true
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/schema/type/create/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Forward the token returned when the job was started.

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "newVersionInfo": {
    },
  • "validationSchema": {
    }
}

get-/repo/v1/schema/type/registered/{id}

path Parameters
id
required
string

The relative $id of the JSON schema to get.

Responses

Response samples

Content type
application/json
{
  • "$schema": "string",
  • "$id": "string",
  • "$ref": "string",
  • "type": "string",
  • "items": { },
  • "properties": {
    },
  • "title": "string",
  • "description": "string",
  • "allOf": [
    ],
  • "anyOf": [
    ],
  • "oneOf": [
    ],
  • "not": { },
  • "format": "string",
  • "definitions": {
    },
  • "enum": [
    ],
  • "const": null,
  • "source": "string",
  • "required": [
    ],
  • "maxLength": 0,
  • "minLength": 0,
  • "pattern": "string",
  • "if": { },
  • "then": { },
  • "else": { },
  • "maximum": 0,
  • "minimum": 0,
  • "default": null,
  • "contains": { },
  • "additionalProperties": { }
}

delete-/repo/v1/schema/type/registered/{id}

Authorizations:
path Parameters
id
required
string

The relative $id of the schema to delete.

Responses

post-/repo/v1/schema/list

Request Body schema: application/json
organizationName
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "organizationName": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/schema/version/list

Request Body schema: application/json
organizationName
string
schemaName
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "organizationName": "string",
  • "schemaName": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/schema/type/validation/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
$id
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "$id": "string"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/schema/type/validation/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

Forward the token returned when the job was started.

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "validationSchema": {
    }
}

WikiPage Services

, The Synapse ,,WikiPage,, model object contains the data needed to render an end-user crafted web page. The Synapse Web Client will dynamically render a WikiPage into a combination of HTML, CSS and Javascript which is then finally rendered as a web page in the client's web browser. ,

, ,

, These services provide support for creating, reading, updating, and deleting (CRUD) the WikiPage model objects. ,

, ,

, WikiPages are composed of two major parts; the raw markdown text and a list of file attachments. For example, to embed an image from an end-user's machine into a WikiPage, the image file must first be uploaded to Synapse as ,,FileHandle,, (see ,,File Services,,). The FileHandle ID can then be added to a WikiPage.attachmentFileHandleIds list. See ,,www.synapse.org,, for details on the supported markdown syntax. ,

,

,

, WikiPages are not stand-alone objects, instead they are a component of another object such as an Entity or Evaluation. For example, when a WikiPage is created for an Entity, the Entity becomes the "owner" of the WikiPage. Access to the WikiPage is always tied to its owner. For example, to GET a WikiPage of an Entity, the caller must have read permission on the Entity. ,

, ,

, To navigate the hierarchy of WikiPages associated with an owner use the ,,GET /entity/{ownerId}/wikiheadertree,, method. The returned list of ,,WikiHeaders,, can be used to construct a full wiki hierarchy tree for that owner. ,

, ,

, Note: WikiPages can be nested to created a hierarchy of sub-pages. However, there can only be one root WikiPage per owner object, and all sub-pages are considered to be owned by the same object as the root page. ,

post-/repo/v1/entity/{ownerId}/wiki

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner Entity.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

post-/repo/v1/access_requirement/{ownerId}/wiki

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner Entity.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

post-/repo/v1/evaluation/{ownerId}/wiki

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner Evaluation.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/entity/{ownerId}/wikikey

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

Responses

Response samples

Content type
application/json
{
  • "wikiPageId": "string",
  • "ownerObjectId": "string",
  • "ownerObjectType": "string"
}

get-/repo/v1/evaluation/{ownerId}/wikikey

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

Responses

Response samples

Content type
application/json
{
  • "wikiPageId": "string",
  • "ownerObjectId": "string",
  • "ownerObjectType": "string"
}

get-/repo/v1/access_requirement/{ownerId}/wikikey

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

Responses

Response samples

Content type
application/json
{
  • "wikiPageId": "string",
  • "ownerObjectId": "string",
  • "ownerObjectType": "string"
}

get-/repo/v1/entity/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

When included returns a specific version of a wiki.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/entity/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

delete-/repo/v1/entity/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to delete.

Responses

get-/repo/v1/access_requirement/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

When included returns a specific version of a wiki.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/access_requirement/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdown
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdown": "string",
  • "attachmentFileHandleIds": [
    ]
}

delete-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluations.

wikiId
required
string

The ID of the WikiPage to delete.

Responses

get-/repo/v1/entity/{ownerId}/wikiheadertree

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

query Parameters
offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wikiheadertree

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

query Parameters
offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki/{wikiId}/attachmenthandles

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage.

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}/attachmenthandles

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage.

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki/{wikiId}/attachment

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /entity/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}/attachment

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /evaluation/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/entity/{ownerId}/wiki/{wikiId}/attachmentpreview

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /entity/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/evaluation/{ownerId}/wiki/{wikiId}/attachmentpreview

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /evaluation/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

Docker Commit Services

These services relate to the 'commits' to Docker repositories. Note that create, update and delete of the Docker repositories themselves are done using the ,,Entity Services,,, for external/unmanaged repositories, or by direct integration with the Docker registry, for managed Docker repositories. Tagged commits for both managed and external/unmanaged repositories may be retrieved using the 'listDockerTags' API included in this service.

post-/repo/v1/entity/{id}/dockerCommit

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
tag
string
digest
string
createdOn
string

Responses

Request samples

Content type
application/json
{
  • "tag": "string",
  • "digest": "string",
  • "createdOn": "string"
}

get-/repo/v1/entity/{id}/dockerTag

Authorizations:
path Parameters
id
required
string
query Parameters
sort
string
ascending
boolean

, optional (default is false)

limit
number

pagination parameter, optional (default is 20)

offset
number

pagination parameter, optional (default is 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

Data Access Services

,Some data in Synapse are governed by an ACTAccessRequirement. To gain access to these data, a user must meet all requirements specified in the ACTAccessRequirement.,

, ,
, ,

,These services provide the APIs for users to create request to gain access to controlled data, and APIs for the ACT to review and grant access to users.,

post-/repo/v1/researchProject

Authorizations:
Request Body schema: application/json
id
string
accessRequirementId
string
institution
string
projectLead
string
intendedDataUseStatement
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
etag
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "institution": "string",
  • "projectLead": "string",
  • "intendedDataUseStatement": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "institution": "string",
  • "projectLead": "string",
  • "intendedDataUseStatement": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "etag": "string"
}

get-/repo/v1/accessRequirement/{requirementId}/researchProjectForUpdate

Authorizations:
path Parameters
requirementId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "institution": "string",
  • "projectLead": "string",
  • "intendedDataUseStatement": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "etag": "string"
}

post-/repo/v1/dataAccessRequest

Authorizations:
Request Body schema: application/json
One of
id
string
accessRequirementId
string
researchProjectId
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
ducFileHandleId
string
irbFileHandleId
string
attachments
Array of strings

The set of file handle ID of attached files to this request.

Array of objects

List of user changes. A user can gain access, renew access or have access revoked.

etag
string
concreteType
string

Responses

Request samples

Content type
application/json
Example
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "researchProjectId": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "ducFileHandleId": "string",
  • "irbFileHandleId": "string",
  • "attachments": [
    ],
  • "accessorChanges": [
    ],
  • "etag": "string",
  • "concreteType": "string"
}

Response samples

Content type
application/json
Example
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "researchProjectId": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "ducFileHandleId": "string",
  • "irbFileHandleId": "string",
  • "attachments": [
    ],
  • "accessorChanges": [
    ],
  • "etag": "string",
  • "concreteType": "string"
}

get-/repo/v1/accessRequirement/{requirementId}/dataAccessRequestForUpdate

Authorizations:
path Parameters
requirementId
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "researchProjectId": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "ducFileHandleId": "string",
  • "irbFileHandleId": "string",
  • "attachments": [
    ],
  • "accessorChanges": [
    ],
  • "etag": "string",
  • "concreteType": "string"
}

post-/repo/v1/dataAccessRequest/{requestId}/submission

Authorizations:
path Parameters
requestId
required
string
  • The ID of the request object.
Request Body schema: application/json
requestId
string
requestEtag
string
subjectId
string
subjectType
string

Responses

Request samples

Content type
application/json
{
  • "requestId": "string",
  • "requestEtag": "string",
  • "subjectId": "string",
  • "subjectType": "string"
}

Response samples

Content type
application/json
{
  • "submissionId": "string",
  • "submittedBy": "string",
  • "rejectedReason": "string",
  • "state": "string",
  • "modifiedOn": "string"
}

put-/repo/v1/dataAccessSubmission/{submissionId}/cancellation

Authorizations:
path Parameters
submissionId
required
string
  • The ID of the submission to cancel.

Responses

Response samples

Content type
application/json
{
  • "submissionId": "string",
  • "submittedBy": "string",
  • "rejectedReason": "string",
  • "state": "string",
  • "modifiedOn": "string"
}

put-/repo/v1/dataAccessSubmission/{submissionId}

Authorizations:
path Parameters
submissionId
required
string
Request Body schema: application/json
submissionId
string
newState
string
rejectedReason
string

Responses

Request samples

Content type
application/json
{
  • "submissionId": "string",
  • "newState": "string",
  • "rejectedReason": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "accessRequirementVersion": 0,
  • "requestId": "string",
  • "ducFileHandleId": "string",
  • "irbFileHandleId": "string",
  • "attachments": [
    ],
  • "accessorChanges": [
    ],
  • "researchProjectSnapshot": {
    },
  • "isRenewalSubmission": true,
  • "publication": "string",
  • "summaryOfUse": "string",
  • "submittedOn": "string",
  • "modifiedOn": "string",
  • "submittedBy": "string",
  • "modifiedBy": "string",
  • "state": "string",
  • "rejectedReason": "string",
  • "etag": "string",
  • "subjectId": "string",
  • "subjectType": "string"
}

delete-/repo/v1/dataAccessSubmission/{submissionId}

Authorizations:
path Parameters
submissionId
required
string

Responses

get-/repo/v1/dataAccessSubmission/{submissionId}

Authorizations:
path Parameters
submissionId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessRequirementId": "string",
  • "accessRequirementVersion": 0,
  • "requestId": "string",
  • "ducFileHandleId": "string",
  • "irbFileHandleId": "string",
  • "attachments": [
    ],
  • "accessorChanges": [
    ],
  • "researchProjectSnapshot": {
    },
  • "isRenewalSubmission": true,
  • "publication": "string",
  • "summaryOfUse": "string",
  • "submittedOn": "string",
  • "modifiedOn": "string",
  • "submittedBy": "string",
  • "modifiedBy": "string",
  • "state": "string",
  • "rejectedReason": "string",
  • "etag": "string",
  • "subjectId": "string",
  • "subjectType": "string"
}

post-/repo/v1/accessRequirement/{requirementId}/submissions

Authorizations:
path Parameters
requirementId
required
string
Request Body schema: application/json
accessRequirementId
string
nextPageToken
string
filterBy
string
accessorId
string
orderBy
string
isAscending
boolean

Responses

Request samples

Content type
application/json
{
  • "accessRequirementId": "string",
  • "nextPageToken": "string",
  • "filterBy": "string",
  • "accessorId": "string",
  • "orderBy": "string",
  • "isAscending": true
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/accessRequirement/{requirementId}/approvedSubmissionInfo

Authorizations:
path Parameters
requirementId
required
string
Request Body schema: application/json
accessRequirementId
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "accessRequirementId": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

get-/repo/v1/accessRequirement/{requirementId}/status

Authorizations:
path Parameters
requirementId
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "accessRequirementId": "string",
  • "concreteType": "string",
  • "isApproved": true,
  • "expiredOn": "string"
}

post-/repo/v1/restrictionInformation

Authorizations:
Request Body schema: application/json
restrictableObjectType
string
objectId
string

Responses

Request samples

Content type
application/json
{
  • "restrictableObjectType": "string",
  • "objectId": "string"
}

Response samples

Content type
application/json
{
  • "restrictionLevel": "string",
  • "hasUnmetAccessRequirement": true
}

get-/repo/v1/dataAccessSubmission/openSubmissions

Authorizations:
query Parameters
nextPageToken
string

Responses

Response samples

Content type
application/json
{
  • "openSubmissionList": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/dataAccessSubmission/search

Authorizations:
Request Body schema: application/json
accessorId
string
accessRequirementId
string
submissionState
string
reviewerId
string
reviewerFilterType
string
Array of objects (org.sagebionetworks.repo.model.dataaccess.SubmissionSearchSort)
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "accessorId": "string",
  • "accessRequirementId": "string",
  • "submissionState": "string",
  • "reviewerId": "string",
  • "reviewerFilterType": "string",
  • "sort": [
    ],
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

Entity Services

, All data in Synapse is organize into ,,Projects,,. These Projects can be further organized into hierarchical ,,Folders,,. Finally, the data is then represented by ,,FileEntities,, that reside within Folders or directly within Projects. All these objects (Projects, Folders, FileEntities) are derived from a common object called ,,Entity,,. The Entity Services provide the means to create, read, update, and delete Synapse Entities. There are also services for navigating the Entity hierarchies , setting Authorization rules, and Annotating Entities. ,

, ,

, In addition to the basic entity types (Project, Folder, ,&, FileEntity), Synapse also supports the following Entity types: ,

, ,

, ,

, The following methods provide the basic Create, Read, Update, Delete (CRUD) for Entities: ,

, ,, ,
,Annotations,
, ,

, An Entity can be annotated using the ,,PUT /entity/{id}/annotations2,, method. Each annotation is a key-value pair. The ,,GET /entity/{id}/annotations2,, method can be used to get the current annotations of an entity. ,

, ,
,Authorization,
, ,

, An Entity's authorization is controlled by the Entity's ,,Access Control List (ACL),,. When a new Project is created a new ACL is automatically created for the Project. New Folders and FileEnties start off inheriting the ACL of their containing Project. This means they do not have their own ACL and all authorization is controlled by their Project's ACL. The term 'benefactor' is used to indicate which Entity an Entity inherits its ACL from. For example, a newly created Project will be its own benefactor, while a new FileEntity's benefactor will start off as its containing Project. The current benefactor of any Entity can be determined using the ,,GET /entity/{id}/benefactor,, method. ,

, ,

, For the case where a Folder or FileEntity needs its own ACL (as opposed to inheriting it from its containing Project) a new ACL can be created for the Entity using the ,,POST /entity/{id}/acl,, method. When a new ACL is created for an Entity it will no longer inherit its permission from its containing Project and it will become its own benefactor. ,

, ,

, While creating or updating an ACL, only Certified Users can add DOWNLOAD permission for Authenticated Users group. ,

, ,

, For the case where a Folder or FileEntity no longer needs its own ACL, the ACL can deleted using the ,,DELETE /entity/{id}/acl,, method. When the ACL of an File or Folder is deleted, it will automatically be assigned the same benefactor as its parent Entity. Deleting the ACL of a Project is not allowed. ,

, ,

, The ,,GET /entity/{id}/acl,, can be used to get an Entity's ACL. ,

, ,

, To determine what permissions a User has on an Entity, the ,,GET /entity/{id}/permissions,, method should be used. ,

, ,

, In addition to authorization via ACLs, entities may be restricted via AccessRequirements (ARs). For more information, see ,, Access Requirement Services,, and ,, Access Approval Services,, ,

, ,
,Versions,
, ,

, Currently, ,,FileEntities,, are "versionable" meaning it is possible for it to have multiple versions of the file. Whenever, a FileEntity is updated with a new ,,FileHandle,, whose MD5 differs from the MD5 of the current file hanlde a new version of the FileEntity is automatically created. The history of a FileEntity can be retrieved using ,,GET /entity/{id}/version,, method. A specific version of a FileEntity can be retrieved using ,,GET /entity/{id}/version/{versionNumber},, method. The Annotations of a specific version of an FileEntity can be retrieved using the ,,GET /entity/{id}/version/{versionNumber}/annotations,, method. ,

, ,

, Despite being ,,versionable,,, ,,Tables,,, ,,Views,, and ,,Materialized Views,, are versioned using snapshots: see ,,POST /entity/{id}/table/snapshot,, and ,,POST /entity/{id}/table/transaction/async/start,,. ,

, ,

, ,,,Note: ,,Only the File and Annotations of an Entity are included in the version. All other components of an Entity such as description, name, parent, ACL, and WikiPage are ,,not,, not part of the version, and will not vary from version to version.,, ,

, ,
,JSON Schemas,
, ,

, Each Entity type and Model object in Synapse is defined by a JSON schema. The ,,GET /REST/resources,, method will list the full name of all Resources used by Synapse. The schema for each Resource is accessible via ,,GET /REST/resources/schema,,. Note: Many of these resources are composition objects and one must navigate various interfaces of an object to fully digest it. Therefore, a flattened (or effective) schema for each resource is available from the ,,GET /REST/resources/effectiveSchema,, ,

, ,,Entity Service Limits,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,
,resource,,limit,
,Maximum size of an Entity.name,,256 characters,
,Maximum size of an Entity.desciption,,1000 characters,
,Maximum number of versions for a single Entity,,15,000,
,Maximum number of keys in Annotations,,100,
,Maximum number of values associated with a single key in Annotations,,100,
,Maximum total character count for all values associated with a single key in Annotations when the AnnotationValueType is STRING,,500,
,Maximum hierarchical depth of an Entity,,50,

post-/repo/v1/entity

Authorizations:
query Parameters
generatedBy
string

To track the Provenance of an Entity create, include the ID of the ,,Activity,, that was created to track the change. For more information see: ,,POST /activity,,. You must be the creator of the ,,Activity,, used here.

Request Body schema: application/json
One of
name
string
description
string
id
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
parentId
string
concreteType
string
repositoryName
string
isManaged
boolean

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

Response samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

get-/repo/v1/entity/{id}

Authorizations:
path Parameters
id
required
string

The ID of the entity to fetch.

Responses

Response samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

put-/repo/v1/entity/{id}

Authorizations:
path Parameters
id
required
string

The ID of the entity to update. This ID must match the ID of the passed Entity in the request body.

query Parameters
generatedBy
string

To track the Provenance of an Entity update, include the ID of the ,,Activity,, that was created to track the change. For more information see: ,,POST /activity,,. You must be the creator of the ,,Activity,, used here.

newVersion
string

To force the creation of a new version for a ,,versionable,, entity such as a ,,FileEntity,,, include this optional parameter with a value set to true (i.e. newVersion=true). This parameter is ignored for entities of type ,,Table,, (See ,,POST /entity/{id}/table/snapshot,, instead)

Request Body schema: application/json
One of
name
string
description
string
id
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
parentId
string
concreteType
string
repositoryName
string
isManaged
boolean

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

Response samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

delete-/repo/v1/entity/{id}

Authorizations:
path Parameters
id
required
string

The ID of the Entity to delete.

query Parameters
skipTrashCan
boolean

If true the entity will be flag for priority purge and deleted as soon as possible

Responses

put-/repo/v1/entity/{id}/version/{versionNumber}/filehandle

Authorizations:
path Parameters
id
required
string

The id of the file entity

versionNumber
required
number

The entity version

Request Body schema: application/json
oldFileHandleId
string
newFileHandleId
string

Responses

Request samples

Content type
application/json
{
  • "oldFileHandleId": "string",
  • "newFileHandleId": "string"
}

get-/repo/v1/entity/{id}/annotations2

Authorizations:
path Parameters
id
required
string
  • The id of the entity to update.
query Parameters
includeDerived
required
boolean
  • When set to 'true', the derived annotations will be
                     included in the results. Default value 'false'.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "annotations": {
    }
}

put-/repo/v1/entity/{id}/annotations2

Authorizations:
path Parameters
id
required
string
  • The id of the entity to update.
Request Body schema: application/json
id
string
etag
string
object

Additional metadata associated with the object. The key is the name of your desired annotations. The value is an object containing a list of string values (use empty list to represent no values for key) and the value type associated with all values in the list

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "annotations": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "annotations": {
    }
}

get-/repo/v1/entity/{id}/version/{versionNumber}/annotations2

Authorizations:
path Parameters
id
required
string

The ID of the Entity.

versionNumber
required
number

The version number of the Entity.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "annotations": {
    }
}

delete-/repo/v1/entity/{id}/version/{versionNumber}

Authorizations:
path Parameters
id
required
string

The ID of the Entity

versionNumber
required
number

The version number of the Entity to delete.

Responses

get-/repo/v1/entity/{id}/version/{versionNumber}

Authorizations:
path Parameters
id
required
string

The ID of the Entity.

versionNumber
required
number

The version number of the Entity to get.

Responses

Response samples

Content type
application/json
Example
{
  • "name": "string",
  • "description": "string",
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "parentId": "string",
  • "concreteType": "string",
  • "repositoryName": "string",
  • "isManaged": true
}

get-/repo/v1/entity/{id}/type

Authorizations:
path Parameters
id
required
string

The ID of the Entity to get the EntityHeader for.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": "string",
  • "type": "string",
  • "versionNumber": 0,
  • "versionLabel": "string",
  • "isLatestVersion": true,
  • "benefactorId": 0,
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

get-/repo/v1/entity/type

Authorizations:
query Parameters
batch
required
string

A comma separated list of Entity IDs to get EntityHeaders for.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

post-/repo/v1/entity/header

Authorizations:
Request Body schema: application/json
Array of objects (org.sagebionetworks.repo.model.Reference)

The list of references

Responses

Request samples

Content type
application/json
{
  • "references": [
    ]
}

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/entity/{id}/permissions

Authorizations:
path Parameters
id
required
string

The ID of the Entity to get permissions for.

Responses

Response samples

Content type
application/json
{
  • "canView": true,
  • "canEdit": true,
  • "canMove": true,
  • "canAddChild": true,
  • "canCertifiedUserEdit": true,
  • "canCertifiedUserAddChild": true,
  • "isCertifiedUser": true,
  • "canChangePermissions": true,
  • "canChangeSettings": true,
  • "canDelete": true,
  • "canDownload": true,
  • "canUpload": true,
  • "canEnableInheritance": true,
  • "ownerPrincipalId": 0,
  • "canPublicRead": true,
  • "canModerate": true,
  • "isCertificationRequired": true,
  • "isEntityOpenData": true
}

get-/repo/v1/entity/{id}/access

Authorizations:
path Parameters
id
required
string

The ID of the Entity to check the permission on.

query Parameters
accessType
required
string

The permission to check. Must be from: ,,ACCESS_TYPE,

Responses

Response samples

Content type
application/json
true

get-/repo/v1/entity/{id}/actions/download

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "actions": [
    ]
}

get-/repo/v1/entity/{id}/path

Authorizations:
path Parameters
id
required
string

The ID of the Entity to get the full path for.

Responses

Response samples

Content type
application/json
{
  • "path": [
    ]
}

post-/repo/v1/entity/{id}/acl

Authorizations:
path Parameters
id
required
string

The ID of the Entity to create an ACL for.

Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

get-/repo/v1/entity/{id}/acl

Authorizations:
path Parameters
id
required
string

The ID of the Entity to get the ACL for.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

put-/repo/v1/entity/{id}/acl

Authorizations:
path Parameters
id
required
string

The ID of the Entity to create an ACL for.

Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

delete-/repo/v1/entity/{id}/acl

Authorizations:
path Parameters
id
required
string

The ID of the Entity that should have its ACL deleted.

Responses

get-/repo/v1/entity/{id}/benefactor

Authorizations:
path Parameters
id
required
string

The ID of the entity to get the benefactor for.

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": "string",
  • "type": "string",
  • "versionNumber": 0,
  • "versionLabel": "string",
  • "isLatestVersion": true,
  • "benefactorId": 0,
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

get-/repo/v1/entity/{id}/version

Authorizations:
path Parameters
id
required
string

The ID of the Entity to get all versions for.

query Parameters
offset
integer

The offset index determines where this page will start from. When null it will default to 0.

limit
integer

Limits the number of entities that will be fetched for this page. When null it will default to 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/REST/resources

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/REST/resources/effectiveSchema

query Parameters
resourceId
required
string

The full name of the resource (see ,,GET /REST/resources,, for the full list of names).

Responses

Response samples

Content type
application/json
{ }

get-/repo/v1/REST/resources/schema

query Parameters
resourceId
required
string

The full name of the resource (see ,,GET /REST/resources,, for the full list of names).

Responses

Response samples

Content type
application/json
{ }

get-/repo/v1/entity/{id}/generatedBy

Authorizations:
path Parameters
id
required
string

The ID of the activity to fetch.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

put-/repo/v1/entity/{id}/generatedBy

Authorizations:
path Parameters
id
required
string

The ID of the entity to update.

query Parameters
generatedBy
required
string

The id of the activity to connect to the entity. You must be the creator of the ,,Activity,, used here.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

delete-/repo/v1/entity/{id}/generatedBy

Authorizations:
path Parameters
id
required
string
  • The ID of the activity to fetch.

Responses

get-/repo/v1/entity/{id}/version/{versionNumber}/generatedBy

Authorizations:
path Parameters
id
required
string

The ID of the entity to fetch.

versionNumber
required
number

the version of the entity

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "used": [
    ]
}

get-/repo/v1/entity/{id}/filepreview

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/entity/{id}/version/{versionNumber}/filepreview

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

versionNumber
required
number

The version number of the FileEntity to get.

query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/entity/{id}/filehandles

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/entity/{id}/version/{versionNumber}/filehandles

Authorizations:
path Parameters
id
required
string

The ID of the FileEntity to get.

versionNumber
required
number

The version number of the FileEntity to get

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/entity/md5/{md5}

Authorizations:
path Parameters
md5
required
string

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/entity/alias/{alias}

path Parameters
alias
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string"
}

get-/repo/v1/entity/dockerRepo/id

Authorizations:
query Parameters
repositoryName
required
string

The name of a managed docker repository

Responses

Response samples

Content type
application/json
{
  • "id": "string"
}

post-/repo/v1/entity/children

Authorizations:
Request Body schema: application/json
parentId
string
nextPageToken
string
includeTypes
Array of strings

The types of children to be include. Must include at least one type.

sortBy
string
sortDirection
string
includeTotalChildCount
boolean
includeSumFileSizes
boolean

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "nextPageToken": "string",
  • "includeTypes": [
    ],
  • "sortBy": "string",
  • "sortDirection": "string",
  • "includeTotalChildCount": true,
  • "includeSumFileSizes": true
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string",
  • "totalChildCount": 0,
  • "sumFileSizesBytes": 0
}

post-/repo/v1/entity/child

Authorizations:
Request Body schema: application/json
parentId
string
entityName
string

Responses

Request samples

Content type
application/json
{
  • "parentId": "string",
  • "entityName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string"
}

put-/repo/v1/entity/{id}/datatype

Authorizations:
path Parameters
id
required
string
query Parameters
type
required
string (org.sagebionetworks.repo.model.DataType)
Enum: "SENSITIVE_DATA" "OPEN_DATA"

Responses

Response samples

Content type
application/json
{
  • "objectId": "string",
  • "objectType": "string",
  • "dataType": "string",
  • "updatedBy": "string",
  • "updatedOn": "string"
}

get-/repo/v1/entity/{id}/sts

Authorizations:
path Parameters
id
required
string

The ID of the entity to get credentials. This must be a folder with an STS-enabled storage location.

query Parameters
permission
required
string (org.sagebionetworks.repo.model.sts.StsPermission)
Enum: "read_only" "read_write"

Read-only or read-write permissions. See ,,StsPermission,,.

Responses

Response samples

Content type
application/json
{
  • "bucket": "string",
  • "baseKey": "string",
  • "accessKeyId": "string",
  • "secretAccessKey": "string",
  • "sessionToken": "string",
  • "expiration": "string"
}

put-/repo/v1/entity/{id}/schema/binding

Authorizations:
path Parameters
id
required
string

The syn ID of the entity to bind.

Request Body schema: application/json
entityId
string
schema$id
string
enableDerivedAnnotations
boolean

Responses

Request samples

Content type
application/json
{
  • "entityId": "string",
  • "schema$id": "string",
  • "enableDerivedAnnotations": true
}

Response samples

Content type
application/json
{
  • "jsonSchemaVersionInfo": {
    },
  • "objectId": 0,
  • "objectType": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "enableDerivedAnnotations": true
}

get-/repo/v1/entity/{id}/schema/binding

Authorizations:
path Parameters
id
required
string

The ID of the entity.

Responses

Response samples

Content type
application/json
{
  • "jsonSchemaVersionInfo": {
    },
  • "objectId": 0,
  • "objectType": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "enableDerivedAnnotations": true
}

delete-/repo/v1/entity/{id}/schema/binding

Authorizations:
path Parameters
id
required
string

Responses

get-/repo/v1/entity/{id}/json

Authorizations:
path Parameters
id
required
string
query Parameters
includeDerivedAnnotations
required
boolean

true if annotations that are derived from a bound schema should be included in the response, false otherwise (default false)

Responses

Response samples

Content type
application/json
{ }

put-/repo/v1/entity/{id}/json

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

get-/repo/v1/entity/{id}/version/{versionNumber}/json

Authorizations:
path Parameters
id
required
string
versionNumber
required
number

Responses

Response samples

Content type
application/json
{ }

get-/repo/v1/entity/{id}/schema/validation

Authorizations:
path Parameters
id
required
string

The ID of the Entity.

Responses

Response samples

Content type
application/json
{
  • "objectId": "string",
  • "objectType": "string",
  • "objectEtag": "string",
  • "schema$id": "string",
  • "isValid": true,
  • "validatedOn": "string",
  • "validationErrorMessage": "string",
  • "allValidationMessages": [
    ],
  • "validationException": {
    }
}

get-/repo/v1/entity/{id}/schema/validation/statistics

Authorizations:
path Parameters
id
required
string

The ID of the container Entity.

Responses

Response samples

Content type
application/json
{
  • "containerId": "string",
  • "totalNumberOfChildren": 0,
  • "numberOfValidChildren": 0,
  • "numberOfInvalidChildren": 0,
  • "numberOfUnknownChildren": 0,
  • "generatedOn": "string"
}

post-/repo/v1/entity/{id}/schema/validation/invalid

Authorizations:
path Parameters
id
required
string

The ID of the container Entity.

Request Body schema: application/json
containerId
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "containerId": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

get-/repo/v1/entity/{id}/derivedKeys

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "keys": [
    ]
}

User Profile Services

Every Synapse user has an associated ,,UserProfile,,.

get-/repo/v1/userProfile

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "etag": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "emails": [
    ],
  • "openIds": [
    ],
  • "userName": "string",
  • "displayName": "string",
  • "rStudioUrl": "string",
  • "summary": "string",
  • "position": "string",
  • "location": "string",
  • "industry": "string",
  • "company": "string",
  • "profilePicureFileHandleId": "string",
  • "url": "string",
  • "teamName": "string",
  • "notificationSettings": {
    },
  • "preferences": [
    ],
  • "createdOn": "string",
  • "twoFactorAuthEnabled": true
}

put-/repo/v1/userProfile

Authorizations:
Request Body schema: application/json
ownerId
string
etag
string
firstName
string
lastName
string
email
string
emails
Array of strings

The list of user email addresses registered to this user.

openIds
Array of strings

The list of OpenIds bound to this user's account.

userName
string
displayName
string
rStudioUrl
string
summary
string
position
string
location
string
industry
string
company
string
profilePicureFileHandleId
string
url
string
teamName
string
object (org.sagebionetworks.repo.model.message.Settings)

Contains a user's notification settings

Array of org.sagebionetworks.repo.model.UserPreferenceBoolean (object) (org.sagebionetworks.repo.model.UserPreference)
createdOn
string
twoFactorAuthEnabled
boolean

Responses

Request samples

Content type
application/json
{
  • "ownerId": "string",
  • "etag": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "emails": [
    ],
  • "openIds": [
    ],
  • "userName": "string",
  • "displayName": "string",
  • "rStudioUrl": "string",
  • "summary": "string",
  • "position": "string",
  • "location": "string",
  • "industry": "string",
  • "company": "string",
  • "profilePicureFileHandleId": "string",
  • "url": "string",
  • "teamName": "string",
  • "notificationSettings": {
    },
  • "preferences": [
    ],
  • "createdOn": "string",
  • "twoFactorAuthEnabled": true
}

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "etag": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "emails": [
    ],
  • "openIds": [
    ],
  • "userName": "string",
  • "displayName": "string",
  • "rStudioUrl": "string",
  • "summary": "string",
  • "position": "string",
  • "location": "string",
  • "industry": "string",
  • "company": "string",
  • "profilePicureFileHandleId": "string",
  • "url": "string",
  • "teamName": "string",
  • "notificationSettings": {
    },
  • "preferences": [
    ],
  • "createdOn": "string",
  • "twoFactorAuthEnabled": true
}

post-/repo/v1/userProfile

Authorizations:
Request Body schema: application/json
list
Array of integers <int32>

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/user/bundle

Authorizations:
query Parameters
mask
required
integer

integer flag defining which components to include in the bundle

,

, This integer is used as a bit-string of flags to specify which parts to include in the UserBundle. The mask is defined as follows: ,

    , ,
  • , UserProfile = 0x1 ,
  • , ,
  • , ORCID = 0x2 ,
  • , ,
  • , VerificationSubmission = 0x4 ,
  • , ,
  • , IsCertified = 0x8 ,
  • , ,
  • , Is Verified = 0x10 ,
  • , ,
  • , Is ACT Member = 0x20 ,
  • , ,
  • , Is AR Reviewer = 0x40 ,
  • , ,
, ,

Responses

Response samples

Content type
application/json
{
  • "userId": "string",
  • "userProfile": {
    },
  • "ORCID": "string",
  • "verificationSubmission": {
    },
  • "isCertified": true,
  • "isVerified": true,
  • "isACTMember": true,
  • "isARReviewer": true
}

get-/repo/v1/userProfile/{profileId}

Authorizations:
path Parameters
profileId
required
string

The target profile owner ID (the "id" field returned in the "/user" request).

Responses

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "etag": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "email": "string",
  • "emails": [
    ],
  • "openIds": [
    ],
  • "userName": "string",
  • "displayName": "string",
  • "rStudioUrl": "string",
  • "summary": "string",
  • "position": "string",
  • "location": "string",
  • "industry": "string",
  • "company": "string",
  • "profilePicureFileHandleId": "string",
  • "url": "string",
  • "teamName": "string",
  • "notificationSettings": {
    },
  • "preferences": [
    ],
  • "createdOn": "string",
  • "twoFactorAuthEnabled": true
}

get-/repo/v1/user/{id}/bundle

Authorizations:
path Parameters
id
required
string
query Parameters
mask
required
integer

integer flag defining which components to include in the bundle

,

, This integer is used as a bit-string of flags to specify which parts to include in the UserBundle. The mask is defined as follows: ,

    , ,
  • , UserProfile = 0x1 ,
  • , ,
  • , ORCID = 0x2 ,
  • , ,
  • , VerificationSubmission = 0x4 ,
  • , ,
  • , IsCertified = 0x8 ,
  • , ,
  • , Is Verified = 0x10 ,
  • , ,
  • , Is ACT Member = 0x20 ,
  • , ,
  • , Is AR Reviewer = 0x40 ,
  • , ,
, ,

Responses

Response samples

Content type
application/json
{
  • "userId": "string",
  • "userProfile": {
    },
  • "ORCID": "string",
  • "verificationSubmission": {
    },
  • "isCertified": true,
  • "isVerified": true,
  • "isACTMember": true,
  • "isARReviewer": true
}

get-/repo/v1/user

Authorizations:
query Parameters
offset
integer

The offset index determines where this page will start from. An index of 0 is the first item. ,

,,Default is 0,,

limit
integer

Limits the number of items that will be fetched for this page. ,

,,Default is 100,,

sort
string

Used to indicate upon which field(s) to sort. ,

,,Default is NONE,,

ascending
boolean

Used to indicate whether the sort direction is ascending or not. ,

,,Default is true,,

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

put-/repo/v1/notificationSettings

Request Body schema: application/json
concreteType
string
hmac
string
version
integer <int32>
expiresOn
string
createdOn
string
userId
string
object (org.sagebionetworks.repo.model.message.Settings)

Contains a user's notification settings

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "userId": "string",
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get-/repo/v1/userGroupHeaders/batch

Authorizations:
query Parameters
ids
required
string

IDs are specified as request parameters at the end of the URL, separated by commas. ,

,For example: ,

,ids=1001,819,
,

Responses

Response samples

Content type
application/json
{
  • "children": [
    ],
  • "prefixFilter": "string",
  • "totalNumberOfResults": 0
}

get-/repo/v1/userGroupHeaders

query Parameters
prefix
string
typeFilter
string (org.sagebionetworks.repo.model.principal.TypeFilter)
Enum: "USERS_ONLY" "TEAMS_ONLY" "ALL"

Restrict the results to a type of principal. Available options: ,,TypeFilter,,.

offset
integer

The offset index determines where this page will start from. An index of 0 is the first item. ,

, ,,Default is 0,, ,

limit
integer

Limits the number of items that will be fetched for this page. ,

, ,,Default is 10,, ,

Responses

Response samples

Content type
application/json
{
  • "children": [
    ],
  • "prefixFilter": "string",
  • "totalNumberOfResults": 0
}

post-/repo/v1/userGroupHeaders/aliases

Request Body schema: application/json
list
Array of strings

Responses

Request samples

Content type
application/json
{
  • "list": [
    ]
}

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/userProfile/{profileId}/image

Authorizations:
path Parameters
profileId
required
string
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

get-/repo/v1/userProfile/{profileId}/image/preview

Authorizations:
path Parameters
profileId
required
string
query Parameters
redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

Responses

post-/repo/v1/favorite/{id}

Authorizations:
path Parameters
id
required
string

Entity ID of the favorite ,,Entity,

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "id": "string",
  • "type": "string",
  • "versionNumber": 0,
  • "versionLabel": "string",
  • "isLatestVersion": true,
  • "benefactorId": 0,
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string"
}

delete-/repo/v1/favorite/{id}

Authorizations:
path Parameters
id
required
string

Entity ID of the ,,Entity,, that should be removed as a favorite

Responses

get-/repo/v1/favorite

Authorizations:
query Parameters
offset
integer

The offset index determines where this page will start from. An index of 0 is the first item. ,

,,Default is 0,,

limit
integer

Limits the number of items that will be fetched for this page. ,

,,Default is 10,,

sort
string (org.sagebionetworks.repo.model.favorite.SortBy)
Enum: "FAVORITED_ON" "NAME"

Determines which field to use to sort the retrieved favorites. See ,,SortBy,,. ,

,,Default is "FAVORITED_ON",,

,.

sortDirection
string (org.sagebionetworks.repo.model.favorite.SortDirection)
Enum: "ASC" "DESC"

The direction for sorting the retrieved favorites. See ,,SortDirection,,. ,

,,Default is "DESC",,

,.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/projects

Authorizations:
query Parameters
teamId
number

If the projectFilter is 'TEAM' then this is the ID of the team through which the returned projects are shared with the user.

filter
string (org.sagebionetworks.repo.model.ProjectListType)
Enum: "ALL" "CREATED" "PARTICIPATED" "TEAM"

see above

sort
string (org.sagebionetworks.repo.model.ProjectListSortColumn)
Enum: "LAST_ACTIVITY" "PROJECT_NAME"
sortDirection
string (org.sagebionetworks.repo.model.entity.query.SortDirection)
Enum: "ASC" "DESC"

The optional ,,sort direction,,. ,,Default sort descending,

nextPageToken
string

a token returned with the previous page of results

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

get-/repo/v1/projects/user/{principalId}

Authorizations:
path Parameters
principalId
required
number

The ID of the user to list projects for

query Parameters
teamId
number

If the projectFilter is 'TEAM' then this is the ID of the team through which the returned projects are shared with 'principalId'.

filter
string (org.sagebionetworks.repo.model.ProjectListType)
Enum: "ALL" "CREATED" "PARTICIPATED" "TEAM"

see above

sort
string (org.sagebionetworks.repo.model.ProjectListSortColumn)
Enum: "LAST_ACTIVITY" "PROJECT_NAME"
sortDirection
string (org.sagebionetworks.repo.model.entity.query.SortDirection)
Enum: "ASC" "DESC"

The optional ,,sort direction,,. ,,Default sort descending,

nextPageToken
string

a token returned with the previous page of results

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

Access Approval Services

The Access Approval services manage the fulfillment of Access Requirements, on a per-user basis.
(See ,, Access Requirement Services,, for more information.) Most of the Access Approval services are available only to members of the Synapse Access and Compliance Team (ACT).

post-/repo/v1/accessApproval

Authorizations:
Request Body schema: application/json
id
integer <int32>
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
requirementId
integer <int32>
requirementVersion
integer <int32>
submitterId
string
accessorId
string
expiredOn
string
state
string

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "requirementId": 0,
  • "requirementVersion": 0,
  • "submitterId": "string",
  • "accessorId": "string",
  • "expiredOn": "string",
  • "state": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "requirementId": 0,
  • "requirementVersion": 0,
  • "submitterId": "string",
  • "accessorId": "string",
  • "expiredOn": "string",
  • "state": "string"
}

delete-/repo/v1/accessApproval

Authorizations:
query Parameters
requirementId
required
string
accessorId
required
string
  • The user whose access is being revoked

Responses

get-/repo/v1/accessApproval/{approvalId}

Authorizations:
path Parameters
approvalId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "requirementId": 0,
  • "requirementVersion": 0,
  • "submitterId": "string",
  • "accessorId": "string",
  • "expiredOn": "string",
  • "state": "string"
}

post-/repo/v1/accessApproval/group

Authorizations:
Request Body schema: application/json
accessRequirementId
string
submitterId
string
accessorId
string
expireBefore
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "accessRequirementId": "string",
  • "submitterId": "string",
  • "accessorId": "string",
  • "expireBefore": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/accessApproval/notifications

Authorizations:
Request Body schema: application/json
requirementId
integer <int32>
recipientIds
Array of integers <int32>

The list of recipient ids, max of 25 recipients allowed.

Responses

Request samples

Content type
application/json
{
  • "requirementId": 0,
  • "recipientIds": [
    ]
}

Response samples

Content type
application/json
{
  • "requirementId": 0,
  • "results": [
    ]
}

put-/repo/v1/accessApproval/group/revoke

Authorizations:
Request Body schema: application/json
accessRequirementId
string
submitterId
string

Responses

Request samples

Content type
application/json
{
  • "accessRequirementId": "string",
  • "submitterId": "string"
}

post-/repo/v1/accessApproval/information

Authorizations:
Request Body schema: application/json
userId
string
accessRequirementIds
Array of strings

The ID of the access requirements.

Responses

Request samples

Content type
application/json
{
  • "userId": "string",
  • "accessRequirementIds": [
    ]
}

Response samples

Content type
application/json
{
  • "results": [
    ]
}

post-/repo/v1/accessApproval/search

Authorizations:
Request Body schema: application/json
accessorId
string
accessRequirementId
string
Array of objects (org.sagebionetworks.repo.model.dataaccess.AccessApprovalSearchSort)
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "accessorId": "string",
  • "accessRequirementId": "string",
  • "sort": [
    ],
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/log

Authorizations:
header Parameters
User-Agent
required
string
Request Body schema: application/json
label
string
message
string
stacktrace
string

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "message": "string",
  • "stacktrace": "string"
}

Membership Request Services

The Membership Request Services create, retrieve and delete membership requests. A membership request is created by a Synapse user to request admission to a Team. Without the request it is not possible for a Team to admit the user. For more on Teams, see ,,Team Services,,.

post-/repo/v1/membershipRequest

Authorizations:
query Parameters
acceptRequestEndpoint
required
string

The portal end-point for one-click acceptance of the membership request. A signed, serialized token is appended to create the complete: ,,JoinTeamSignedToken,, In normal operation, this parameter should be omitted.

notificationUnsubscribeEndpoint
required
string

The portal prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete: ,,NotificationSettingsSignedToken,,. In normal operation, this parameter should be omitted.

Request Body schema: application/json
id
string
teamId
string
userId
string
message
string
expiresOn
string
createdOn
string
createdBy
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "userId": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "userId": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

get-/repo/v1/team/{id}/openRequest

Authorizations:
path Parameters
id
required
string

Team ID

query Parameters
requestorId
string

the ID of the user requesting admission to the Team

limit
integer

the maximum number of requests to return (default 10)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/user/{id}/openRequest

Authorizations:
path Parameters
id
required
string

User ID

query Parameters
teamId
string
limit
integer

the maximum number of requests to return (default 10)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/membershipRequest/{id}

Authorizations:
path Parameters
id
required
string

the Team ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "userId": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

delete-/repo/v1/membershipRequest/{id}

Authorizations:
path Parameters
id
required
string

Responses

get-/repo/v1/membershipRequest/openRequestCount

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

Recycle Bin Services

The recycle bin (or trash can) is the special folder that holds the deleted entities for users. ,

, Services are provided for users to delete entities into the trash can, to view entities in the trash can, to purge entities from the trash can, and to restore entities out of the trash can.

put-/repo/v1/trashcan/trash/{id}

Authorizations:
path Parameters
id
required
string

The ID of the entity being moved to the trash can.

Responses

put-/repo/v1/trashcan/restore/{id}

Authorizations:
path Parameters
id
required
string

The ID of the entity being restored out of the trash can.

Responses

put-/repo/v1/trashcan/restore/{id}/{parentId}

Authorizations:
path Parameters
id
required
string

The ID of the entity being restored out of the trash can.

parentId
required
string

The ID of the new parent entity.

Responses

get-/repo/v1/trashcan/view

Authorizations:
query Parameters
offset
number

Paginated results. Offset to the current page.

limit
number

The maximum number of entities to retrieve per page.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

put-/repo/v1/trashcan/purge/{id}

Authorizations:
path Parameters
id
required
string

The ID of the entity to be purged.

Responses

Access Requirement Services

These services manage the Access Requirements/Restrictions (ARs) which may be placed on Entities, or Teams. An Access Requirement specifies the type of access being restricted as well as how the requirement is fulfilled. ,

, ARs complement Access Control Lists (ACLs) for managing access to Synapse objects. While ACLs are managed by entity owners, ARs are managed by the Synapse Access and Compliance Team (ACT), which is responsible for governance of sensitive data. Before one may access data associated with an AR, there must be a corresponding Access Approval. For certain ARs -- of the "self-sign" variety -- one may grant ones own approval by agreeing to associated 'terms of use.' For other Access Requirements -- of the 'ACT' variety -- approval may be granted only by the ACT. ,

, ,

, As stated above, an AR specifies the type of access being controlled. Generally entities are restricted with DOWNLOAD access. A Synapse user may be able to see that a Synapse File exists, but be unable to download the content due to such an AR. Teams are restricted using the PARTICIPATE access type: Prior to joining a Team a user must fulfill any associated ARs controlling this type of access. ,

, ,

, Entity ARs are inherited from ancestors. E.g. an AR applied to a Folder will control all Files in the Folder, or within sub-folders of the Folder. Access Requirements are cumulative: A File will be controlled both by ARs applied to it directly and by ARs applied to any and all of its ancestors. ,

, ,

, Access Requirements are fulfilled on a per-user basis using the ,, Access Approval Services,,. ,

post-/repo/v1/accessRequirement

Authorizations:
Request Body schema: application/json
One of
versionNumber
integer <int32>
id
integer <int32>
description
string
name
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
subjectsDefinedByAnnotations
boolean
Array of objects

The IDs of the items controlled by this Access Requirement when 'subjectsDefinedByAnnotations=false'. This property is mutually exclusive with 'subjectsDefinedByAnnotations'. When 'subjectsDefinedByAnnotations=true' then this property must be empty or excluded. Required when creating or updating and 'subjectsDefinedByAnnotations=false' or 'subjectsDefinedByAnnotations' is excluded.

accessType
string
concreteType
string
url
string

Responses

Request samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

Response samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

get-/repo/v1/accessRequirement/{requirementId}

path Parameters
requirementId
required
string

Responses

Response samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

put-/repo/v1/accessRequirement/{requirementId}

Authorizations:
path Parameters
requirementId
required
string

the ID of the Access Requirement to be modified.

Request Body schema: application/json
One of
versionNumber
integer <int32>
id
integer <int32>
description
string
name
string
etag
string
createdOn
string
modifiedOn
string
createdBy
string
modifiedBy
string
subjectsDefinedByAnnotations
boolean
Array of objects

The IDs of the items controlled by this Access Requirement when 'subjectsDefinedByAnnotations=false'. This property is mutually exclusive with 'subjectsDefinedByAnnotations'. When 'subjectsDefinedByAnnotations=true' then this property must be empty or excluded. Required when creating or updating and 'subjectsDefinedByAnnotations=false' or 'subjectsDefinedByAnnotations' is excluded.

accessType
string
concreteType
string
url
string

Responses

Request samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

Response samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

delete-/repo/v1/accessRequirement/{requirementId}

Authorizations:
path Parameters
requirementId
required
string

the ID of the requirement to delete

Responses

post-/repo/v1/entity/{id}/lockAccessRequirement

Authorizations:
path Parameters
id
required
string

the ID of the entity to which an Access Requirement will be applied

Responses

Response samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

get-/repo/v1/entity/{id}/accessRequirement

Authorizations:
path Parameters
id
required
string
query Parameters
limit
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum limit for this call is 50.
offset
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/team/{id}/accessRequirement

Authorizations:
path Parameters
id
required
string

the ID of the Team whose Access Requirements are retrieved.

query Parameters
limit
number
  • Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum limit for this call is 50.
offset
number
  • The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

put-/repo/v1/accessRequirement/conversion

Authorizations:
Request Body schema: application/json
accessRequirementId
string
etag
string
currentVersion
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "accessRequirementId": "string",
  • "etag": "string",
  • "currentVersion": 0
}

Response samples

Content type
application/json
Example
{
  • "versionNumber": 0,
  • "id": 0,
  • "description": "string",
  • "name": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "createdBy": "string",
  • "modifiedBy": "string",
  • "subjectsDefinedByAnnotations": true,
  • "subjectIds": [
    ],
  • "accessType": "string",
  • "concreteType": "string",
  • "url": "string"
}

get-/repo/v1/accessRequirement/{requirementId}/subjects

path Parameters
requirementId
required
string
query Parameters
nextPageToken
string

Responses

Response samples

Content type
application/json
{
  • "subjects": [
    ],
  • "nextPageToken": "string"
}

get-/repo/v1/accessRequirement/{requirementId}/acl

Authorizations:
path Parameters
requirementId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

post-/repo/v1/accessRequirement/{requirementId}/acl

Authorizations:
path Parameters
requirementId
required
string
Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

put-/repo/v1/accessRequirement/{requirementId}/acl

Authorizations:
path Parameters
requirementId
required
string
Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

delete-/repo/v1/accessRequirement/{requirementId}/acl

Authorizations:
path Parameters
requirementId
required
string

Responses

post-/repo/v1/accessRequirement/search

Request Body schema: application/json
nameContains
string
ids
Array of integers <int32>

Optional list of ids used to filter access requirements with specific ids.

relatedProjectId
string
reviewerId
string
accessType
string
type
string
Array of objects (org.sagebionetworks.repo.model.dataaccess.AccessRequirementSearchSort)
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "nameContains": "string",
  • "ids": [
    ],
  • "relatedProjectId": "string",
  • "reviewerId": "string",
  • "accessType": "string",
  • "type": "string",
  • "sort": [
    ],
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "nextPageToken": "string"
}

Asynchronous Job Services

This is a generic set of services that provides support for both launching asynchronous jobs and monitoring the progress of jobs.

post-/repo/v1/asynchronous/job

Authorizations:
Request Body schema: application/json
One of
concreteType
string
object (org.sagebionetworks.repo.model.table.CsvTableDescriptor)

The description of a csv for upload or download.

Responses

Request samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "csvTableDescriptor": {
    }
}

Response samples

Content type
application/json
{
  • "jobState": "string",
  • "jobCanceling": true,
  • "requestBody": {
    },
  • "responseBody": {
    },
  • "etag": "string",
  • "jobId": "string",
  • "startedByUserId": 0,
  • "startedOn": "string",
  • "changedOn": "string",
  • "progressMessage": "string",
  • "progressCurrent": 0,
  • "progressTotal": 0,
  • "exception": "string",
  • "errorMessage": "string",
  • "errorDetails": "string",
  • "runtimeMS": 0,
  • "callersContext": {
    }
}

get-/repo/v1/asynchronous/job/{jobId}

Authorizations:
path Parameters
jobId
required
string

The jobId issued to a job that has been launched with ,,POST /asynchronous/job,

Responses

Response samples

Content type
application/json
{
  • "jobState": "string",
  • "jobCanceling": true,
  • "requestBody": {
    },
  • "responseBody": {
    },
  • "etag": "string",
  • "jobId": "string",
  • "startedByUserId": 0,
  • "startedOn": "string",
  • "changedOn": "string",
  • "progressMessage": "string",
  • "progressCurrent": 0,
  • "progressTotal": 0,
  • "exception": "string",
  • "errorMessage": "string",
  • "errorDetails": "string",
  • "runtimeMS": 0,
  • "callersContext": {
    }
}

DOI Services

Provides REST APIs for managing Synapse DOIs.

get-/repo/v1/doi

query Parameters
id
required
string
type
required
string (org.sagebionetworks.repo.model.ObjectType)
Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" "JSON_SCHEMA" "JSON_SCHEMA_DEPENDANT" "DATASET" "DATASET_COLLECTION" "THREAD_VIEW" "MATERIALIZED_VIEW" "VIRTUAL_TABLE" "TABLE_STATUS_EVENT" "DATA_ACCESS_SUBMISSION_EVENT" "FILE_EVENT" "QUERY_CACHE_HIT"
version
number

Responses

Response samples

Content type
application/json
{
  • "creators": [
    ],
  • "titles": [
    ],
  • "publicationYear": 0,
  • "resourceType": {
    },
  • "associationId": "string",
  • "etag": "string",
  • "doiUri": "string",
  • "doiUrl": "string",
  • "objectId": "string",
  • "objectType": "string",
  • "objectVersion": 0,
  • "associatedBy": "string",
  • "associatedOn": "string",
  • "updatedBy": "string",
  • "updatedOn": "string"
}

get-/repo/v1/doi/association

query Parameters
id
required
string
type
required
string (org.sagebionetworks.repo.model.ObjectType)
Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" "JSON_SCHEMA" "JSON_SCHEMA_DEPENDANT" "DATASET" "DATASET_COLLECTION" "THREAD_VIEW" "MATERIALIZED_VIEW" "VIRTUAL_TABLE" "TABLE_STATUS_EVENT" "DATA_ACCESS_SUBMISSION_EVENT" "FILE_EVENT" "QUERY_CACHE_HIT"
version
number

Responses

Response samples

Content type
application/json
{
  • "associationId": "string",
  • "etag": "string",
  • "doiUri": "string",
  • "doiUrl": "string",
  • "objectId": "string",
  • "objectType": "string",
  • "objectVersion": 0,
  • "associatedBy": "string",
  • "associatedOn": "string",
  • "updatedBy": "string",
  • "updatedOn": "string"
}

post-/repo/v1/doi/async/start

Authorizations:
Request Body schema: application/json
concreteType
string
object (org.sagebionetworks.repo.model.doi.v2.Doi)

JSON schema for fields associated with a DOI and its metadata. This object contains fields from both DoiAssociation and DataciteMetadata.
To mint a DOI, the following fields are required:

  • Information that uniquely identifies an object in Synapse
    • The object ID (e.g. "syn12345")
    • The object type (Note: as of this writing, only ENTITY is supported)
    • The version number of the object (Optional. A "null" version will mint a DOI that will point to the most recent version of the object, even if the object changes)
    • An eTag (Necessary when updating an existing DOI)
  • Additional supplementary information to mint a DOI
    • Creator(s)
    • Title(s)
    • The general resource type
    • A publication year (no later than one year after the current year)

For more information, see the DoiAssociation and DataciteMetadata objects.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "doi": {
    }
}

Response samples

Content type
application/json
{
  • "token": "string"
}

get-/repo/v1/doi/async/get/{asyncToken}

Authorizations:
path Parameters
asyncToken
required
string

The async job token from the create/update call

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "doi": {
    }
}

get-/repo/v1/doi/locate

query Parameters
id
required
string
type
required
string (org.sagebionetworks.repo.model.ObjectType)
Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" "JSON_SCHEMA" "JSON_SCHEMA_DEPENDANT" "DATASET" "DATASET_COLLECTION" "THREAD_VIEW" "MATERIALIZED_VIEW" "VIRTUAL_TABLE" "TABLE_STATUS_EVENT" "DATA_ACCESS_SUBMISSION_EVENT" "FILE_EVENT" "QUERY_CACHE_HIT"
version
number
redirect
boolean

Whether to return the URL or redirect to the URL

Responses

Docker Authorization Services

These services allow Synapse to act as an authorization service for a Docker Registry. For more details see: https://github.com/docker/distribution/blob/master/docs/spec/auth/token.md

Authorization is either: ,

    , ,
  • ,User name and password, included in the request as a Basic Authorization header,
  • , ,
  • ,An oauth access token, passed as a Bearer Authorization header. To execute 'docker pull' the access token must include 'download' scope; to execute 'docker push' the access token must include 'modify' scope and should include 'download' scope.,
  • , ,

get-/docker/v1/bearerToken

Authorizations:
query Parameters
service
required
string
scope
Array of strings (ListOfString)
header Parameters
Synapse-Authorization
string

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

Membership Invitation Services

The Membership Invitation Services create, retrieve and delete membership invitations. A membership invitation is created by a Team administrator to invite a Synapse user to join the Team. Without the invitation it is not possible for an outside user to join. For more on Teams, see ,,Team Services,,.

post-/repo/v1/membershipInvitation

Authorizations:
query Parameters
acceptInvitationEndpoint
string

The portal endpoint prefix for one-click acceptance of the membership invitation. A signed, serialized token is appended to create the complete URL: ,,JoinTeamSignedToken,, if an inviteeId is specified, or ,,MembershipInvtnSignedToken,, if an inviteeEmail is specified. In normal operation, this parameter should be omitted.

notificationUnsubscribeEndpoint
required
string

The portal endpoint prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL: ,,NotificationSettingsSignedToken,,. In normal operation, this parameter should be omitted.

Request Body schema: application/json
id
string
teamId
string
inviteeId
string
inviteeEmail
string
message
string
expiresOn
string
createdOn
string
createdBy
string

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "inviteeId": "string",
  • "inviteeEmail": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "inviteeId": "string",
  • "inviteeEmail": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

get-/repo/v1/user/{id}/openInvitation

path Parameters
id
required
string

the ID of the Synapse user to which invitations have been extended.

query Parameters
teamId
string

the ID of the Team extending the invitations (optional)

limit
integer

the maximum number of invitations to return (default 10)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/team/{id}/openInvitation

Authorizations:
path Parameters
id
required
string

the ID of the Team extending the invitations

query Parameters
inviteeId
string

the ID of the Synapse user to which invitations have been extended (optional)

limit
integer

the maximum number of invitations to return (default 10)

offset
integer

the starting index of the returned results (default 0)

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/membershipInvitation/{id}

Authorizations:
path Parameters
id
required
string

the ID of the invitation

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "inviteeId": "string",
  • "inviteeEmail": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

post-/repo/v1/membershipInvitation/{id}

path Parameters
id
required
string
Request Body schema: application/json
concreteType
string
hmac
string
version
integer <int32>
expiresOn
string
createdOn
string
membershipInvitationId
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "membershipInvitationId": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "teamId": "string",
  • "inviteeId": "string",
  • "inviteeEmail": "string",
  • "message": "string",
  • "expiresOn": "string",
  • "createdOn": "string",
  • "createdBy": "string"
}

delete-/repo/v1/membershipInvitation/{id}

Authorizations:
path Parameters
id
required
string

the ID of the invitation to be deleted

Responses

get-/repo/v1/membershipInvitation/openInvitationCount

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "count": 0
}

get-/repo/v1/membershipInvitation/{id}/inviteeVerificationSignedToken

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "inviteeId": "string",
  • "membershipInvitationId": "string"
}

put-/repo/v1/membershipInvitation/{id}/inviteeId

Authorizations:
path Parameters
id
required
string
Request Body schema: application/json
concreteType
string
hmac
string
version
integer <int32>
expiresOn
string
createdOn
string
inviteeId
string
membershipInvitationId
string

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "hmac": "string",
  • "version": 0,
  • "expiresOn": "string",
  • "createdOn": "string",
  • "inviteeId": "string",
  • "membershipInvitationId": "string"
}

WikiPage Services 2

, The Synapse ,,V2WikiPage,, model object contains the data needed to render an end-user crafted web page. The Synapse Web Client will dynamically render a WikiPage into a combination of HTML, CSS and Javascript which is then finally rendered as a web page in the client's web browser. ,

, ,

, These services provide support for creating, reading, updating, and deleting (CRUD) the WikiPage model objects. ,

, ,

, WikiPages are composed of two major parts; a file that contains the markdown text and a list of file attachments. For example, to embed an image from an end-user's machine into a WikiPage, the image file must first be uploaded to Synapse as ,,FileHandle,, (see ,,File Services,,). The FileHandle ID can then be added to a WikiPage.attachmentFileHandleIds list. See ,,www.synapse.org,, for details on the supported markdown syntax. The markdown text is similarly uploaded as a FileHandle and its FileHandle ID is tracked by the WikiPage. ,

,

,

, WikiPages are not stand-alone objects, instead they are a component of another object such as an Entity or Evaluation. For example, when a WikiPage is created for an Entity, the Entity becomes the "owner" of the WikiPage. Access to the WikiPage is always tied to its owner. For example, to GET a WikiPage of an Entity, the caller must have read permission on the Entity. ,

, ,

, To navigate the hierarchy of WikiPages associated with an owner use the ,,GET /entity/{ownerId}/wikiheadertree2,, method. The returned list of ,,V2WikiHeaders,, can be used to construct a full wiki hierarchy tree for that owner. ,

, ,

, To view a timeline of changes made to a WikiPage, use the ,,GET/entity/{ownerId} /wiki2/{wikiId}/wikihistory,, method. The returned list of ,,V2WikiHistorySnapshots ,, contain information about who modified the WikiPage and when the changes were made. ,

, ,

, Note: WikiPages can be nested to created a hierarchy of sub-pages. However, there can only be one root WikiPage per owner object, and all sub-pages are considered to be owned by the same object as the root page. ,

post-/repo/v1/entity/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner Entity.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

post-/repo/v1/access_requirement/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner AccessRequirement.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/access_requirement/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning AccessRequirement.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

post-/repo/v1/evaluation/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owner Evaluation.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

When included returns a specific version of a wiki.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/entity/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

delete-/repo/v1/entity/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to delete.

Responses

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

delete-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

wikiId
required
string

The ID of the WikiPage to delete.

Responses

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage to get.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage to update.

Request Body schema: application/json
id
string
etag
string
createdOn
string
createdBy
string
modifiedOn
string
modifiedBy
string
parentWikiId
string
title
string
markdownFileHandleId
string
attachmentFileHandleIds
Array of strings

The list of attachment file handle ids of this page.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

delete-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluations.

wikiId
required
string

The ID of the WikiPage to delete.

Responses

put-/repo/v1/entity/{ownerId}/wiki2orderhint

Authorizations:
path Parameters
ownerId
required
string
Request Body schema: application/json
ownerId
string
ownerObjectType
string
idList
Array of strings

The list of sub wiki ids that in the order that they should be placed relative to their siblings.

etag
string

Responses

Request samples

Content type
application/json
{
  • "ownerId": "string",
  • "ownerObjectType": "string",
  • "idList": [
    ],
  • "etag": "string"
}

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "ownerObjectType": "string",
  • "idList": [
    ],
  • "etag": "string"
}

get-/repo/v1/entity/{ownerId}/wiki2orderhint

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

Responses

Response samples

Content type
application/json
{
  • "ownerId": "string",
  • "ownerObjectType": "string",
  • "idList": [
    ],
  • "etag": "string"
}

put-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/{wikiVersion}

Authorizations:
path Parameters
wikiVersion
required
number
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to update.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/{wikiVersion}

Authorizations:
path Parameters
wikiVersion
required
number
ownerId
required
string

The ID of the owning Access Requirement.

wikiId
required
string

The ID of the WikiPage to update.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

put-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/{wikiVersion}

Authorizations:
path Parameters
wikiVersion
required
number
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage to update.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": "string",
  • "modifiedOn": "string",
  • "modifiedBy": "string",
  • "parentWikiId": "string",
  • "title": "string",
  • "markdownFileHandleId": "string",
  • "attachmentFileHandleIds": [
    ]
}

get-/repo/v1/entity/{ownerId}/wikiheadertree2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

query Parameters
offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10. Limit must be 50 or less.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/access_requirement/{ownerId}/wikiheadertree2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

query Parameters
offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wikiheadertree2

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

query Parameters
offset
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/wikihistory

Authorizations:
path Parameters
wikiId
required
string

The ID of the WikiPage.

ownerId
required
string

The ID of the owning Entity.

query Parameters
offset
required
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
required
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10. Limit must be 50 or less.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/wikihistory

Authorizations:
path Parameters
wikiId
required
string

The ID of the WikiPage.

ownerId
required
string

The ID of the owning Access Requirement.

query Parameters
offset
required
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
required
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/wikihistory

Authorizations:
path Parameters
wikiId
required
string

The ID of the WikiPage.

ownerId
required
string

The ID of the owning Entity.

query Parameters
offset
required
number

The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.

limit
required
number

Limits the size of the page returned. For example, a page size of 10 require limit = 10.

Responses

Response samples

Content type
application/json
{
  • "totalNumberOfResults": 0,
  • "results": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/attachmenthandles

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity.

wikiId
required
string

The ID of the WikiPage.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/attachmenthandles

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement.

wikiId
required
string

The ID of the WikiPage.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/attachmenthandles

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation.

wikiId
required
string

The ID of the WikiPage.

query Parameters
wikiVersion
number

Responses

Response samples

Content type
application/json
{
  • "list": [
    ]
}

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/attachment

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /entity/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/attachment

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /accessRequirement/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/attachment

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /evaluation/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/attachmentpreview

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Entity

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /entity/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/attachmentpreview

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Access Requirement

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /accessRequirement/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/attachmentpreview

Authorizations:
path Parameters
ownerId
required
string

The ID of the owning Evaluation

wikiId
required
string

The ID of the WikiPage

query Parameters
fileName
required
string

The name of the file to get. The file names can be found in the FileHandles from the ,,GET /evaluation/{ownerId}/wiki/{wikiId}/attachmenthandles,, method.

redirect
boolean

When set to false, the URL will be returned as text/plain instead of redirecting.

wikiVersion
number

Responses

get-/repo/v1/entity/{ownerId}/wiki2/{wikiId}/markdown

Authorizations:
path Parameters
ownerId
required
string
wikiId
required
string
query Parameters
redirect
boolean
wikiVersion
number

Responses

get-/repo/v1/access_requirement/{ownerId}/wiki2/{wikiId}/markdown

Authorizations:
path Parameters
ownerId
required
string
wikiId
required
string
query Parameters
redirect
boolean
wikiVersion
number

Responses

get-/repo/v1/evaluation/{ownerId}/wiki2/{wikiId}/markdown

Authorizations:
path Parameters
ownerId
required
string
wikiId
required
string
query Parameters
redirect
boolean
wikiVersion
number

Responses

Project Settings Services

The project settings services provide configuration options that can be applied to projects. In particular through the ,,POST /projectSettings,, and ,,PUT /projectSettings,, services a user can create or update the setting of a specific ,,type,, for a project. ,

, Currently supported settings for a project are:

,

,

,

, The ,,POST /storageLocation,, service is provided in order to create ,,StorageLocationSetting,,. The id of a ,,StorageLocationSetting,, can then be set in the ,,locations,, property of the ,,UploadDestinationListSetting,,. ,

, When uploading a file the id of the default ,,StorageLocationSetting,, to be used on a folder can be retrieved using the ,,GET /entity/{id}/uploadDestination,, service using the id of the parent entity (e.g. a folder or a project). ,

, By setting a custom storage location, users can store the data in their own S3 or Google Cloud bucket. Note that when a folder or a project is configured to use a custom storage location, only future uploads through Synapse are affected (e.g. changing the storage location does not automatically change the location of existing files). For a guide on setting a custom storage location, see the ,,Custom Storage Location,, documentation article. ,

get-/repo/v1/projectSettings/{id}

Authorizations:
path Parameters
id
required
string

the ID of the ,,ProjectSetting,

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "id": "string",
  • "projectId": "string",
  • "settingsType": "string",
  • "etag": "string",
  • "locations": [
    ]
}

delete-/repo/v1/projectSettings/{id}

Authorizations:
path Parameters
id
required
string

The ID of the ,,ProjectSetting,,. This is not the ID of the project.

Responses

get-/repo/v1/projectSettings/{projectId}/type/{type}

Authorizations:
path Parameters
projectId
required
string

the ID of the project

type
required
string (org.sagebionetworks.repo.model.project.ProjectSettingsType)
Value: "upload"

The ,,ProjectSettingsType,, to get.

Responses

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "id": "string",
  • "projectId": "string",
  • "settingsType": "string",
  • "etag": "string",
  • "locations": [
    ]
}

post-/repo/v1/projectSettings

Authorizations:
Request Body schema: application/json
One of
concreteType
string
id
string
projectId
string
settingsType
string
etag
string
locations
Array of integers <int32>

List of ids pointing to StorageLocationSetting. The first one in the list is the default location; The maximum number of storage locations for a project is limited to 10.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "id": "string",
  • "projectId": "string",
  • "settingsType": "string",
  • "etag": "string",
  • "locations": [
    ]
}

Response samples

Content type
application/json
{
  • "concreteType": "string",
  • "id": "string",
  • "projectId": "string",
  • "settingsType": "string",
  • "etag": "string",
  • "locations": [
    ]
}

put-/repo/v1/projectSettings

Authorizations:
Request Body schema: application/json
One of
concreteType
string
id
string
projectId
string
settingsType
string
etag
string
locations
Array of integers <int32>

List of ids pointing to StorageLocationSetting. The first one in the list is the default location; The maximum number of storage locations for a project is limited to 10.

Responses

Request samples

Content type
application/json
{
  • "concreteType": "string",
  • "id": "string",
  • "projectId": "string",
  • "settingsType": "string",
  • "etag": "string",
  • "locations": [
    ]
}

post-/repo/v1/storageLocation

Authorizations:
Request Body schema: application/json
One of
concreteType
string
storageLocationId
integer <int32>
uploadType
string
banner
string
description
string
etag
string
createdOn
string
createdBy
integer <int32>
proxyUrl
string
secretKey
string
benefactorId
string

Responses

Request samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "storageLocationId": 0,
  • "uploadType": "string",
  • "banner": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": 0,
  • "proxyUrl": "string",
  • "secretKey": "string",
  • "benefactorId": "string"
}

Response samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "storageLocationId": 0,
  • "uploadType": "string",
  • "banner": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": 0,
  • "proxyUrl": "string",
  • "secretKey": "string",
  • "benefactorId": "string"
}

get-/repo/v1/storageLocation/{id}

Authorizations:
path Parameters
id
required
number

the ID of the storage location setting.

Responses

Response samples

Content type
application/json
Example
{
  • "concreteType": "string",
  • "storageLocationId": 0,
  • "uploadType": "string",
  • "banner": "string",
  • "description": "string",
  • "etag": "string",
  • "createdOn": "string",
  • "createdBy": 0,
  • "proxyUrl": "string",
  • "secretKey": "string",
  • "benefactorId": "string"
}

Form Services

Collection of APIs from managing and submitting form data. There are two basic objects: ,

post-/repo/v1/form/group

Authorizations:
query Parameters
name
required
string

A globally unique name for the group. Required. Between 3 and 256 characters.

Responses

Response samples

Content type
application/json
{
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string"
}

get-/repo/v1/form/group/{id}

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string"
}

get-/repo/v1/form/group/{id}/acl

Authorizations:
path Parameters
id
required
string

The identifier of the FormGroup.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

put-/repo/v1/form/group/{id}/acl

Authorizations:
path Parameters
id
required
string

The identifier of the FormGroup.

Request Body schema: application/json
id
string
createdBy
string
creationDate
string
modifiedBy
string
modifiedOn
string
etag
string
Array of objects (org.sagebionetworks.repo.model.ResourceAccess)

The list of principals who can access the data with the allowed types of access for each.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "createdBy": "string",
  • "creationDate": "string",
  • "modifiedBy": "string",
  • "modifiedOn": "string",
  • "etag": "string",
  • "resourceAccess": [
    ]
}

post-/repo/v1/form/data

Authorizations:
query Parameters
groupId
required
string

The identifier of the group that manages this data. Required.

Request Body schema: application/json
name
string
fileHandleId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "fileHandleId": "string"
}

Response samples

Content type
application/json
{
  • "formDataId": "string",
  • "etag": "string",
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "dataFileHandleId": "string",
  • "submissionStatus": {
    }
}

put-/repo/v1/form/data/{id}

Authorizations:
path Parameters
id
required
string

The identifier of the FormData to update.

Request Body schema: application/json
name
string
fileHandleId
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "fileHandleId": "string"
}

Response samples

Content type
application/json
{
  • "formDataId": "string",
  • "etag": "string",
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "dataFileHandleId": "string",
  • "submissionStatus": {
    }
}

delete-/repo/v1/form/data/{id}

Authorizations:
path Parameters
id
required
string

Id of the FormData object to delete

Responses

post-/repo/v1/form/data/{id}/submit

Authorizations:
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "formDataId": "string",
  • "etag": "string",
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "dataFileHandleId": "string",
  • "submissionStatus": {
    }
}

post-/repo/v1/form/data/list

Authorizations:
Request Body schema: application/json
filterByState
Array of strings

Only return results with a state that matches elements from this set. Required. Must include at least one element.

groupId
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "filterByState": [
    ],
  • "groupId": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

post-/repo/v1/form/data/list/reviewer

Authorizations:
Request Body schema: application/json
filterByState
Array of strings

Only return results with a state that matches elements from this set. Required. Must include at least one element.

groupId
string
nextPageToken
string

Responses

Request samples

Content type
application/json
{
  • "filterByState": [
    ],
  • "groupId": "string",
  • "nextPageToken": "string"
}

Response samples

Content type
application/json
{
  • "page": [
    ],
  • "nextPageToken": "string"
}

put-/repo/v1/form/data/{id}/accept

Authorizations:
path Parameters
id
required
string

Identifier of the FormData to accept.

Responses

Response samples

Content type
application/json
{
  • "formDataId": "string",
  • "etag": "string",
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "dataFileHandleId": "string",
  • "submissionStatus": {
    }
}

put-/repo/v1/form/data/{id}/reject

Authorizations:
path Parameters
id
required
string

Identifier of the FormData to accept.

Request Body schema: application/json
reason
string

Responses

Request samples

Content type
application/json
{
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "formDataId": "string",
  • "etag": "string",
  • "groupId": "string",
  • "name": "string",
  • "createdBy": "string",
  • "createdOn": "string",
  • "modifiedOn": "string",
  • "dataFileHandleId": "string",
  • "submissionStatus": {
    }
}