TeamBeam API Version 1

Welcome to the TeamBeam API, offering access to the TeamBeam service. This document describes version 1 of the API.

Getting Started

Transport

The TeamBeam API is available via HTTPS only. The hostname matters, most entities are bound to a specific hostname, and accessing them on other hostnames will often not work.

SSL 2.0 and SSL 3.0 are disabled.

The base URI for all resources is:

https://{hostname}/rs/v1

Authentication

Most requests require an authenticated session in order to function properly. Session IDs get issued automatically, and in order to authenticate them, use the AuthResource.

Session IDs are managed via cookies. Be aware that the backend might ask you to update your session ID.

Rate Limiting

Many resources are protected against misuse or overload caused by badly behaving clients through rate limits according to the Leaky Bucket Algorithm as a Queue concept. Buckets are initially empty. Every request attempts to add a drop to the bucket. If the capacity does not allow this, the request is rejected (see ‘HTTP 509 Rate Limit Exceeded’ in section ‘Error handling’). Buckets drain over time, reducing their specific level and allowing new requests.

HTTP headers inform about the current bucket properties:

  • X-RateLimit-Limit

    The total capacity of the current bucket.

    Example:

    X-RateLimit-Limit: 60
  • X-RateLimit-Remaining

    The remaining capacity in the current bucket. Once this value is exhausted, future requests will be rejected until the bucket has been drained sufficiently.

    Example:

    X-RateLimit-Remaining: 42

Different resources use different buckets:

Resource Bucket Identifier Capacity Drainrate [1/s]
Login Email-address of user 3 1/15
Get Onetime Key User-ID 10 1/30
Environment no limit n/a n/a
Other resources session ID 60 1

API Deprecation

Over time, the backend may change and a new version of the API will be released. To inform developers and clients of upcoming changes, the server indicates API deprecation by sending a Warning header with warning-code 229.

Example:

Warning: 299 - “API Deprecation Warning: Support for this request will be dropped soon, please update your client.”

While API deprecation is indicated, the API call will still function as documented. At a later stage, support for individual API calls up to the complete API-path may be dropped. This is indicated by responding with HTTP status code 410 (see section ‘Error handling’).

Payload format

Unless explicitely stated, request and response bodies are encoded in JSON format. Appropriate headers (Content-Type: application/json, Accept: application/json) must be set.

Timestamps are encoded in ISO 8601 format, including timezone offset from UTC. Example:

{ “validDate”: “2037-12-31T15:29:59+00:00” }

Error handling

The API responds with different HTTP Status Codes and messages:

  • HTTP 400 Bad Request

    The request cannot be processed for syntax reasons. This could be because of a missing field, an incorrect type or an invalid value. The error message might provide more information. Check your code against the documentation. Retrying the request will not improve your chances of success.

    Example:

    {
        "error": {
          "code": 400001,
          "message": "The request cannot be fulfilled.",
          "details": ["Invalid or unsupported value.", "Please consult the documentation."]
        }
      }
  • HTTP 401 Not Authorized

    Your request is missing an authenticated session ID, your session ID has expired, or your user is not valid. Obtain a new session and/or authenticate it (see the AuthResource).

  • HTTP 403 Forbidden

    Your request was syntactically correct, but violated somehing else. Possible reasons are feature- and/or contract-limitations, accessing someone else’s data without authorization. Retrying the request will lead to the same result. The details of the message will provide more details.

    Example:

    {
      "error": {
        "code": 403001,
        "message": "This request is forbidden.",
        "details": ["TTL is not acceptable"]
      }
    }
  • HTTP 404 Not Found

    The request could not be fulfilled, since the resource or entity at the URI does not exist (anymore). Retrying is futile.

  • HTTP 405 Method Not Allowed

    The resource or entity does not support the HTTP method. Please consult the documentation.

  • HTTP 406 Not Acceptable

    The backend cannot supply the response in the requested mediatype (as per the Accept request header). Please consult the documentation. You can retry your request, specifying appropriate headers.

  • HTTP 409 Conflict

    The request was not successful, because the a persistence-opertion failed. This can be temporary, or because another operation has modified the data in the meantime. Reread your data again, apply your changes and retry the request. You haven’t broken anything yet.

  • HTTP 410 Gone

    The request was once valid but is no longer acceptable. This is a permanent situation. It indicates that parts of the API have since been deprecated and support for them has been dropped. It is recommended to consult the documentation and update clients.

  • HTTP 413 Request Entity Too Large

    The backend is unwilling or unable to process a request body of this size.

  • HTTP 415 Unsupported Mediatype

    The backend does not support the request payload, as announced in the Content-Type header.

  • HTTP 416 Range Not Satisfiable

    This occurs when an upload or download request does not provide acceptable values for headers Range or Content-Range.

  • HTTP 500 Server Error

    Oops! It looks like something went horribly wrong in the backend. You might want to get in touch with us.

  • HTTP 503 Maintenance

    The host you’re addressing is currently undergoing maintenance and is not serving requests. You can retry your request until is being accepted again.

  • HTTP 509 Rate Limit Exceeded

    The request was not accepted because of a rate limit violation. The API is protected against overload and bruteforce attacks with rate limits. See the section on rate limiting for details. The response contains a Retry-After header (in seconds) to assist in retrying the request again.

    Example:

    Retry-After: 23

Adminunits Resource

An adminunit is the top level entity that combines users, transfers, folders, objects, etc. Typically it represents a customer and has a contract. Most features and configurations are defined here and apply to all attached entities.

All requests require an authenticated session, where the principal has admin privileges. Some requests require additionally cluster-admin privileges.

Adminunits

GET https://dev.skalio.net/teambeam//adminunits
Responses200401403
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}

Fetching the adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get own adminunit
GET/adminunits

Returns the adminunit for the current user.

Please note: This request requires admin-privileges.


GET https://dev.skalio.net/teambeam//adminunits/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}

Fetching the adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no adminunit found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get specific adminunit
GET/adminunits/{idx}

Returns the requested adminunit.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


GET https://dev.skalio.net/teambeam//adminunits/clusterlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "adminunits": [
    {
      "idx": 1,
      "customerName": "ACME Corporation",
      "description": "Internal comment regarding customer",
      "type": "master",
      "emailDisclaimer": "All rights reserved",
      "defaultExpiration": 3,
      "expirationIntervals": [
        0
      ],
      "allowCustomExpiration": true,
      "notificationInterval": 3,
      "maxNotifications": 3,
      "showPriority": true,
      "forcedMalwareCheck": true,
      "forcedPasswordUsage": true,
      "extPasswordCriteria": true,
      "blockAfterFirstDownload": true,
      "minimumPasswordLength": 1,
      "allowedExpirationIntervals": [
        0
      ],
      "accountingReportEnabled": true,
      "accountingReportTime": 3,
      "accountingReportReceivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "auditReportEnabled": true,
      "driveReportEnabled": true,
      "driveReportReceivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "recipientAuthenticationEnabled": true,
      "siteIndexingEnabled": true,
      "privacyStatementUrl": "https://example.test/privacy",
      "legalNoticeUrl": "https://example.test/contactus",
      "systemUserLocalPart": "skp",
      "transactionLogEnabled": true,
      "privacyModeEnabled": true,
      "keepMeLoggedInChecked": true,
      "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
      "availableLocales": [
        "de_DE"
      ],
      "offeredClients": [
        "java"
      ],
      "autocompleteEnabled": true,
      "timezone": "Europe/Berlin",
      "locale": "de_DE",
      "redirectAuthEnabled": true,
      "personalMailboxPresetIdx": 1,
      "invitePresetIdx": 1,
      "contractIdx": 1,
      "isActive": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "adminunits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "ID of the Adminunit"
          },
          "customerName": {
            "type": "string",
            "enum": [
              "ACME Corporation"
            ],
            "description": "The name of the customer"
          },
          "description": {
            "type": "string",
            "enum": [
              "Internal comment regarding customer"
            ],
            "description": "a descriptive text for the adminunit"
          },
          "type": {
            "type": "string",
            "enum": [
              "master",
              "client",
              "shared",
              "client"
            ],
            "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
          },
          "emailDisclaimer": {
            "type": "string",
            "enum": [
              "All rights reserved"
            ],
            "description": "Global signature, to be inserted at the foot of all notifications"
          },
          "defaultExpiration": {
            "type": "number",
            "enum": [
              3
            ],
            "description": "In days, default value for transfer expiration"
          },
          "expirationIntervals": {
            "type": "array",
            "items": {
              "type": "number",
              "enum": [
                0,
                1,
                2,
                3,
                5,
                7,
                14,
                31
              ]
            },
            "description": "Set of values that users can chose when sending transfers"
          },
          "allowCustomExpiration": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
          },
          "notificationInterval": {
            "type": "number",
            "enum": [
              3
            ],
            "description": "In days, time between transfer (re)notifications to recipients"
          },
          "maxNotifications": {
            "type": "number",
            "enum": [
              3
            ],
            "description": "Maximum number of notifications ever sent for a transfer"
          },
          "showPriority": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
          },
          "forcedMalwareCheck": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
          },
          "forcedPasswordUsage": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, all transfer must be protected with an additional transfer password"
          },
          "extPasswordCriteria": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, (new) passwords must comply with the extended complexity requirements"
          },
          "blockAfterFirstDownload": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, every file of a transfer can only be downloaded once"
          },
          "minimumPasswordLength": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "Minimum length of (new) passwords"
          },
          "allowedExpirationIntervals": {
            "type": "array",
            "items": {
              "type": "number",
              "enum": [
                0,
                1,
                2,
                3,
                5,
                7,
                14,
                31
              ]
            },
            "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
          },
          "accountingReportEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the accounting report is being generated every month"
          },
          "accountingReportTime": {
            "type": "number",
            "enum": [
              3
            ],
            "description": "In months, defines how far back the report shall go"
          },
          "accountingReportReceivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the email address of the user"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the user's name"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of receivers of the accounting report"
          },
          "auditReportEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the audit report is being generated every month"
          },
          "driveReportEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the drive report is being generated every month"
          },
          "driveReportReceivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the email address of the user"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the user's name"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of receivers of the drive report"
          },
          "recipientAuthenticationEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if a receiver must authenticate before accessing transfers"
          },
          "siteIndexingEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if search engines may spider some productive web sites"
          },
          "privacyStatementUrl": {
            "type": "string",
            "enum": [
              "https://example.test/privacy"
            ],
            "description": "a URL which points to a web site containing a privacy statement"
          },
          "legalNoticeUrl": {
            "type": "string",
            "enum": [
              "https://example.test/contactus"
            ],
            "description": "a URL which points to a web site containing a legal notice"
          },
          "systemUserLocalPart": {
            "type": "string",
            "enum": [
              "skp"
            ],
            "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
          },
          "transactionLogEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if the transaction log feature is enabled"
          },
          "privacyModeEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if the privacy-mode feature is enabled"
          },
          "keepMeLoggedInChecked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the login screen will be default attempt to keep the user logged in"
          },
          "messageOfTheDay": {
            "type": "string",
            "enum": [
              "The quick brown fox jumps over the lazy dog"
            ],
            "description": "A plain text paragraph that is shown to users in their login dashboard."
          },
          "availableLocales": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "de_DE",
                "en_US",
                "fr_FR",
                "ru_RU",
                "ko_KR",
                "zh_CN",
                "zh_TW",
                "ja_JP"
              ]
            },
            "description": "Set of locales available on the storagehosts of the adminunit"
          },
          "offeredClients": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "java",
                "web",
                "outlook",
                "ios",
                "android",
                "osx"
              ]
            },
            "description": "Set of clients that are actively offered to users"
          },
          "autocompleteEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the login screen will support browser password autocompletion"
          },
          "timezone": {
            "type": "string",
            "enum": [
              "Europe/Berlin"
            ],
            "description": "The default timezone for all items on the adminunit"
          },
          "locale": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP",
              "de_DE"
            ],
            "description": "The default locale for all items on the adminunit"
          },
          "redirectAuthEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
          },
          "personalMailboxPresetIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The ID of the preset used for personal mailbox creation"
          },
          "invitePresetIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The ID of the preset used for inviting foreign users"
          },
          "contractIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
          },
          "isActive": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if the adminunit is enabled (default)"
          }
        },
        "required": [
          "idx",
          "customerName",
          "description",
          "type",
          "emailDisclaimer",
          "defaultExpiration",
          "expirationIntervals",
          "allowCustomExpiration",
          "notificationInterval",
          "maxNotifications",
          "showPriority",
          "forcedMalwareCheck",
          "forcedPasswordUsage",
          "extPasswordCriteria",
          "blockAfterFirstDownload",
          "minimumPasswordLength",
          "allowedExpirationIntervals",
          "accountingReportEnabled",
          "accountingReportTime",
          "accountingReportReceivers",
          "auditReportEnabled",
          "driveReportEnabled",
          "driveReportReceivers",
          "recipientAuthenticationEnabled",
          "siteIndexingEnabled",
          "privacyStatementUrl",
          "legalNoticeUrl",
          "systemUserLocalPart",
          "transactionLogEnabled",
          "privacyModeEnabled",
          "keepMeLoggedInChecked",
          "messageOfTheDay",
          "availableLocales",
          "offeredClients",
          "autocompleteEnabled",
          "timezone",
          "locale",
          "redirectAuthEnabled",
          "isActive"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "adminunits"
  ]
}

Fetching the list of adminunits requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the list of adminunits has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List all Adminunits
GET/adminunits/clusterlist

Returns the list of all adminunits on the cluster.

Please note: This request requires cluster admin privileges.


GET https://dev.skalio.net/teambeam//adminunits/idx/servicestatus
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "storagehosts": [
    {
      "name": "",
      "description": "",
      "inMaintenance": false
    }
  ],
  "appservers": [
    {
      "hostname": "",
      "inMaintenance": false,
      "uptime": 0,
      "loadAvg": []
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "storagehosts": {
      "type": "array"
    },
    "appservers": {
      "type": "array"
    }
  }
}

Fetching the adminunit service status requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no adminunit found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get status of Adminunit
GET/adminunits/{idx}/servicestatus

Returns information about the service status of the adminunit.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


GET https://dev.skalio.net/teambeam//adminunits/idx/storagehosts
Responses200401403
Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}

Fetching the active atoragehost of an adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get active Storagehost of Adminunit
GET/adminunits/{idx}/storagehosts

Returns the active storagehost of the adminunit.

Please note: This request requires admin-privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


GET https://dev.skalio.net/teambeam//adminunits/storagehosts/list
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "adminunits": [
    {
      "idx": 123,
      "hostName": "teambeam.example.org",
      "description": "Hello, world!",
      "adminunitIdx": 1,
      "portalUrl": "https://teambeam.example.org/my/",
      "active": true,
      "clusterIdx": 100
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "adminunits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              123
            ],
            "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
          },
          "hostName": {
            "type": "string",
            "enum": [
              "teambeam.example.org"
            ],
            "description": "the fully qualified hostName"
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a descriptive text"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The ID of the Adminunit to which this storagehost belongs"
          },
          "portalUrl": {
            "type": "string",
            "enum": [
              "https://teambeam.example.org/my/"
            ],
            "description": "URL to the My.TeamBeam portal of the storagehost"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true this storagehost is active"
          },
          "clusterIdx": {
            "type": "number",
            "enum": [
              100
            ],
            "description": "a global unique identifier of TeamBeam installations"
          }
        },
        "required": [
          "hostName",
          "description",
          "adminunitIdx",
          "portalUrl",
          "active",
          "clusterIdx"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "adminunits"
  ]
}

Fetching the list of storagehosts requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the list of storagehosts has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List all Storagehosts of Adminunit
GET/adminunits/storagehosts/list

Returns the list of all storagehosts for this adminunit.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.


POST https://dev.skalio.net/teambeam//adminunits
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}
Responses201401403

The adminunit has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}

Creating an adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating an adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Adminunit
POST/adminunits

Creates a new adminunit.

Please note: This request requires cluster admin privileges.

It is recommended to create a new adminunit with only the mandatory fields and let the server fill in the remaining attributes with the server’s default. Mandatory fields for creating a new adminunit are:

  • customerName: The name of the customer

POST https://dev.skalio.net/teambeam//adminunits/storagehosts
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}
Responses201401403

The storagehost has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}

Creating a storagehost requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a storagehost has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Storagehost for Adminunit
POST/adminunits/storagehosts

Creates a new storagehost for this adminunit.

Please note: This request requires cluster admin privileges.

A new storagehost is created with the active set to true only if it is the first and only storagehost on this adminunit. Otherwise active is set to false. Mandatory fields for creating a new storagehost are:

  • hostName: The hostname of the new storagehost

POST https://dev.skalio.net/teambeam//adminunits/idx/storagehosts/shidx/activate
Responses200401403

The storagehost has been activated.

Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}

Activating a storagehost requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activating a storagehost has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activate Storagehost for Adminunit
POST/adminunits/{idx}/storagehosts/{shidx}/activate

Activates a storagehost for this adminunit. Deactivates all other storagehosts on this adminunit.

Please note: This request requires cluster admin privileges.

There must be exactly one storagehost set to active per adminunit. Activating a storagehost automatically deactivates all other storagehosts on this adminunit (if any).

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit

shidx
number (required) 

ID of a storagehost


POST https://dev.skalio.net/teambeam//adminunits/idx/maintenance
Responses204401403
Headers
Content-Type: application/x-empty

This request requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activating maintenance mode has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activate maintenance mode
POST/adminunits/{idx}/maintenance

Activates maintenance mode on the adminunit.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

Please note: This request is not yet implemented!

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


POST https://dev.skalio.net/teambeam//adminunits/idx/remoteaccess
Responses204401403
Headers
Content-Type: application/x-empty

This request requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activating remote access has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Activate remote access
POST/adminunits/{idx}/remoteaccess

Activates remote access on the underlying app server.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


PUT https://dev.skalio.net/teambeam//adminunits/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "customerName": "ACME Corporation",
  "description": "Internal comment regarding customer",
  "type": "master",
  "emailDisclaimer": "All rights reserved",
  "defaultExpiration": 3,
  "expirationIntervals": [
    0
  ],
  "allowCustomExpiration": true,
  "notificationInterval": 3,
  "maxNotifications": 3,
  "showPriority": true,
  "forcedMalwareCheck": true,
  "forcedPasswordUsage": true,
  "extPasswordCriteria": true,
  "blockAfterFirstDownload": true,
  "minimumPasswordLength": 1,
  "allowedExpirationIntervals": [
    0
  ],
  "accountingReportEnabled": true,
  "accountingReportTime": 3,
  "accountingReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "auditReportEnabled": true,
  "driveReportEnabled": true,
  "driveReportReceivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "recipientAuthenticationEnabled": true,
  "siteIndexingEnabled": true,
  "privacyStatementUrl": "https://example.test/privacy",
  "legalNoticeUrl": "https://example.test/contactus",
  "systemUserLocalPart": "skp",
  "transactionLogEnabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "messageOfTheDay": "The quick brown fox jumps over the lazy dog",
  "availableLocales": [
    "de_DE"
  ],
  "offeredClients": [
    "java"
  ],
  "autocompleteEnabled": true,
  "timezone": "Europe/Berlin",
  "locale": "de_DE",
  "redirectAuthEnabled": true,
  "personalMailboxPresetIdx": 1,
  "invitePresetIdx": 1,
  "contractIdx": 1,
  "isActive": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "ID of the Adminunit"
    },
    "customerName": {
      "type": "string",
      "description": "The name of the customer"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text for the adminunit"
    },
    "type": {
      "type": "string",
      "enum": [
        "master",
        "client",
        "shared",
        "client"
      ],
      "description": "Type of the admin unit. Either one of 'master', 'client' or 'shared' Can only be updated by Cluster admin."
    },
    "emailDisclaimer": {
      "type": "string",
      "description": "Global signature, to be inserted at the foot of all notifications"
    },
    "defaultExpiration": {
      "type": "number",
      "description": "In days, default value for transfer expiration"
    },
    "expirationIntervals": {
      "type": "array",
      "description": "Set of values that users can chose when sending transfers"
    },
    "allowCustomExpiration": {
      "type": "boolean",
      "description": "If true, users can chose the expiration interval when sending a transfer. If false, the defaultExpiration interval is used"
    },
    "notificationInterval": {
      "type": "number",
      "description": "In days, time between transfer (re)notifications to recipients"
    },
    "maxNotifications": {
      "type": "number",
      "description": "Maximum number of notifications ever sent for a transfer"
    },
    "showPriority": {
      "type": "boolean",
      "description": "If true, the user can chose the priority of the notification email. If false the default of `3` is used"
    },
    "forcedMalwareCheck": {
      "type": "boolean",
      "description": "If true, all transfers will be malware-scanned (license-permitting). If false, transfers are scanned depending on the configuration by sender or receiver."
    },
    "forcedPasswordUsage": {
      "type": "boolean",
      "description": "If true, all transfer must be protected with an additional transfer password"
    },
    "extPasswordCriteria": {
      "type": "boolean",
      "description": "If true, (new) passwords must comply with the extended complexity requirements"
    },
    "blockAfterFirstDownload": {
      "type": "boolean",
      "description": "If true, every file of a transfer can only be downloaded once"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "Minimum length of (new) passwords"
    },
    "allowedExpirationIntervals": {
      "type": "array",
      "description": "Immutable set of values that the admin can choose from. Can only be updated by Cluster admin."
    },
    "accountingReportEnabled": {
      "type": "boolean",
      "description": "If true, the accounting report is being generated every month"
    },
    "accountingReportTime": {
      "type": "number",
      "description": "In months, defines how far back the report shall go"
    },
    "accountingReportReceivers": {
      "type": "array",
      "description": "List of receivers of the accounting report"
    },
    "auditReportEnabled": {
      "type": "boolean",
      "description": "If true, the audit report is being generated every month"
    },
    "driveReportEnabled": {
      "type": "boolean",
      "description": "If true, the drive report is being generated every month"
    },
    "driveReportReceivers": {
      "type": "array",
      "description": "List of receivers of the drive report"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "true if a receiver must authenticate before accessing transfers"
    },
    "siteIndexingEnabled": {
      "type": "boolean",
      "description": "true if search engines may spider some productive web sites"
    },
    "privacyStatementUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a privacy statement"
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "a URL which points to a web site containing a legal notice"
    },
    "systemUserLocalPart": {
      "type": "string",
      "description": "The local-part of the email-address of the storagehost-specific system user. Length is capped at 64 characters. Default is `skp`."
    },
    "transactionLogEnabled": {
      "type": "boolean",
      "description": "True if the transaction log feature is enabled"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "True if the privacy-mode feature is enabled"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the login screen will be default attempt to keep the user logged in"
    },
    "messageOfTheDay": {
      "type": "string",
      "description": "A plain text paragraph that is shown to users in their login dashboard."
    },
    "availableLocales": {
      "type": "array",
      "description": "Set of locales available on the storagehosts of the adminunit"
    },
    "offeredClients": {
      "type": "array",
      "description": "Set of clients that are actively offered to users"
    },
    "autocompleteEnabled": {
      "type": "boolean",
      "description": "If true, the login screen will support browser password autocompletion"
    },
    "timezone": {
      "type": "string",
      "description": "The default timezone for all items on the adminunit"
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale for all items on the adminunit"
    },
    "redirectAuthEnabled": {
      "type": "boolean",
      "description": "If true, a user will be redirected to his correct adminunit after successfully authenticating against this adminunit."
    },
    "personalMailboxPresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for personal mailbox creation"
    },
    "invitePresetIdx": {
      "type": "number",
      "description": "The ID of the preset used for inviting foreign users"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract covering this adminunit, if it exists. Readonly."
    },
    "isActive": {
      "type": "boolean",
      "description": "True if the adminunit is enabled (default)"
    }
  }
}

Updating the adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this adminunit has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no adminunit found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update adminunit
PUT/adminunits/{idx}

Updates the requested adminunit.

The request body can contain all or only a set of fields. Only those fields that are submitted will be updated.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


DELETE https://dev.skalio.net/teambeam//adminunits/idx
Responses204401403404
This response has no content.

Deleting a adminunit requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a adminunit has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no adminunit found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Adminunit
DELETE/adminunits/{idx}

Deletes the specified adminunit.

Please note: This request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


DELETE https://dev.skalio.net/teambeam//adminunits/idx/maintenance
Responses204401403
Headers
Content-Type: application/x-empty

This request requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deactivating maintenance mode has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deactivate maintenance mode
DELETE/adminunits/{idx}/maintenance

Deactivates maintenance mode on the adminunit.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

Please note: This request is not yet implemented!

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


DELETE https://dev.skalio.net/teambeam//adminunits/idx/remoteaccess
Responses204401403
Headers
Content-Type: application/x-empty

This request requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deactivating remote access has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deactivate remote access
DELETE/adminunits/{idx}/remoteaccess

Deactivates remote access on the underlying app server.

Please note: This request requires admin privileges. If accessing a foreign adminunit this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a adminunit


Auth Resource

In order to access privileged data or perform actions, the request must use an authenticated session.

Login

POST https://dev.skalio.net/teambeam//auth/login
RequestsLogin with email and passwordLogin with email and onetime-keyLogin with a reset-password-IDLogin with a register-ID
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "autologin": false,
  "password": "{PLAIN}Passw0rd"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The user's email address"
    },
    "autologin": {
      "type": "boolean",
      "description": "Returns a remember-me-cookie if true",
      "default": false
    },
    "password": {
      "type": "string",
      "description": "The user's password in plaintext"
    }
  },
  "required": [
    "email",
    "password"
  ]
}
Responses200401

The login request was successful. The session-ID is regenerated. The user-object is returned. If autologin was requested, an autologin-cookie is sent.

Headers
Content-Type: application/json
Set-Cookie: skpsession=b4pvmb1tpg05h7o55tc34nts9b7vbklingiiln4lnned2tng6h01; path=/; domain=teambeam.example.org; secure; HttpOnly
Set-Cookie: skp_autologin=bob%40example.org%3Alo9l83xadtxnxbniocaqf6d8o8b5hm73d7i48jlu11; expires=Fri, 27-May-2016 15:47:00 GMT; path=/; domain=teambeam.example.org; secure; httponly
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

The credentials are wrong, or the user is not valid anymore, or the user is not allowed to login to the current storagehost.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "autologin": false,
  "key": "7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The user's email address"
    },
    "autologin": {
      "type": "boolean",
      "description": "Returns a remember-me-cookie if true",
      "default": false
    },
    "key": {
      "type": "string",
      "description": "A valid onetimekey of the user"
    }
  },
  "required": [
    "email",
    "key"
  ]
}
Responses200401

The login request was successful. The session-ID is regenerated. The user-object is returned. If autologin was requested, an autologin-cookie is sent.

Headers
Content-Type: application/json
Set-Cookie: skpsession=b4pvmb1tpg05h7o55tc34nts9b7vbklingiiln4lnned2tng6h01; path=/; domain=teambeam.example.org; secure; HttpOnly
Set-Cookie: skp_autologin=bob%40example.org%3Alo9l83xadtxnxbniocaqf6d8o8b5hm73d7i48jlu11; expires=Fri, 27-May-2016 15:47:00 GMT; path=/; domain=teambeam.example.org; secure; httponly
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

The credentials are wrong, or the user is not valid anymore, or the user is not allowed to login to the current storagehost.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}
Headers
Content-Type: application/json
Body
{
  "resetId": "7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "resetId": {
      "type": "string",
      "description": "A reset-password-ID"
    }
  },
  "required": [
    "resetId"
  ]
}
Responses200401

The login request was successful. The session-ID is regenerated. The user-object is returned. If autologin was requested, an autologin-cookie is sent.

Headers
Content-Type: application/json
Set-Cookie: skpsession=b4pvmb1tpg05h7o55tc34nts9b7vbklingiiln4lnned2tng6h01; path=/; domain=teambeam.example.org; secure; HttpOnly
Set-Cookie: skp_autologin=bob%40example.org%3Alo9l83xadtxnxbniocaqf6d8o8b5hm73d7i48jlu11; expires=Fri, 27-May-2016 15:47:00 GMT; path=/; domain=teambeam.example.org; secure; httponly
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

The credentials are wrong, or the user is not valid anymore, or the user is not allowed to login to the current storagehost.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}
Headers
Content-Type: application/json
Body
{
  "registerId": "7q2oaesb80ukoln70l49sv06u20nsre4gel31"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "registerId": {
      "type": "string",
      "description": "ID of the user registration"
    }
  },
  "required": [
    "registerId"
  ]
}
Responses200401

The login request was successful. The session-ID is regenerated. The user-object is returned. If autologin was requested, an autologin-cookie is sent.

Headers
Content-Type: application/json
Set-Cookie: skpsession=b4pvmb1tpg05h7o55tc34nts9b7vbklingiiln4lnned2tng6h01; path=/; domain=teambeam.example.org; secure; HttpOnly
Set-Cookie: skp_autologin=bob%40example.org%3Alo9l83xadtxnxbniocaqf6d8o8b5hm73d7i48jlu11; expires=Fri, 27-May-2016 15:47:00 GMT; path=/; domain=teambeam.example.org; secure; httponly
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

The credentials are wrong, or the user is not valid anymore, or the user is not allowed to login to the current storagehost.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}

POST/auth/login

Sends login credentials and authenticates the session. If successful, a new session ID is created and returned. Authentication can be based on one of the following options:

  • email and password

  • email and onetime key

  • reset-password ID

  • register-ID

When providing a password, the value may be prefixed with an Algorithm:

  • {PLAIN}: The password is in plain text

  • {AES}: The password is symmetrically encrypted with the known key+iv

The algorithm will be dropped in the near future.

In order for authentication to be successful, all of the following conditions must be met:

  • provided credentials must be valid

  • the user must have a validTimestamp in the future

  • the user must be of clientType employee

  • the user’s storagehost must be active

  • the authentication must be attempted on the storagehost of the user

When a user attempts authentication at a storagehost other than his own, the request is rejected with an ForbiddenException.

The HTTP response may contain a Link header of rel-type alternative hinting to the correct storagehost of the user. To reduce information leaking, this link is only added if the user had previously completed some form of authentication.

Link: <https://teambeam.example.net/my/>; rel="alternate"

Logout

POST https://dev.skalio.net/teambeam//auth/logout
RequestsLogout
Headers
Content-Type: application/json
Responses204
Headers
Set-Cookie: skp_autologin=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT;
Set-Cookie: skpsession=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT;

POST/auth/logout

Ends an authenticated session. The session ID is deleted. Previously issued autologin cookies are purged from the server and client.

The autologin cookie that may have been issued during the login phase can no longer be used afterwards.


Autologin

POST https://dev.skalio.net/teambeam//auth/autologin
RequestsRelogin
Headers
Content-Type: application/json
Cookie: skp_autologin=bob@example.org%3Aisn6o9rygqb3cm91bmbifayfm02m4g366c0ogmie881
Responses204
Headers
Set-Cookie: <new session id>
Set-Cookie: skp_autologin=bob@example.org%3A1rl4ted9fge3kqbt712o83sl46cndp1cp14mm7be882; expires=Fri, 20-May-2016 09:33:26 GMT; path=/; domain=teambeam.example.com; secure; httponly

POST/auth/autologin

This reestablishes an authenticated session based on a valid autologin cookie, which has been obtained during the login process. The autologin cookie is consumed, and a new one is issued by the server.

The previous autologin cookie can no longer be used afterwards.

If the session is still authenticated, the autologin cookie remains valid and is not replaced by the server.


Request Password Reset

Requests that a password-reset notification is created and issued to a user. The notification is issued via a separate channel, typically an email to the user’s address on record.

The notification contains a URI containing a reset-ID that is tied to the user, valid for a short amount of time. The user can follow the URI to create an authenticated session and set a new password.

POST https://dev.skalio.net/teambeam//auth/reset
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "email address of the user requesting a reset"
    }
  },
  "required": [
    "email"
  ]
}
Responses204403
This response has no content.

Password reset is disabled for this user. Possible reasons.

  • The user is managed by an external directory service.

  • The account is no longer valid.

  • The account does not have a password (receiver, anonymous).

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}

POST/auth/reset

To reduce information disclosure, the backend will respond positively (HTTP 204) even for unknown users. Only if a user exists and is barred from changing his password (here) will the backend respond negatively.


Complete User Registration

When a new user account is being created, the user may be invited to complete his registration by visiting a given URI, which contains a register-ID. By using this register-ID, an authenticated session is created.

POST https://dev.skalio.net/teambeam//auth/register
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "registerId": "7q2oaesb80ukoln70l49sv06u20nsre4gel31"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "registerId": {
      "type": "string",
      "description": "ID of the user registration"
    }
  },
  "required": [
    "registerId"
  ]
}
Responses200401

The register request was successful. The session-ID is regenerated. The user registration is completed and the user object is returned.

Headers
Content-Type: application/json
Set-Cookie: <new session id>
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

The register ID is unknown, or the user is not valid anymore.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Request cannot be fulfilled",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "enum": [
            0
          ],
          "description": "unique error code"
        },
        "message": {
          "type": "string",
          "enum": [
            "Request cannot be fulfilled"
          ],
          "description": "localized error text"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              ""
            ]
          },
          "description": "additional localized error messages"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "error"
  ],
  "additionalProperties": false
}

POST/auth/register

The functionality of this resource is available via POST auth/login. This resource will be dropped in the future.


Onetime Keys

A user can request onetime-keys which are bound to his account. These keys allow session establishment, when used in combination with the user’s email address. The validity of a onetime-key created via this API call is equal to the server’s configured MAX_TIME_IN_OUTBOX_SEC. The default is 48 hours.

The user must have a valid authenticated session to use this resource.

Onetime keys can only be used in combination with the email-address of the user who requested it.

POST https://dev.skalio.net/teambeam//auth/onetimekey
Requestsexample 1
Headers
Content-Type: application/json
Responses200
Headers
Content-Type: application/json
Body
{
  "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
  "validTimestamp": "2016-04-27T16:41:06+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "a onetime key, to be used for login with the requested user"
    },
    "validTimestamp": {
      "type": "string",
      "description": "timestamp, when the onetime key expires"
    }
  }
}

POST/auth/onetimekey

Create new onetimekey for this user.


Resource

GET https://dev.skalio.net/teambeam//auth/oneTimeKey
Responses200
Headers
Content-Type: application/json
Body
{
  "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
  "validTimestamp": "2016-04-27T16:41:06+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "a onetime key, to be used for login with the requested user"
    },
    "validTimestamp": {
      "type": "string",
      "description": "timestamp, when the onetime key expires"
    }
  }
}

GET/auth/oneTimeKey

Create new onetimekey for this user. Note the CamelCase notation of the URL.

This method will be dropped in the future. Use POST auth/login instead.


Clicks Resource

The event of a user clicking a link or a button in the frontend may be recorded on the backend. To do this the ClicksResource may be used.

General Info

Clicks are stored on the backend, containing the following information:

  • timestamp - created on the backend

  • hostname - created on the backend; the hostname that has been used to send the POST request)

  • path - payload of the POST request; the URL path of the web page on which the button or link has been clicked

  • ref - payload of the POST request; a string representing the button or link that has been clicked

There is no authentication needed to use the ClicksResource.

Please note: Currently there is no rate-limiting implemented. This has to be done soon to avoid being prone to flooding.

Please note: Currently there is no API to retrieve clicks from the backend. This may be implemented at a later time. Until then direct database access is needed to evaluate click data.

Clicks

POST https://dev.skalio.net/teambeam//clicks
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "path": "Hello, world!",
  "ref": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "the URL path of the web page on which the button or link has been clicked"
    },
    "ref": {
      "type": "string",
      "description": "a string representing the button or link that has been clicked"
    }
  }
}
Responses204
Headers
Content-Type: application/json

Create Click
POST/clicks

Creates a new click.


Contracts Resource

A contract defines the features, limitations and licenses that apply to a customer.

Contract Type

Contracts are of one of the following types:

  • personal: Applies to a small group of users, who are using a shared adminunit.

  • server: Applies to one or more adminunits.

Contract Components

Contract components are available options which can been ordered by the customer and configured onto the contract. The following contract components are available:

Id Component name
1 TeamBeam PRO Account
3 Company Mailbox
6 TeamBeam CORPORATE Server
7 Staff Account
9 TeamBeam Drive
10 Malware Protection
11 Medizinischer Datendienst Sendemodul
12 Medizinischer Datendienst Empfangsmodul
13 Extended Storage time span
14 Printed paper invoice
15 Checksum calculation
16 Maintenance contract
17 Personal Mailbox
999 Support Request
1000 TeamBeam PRO
1001 TeamBeam CORPORATE on-premise

Contracts

GET https://dev.skalio.net/teambeam//contracts
Responses200
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "contracts": [
    {
      "idx": 1,
      "active": false,
      "billing": false,
      "ownerEmail": "",
      "type": "",
      "timestampStart": "2037-12-31T15:29:59+00:00",
      "timestampEnd": "2037-12-31T15:29:59+00:00",
      "marketingName": "",
      "postalAddress": "",
      "coords": {
        "lat": "",
        "lng": ""
      },
      "phone": "",
      "email": "",
      "adminunits": [
        {
          "idx": "",
          "customerName": ""
        }
      ],
      "euTaxId": "",
      "accountingMonths": 0,
      "taxType": "",
      "paymentMethod": "",
      "billingDay": 0,
      "notes": "",
      "invoiceData": "",
      "staffAccounts": 0,
      "totalDriveQuota": 0,
      "malwareCheckRight": false,
      "hashGeneration": false,
      "personalMailbox": false,
      "companyMailbox": false,
      "extendedStorageTime": false,
      "invoiceSnailMail": false,
      "maintenanceContract": false,
      "usedStaffAccounts": 0,
      "usedDriveSpace": 0,
      "monthlyCost": 0,
      "lastTimeBilled": "2037-12-31T15:29:59+00:00",
      "nextTimeBilled": "2037-12-31T15:29:59+00:00",
      "discountPercentage": 0,
      "personalUsers": [
        {
          "email": "",
          "realname": ""
        }
      ],
      "publicBoxes": [
        {
          "idx": 0,
          "title": "",
          "quota": 0
        }
      ],
      "prices": [
        {
          "idx": 0,
          "cents": 0
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "contracts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "billing": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the customer will get billed"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "email of contract owner"
          },
          "type": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Type of contract, either 'server', 'personal' or 'mdd'"
          },
          "timestampStart": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Start date of the contract"
          },
          "timestampEnd": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "End date of the contract"
          },
          "marketingName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The name of the contract type which is used in communication with the customer"
          },
          "postalAddress": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The postal address of the contract ownerEmail"
          },
          "coords": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical latitude of the customers address"
              },
              "lng": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical longitude of the customers address"
              }
            },
            "required": [
              "lat",
              "lng"
            ],
            "additionalProperties": false,
            "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
          },
          "phone": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The phone number of the contract ownerEmail"
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
          },
          "adminunits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of adminunit"
                },
                "customerName": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "name of customer"
                }
              },
              "required": [
                "idx",
                "customerName"
              ],
              "additionalProperties": false
            },
            "description": "List of adminunits who belong to this contract (filled only for server contracts)"
          },
          "euTaxId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The Tax identification code if the customer is a non-German EU resident"
          },
          "accountingMonths": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of months which are accounted for within a single invoice"
          },
          "taxType": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
          },
          "billingDay": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The day of the month on which an invoice is being sent out, if the contract is due."
          },
          "notes": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Some notes about this customer in text form which is being edited by the cluster admin."
          },
          "invoiceData": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Additional text which is being printed on each invoice for this contract."
          },
          "staffAccounts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of allowed employee accounts on the contract"
          },
          "totalDriveQuota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The maximum allowed data of drive space on the contract. Unit is MB."
          },
          "malwareCheckRight": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if malware checking is configured on the contract."
          },
          "hashGeneration": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if hashsum calculation is configured on the contract."
          },
          "personalMailbox": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if personal mailboxes for all users are configured on the contract."
          },
          "companyMailbox": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if company mailboxes are configured on the contract."
          },
          "extendedStorageTime": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if the contract includes extended storage periods."
          },
          "invoiceSnailMail": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
          },
          "maintenanceContract": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "True if this contract includes technical maintenance for a on-premise installation."
          },
          "usedStaffAccounts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Number of used employee accounts. Readonly."
          },
          "usedDriveSpace": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of data stored in Drive. Unit is Bytes. Readonly."
          },
          "monthlyCost": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Monthly cost of this contract without discount deducted. Unit is euro cents. Readonly."
          },
          "lastTimeBilled": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date when the last invoice was sent out for this contract. ReadOnly."
          },
          "nextTimeBilled": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date when the next invoice will be sent out for this contract. ReadOnly."
          },
          "discountPercentage": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Discount given on this contract. Unit is a percentage."
          },
          "personalUsers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "email of user"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "name of user"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of users who belong to this contract (filled only for personal contracts)"
          },
          "publicBoxes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "ID of the publicbox"
                },
                "title": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Title of the publicbox"
                },
                "quota": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "Maximum amount of monthly data allowed to send via this publicbox. Unit is MB."
                }
              },
              "required": [
                "idx",
                "title",
                "quota"
              ],
              "additionalProperties": false
            },
            "description": "List of company publicboxes configured on the contract"
          },
          "prices": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "ID of the price component"
                },
                "cents": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "price of this component. Unit is euro cents."
                }
              },
              "required": [
                "idx",
                "cents"
              ],
              "additionalProperties": false
            },
            "description": "List of prices for components valid for this contract"
          }
        },
        "required": [
          "active",
          "billing",
          "ownerEmail",
          "type",
          "timestampStart",
          "timestampEnd",
          "marketingName",
          "postalAddress",
          "phone",
          "email",
          "adminunits",
          "euTaxId",
          "accountingMonths",
          "taxType",
          "paymentMethod",
          "billingDay",
          "notes",
          "invoiceData",
          "staffAccounts",
          "totalDriveQuota",
          "malwareCheckRight",
          "hashGeneration",
          "personalMailbox",
          "companyMailbox",
          "extendedStorageTime",
          "invoiceSnailMail",
          "maintenanceContract",
          "usedStaffAccounts",
          "usedDriveSpace",
          "monthlyCost",
          "lastTimeBilled",
          "nextTimeBilled",
          "discountPercentage",
          "personalUsers",
          "publicBoxes",
          "prices"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "contracts"
  ]
}

Get owned contracts
GET/contracts

Returns a list of contracts the current user owns. This user does not need to be an administrator.


GET https://dev.skalio.net/teambeam//contracts/scaleprice?accounts=12&bidirectional=true
Responses200
Headers
Content-Type: application/json
Body
{
  "price": 486.17
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "description": "The price per account"
    }
  }
}

Calculate scaled price
GET/contracts/scaleprice?accounts={accounts}&bidirectional={bidirectional}

Calculates the price per account depending on the number of accounts, taking volume discounts into consideration.

URI Parameters
HideShow
accounts
number (required) Example: 12

amount of accounts to base the volume discount on

bidirectional
boolean (optional) Default: false Example: true

accounts shall be bidirectional


GET https://dev.skalio.net/teambeam//contracts/components
Responses200401
Headers
Content-Type: application/json
Body
{
  "availableComponents": [
    {
      "id": 1,
      "name": "Hello, world!",
      "standard": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "availableComponents": {
      "type": "array",
      "description": "List of all contract components"
    }
  }
}

Fetching a specific contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get available components
GET/contracts/components

Returns all available contract components. This call is independent of a specific contract.


GET https://dev.skalio.net/teambeam//contracts/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": false,
  "billing": false,
  "ownerEmail": "",
  "type": "",
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "marketingName": "",
  "postalAddress": "",
  "coords": {
    "lat": "",
    "lng": ""
  },
  "phone": "",
  "email": "",
  "adminunits": [
    {
      "idx": "",
      "customerName": ""
    }
  ],
  "euTaxId": "",
  "accountingMonths": 0,
  "taxType": "",
  "paymentMethod": "",
  "billingDay": 0,
  "notes": "",
  "invoiceData": "",
  "staffAccounts": 0,
  "totalDriveQuota": 0,
  "malwareCheckRight": false,
  "hashGeneration": false,
  "personalMailbox": false,
  "companyMailbox": false,
  "extendedStorageTime": false,
  "invoiceSnailMail": false,
  "maintenanceContract": false,
  "usedStaffAccounts": 0,
  "usedDriveSpace": 0,
  "monthlyCost": 0,
  "lastTimeBilled": "2037-12-31T15:29:59+00:00",
  "nextTimeBilled": "2037-12-31T15:29:59+00:00",
  "discountPercentage": 0,
  "personalUsers": [
    {
      "email": "",
      "realname": ""
    }
  ],
  "publicBoxes": [
    {
      "idx": 0,
      "title": "",
      "quota": 0
    }
  ],
  "prices": [
    {
      "idx": 0,
      "cents": 0
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "marketingName": {
      "type": "string",
      "description": "The name of the contract type which is used in communication with the customer"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract ownerEmail"
    },
    "coords": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "string",
          "description": "the geographical latitude of the customers address"
        },
        "lng": {
          "type": "string",
          "description": "the geographical longitude of the customers address"
        }
      },
      "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract ownerEmail"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "usedStaffAccounts": {
      "type": "number",
      "description": "Number of used employee accounts. Readonly."
    },
    "usedDriveSpace": {
      "type": "number",
      "description": "Amount of data stored in Drive. Unit is Bytes. Readonly."
    },
    "monthlyCost": {
      "type": "number",
      "description": "Monthly cost of this contract without discount deducted. Unit is euro cents. Readonly."
    },
    "lastTimeBilled": {
      "type": "string",
      "description": "date when the last invoice was sent out for this contract. ReadOnly."
    },
    "nextTimeBilled": {
      "type": "string",
      "description": "date when the next invoice will be sent out for this contract. ReadOnly."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}

Fetching a specific contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this contract has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no contract found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get specific contract
GET/contracts/{idx}

Returns the requested contract. The current user must have access to it.

URI Parameters
HideShow
idx
number (required) 

ID of a contract


GET https://dev.skalio.net/teambeam//contracts/idx/pdf
Responses200401403404
Headers
Content-Type: application/pdf
Body
[... PDF as binary data ...]

Fetching a specific contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this contract has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no contract found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get contract PDF overview
GET/contracts/{idx}/pdf

Returns a pdf overview of the contracts details

URI Parameters
HideShow
idx
number (required) 

ID of a contract


GET https://dev.skalio.net/teambeam//contracts/clusterlist?filter=filter
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "contracts": [
    {
      "idx": 1,
      "active": true,
      "billing": true,
      "ownerEmail": "Hello, world!",
      "type": "Hello, world!",
      "timestampStart": "2037-12-31T15:29:59+00:00",
      "timestampEnd": "2037-12-31T15:29:59+00:00",
      "marketingName": "Hello, world!",
      "postalAddress": "Hello, world!",
      "coords": {
        "lat": "Hello, world!",
        "lng": "Hello, world!"
      },
      "phone": "Hello, world!",
      "email": "Hello, world!",
      "adminunits": [
        {
          "idx": "Hello, world!",
          "customerName": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "contracts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "billing": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the customer will get billed"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "email of contract owner"
          },
          "type": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Type of contract, either 'server', 'personal' or 'mdd'"
          },
          "timestampStart": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Start date of the contract"
          },
          "timestampEnd": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "End date of the contract"
          },
          "marketingName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The name of the contract type which is used in communication with the customer"
          },
          "postalAddress": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The postal address of the contract ownerEmail"
          },
          "coords": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical latitude of the customers address"
              },
              "lng": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical longitude of the customers address"
              }
            },
            "required": [
              "lat",
              "lng"
            ],
            "additionalProperties": false,
            "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
          },
          "phone": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The phone number of the contract ownerEmail"
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
          },
          "adminunits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of adminunit"
                },
                "customerName": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "name of customer"
                }
              },
              "required": [
                "idx",
                "customerName"
              ],
              "additionalProperties": false
            },
            "description": "List of adminunits who belong to this contract (filled only for server contracts)"
          }
        },
        "required": [
          "active",
          "billing",
          "ownerEmail",
          "type",
          "timestampStart",
          "timestampEnd",
          "marketingName",
          "postalAddress",
          "phone",
          "email",
          "adminunits"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "contracts"
  ]
}

Fetching all contracts requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching all contracts has been denied because the authenticated user does not cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch all contracts on cluster
GET/contracts/clusterlist?filter={filter}

Fetches all contracts residing on the cluster. You may filter by status.

Please note: cluster-Admin-privileges are required to access this resource.

Please note: This resource returns Contract objects with a reduced set of values due to performance reasons.

URI Parameters
HideShow
filter
enum (optional) 

If present, the filter keyword restricts results. Can be one of these values:

  • active - Get only active contracts

  • inactive - Get only inactive contracts


GET https://dev.skalio.net/teambeam//contracts/search?q=q
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "active": true,
      "billing": true,
      "ownerEmail": "Hello, world!",
      "type": "Hello, world!",
      "timestampStart": "2037-12-31T15:29:59+00:00",
      "timestampEnd": "2037-12-31T15:29:59+00:00",
      "marketingName": "Hello, world!",
      "postalAddress": "Hello, world!",
      "coords": {
        "lat": "Hello, world!",
        "lng": "Hello, world!"
      },
      "phone": "Hello, world!",
      "email": "Hello, world!",
      "adminunits": [
        {
          "idx": "Hello, world!",
          "customerName": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "billing": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the customer will get billed"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "email of contract owner"
          },
          "type": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Type of contract, either 'server', 'personal' or 'mdd'"
          },
          "timestampStart": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Start date of the contract"
          },
          "timestampEnd": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "End date of the contract"
          },
          "marketingName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The name of the contract type which is used in communication with the customer"
          },
          "postalAddress": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The postal address of the contract ownerEmail"
          },
          "coords": {
            "type": "object",
            "properties": {
              "lat": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical latitude of the customers address"
              },
              "lng": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the geographical longitude of the customers address"
              }
            },
            "required": [
              "lat",
              "lng"
            ],
            "additionalProperties": false,
            "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
          },
          "phone": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The phone number of the contract ownerEmail"
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
          },
          "adminunits": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of adminunit"
                },
                "customerName": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "name of customer"
                }
              },
              "required": [
                "idx",
                "customerName"
              ],
              "additionalProperties": false
            },
            "description": "List of adminunits who belong to this contract (filled only for server contracts)"
          }
        },
        "required": [
          "active",
          "billing",
          "ownerEmail",
          "type",
          "timestampStart",
          "timestampEnd",
          "marketingName",
          "postalAddress",
          "phone",
          "email",
          "adminunits"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Searching for contracts requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for contracts has been denied because the authenticated user does not cluster-admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search contracts
GET/contracts/search?q={q}

Searches for contracts on the cluster by providing a search keyword.

Please note: cluster-Admin-privileges are required to access this resource.

Please note: This resource returns Contract objects with a reduced set of values due to performance reasons.

URI Parameters
HideShow
q
String (required) 

search keyword


GET https://dev.skalio.net/teambeam//contracts/finance
Responses200401403
Headers
Content-Type: application/json
Body
{
  "activeContractCount": 1,
  "totalMonthlyRevenue": 1,
  "earningsCurrentYear": 1,
  "earningsPreviousYear": 1,
  "earningsCurrentQuarter": 1,
  "earningsPreviousQuarter": 1,
  "openItemsTotal": 1,
  "openItemsCount": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "activeContractCount": {
      "type": "number"
    },
    "totalMonthlyRevenue": {
      "type": "number"
    },
    "earningsCurrentYear": {
      "type": "number"
    },
    "earningsPreviousYear": {
      "type": "number"
    },
    "earningsCurrentQuarter": {
      "type": "number"
    },
    "earningsPreviousQuarter": {
      "type": "number"
    },
    "openItemsTotal": {
      "type": "number"
    },
    "openItemsCount": {
      "type": "number"
    }
  }
}

Fetching financial data requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching financial data has been denied because the authenticated user does not cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Retrieve finance data
GET/contracts/finance

Gets relevant data regarding the financial status of active contracts.

Please note: Cluster-Admin-privileges are required to access this resource.


POST https://dev.skalio.net/teambeam//contracts
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "active": true,
  "billing": true,
  "ownerEmail": "Hello, world!",
  "type": "Hello, world!",
  "postalAddress": "Hello, world!",
  "phone": "Hello, world!",
  "email": "Hello, world!",
  "euTaxId": "Hello, world!",
  "accountingMonths": 1,
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "taxType": "Hello, world!",
  "paymentMethod": "Hello, world!",
  "billingDay": 1,
  "notes": "Hello, world!",
  "invoiceData": "Hello, world!",
  "staffAccounts": 1,
  "totalDriveQuota": 1,
  "malwareCheckRight": true,
  "hashGeneration": true,
  "personalMailbox": true,
  "companyMailbox": true,
  "extendedStorageTime": true,
  "invoiceSnailMail": true,
  "maintenanceContract": true,
  "discountPercentage": 1,
  "adminunits": [
    {
      "idx": "Hello, world!"
    }
  ],
  "personalUsers": [
    {
      "email": "Hello, world!"
    }
  ],
  "publicBoxes": [
    {
      "idx": 1
    }
  ],
  "prices": [
    {
      "idx": 1,
      "cents": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract owner"
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract owner"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}
Responses201401403

The contract has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": false,
  "billing": false,
  "ownerEmail": "",
  "type": "",
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "marketingName": "",
  "postalAddress": "",
  "coords": {
    "lat": "",
    "lng": ""
  },
  "phone": "",
  "email": "",
  "adminunits": [
    {
      "idx": "",
      "customerName": ""
    }
  ],
  "euTaxId": "",
  "accountingMonths": 0,
  "taxType": "",
  "paymentMethod": "",
  "billingDay": 0,
  "notes": "",
  "invoiceData": "",
  "staffAccounts": 0,
  "totalDriveQuota": 0,
  "malwareCheckRight": false,
  "hashGeneration": false,
  "personalMailbox": false,
  "companyMailbox": false,
  "extendedStorageTime": false,
  "invoiceSnailMail": false,
  "maintenanceContract": false,
  "usedStaffAccounts": 0,
  "usedDriveSpace": 0,
  "monthlyCost": 0,
  "lastTimeBilled": "2037-12-31T15:29:59+00:00",
  "nextTimeBilled": "2037-12-31T15:29:59+00:00",
  "discountPercentage": 0,
  "personalUsers": [
    {
      "email": "",
      "realname": ""
    }
  ],
  "publicBoxes": [
    {
      "idx": 0,
      "title": "",
      "quota": 0
    }
  ],
  "prices": [
    {
      "idx": 0,
      "cents": 0
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "marketingName": {
      "type": "string",
      "description": "The name of the contract type which is used in communication with the customer"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract ownerEmail"
    },
    "coords": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "string",
          "description": "the geographical latitude of the customers address"
        },
        "lng": {
          "type": "string",
          "description": "the geographical longitude of the customers address"
        }
      },
      "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract ownerEmail"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "usedStaffAccounts": {
      "type": "number",
      "description": "Number of used employee accounts. Readonly."
    },
    "usedDriveSpace": {
      "type": "number",
      "description": "Amount of data stored in Drive. Unit is Bytes. Readonly."
    },
    "monthlyCost": {
      "type": "number",
      "description": "Monthly cost of this contract without discount deducted. Unit is euro cents. Readonly."
    },
    "lastTimeBilled": {
      "type": "string",
      "description": "date when the last invoice was sent out for this contract. ReadOnly."
    },
    "nextTimeBilled": {
      "type": "string",
      "description": "date when the next invoice will be sent out for this contract. ReadOnly."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}

Creating a contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a contract has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Contract
POST/contracts

Creates a new contract.

Please note: Cluster-Admin-privileges are required to access this resource.

It is recommended to create a new contract with only the mandatory fields and let the server fill in the remaining attributes with the server’s default. Mandatory fields for creating a new contract are:

  • ownerEmail: E-Mail address of contract ownerEmail

  • type: Type of contract, either ‘server’, ‘personal’ or ‘mdd’

  • timestampStart: Start date of the contract

  • timestampEnd: End date of the contract


POST https://dev.skalio.net/teambeam//contracts/idx/quote
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "validTimestamp": "Wed, 30 Dec 2037 23:00:00 GMT"
}
Responses201401403

The quote has been created and emailed to the requester

Headers
Content-Type: application/json
Body
{}

Creating a contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a contract has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Quote for Contract
POST/contracts/{idx}/quote

Creates a new quote for the given contract and sends an e-mail containing the quote PDF the the requesting person.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a contract


PUT https://dev.skalio.net/teambeam//contracts/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "active": true,
  "billing": true,
  "ownerEmail": "Hello, world!",
  "type": "Hello, world!",
  "postalAddress": "Hello, world!",
  "phone": "Hello, world!",
  "email": "Hello, world!",
  "euTaxId": "Hello, world!",
  "accountingMonths": 1,
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "taxType": "Hello, world!",
  "paymentMethod": "Hello, world!",
  "billingDay": 1,
  "notes": "Hello, world!",
  "invoiceData": "Hello, world!",
  "staffAccounts": 1,
  "totalDriveQuota": 1,
  "malwareCheckRight": true,
  "hashGeneration": true,
  "personalMailbox": true,
  "companyMailbox": true,
  "extendedStorageTime": true,
  "invoiceSnailMail": true,
  "maintenanceContract": true,
  "discountPercentage": 1,
  "adminunits": [
    {
      "idx": "Hello, world!"
    }
  ],
  "personalUsers": [
    {
      "email": "Hello, world!"
    }
  ],
  "publicBoxes": [
    {
      "idx": 1
    }
  ],
  "prices": [
    {
      "idx": 1,
      "cents": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract owner"
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract owner"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}
Responses200401403404

The contract has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": false,
  "billing": false,
  "ownerEmail": "",
  "type": "",
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "marketingName": "",
  "postalAddress": "",
  "coords": {
    "lat": "",
    "lng": ""
  },
  "phone": "",
  "email": "",
  "adminunits": [
    {
      "idx": "",
      "customerName": ""
    }
  ],
  "euTaxId": "",
  "accountingMonths": 0,
  "taxType": "",
  "paymentMethod": "",
  "billingDay": 0,
  "notes": "",
  "invoiceData": "",
  "staffAccounts": 0,
  "totalDriveQuota": 0,
  "malwareCheckRight": false,
  "hashGeneration": false,
  "personalMailbox": false,
  "companyMailbox": false,
  "extendedStorageTime": false,
  "invoiceSnailMail": false,
  "maintenanceContract": false,
  "usedStaffAccounts": 0,
  "usedDriveSpace": 0,
  "monthlyCost": 0,
  "lastTimeBilled": "2037-12-31T15:29:59+00:00",
  "nextTimeBilled": "2037-12-31T15:29:59+00:00",
  "discountPercentage": 0,
  "personalUsers": [
    {
      "email": "",
      "realname": ""
    }
  ],
  "publicBoxes": [
    {
      "idx": 0,
      "title": "",
      "quota": 0
    }
  ],
  "prices": [
    {
      "idx": 0,
      "cents": 0
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "marketingName": {
      "type": "string",
      "description": "The name of the contract type which is used in communication with the customer"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract ownerEmail"
    },
    "coords": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "string",
          "description": "the geographical latitude of the customers address"
        },
        "lng": {
          "type": "string",
          "description": "the geographical longitude of the customers address"
        }
      },
      "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract ownerEmail"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "usedStaffAccounts": {
      "type": "number",
      "description": "Number of used employee accounts. Readonly."
    },
    "usedDriveSpace": {
      "type": "number",
      "description": "Amount of data stored in Drive. Unit is Bytes. Readonly."
    },
    "monthlyCost": {
      "type": "number",
      "description": "Monthly cost of this contract without discount deducted. Unit is euro cents. Readonly."
    },
    "lastTimeBilled": {
      "type": "string",
      "description": "date when the last invoice was sent out for this contract. ReadOnly."
    },
    "nextTimeBilled": {
      "type": "string",
      "description": "date when the next invoice will be sent out for this contract. ReadOnly."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}

Updating a contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a contract has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no contract found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Contract
PUT/contracts/{idx}

Updates the specified contract.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a contract


PUT https://dev.skalio.net/teambeam//contracts/idx/masterdata
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "invoices@example.org",
  "euTaxId": "ABC123DEF456"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": false,
  "billing": false,
  "ownerEmail": "",
  "type": "",
  "timestampStart": "2037-12-31T15:29:59+00:00",
  "timestampEnd": "2037-12-31T15:29:59+00:00",
  "marketingName": "",
  "postalAddress": "",
  "coords": {
    "lat": "",
    "lng": ""
  },
  "phone": "",
  "email": "",
  "adminunits": [
    {
      "idx": "",
      "customerName": ""
    }
  ],
  "euTaxId": "",
  "accountingMonths": 0,
  "taxType": "",
  "paymentMethod": "",
  "billingDay": 0,
  "notes": "",
  "invoiceData": "",
  "staffAccounts": 0,
  "totalDriveQuota": 0,
  "malwareCheckRight": false,
  "hashGeneration": false,
  "personalMailbox": false,
  "companyMailbox": false,
  "extendedStorageTime": false,
  "invoiceSnailMail": false,
  "maintenanceContract": false,
  "usedStaffAccounts": 0,
  "usedDriveSpace": 0,
  "monthlyCost": 0,
  "lastTimeBilled": "2037-12-31T15:29:59+00:00",
  "nextTimeBilled": "2037-12-31T15:29:59+00:00",
  "discountPercentage": 0,
  "personalUsers": [
    {
      "email": "",
      "realname": ""
    }
  ],
  "publicBoxes": [
    {
      "idx": 0,
      "title": "",
      "quota": 0
    }
  ],
  "prices": [
    {
      "idx": 0,
      "cents": 0
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "billing": {
      "type": "boolean",
      "description": "true if the customer will get billed"
    },
    "ownerEmail": {
      "type": "string",
      "description": "email of contract owner"
    },
    "type": {
      "type": "string",
      "description": "Type of contract, either 'server', 'personal' or 'mdd'"
    },
    "timestampStart": {
      "type": "string",
      "description": "Start date of the contract"
    },
    "timestampEnd": {
      "type": "string",
      "description": "End date of the contract"
    },
    "marketingName": {
      "type": "string",
      "description": "The name of the contract type which is used in communication with the customer"
    },
    "postalAddress": {
      "type": "string",
      "description": "The postal address of the contract ownerEmail"
    },
    "coords": {
      "type": "object",
      "properties": {
        "lat": {
          "type": "string",
          "description": "the geographical latitude of the customers address"
        },
        "lng": {
          "type": "string",
          "description": "the geographical longitude of the customers address"
        }
      },
      "description": "the geographical coordinates of the customers address. This field may be missing if geocoding faile."
    },
    "phone": {
      "type": "string",
      "description": "The phone number of the contract ownerEmail"
    },
    "email": {
      "type": "string",
      "description": "A e-mail address to which the invoices of the contract will be sent (additionally to the contract owner's e-mail address)"
    },
    "adminunits": {
      "type": "array",
      "description": "List of adminunits who belong to this contract (filled only for server contracts)"
    },
    "euTaxId": {
      "type": "string",
      "description": "The Tax identification code if the customer is a non-German EU resident"
    },
    "accountingMonths": {
      "type": "number",
      "description": "The number of months which are accounted for within a single invoice"
    },
    "taxType": {
      "type": "string",
      "description": "The type of taxation this contract is subject to. Either one of 'de', 'eu' or 'world'"
    },
    "paymentMethod": {
      "type": "string",
      "description": "The method of paying the invoices of this contract. Either one of 'transfer', 'collection'"
    },
    "billingDay": {
      "type": "number",
      "description": "The day of the month on which an invoice is being sent out, if the contract is due."
    },
    "notes": {
      "type": "string",
      "description": "Some notes about this customer in text form which is being edited by the cluster admin."
    },
    "invoiceData": {
      "type": "string",
      "description": "Additional text which is being printed on each invoice for this contract."
    },
    "staffAccounts": {
      "type": "number",
      "description": "The number of allowed employee accounts on the contract"
    },
    "totalDriveQuota": {
      "type": "number",
      "description": "The maximum allowed data of drive space on the contract. Unit is MB."
    },
    "malwareCheckRight": {
      "type": "boolean",
      "description": "True if malware checking is configured on the contract."
    },
    "hashGeneration": {
      "type": "boolean",
      "description": "True if hashsum calculation is configured on the contract."
    },
    "personalMailbox": {
      "type": "boolean",
      "description": "True if personal mailboxes for all users are configured on the contract."
    },
    "companyMailbox": {
      "type": "boolean",
      "description": "True if company mailboxes are configured on the contract."
    },
    "extendedStorageTime": {
      "type": "boolean",
      "description": "True if the contract includes extended storage periods."
    },
    "invoiceSnailMail": {
      "type": "boolean",
      "description": "True if the cutomers will get a printed invoice additionally to the e-mail invoice."
    },
    "maintenanceContract": {
      "type": "boolean",
      "description": "True if this contract includes technical maintenance for a on-premise installation."
    },
    "usedStaffAccounts": {
      "type": "number",
      "description": "Number of used employee accounts. Readonly."
    },
    "usedDriveSpace": {
      "type": "number",
      "description": "Amount of data stored in Drive. Unit is Bytes. Readonly."
    },
    "monthlyCost": {
      "type": "number",
      "description": "Monthly cost of this contract without discount deducted. Unit is euro cents. Readonly."
    },
    "lastTimeBilled": {
      "type": "string",
      "description": "date when the last invoice was sent out for this contract. ReadOnly."
    },
    "nextTimeBilled": {
      "type": "string",
      "description": "date when the next invoice will be sent out for this contract. ReadOnly."
    },
    "discountPercentage": {
      "type": "number",
      "description": "Discount given on this contract. Unit is a percentage."
    },
    "personalUsers": {
      "type": "array",
      "description": "List of users who belong to this contract (filled only for personal contracts)"
    },
    "publicBoxes": {
      "type": "array",
      "description": "List of company publicboxes configured on the contract"
    },
    "prices": {
      "type": "array",
      "description": "List of prices for components valid for this contract"
    }
  }
}

Update contract master-data
PUT/contracts/{idx}/masterdata

Updates the master-data of the specific contract.

Please note: The current user must have write-access to the contract

Master-data includes:

  • postalAddress: address to be shown on the invoice

  • email: an optional, additional invoice receiver (set to empty string to delete)

  • phone: phone number, to be shown on the invoice

  • euTaxId: european VAT ID

The request body can contain all or only a set of fields. Only those fields that are submitted will be updated.

URI Parameters
HideShow
idx
number (required) 

ID of a contract


DELETE https://dev.skalio.net/teambeam//contracts/idx
Responses204401403
This response has no content.

Deleting a contract requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a contract has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Contract
DELETE/contracts/{idx}

Deletes the specified contract.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a contract


Download Resource

The download resource provides access to the files of transfers.

Dowload

GET https://dev.skalio.net/teambeam//download/7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831/0/quarterly_results.xlsx?embed
RequestsComplete downloadDownload ResumeConditional Get

This is the default scenario. The full file is downloaded.

Headers
Silly-Header: makes documentation renderer happy, otherwise unnecessary
Responses200401403404509

Header Content-Length is shown for full file downloads (no range-request) where filesize is les than 2GiB.

Header Content-Type is set depending on the payload.

Headers
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: attachment; filename="quarterly_results.xlsx"; filename*=utf-8''quarterly_results.xlsx
Last-Modified: Mon, 30 May 2016 11:51:49 +0000
Expires: Thu, 02 Jun 2016 20:09:53 +0000
Etag: "41f810e561c65330ada00a23c9f232b5"
Cache-control: public, max-age=21600
Content-Length: 23401
Body
[... payload ...]

If the transfer requires authentication and none is provided.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authorization required."
  }
}

Access to the files of the transfer is not granted. This can have various reasons; check the details of the exception.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "This request is forbidden.",
    "details": [
      "This transfer may only be downloaded once."
    ],
    "code": 403048
  }
}

The transfer has expired or does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "Transfer does not exist or has expired",
    "code": 0
  }
}

The number of current requests exceeds the allowed levels.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "Maximum concurrent downloads reached.",
    "code": 0
  }
}

To download only a slice of the data, specify a valid range retrieval request.

Only a single range is supported. When multiple ranges are requested, only the first range will be processed.

Headers
Range: bytes=1000-1999
Responses206416

The Content-range header shows the returned slice.

Header Content-Type is set depending on the payload.

Headers
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: attachment; filename="quarterly_results.xlsx"; filename*=utf-8''quarterly_results.xlsx
Last-Modified: Mon, 30 May 2016 11:51:49 +0000
Expires: Thu, 02 Jun 2016 20:09:53 +0000
Etag: "41f810e561c65330ada00a23c9f232b5"
Cache-control: public, max-age=21600
Content-Range: 1000-1999/23401
Content-Length: 1000
Body
[... payload ...]

Invalid byte ranges will result in a Requested Range Not Satisfiable response. The available content range is indicated in header Content-Range.

Headers
Content-Type: application/json
Content-Range: */23401
Body
{
  "error": {
    "code": 0,
    "message": "The requested range cannot be satisfied."
  }
}
Headers
If-None-Match: 41f810e561c65330ada00a23c9f232b5
Responses304
This response has no content.

Download File
GET/download/{recipientId}/{index}/{filename}?{embed}

Downloads a file of a transfer.

Specifying the filename in the request URL is optional, but recommended for browser clients. If specified, on Microsoft Windows the browser will offer to save the file with the given filename. If the filename is given, it must match the stored filename exactly, otherwise the request will be rejected.

If the query parameter embed is specified, the resource will not send header Content-Disposition. This is useful for direct rendering of the payload in a browser window.

The server supports partial downloads and download-resume through the Range-header.

The server supports conditional downloads through the If-none-match-header.

URI Parameters
HideShow
recipientId
string (required) Example: 7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831

The ID of the transfer

index
number (required) Example: 0

The index of the file in the transfer

filename
string (optional) Example: quarterly_results.xlsx

The name of the file as stored on the system

embed
string (optional) 

Indicates that the file shall be rendered by the client


GET https://dev.skalio.net/teambeam//download/7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831/zip?fodtieczoq;fodtied3je=objectId[;objectId]
Responses200401403404429
Headers
Content-Type: application/zip
Content-Disposition: attachment; filename="Transfer from Bob 2016-05-30 135149.zip"; filename*=utf-8''Transfer%20from%20Bob%202016-05-30%20135149.zip Last-Modified: Mon, 30 May 2016 11:51:49 +0000
Expires: Thu, 02 Jun 2016 20:09:53 +0000
Etag: "be5537f8985908a8f9add39703592180"
Cache-control: public, max-age=21600
Body
[... payload ...]

If the transfer requires authentication and none is provided.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authorization required."
  }
}

Access to the files of the transfer is not granted. This can have various reasons; check the details of the exception.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "This request is forbidden.",
    "details": [
      "This transfer may only be downloaded once."
    ],
    "code": 403048
  }
}

The transfer has expired or does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "Transfer does not exist or has expired",
    "code": 0
  }
}

The number of current requests exceeds the allowed levels.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "Maximum concurrent downloads reached.",
    "code": 0
  }
}

Download archive of files
GET/download/{recipientId}/zip?{objectIds}=objectId[;objectId]

Downloads the files of a transfer in a single Zip-Archive. Optionally the client can select a subset of files to be included in the Zip-Archive.

The server supports conditional downloads through the If-none-match-header. Download-resume is not supported.

URI Parameters
HideShow
recipientId
string (required) Example: 7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831

The ID of the transfer.

objectIds
string (optional) Example: fodtieczoq;fodtied3je

Optional semicolon-separated list of objectIds, to allow selective downloading of files.


Environment Resource

Access to this resource does not require an authenticated session.

Environment

This resource provides generic information relevant to the adminunit or to the storagehost where the request is handled. It informs about URLs to important webpages and documents and explains which features are enabled.

The environment information can change from time to time (typically when an administrator changes settings), hence it is advisable to cache it. The recommended strategy is to request it once per session and use a cached copy for the duration of the session.

Conditional requests, using the If-None-Match header, are supported.

GET https://dev.skalio.net/teambeam//environment
Responses200
Headers
Content-Type: application/json
Body
{
  "server_version": "2.8.0",
  "storagehostIdx": 1,
  "product_name": "TeamBeam",
  "product_url": "https://www.teambeam.de/",
  "provider_name": "Skalio",
  "provider_url": "https://www.skalio.com/",
  "data_privacy_url_de": "Hello, world!",
  "data_privacy_url_en": "Hello, world!",
  "system_status_url": "https://status.teambeam.de",
  "available_lang": [
    "de_DE"
  ],
  "offered_clients": [
    "java"
  ],
  "motd": "Hello, world!",
  "show_remote_access": true,
  "password_autocomplete": true,
  "self_register_promo": true,
  "freemiumEnabled": true,
  "locale": "de_DE",
  "mypublic_enabled": true,
  "privacyModeEnabled": true,
  "keepMeLoggedInChecked": true,
  "minimumPasswordLength": 4,
  "extendedPasswordCriteriaEnabled": true,
  "transferPasswordRequired": true,
  "ttlEnabled": true,
  "priorityEnabled": true,
  "recipientAuthenticationEnabled": true,
  "inviteEnabled": true,
  "portalUrl": "https://teambeam.example.org/my/",
  "timeZone": "Europe/Berlin",
  "expiration": {
    "values": [
      1
    ],
    "default": 1
  },
  "privacyStatmentUrl": "Hello, world!",
  "legalNoticeUrl": "Hello, world!",
  "browserLanguage": "de_DE",
  "self_register_enabled": true,
  "self_register_url": "Hello, world!",
  "passwordRecoveryEnabled": true,
  "passwordRecoveryMessage": "Hello, world!",
  "lang": "de_DE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "server_version": {
      "type": "string",
      "description": "The backend version identifier"
    },
    "storagehostIdx": {
      "type": "number",
      "description": "The numeric id of the current storagehost"
    },
    "product_name": {
      "type": "string",
      "description": "The name of the product, for whitelabelling"
    },
    "product_url": {
      "type": "string",
      "description": "The URL of the product, for whitelabelling"
    },
    "provider_name": {
      "type": "string",
      "description": "The name of the product provider, for whitelabelling"
    },
    "provider_url": {
      "type": "string",
      "description": "The URL of the provider, for whitelabelling"
    },
    "data_privacy_url_de": {
      "type": "string",
      "description": "URL to an information package in german language, for whitelabelling"
    },
    "data_privacy_url_en": {
      "type": "string",
      "description": "URL to an information package in english language, for whitelabelling"
    },
    "system_status_url": {
      "type": "string",
      "description": "URL to a status page, shown when the system is in maintenance. For whitelabelling."
    },
    "available_lang": {
      "type": "array",
      "description": "The languages supported on this server"
    },
    "offered_clients": {
      "type": "array",
      "description": "The clients available on this server"
    },
    "motd": {
      "type": "string",
      "description": "A message for logged in users. It is displayed on the frontpage."
    },
    "show_remote_access": {
      "type": "boolean",
      "description": "If true, administrators can control remote access. For on-premise systems only."
    },
    "password_autocomplete": {
      "type": "boolean",
      "description": "If false, the browser shall be instructed not to offer to store the password in its password manager. Not guaranteed that browsers will adhere to this."
    },
    "self_register_promo": {
      "type": "boolean",
      "description": "deprecated, use `freemiumEnabled` instead"
    },
    "freemiumEnabled": {
      "type": "boolean",
      "description": "If true, the cluster is offering a \"Freemium\"-style service."
    },
    "locale": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP",
        "de_DE"
      ],
      "description": "The default locale of the server"
    },
    "mypublic_enabled": {
      "type": "boolean",
      "description": "If true, users can create their personal mailboxes"
    },
    "privacyModeEnabled": {
      "type": "boolean",
      "description": "If true, administrators will see only reduced information when browsing the ongoing transfers"
    },
    "keepMeLoggedInChecked": {
      "type": "boolean",
      "description": "If true, the auto-login checkbox will be activated by default"
    },
    "minimumPasswordLength": {
      "type": "number",
      "description": "The minimum number of characters a password must have"
    },
    "extendedPasswordCriteriaEnabled": {
      "type": "boolean",
      "description": "If true, a password must adhere to the extended password complexity rules"
    },
    "transferPasswordRequired": {
      "type": "boolean",
      "description": "If true, every new transfer must be password protected"
    },
    "ttlEnabled": {
      "type": "boolean",
      "description": "If true, senders can choose the expiration time when sending a new transfer"
    },
    "priorityEnabled": {
      "type": "boolean",
      "description": "If true, senders can choose the priority of the notification email when sending a new transfer"
    },
    "recipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, the recipient of a transfer must be authenticated in order to access the transfer or its files"
    },
    "inviteEnabled": {
      "type": "boolean",
      "description": "If true, the server supports users sending invitations to new users. Additional privileges are required to actually use this functionality."
    },
    "portalUrl": {
      "type": "string",
      "description": "Full URL of the portal of this server"
    },
    "timeZone": {
      "type": "string",
      "description": "The default timezone of this server"
    },
    "expiration": {
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "description": "Allowed values, in days"
        },
        "default": {
          "type": "number",
          "description": "Default value, in days"
        }
      },
      "description": "Describes the allowed values for setting the expiration time of new transfers"
    },
    "privacyStatmentUrl": {
      "type": "string",
      "description": "Customer-provided URL to a privacy statement. If set, pages show this URL in their footer."
    },
    "legalNoticeUrl": {
      "type": "string",
      "description": "Customer-provided URL to a legal notice, or terms of use. If set, pages show this URL in their footer."
    },
    "browserLanguage": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "Calculates the most applicable supported languge for the visitor, based on the value of the HTTP request header `Accept-Language` and the list of available languages."
    },
    "self_register_enabled": {
      "type": "boolean",
      "description": "If true, the current server supports self-signup"
    },
    "self_register_url": {
      "type": "string",
      "description": "If self-signup is available *somewhere* in this cluster, the URL to its portal will be shown here."
    },
    "passwordRecoveryEnabled": {
      "type": "boolean",
      "description": "If true, users are allowed to use the password-recovery functionality"
    },
    "passwordRecoveryMessage": {
      "type": "string",
      "description": "If set, this text will be shown on the password-recovery page. It can be used to point users whose accounts are remotely managed by a directory service to the correct support channel."
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "Deprecated, use `locale` instead"
    }
  }
}

Fetch Environment
GET/environment

Fetches the environment for the storagehost.


GET https://dev.skalio.net/teambeam//environment/legalterms
Responses200

If no legal terms are defined, the result is an empty array.

Headers
Content-Type: application/json
Body
{
  "legalDocumentList": [
    {
      "locale": "de_DE",
      "text": "All your base are belongs to us",
      "effectiveDate": "2016-12-31T15:29:59+00:00",
      "type": "terms"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "legalDocumentList": {
      "type": "array",
      "description": "A list of legal terms. List may be empty."
    }
  }
}

Fetch Legal Terms
GET/environment/legalterms

Fetches the legal terms of use for the current host.


Message bundles

Message bundles can be used to present the user interface of a client or webpage in the chosen language of the user. The bundles are JSON-encoded documents that can be loaded into Jed-powered internationalization framework (also here).

Please be aware that this resource only provides a part of the complete message catalog. It may be necessary to combine multiple message bundles from different sources.

Message bundles change rarely and should be cached locally. When fetching a message bundle, it is good practice to make conditional requests, using the If-None-Match header with a previously obtained Etag.

The message bundles are created with format jed1.x. As a result, please use Jed version 1.1.0 or higher.

GET https://dev.skalio.net/teambeam//environment/i18n/locale?type=type
Responses200403
Headers
Content-Type: application/json
Body
{
    "domain":"messages",
    "locale_data":{
        "messages":{
            "":{
                "domain":"messages",
                "plural_forms":"nplurals=2; plural=(n != 1);",
                "lang":"de_DE"
            },
            "The request cannot be fulfilled.":["Der Aufruf kann nicht ausgeführt werden."],
            "The data cannot be parsed. Please send well-formed requests.":["Das Format der Daten ist nicht korrekt. Bitte senden Sie korrekte Daten."],
            ... (message bundle continues) ...
        }
    }
}

If the requested locale is not allowed on the storagehost, the request will be denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 403052,
    "message": "This request is forbidden.",
    "details": [
      "The requested locale is not available."
    ]
  }
}

Fetch message bundle
GET/environment/i18n/{locale}?type={type}

Fetches the message bundle for the given locale.

URI Parameters
HideShow
locale
enum (required) 

Choices: de_DE en_US fr_FR ru_RU ko_KR zh_CN zh_TW ja_JP

type
enum (optional) 

If present, it defines the format type of the message bundle. Can be one of these values:

  • json - JSON-encoded and compatible with JED (default)

  • po - GNU Gettext PO format


Folders Resource

Folders are containers in the TeamBeam Drive product option. Folders can contain other folders and/or transfers. All children of a folder must have distinct names.

Folder Type

Folders are of one the following types:

  • personal: A folder in the personal drive of the individual user

    • Only the owner has access to the drive, its subfolders and transfers.
    • Only one root-folder exists, whose name cannot be changed.
    • The user’s personal drive quota applies.
  • shared: A team-folder with shared access

    • Access to users is granted as per the accesslist.
    • Multiple root folders can be created, with different owners and different accesslists.
    • The contract defines the maxium available quota for all shared and download folders. Within this limit, individual root-folders can be configured with their own quota.
  • download: A public folder without access control

    • Read-access is granted to any user.

Folder type is defined only on a root-folder (a folder parentIdx = 0), and all subfolders inherit its type. Moving a folder from a personal drive into a shared folder will make it shared.

Access control

Most requests towards the folder resource require an authenticated session.

Fetching an individual folder or its related items can be acceptable without authentication, if it is a folder of type download. In all other cases, the principal must have sufficient privileges to perform his actions.

Access control is defined only on a root-folder (a folder parentIdx = 0), and all subfolders inherit it. The following privileges exist:

  • none: The user does not have access to the folder and its (sub-)contents.

  • read: The user can access the folder and contents (transfers). The user can set his personal notification interval for the folder-tree.

  • write: The user can create and delete transfers in all folders, including the root folder.The user can change the folder structure by renaming subfolders, creating new subfolders, deleting existing subfolders and moving folders in and out of the root folder. The user cannot modify the root folder. read-privileges are included.

  • admin: The user can modify the details of a root-folder (name, quota, type) and manage the access rights for the folder-tree. The user can delete the root folder. write-privileges are included.

In order to create a new root-folder, the user’s contract must be licensed accordingly. Once created, the user becomes owner and admin of the new root-folder.

Quota Management

Quotas are always defined and returned in Megabytes (base 10), while used space is reported in Bytes. Quotas are only defined on root-folders, and they apply to all items within, including all subfolders and their transfers. Used-space is reported only on root-folders.

The personal drive uses a quota that is set per user.

The shared and download folders of a storagehost are governed by a quota defined in the contract. Additionally, users can specify a quota per root-folder that applies to all contained elements.

Moving Folders

Generally it is allowed to move folders, provided appropriate access rights are available. Additionally the following applies:

  • When moving a subfolder between root-folders, the user must have at least write-permissions on both the source- and the target-root-folders.

  • When moving a folder, all of its contained elements will be moved, too. Hence it is not allowed to move a folder into one of its children.

  • Moving a folder updates the ownership to that of the new parent folder.

  • Root-folders cannot be created by moving a subfolder into the root. They can only be created new.

  • Root-folders must remain root-folders. They cannot be moved into another folder structure where they would become a subfolder.

  • Changing the type of a root-folder (e.g. from shared to download) is not technically considered a move, but rather an update.

Notifications

For folders of type shared and download, users can activate notifications, which will inform them at the specified intervals if (and only if) something has changed within a folder. Changes can be new or deleted transfers. Notifications are defined per user on root-folders only and apply to all subfolders within. The following notification intervals can be set:

  • none: No notification (default)

  • hourly: Notifications will be sent at most one hour apart

  • daily: Notifications will be sent at once per day

  • weekly: Notifications will be sent once per week

Folders

GET https://dev.skalio.net/teambeam//folders
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "personal": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "parentIdx": 1,
      "rootFolderIdx": 1,
      "hasChildren": true,
      "type": "personal",
      "transferCount": 1,
      "directLink": "Hello, world!"
    }
  ],
  "shared": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "parentIdx": 1,
      "rootFolderIdx": 1,
      "hasChildren": true,
      "type": "personal",
      "transferCount": 1,
      "directLink": "Hello, world!"
    }
  ],
  "download": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "parentIdx": 1,
      "rootFolderIdx": 1,
      "hasChildren": true,
      "type": "personal",
      "transferCount": 1,
      "directLink": "Hello, world!"
    }
  ],
  "adminunit": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "parentIdx": 1,
      "rootFolderIdx": 1,
      "hasChildren": true,
      "type": "personal",
      "transferCount": 1,
      "directLink": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "personal": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink"
        ],
        "additionalProperties": false
      }
    },
    "shared": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink"
        ],
        "additionalProperties": false
      }
    },
    "download": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink"
        ],
        "additionalProperties": false
      }
    },
    "adminunit": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "personal",
    "shared",
    "download",
    "adminunit"
  ]
}

Fetching the users folders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List User's Folders
GET/folders

Returns the list of folders for the current user. The request must be authenticated. The returned folders are grouped into the four different drive areas.


GET https://dev.skalio.net/teambeam//folders/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "parentIdx": 1,
  "rootFolderIdx": 1,
  "hasChildren": true,
  "type": "personal",
  "transferCount": 1,
  "directLink": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type"
  ]
}

Fetching a specific folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this folder has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no folder found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Folder
GET/folders/{idx}

Fetches the specified folder.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


GET https://dev.skalio.net/teambeam//folders/idx/details
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "usedSpace": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "usedSpace": {
      "type": "number",
      "description": "Sum of bytes of all files of all transfers in this folder and all subfolders."
    }
  }
}

Fetching a specific folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this folder has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no folder found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Folder Details
GET/folders/{idx}/details

Fetches additional details of the specified folder. This contains expensive operations that are not needed in the normal folder listing.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


GET https://dev.skalio.net/teambeam//folders/idx/subfolders
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "folders": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "parentIdx": 1,
      "rootFolderIdx": 1,
      "hasChildren": true,
      "type": "personal",
      "transferCount": 1,
      "directLink": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "folders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "folders"
  ]
}

Fetching sub folders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this folder has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no folder found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get Subfolders
GET/folders/{idx}/subfolders

Fetches a list containing all subfolders below the specified folder.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


GET https://dev.skalio.net/teambeam//folders/idx/transfers
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "transfers": [
    {
      "recipientId": "",
      "isProtected": false,
      "passwordAttempts": 0,
      "isBlocked": false,
      "isLocked": false,
      "isRecipientAuthenticationEnabled": false,
      "sender": {
        "email": "",
        "realname": "",
        "portalUrl": ""
      },
      "receiver": {
        "email": "",
        "realname": "",
        "clientType": "",
        "type": "to",
        "portalUrl": ""
      },
      "uploadTimestamp": "2016-12-31T15:29:59+00:00",
      "accessTimestamp": "2016-12-31T15:29:59+00:00",
      "downloadTimestamp": "2017-01-04T15:29:59+00:00",
      "expirationTimestamp": "2017-01-14T15:29:59+00:00",
      "subject": "",
      "description": "",
      "priority": 0,
      "isInDrive": false,
      "isExpired": false,
      "isBounced": false,
      "isUnread": false,
      "malwareStatus": "",
      "processingState": "newTransfer",
      "bounceReason": "",
      "directLink": "",
      "totalFileSize": 0,
      "joinId": "",
      "anon": {},
      "files": [
        {
          "objectId": "",
          "name": "",
          "size": 0,
          "url": "",
          "hashsum": "",
          "malware": {
            "status": "",
            "text": ""
          },
          "downloadCounter": 0,
          "mimeType": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "transfers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recipientId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
          },
          "isProtected": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is additionally protected with a transfer password."
          },
          "passwordAttempts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of incorrect attempts left, before the transfer will be blocked."
          },
          "isBlocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is blocked to access due to bad password attempts."
          },
          "isLocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
          },
          "isRecipientAuthenticationEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
          },
          "sender": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer sender"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer sender"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the senders portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "receiver": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer receiver"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer receiver"
              },
              "clientType": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "to",
                  "cc",
                  "bcc"
                ],
                "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the receivers portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "clientType",
              "type",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "uploadTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was uploaded."
          },
          "accessTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was first accessed."
          },
          "downloadTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-04T15:29:59+00:00"
            ],
            "description": "The date when the transfer was last downloaded."
          },
          "expirationTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-14T15:29:59+00:00"
            ],
            "description": "The date when this transfer will automatically expire."
          },
          "subject": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's subject. Comparable to an email subject text."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's message. Comparable to an emails body text."
          },
          "folderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
          },
          "folderName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
          },
          "priority": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
          },
          "isInDrive": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer resides in a drive folder."
          },
          "isExpired": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is already expired and will be shortly deleted."
          },
          "isBounced": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
          },
          "isUnread": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not been (partly) downloaded yet."
          },
          "malwareStatus": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
          },
          "processingState": {
            "type": "string",
            "enum": [
              "newTransfer",
              "malwareScan",
              "hashCalculation",
              "notification",
              "completed"
            ],
            "description": "Current processing state."
          },
          "bounceReason": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "detailed information why a transfer email notification was not delivered."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The link which gives access to this transfer."
          },
          "totalFileSize": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The complete file size of all objects in this transfer in Bytes."
          },
          "joinId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "unique identifier for a group of transfers created from the same reservation."
          },
          "anon": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              }
            },
            "additionalProperties": false
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "objectId": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The system wide unique identifier for the file."
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The file name."
                },
                "size": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "The file size in bytes."
                },
                "url": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The download url for the file."
                },
                "hashsum": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The repeatable but non-reversable hashsum of the file. Used to have proof about the content."
                },
                "malware": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "The scan status. One of 'unknown', 'ok', 'infected', 'error'."
                    },
                    "text": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "Details of infection, if present."
                    }
                  },
                  "required": [
                    "status",
                    "text"
                  ],
                  "additionalProperties": false
                },
                "downloadCounter": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "number of times the file has been downloaded before."
                },
                "mimeType": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The mimeType of the file based on parsing the magic numbers on the backend."
                }
              },
              "required": [
                "objectId",
                "name",
                "size",
                "url",
                "hashsum",
                "malware",
                "downloadCounter",
                "mimeType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "recipientId",
          "isProtected",
          "passwordAttempts",
          "isBlocked",
          "isLocked",
          "isRecipientAuthenticationEnabled",
          "sender",
          "receiver",
          "uploadTimestamp",
          "accessTimestamp",
          "downloadTimestamp",
          "expirationTimestamp",
          "subject",
          "description",
          "priority",
          "isInDrive",
          "isExpired",
          "isBounced",
          "isUnread",
          "malwareStatus",
          "processingState",
          "bounceReason",
          "directLink",
          "totalFileSize",
          "joinId",
          "anon",
          "files"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "transfers"
  ]
}

Fetching transfers from a folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this folder has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no folder found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get Transfers
GET/folders/{idx}/transfers

Fetches a list containing all transfers of the specified folder.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


GET https://dev.skalio.net/teambeam//folders/idx/alltransfers
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "transfers": [
    {
      "recipientId": "",
      "isProtected": false,
      "passwordAttempts": 0,
      "isBlocked": false,
      "isLocked": false,
      "isRecipientAuthenticationEnabled": false,
      "sender": {
        "email": "",
        "realname": "",
        "portalUrl": ""
      },
      "receiver": {
        "email": "",
        "realname": "",
        "clientType": "",
        "type": "to",
        "portalUrl": ""
      },
      "uploadTimestamp": "2016-12-31T15:29:59+00:00",
      "accessTimestamp": "2016-12-31T15:29:59+00:00",
      "downloadTimestamp": "2017-01-04T15:29:59+00:00",
      "expirationTimestamp": "2017-01-14T15:29:59+00:00",
      "subject": "",
      "description": "",
      "priority": 0,
      "isInDrive": false,
      "isExpired": false,
      "isBounced": false,
      "isUnread": false,
      "malwareStatus": "",
      "processingState": "newTransfer",
      "bounceReason": "",
      "directLink": "",
      "totalFileSize": 0,
      "joinId": "",
      "anon": {},
      "files": [
        {
          "objectId": "",
          "name": "",
          "size": 0,
          "url": "",
          "hashsum": "",
          "malware": {
            "status": "",
            "text": ""
          },
          "downloadCounter": 0,
          "mimeType": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "transfers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recipientId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
          },
          "isProtected": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is additionally protected with a transfer password."
          },
          "passwordAttempts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of incorrect attempts left, before the transfer will be blocked."
          },
          "isBlocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is blocked to access due to bad password attempts."
          },
          "isLocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
          },
          "isRecipientAuthenticationEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
          },
          "sender": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer sender"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer sender"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the senders portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "receiver": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer receiver"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer receiver"
              },
              "clientType": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "to",
                  "cc",
                  "bcc"
                ],
                "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the receivers portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "clientType",
              "type",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "uploadTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was uploaded."
          },
          "accessTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was first accessed."
          },
          "downloadTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-04T15:29:59+00:00"
            ],
            "description": "The date when the transfer was last downloaded."
          },
          "expirationTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-14T15:29:59+00:00"
            ],
            "description": "The date when this transfer will automatically expire."
          },
          "subject": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's subject. Comparable to an email subject text."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's message. Comparable to an emails body text."
          },
          "folderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
          },
          "folderName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
          },
          "priority": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
          },
          "isInDrive": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer resides in a drive folder."
          },
          "isExpired": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is already expired and will be shortly deleted."
          },
          "isBounced": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
          },
          "isUnread": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not been (partly) downloaded yet."
          },
          "malwareStatus": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
          },
          "processingState": {
            "type": "string",
            "enum": [
              "newTransfer",
              "malwareScan",
              "hashCalculation",
              "notification",
              "completed"
            ],
            "description": "Current processing state."
          },
          "bounceReason": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "detailed information why a transfer email notification was not delivered."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The link which gives access to this transfer."
          },
          "totalFileSize": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The complete file size of all objects in this transfer in Bytes."
          },
          "joinId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "unique identifier for a group of transfers created from the same reservation."
          },
          "anon": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              }
            },
            "additionalProperties": false
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "objectId": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The system wide unique identifier for the file."
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The file name."
                },
                "size": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "The file size in bytes."
                },
                "url": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The download url for the file."
                },
                "hashsum": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The repeatable but non-reversable hashsum of the file. Used to have proof about the content."
                },
                "malware": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "The scan status. One of 'unknown', 'ok', 'infected', 'error'."
                    },
                    "text": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "Details of infection, if present."
                    }
                  },
                  "required": [
                    "status",
                    "text"
                  ],
                  "additionalProperties": false
                },
                "downloadCounter": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "number of times the file has been downloaded before."
                },
                "mimeType": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The mimeType of the file based on parsing the magic numbers on the backend."
                }
              },
              "required": [
                "objectId",
                "name",
                "size",
                "url",
                "hashsum",
                "malware",
                "downloadCounter",
                "mimeType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "recipientId",
          "isProtected",
          "passwordAttempts",
          "isBlocked",
          "isLocked",
          "isRecipientAuthenticationEnabled",
          "sender",
          "receiver",
          "uploadTimestamp",
          "accessTimestamp",
          "downloadTimestamp",
          "expirationTimestamp",
          "subject",
          "description",
          "priority",
          "isInDrive",
          "isExpired",
          "isBounced",
          "isUnread",
          "malwareStatus",
          "processingState",
          "bounceReason",
          "directLink",
          "totalFileSize",
          "joinId",
          "anon",
          "files"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "transfers"
  ]
}

Fetching transfers from a folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this folder has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no folder found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get Transfers Recursively
GET/folders/{idx}/alltransfers

Fetches a list containing all transfers of the specified folder and all of its subfolders.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


GET https://dev.skalio.net/teambeam//folders/serverlist
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "folders": [
    {
      "idx": 0,
      "name": "",
      "parentIdx": 0,
      "rootFolderIdx": 0,
      "hasChildren": false,
      "type": "personal",
      "transferCount": 0,
      "directLink": "",
      "owner": {
        "email": "",
        "realname": ""
      },
      "server": {
        "hostname": "",
        "organization": ""
      },
      "quota": 0,
      "accessList": [
        {
          "type": "none",
          "email": "",
          "realname": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "folders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this folder. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
          },
          "parentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The identifier of the top-most folder of this folder hierarchy."
          },
          "hasChildren": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this folder includes other folders."
          },
          "type": {
            "type": "string",
            "enum": [
              "personal",
              "download",
              "shared"
            ],
            "description": "The type of the folder"
          },
          "transferCount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of Transfer objects residing in this folder."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The URL of this folder."
          },
          "owner": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the folder owner"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the folder owner"
              }
            },
            "required": [
              "email",
              "realname"
            ],
            "additionalProperties": false
          },
          "server": {
            "type": "object",
            "properties": {
              "hostname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The hostname of this folder's storagehost"
              },
              "organization": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The organization's name who runs this storagehost"
              }
            },
            "required": [
              "hostname",
              "organization"
            ],
            "additionalProperties": false
          },
          "quota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The maximum amount of data that may be stored in this folder. Unit is MB."
          },
          "accessList": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "none",
                    "read",
                    "write",
                    "admin"
                  ],
                  "description": "the access right for the user."
                },
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The e-mail address of a user who has an access right on this folder."
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The name of a user who has an access right on this folder."
                }
              },
              "required": [
                "type",
                "email",
                "realname"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "idx",
          "name",
          "parentIdx",
          "rootFolderIdx",
          "hasChildren",
          "type",
          "transferCount",
          "directLink",
          "owner",
          "server",
          "quota",
          "accessList"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "folders"
  ]
}

Fetching the all folders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Folders
GET/folders/serverlist

This retrieves all root-folders on this storagehost.

Please note: Admin-privileges are required to access this resource.


POST https://dev.skalio.net/teambeam//folders
RequestsCreate SubfolderCreate Root folder

Create a new subfolder. Requires write-access rights to the parent folder.

Headers
Content-Type: application/json
Body
{
  "name": "Hello, world!",
  "parentIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    }
  },
  "required": [
    "name",
    "parentIdx"
  ]
}
Responses201

The folder has been created successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "parentIdx": 1,
  "rootFolderIdx": 1,
  "hasChildren": true,
  "type": "personal",
  "transferCount": 1,
  "directLink": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type"
  ]
}

Create a new root folder. Requires create-root-folder privileges.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "parentIdx": 0,
  "rootFolderIdx": 0,
  "hasChildren": false,
  "type": "personal",
  "transferCount": 0,
  "directLink": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "server": {
    "hostname": "",
    "organization": ""
  },
  "quota": 0,
  "accessList": [
    {
      "type": "none",
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the folder owner"
        },
        "realname": {
          "type": "string",
          "description": "The name the folder owner"
        }
      },
      "required": [
        "email"
      ]
    },
    "server": {
      "type": "object",
      "properties": {
        "hostname": {
          "type": "string",
          "description": "The hostname of this folder's storagehost"
        },
        "organization": {
          "type": "string",
          "description": "The organization's name who runs this storagehost"
        }
      }
    },
    "quota": {
      "type": "number",
      "description": "The maximum amount of data that may be stored in this folder. Unit is MB."
    },
    "accessList": {
      "type": "array"
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type",
    "owner",
    "quota",
    "accessList"
  ]
}
Responses201401403

The folder has been created successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "parentIdx": 0,
  "rootFolderIdx": 0,
  "hasChildren": false,
  "type": "personal",
  "transferCount": 0,
  "directLink": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "server": {
    "hostname": "",
    "organization": ""
  },
  "quota": 0,
  "accessList": [
    {
      "type": "none",
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the folder owner"
        },
        "realname": {
          "type": "string",
          "description": "The name the folder owner"
        }
      },
      "required": [
        "email"
      ]
    },
    "server": {
      "type": "object",
      "properties": {
        "hostname": {
          "type": "string",
          "description": "The hostname of this folder's storagehost"
        },
        "organization": {
          "type": "string",
          "description": "The organization's name who runs this storagehost"
        }
      }
    },
    "quota": {
      "type": "number",
      "description": "The maximum amount of data that may be stored in this folder. Unit is MB."
    },
    "accessList": {
      "type": "array"
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type",
    "owner",
    "quota",
    "accessList"
  ]
}

Creating a folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The folder could not be created. This can have different reasons, such as missing access rights, invalid or missing fields, a non-unique folder name, etc. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Folder
POST/folders

Creates a new folder.


PUT https://dev.skalio.net/teambeam//folders/idx
RequestsUpdate FolderMove FolderUpdate Accesslist of Rootfolder
Headers
Content-Type: application/json
Body
{
  "name": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
Responses200

The folder has been updated successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "parentIdx": 1,
  "rootFolderIdx": 1,
  "hasChildren": true,
  "type": "personal",
  "transferCount": 1,
  "directLink": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type"
  ]
}
Headers
Content-Type: application/json
Body
{
  "parentIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "parentIdx": {
      "type": "number"
    }
  },
  "required": [
    "parentIdx"
  ]
}
Responses200

The folder and all its subfolders have been moved successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "parentIdx": 1,
  "rootFolderIdx": 1,
  "hasChildren": true,
  "type": "personal",
  "transferCount": 1,
  "directLink": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type"
  ]
}

Note: this requires admin-privileges on the root-folder

Headers
Content-Type: application/json
Body
{
  "accessList": [
    {
      "type": "",
      "email": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "accessList": {
      "type": "array"
    }
  },
  "required": [
    "accessList"
  ]
}
Responses200401403404

The folder and all its subfolders have been moved successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "parentIdx": 0,
  "rootFolderIdx": 0,
  "hasChildren": false,
  "type": "personal",
  "transferCount": 0,
  "directLink": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "server": {
    "hostname": "",
    "organization": ""
  },
  "quota": 0,
  "accessList": [
    {
      "type": "none",
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this folder. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the folder. Must be unique when comparing with all neighboring folders."
    },
    "parentIdx": {
      "type": "number",
      "description": "The identifier of the parent folder. 0 if this is a top-level folder (also called root folder)."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "The identifier of the top-most folder of this folder hierarchy."
    },
    "hasChildren": {
      "type": "boolean",
      "description": "If true, this folder includes other folders."
    },
    "type": {
      "type": "string",
      "enum": [
        "personal",
        "download",
        "shared"
      ],
      "description": "The type of the folder"
    },
    "transferCount": {
      "type": "number",
      "description": "The number of Transfer objects residing in this folder."
    },
    "directLink": {
      "type": "string",
      "description": "The URL of this folder."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the folder owner"
        },
        "realname": {
          "type": "string",
          "description": "The name the folder owner"
        }
      },
      "required": [
        "email"
      ]
    },
    "server": {
      "type": "object",
      "properties": {
        "hostname": {
          "type": "string",
          "description": "The hostname of this folder's storagehost"
        },
        "organization": {
          "type": "string",
          "description": "The organization's name who runs this storagehost"
        }
      }
    },
    "quota": {
      "type": "number",
      "description": "The maximum amount of data that may be stored in this folder. Unit is MB."
    },
    "accessList": {
      "type": "array"
    }
  },
  "required": [
    "name",
    "parentIdx",
    "type",
    "owner",
    "quota",
    "accessList"
  ]
}

Updating a folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The folder could not be updated. This can have different reasons, such as missing access rights, invalid or missing fields, a non-unique folder name, etc. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The requested folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Folder
PUT/folders/{idx}

Updates the specified folder. This can be used to change details of the folder itself (name, quota, accesslist, type, etc), or to move the folder to a new subfolder.

Limitations

URI Parameters
HideShow
idx
number (required) 

ID of a folder


DELETE https://dev.skalio.net/teambeam//folders/idx
Responses200401403

The response is streamed.

Headers
Content-Type: application/json
Body
{
  "progress": "..."
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "progress": {
      "type": "string",
      "description": "Typically streamed response showing progress in a long running operation"
    }
  }
}

Deleting a folder requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access is denied. The user does not have write access to the folder.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Folder
DELETE/folders/{idx}

Deletes the specified folder.

Please note: Deleting sub folders only requires write access. However, deleting RootFolder requires admin access.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


Folder Notifications

Manage the personal notifications of a folder-tree.

Please note: The notification interval can only be set on Root folders which are not of type ‘personal’ but can be retrieved from all folders. All sub folders of a Root Folder share the same notification interval.

GET https://dev.skalio.net/teambeam//folders/idx/notifications
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "notificationInterval": "none"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "notificationInterval": {
      "type": "string",
      "enum": [
        "none",
        "hourly",
        "daily",
        "weekly"
      ]
    }
  },
  "required": [
    "notificationInterval"
  ]
}

Fetching a folders notification interval requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access is denied. The user does not have read access to the folder.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The requested folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch notification interval
GET/folders/{idx}/notifications

Retrieves the personal notification interval for the folder-tree.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


POST https://dev.skalio.net/teambeam//folders/idx/notifications
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "notificationInterval": "none"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "notificationInterval": {
      "type": "string",
      "enum": [
        "none",
        "hourly",
        "daily",
        "weekly"
      ]
    }
  },
  "required": [
    "notificationInterval"
  ]
}
Responses204401403404

The new interval has been set. The response is empty in this case.

Setting a folders notification interval requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The request cannot be fulfilled, refer to the message for details of the cause (lack of privileges, not a root-folder, etc)

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The specific folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Set notification interval
POST/folders/{idx}/notifications

Sets the new notification interval for the folder-tree.

URI Parameters
HideShow
idx
number (required) 

ID of a folder


Groups Resource

Receiver groups can be used to send TeamBeam transfers to multiple receivers at once by choosing a receiver groups as recipient.

Ownership

A Receiver group has an owner (usually the person who created the group). Ownership of the global receiver group is also used to find out to which Adminunit this global group belongs:

  • Group->Owner->Storagehost->Adminunit

Scope

Receiver groups may have the following scope:

  • personal: Regular users may create their own personal receiver groups which can only be used by the creator of the group.

  • global: Administrators may create global receiver groups which are available to all users of the same admin unit.

Effects of using receivers groups

If a transfer is sent to a receiver group the effect is the same as if addressing all the receiver group members as individual recipients: For each recipient a single TeamBeam transfer is being generated.

All transfers which are generated by using a receiver groups are connected to each other via a join id. This way it is possible to retrieve the connection between these transfers later.

Personal Groups

GET https://dev.skalio.net/teambeam//groups
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "groups": [
    {
      "idx": 0,
      "name": "",
      "owner": {
        "email": "",
        "realname": ""
      },
      "scope": "",
      "type": "to",
      "receivers": [
        {
          "email": "",
          "realname": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this receiver group. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the receiver group."
          },
          "owner": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the receiver group owner."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the receiver group owner."
              }
            },
            "required": [
              "email",
              "realname"
            ],
            "additionalProperties": false
          },
          "scope": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
          },
          "type": {
            "type": "string",
            "enum": [
              "to",
              "cc",
              "bcc"
            ],
            "description": "Default is `to`"
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The e-mail address of a user who is a receiver on this group."
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The name of a user who is a receiver on this group."
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "idx",
          "name",
          "owner",
          "scope",
          "type",
          "receivers"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "groups"
  ]
}

Fetching the receiver groups requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List User's Groups
GET/groups

Returns the list of receiver groups for the current user.


GET https://dev.skalio.net/teambeam//groups/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "scope": "",
  "type": "to",
  "receivers": [
    {
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this receiver group. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the receiver group."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the receiver group owner."
        },
        "realname": {
          "type": "string",
          "description": "The name the receiver group owner."
        }
      }
    },
    "scope": {
      "type": "string",
      "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
    },
    "type": {
      "type": "string",
      "enum": [
        "to",
        "cc",
        "bcc"
      ],
      "description": "Default is `to`"
    },
    "receivers": {
      "type": "array"
    }
  }
}

Fetching the a specific group requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this group has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no group found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Group
GET/groups/{idx}

Fetches the specified group.

URI Parameters
HideShow
idx
number (required) 

ID of a group


GET https://dev.skalio.net/teambeam//groups/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "groups": [
    {
      "idx": 0,
      "name": "",
      "owner": {
        "email": "",
        "realname": ""
      },
      "scope": "",
      "type": "to",
      "receivers": [
        {
          "email": "",
          "realname": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Unique identifier of this receiver group. Used to fetch folders via API."
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Name of the receiver group."
          },
          "owner": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the receiver group owner."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the receiver group owner."
              }
            },
            "required": [
              "email",
              "realname"
            ],
            "additionalProperties": false
          },
          "scope": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
          },
          "type": {
            "type": "string",
            "enum": [
              "to",
              "cc",
              "bcc"
            ],
            "description": "Default is `to`"
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The e-mail address of a user who is a receiver on this group."
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The name of a user who is a receiver on this group."
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "idx",
          "name",
          "owner",
          "scope",
          "type",
          "receivers"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "groups"
  ]
}

Fetching the receiver groups requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the receiver groups have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Groups
GET/groups/serverlist

This retrieves all receiver groups on this storagehost.

Please note: Admin-privileges are required to access this resource.


POST https://dev.skalio.net/teambeam//groups
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  name: "New Group",
  scope: "personal",
  "receivers": [
      {
          "email": "alice@example.org",
          "realname": "Alice"
      },
      {
          "email": "bob@example.org",
          "realname": "Bob"
      },
      {
          "email": "steve@example.org",
          "realname": "Steve"
      }
  ]
}
Responses201401403

The group has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "scope": "",
  "type": "to",
  "receivers": [
    {
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this receiver group. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the receiver group."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the receiver group owner."
        },
        "realname": {
          "type": "string",
          "description": "The name the receiver group owner."
        }
      }
    },
    "scope": {
      "type": "string",
      "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
    },
    "type": {
      "type": "string",
      "enum": [
        "to",
        "cc",
        "bcc"
      ],
      "description": "Default is `to`"
    },
    "receivers": {
      "type": "array"
    }
  }
}

Creating a receiver group requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a receiver group has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Personal Group
POST/groups

Creates a personal receiver group which is only available to the creator.


PUT https://dev.skalio.net/teambeam//groups/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "name": "New Group",
  "receivers": [
    {
      "email": "alice@example.org",
      "realname": "Alice"
    },
    {
      "email": "bob@example.org",
      "realname": "Bob"
    },
    {
      "email": "steve@example.org",
      "realname": "Steve"
    }
  ]
}
Responses200401403

The group has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "scope": "",
  "type": "to",
  "receivers": [
    {
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this receiver group. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the receiver group."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the receiver group owner."
        },
        "realname": {
          "type": "string",
          "description": "The name the receiver group owner."
        }
      }
    },
    "scope": {
      "type": "string",
      "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
    },
    "type": {
      "type": "string",
      "enum": [
        "to",
        "cc",
        "bcc"
      ],
      "description": "Default is `to`"
    },
    "receivers": {
      "type": "array"
    }
  }
}

Updating a receiver group requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a receiver group has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Group
PUT/groups/{idx}

Updates the specified group. This can be used to change details of the group (name, recipients). It is not possible to change the scope of a group.

URI Parameters
HideShow
idx
number (required) 

ID of a group


DELETE https://dev.skalio.net/teambeam//groups/idx
Responses204401403
This response has no content.

Deleting a receiver group requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a receiver group has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Group
DELETE/groups/{idx}

Deletes the specified receiver group.

URI Parameters
HideShow
idx
number (required) 

ID of a group


Global Groups

POST https://dev.skalio.net/teambeam//groups/global
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  name: "New Group",
  scope: "global",
  "receivers": [
      {
          "email": "alice@example.org",
          "realname": "Alice"
      },
      {
          "email": "bob@example.org",
          "realname": "Bob"
      },
      {
          "email": "steve@example.org",
          "realname": "Steve"
      }
  ]
}
Responses201401403

The group has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 0,
  "name": "",
  "owner": {
    "email": "",
    "realname": ""
  },
  "scope": "",
  "type": "to",
  "receivers": [
    {
      "email": "",
      "realname": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this receiver group. Used to fetch folders via API."
    },
    "name": {
      "type": "string",
      "description": "Name of the receiver group."
    },
    "owner": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the receiver group owner."
        },
        "realname": {
          "type": "string",
          "description": "The name the receiver group owner."
        }
      }
    },
    "scope": {
      "type": "string",
      "description": "Info about who may use this receiver group. One of the following: 'personal', 'publicbox', 'global'."
    },
    "type": {
      "type": "string",
      "enum": [
        "to",
        "cc",
        "bcc"
      ],
      "description": "Default is `to`"
    },
    "receivers": {
      "type": "array"
    }
  }
}

Creating a receiver group requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a receiver group has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Global Group
POST/groups/global

Creates a global receiver group which is available to all users on this storagehost.

Please note: Admin-privileges are required to access this resource.


Inquiry Resource

Inquiry

This resource enables Cross-Origin-Resource-Sharing for the following origins:

  • https://www.teambeam.[de|com]

  • http://{www.}teambeam.[de|com|eu|es|at|ch|fr|it|ru]

  • http://wwwtest.inside.teambeam.net

  • http://localhost:9001

POST https://dev.skalio.net/teambeam//inquiry
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "lang": "en",
  "email": "bob@example.org",
  "name": "Uncle Bob",
  "phone": "+1 555 123 4567",
  "company": "Example Ltd.",
  "street": "1 Main Street",
  "postcode": "1234",
  "city": "Example City",
  "country": "U.S.A.",
  "order": "teambeampro",
  "accounts": 5,
  "employees": 5,
  "individualquote": true,
  "further_information": true,
  "owndatacenter": true,
  "free_test": true,
  "press_releases": true,
  "references": true,
  "call_me_back": true,
  "terms": true,
  "message": "additional information"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "description": "the desired language how the submitter would like to be addressed"
    },
    "email": {
      "type": "string",
      "description": "the email address of the submitter; must be a valid email"
    },
    "name": {
      "type": "string",
      "description": "the submitter's name"
    },
    "phone": {
      "type": "string",
      "description": "the submitter's phone number"
    },
    "company": {
      "type": "string",
      "description": "the submitter's company name"
    },
    "street": {
      "type": "string"
    },
    "postcode": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "order": {
      "type": "string",
      "enum": [
        "teambeampro",
        "teambeamcorporate"
      ],
      "description": "the contract type"
    },
    "accounts": {
      "type": "number",
      "description": "amout of accounts required"
    },
    "employees": {
      "type": "number",
      "description": "amount of accounts required"
    },
    "individualquote": {
      "type": "boolean",
      "description": "submitter requests an individual quote or offer"
    },
    "further_information": {
      "type": "boolean",
      "description": "submitter requests further information"
    },
    "owndatacenter": {
      "type": "boolean",
      "description": "offer shall be based around _on-Premise_"
    },
    "free_test": {
      "type": "boolean",
      "description": "submitter requests a test account"
    },
    "press_releases": {
      "type": "boolean",
      "description": "submitter requests press information"
    },
    "references": {
      "type": "boolean",
      "description": "submitter requests information about reference customers"
    },
    "call_me_back": {
      "type": "boolean",
      "description": "submitter requests a callback"
    },
    "terms": {
      "type": "boolean",
      "description": "submitter has agreed to the terms and conditions"
    },
    "message": {
      "type": "string",
      "description": "additional info"
    }
  }
}
Responses204
This response has no content.

Make Inquiry
POST/inquiry

Processes a request for an inquiry. The email address specified in the request receives a confirmation email.


Invoices Resource

A invoice defines the data concerning information and payment status of a TeamBeam invoice which has been sent to a customer via e-mail as PDF or via snail mail as paper.

Please note: All prices are in € cents.

Invoices

GET https://dev.skalio.net/teambeam//invoices
Responses200
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "invoices": [
    {
      "idx": 1,
      "active": true,
      "invoiceNumber": "Hello, world!",
      "contractId": 1,
      "creationTimestamp": "2037-12-31T15:29:59+00:00",
      "ownerEmail": "Hello, world!",
      "netTotalCents": 1,
      "vatTotalCents": 1,
      "paymentCents": 1,
      "paymentMethod": "Hello, world!",
      "paymentTimestamp": "2037-12-31T15:29:59+00:00"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "invoices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "invoiceNumber": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the invoice number"
          },
          "contractId": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Contract ID of connected contract"
          },
          "creationTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Creation date of the invoice"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "E-Mail address of invoice owner"
          },
          "netTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice net sum"
          },
          "vatTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice V.A.T. tax sum"
          },
          "paymentCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of paid cents"
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "How this invoice is being paid. Either 'transfer' or 'collection'."
          },
          "paymentTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Date of last payment on this invoice"
          }
        },
        "required": [
          "active",
          "invoiceNumber",
          "contractId",
          "creationTimestamp",
          "ownerEmail",
          "netTotalCents",
          "vatTotalCents",
          "paymentCents",
          "paymentMethod",
          "paymentTimestamp"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "invoices"
  ]
}

Get owned invoices
GET/invoices

Returns a list of invoices the current user owns. This user does not need to be an administrator.


GET https://dev.skalio.net/teambeam//invoices/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": true,
  "invoiceNumber": "Hello, world!",
  "contractId": 1,
  "creationTimestamp": "2037-12-31T15:29:59+00:00",
  "ownerEmail": "Hello, world!",
  "netTotalCents": 1,
  "vatTotalCents": 1,
  "paymentCents": 1,
  "paymentMethod": "Hello, world!",
  "paymentTimestamp": "2037-12-31T15:29:59+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "invoiceNumber": {
      "type": "string",
      "description": "the invoice number"
    },
    "contractId": {
      "type": "number",
      "description": "Contract ID of connected contract"
    },
    "creationTimestamp": {
      "type": "string",
      "description": "Creation date of the invoice"
    },
    "ownerEmail": {
      "type": "string",
      "description": "E-Mail address of invoice owner"
    },
    "netTotalCents": {
      "type": "number",
      "description": "Amount of cents of invoice net sum"
    },
    "vatTotalCents": {
      "type": "number",
      "description": "Amount of cents of invoice V.A.T. tax sum"
    },
    "paymentCents": {
      "type": "number",
      "description": "Amount of paid cents"
    },
    "paymentMethod": {
      "type": "string",
      "description": "How this invoice is being paid. Either 'transfer' or 'collection'."
    },
    "paymentTimestamp": {
      "type": "string",
      "description": "Date of last payment on this invoice"
    }
  }
}

Fetching a specific invoice requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this invoice has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no invoice found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get specific invoice
GET/invoices/{idx}

Returns the requested invoice. The current user must have access to it.

URI Parameters
HideShow
idx
number (required) 

ID of a invoice


GET https://dev.skalio.net/teambeam//invoices/idx/pdf
Responses200401403404
Headers
Content-Type: application/pdf
Body
[... PDF as binary data ...]

Fetching a specific invoice requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this invoice has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no invoice found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get invoice as PDF
GET/invoices/{idx}/pdf

Returns a pdf of the invoice offered as binary download.

URI Parameters
HideShow
idx
number (required) 

ID of a invoice


GET https://dev.skalio.net/teambeam//invoices/clusterlist?filter=filter
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "invoices": [
    {
      "idx": 1,
      "active": true,
      "invoiceNumber": "Hello, world!",
      "contractId": 1,
      "creationTimestamp": "2037-12-31T15:29:59+00:00",
      "ownerEmail": "Hello, world!",
      "netTotalCents": 1,
      "vatTotalCents": 1,
      "paymentCents": 1,
      "paymentMethod": "Hello, world!",
      "paymentTimestamp": "2037-12-31T15:29:59+00:00"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "invoices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "invoiceNumber": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the invoice number"
          },
          "contractId": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Contract ID of connected contract"
          },
          "creationTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Creation date of the invoice"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "E-Mail address of invoice owner"
          },
          "netTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice net sum"
          },
          "vatTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice V.A.T. tax sum"
          },
          "paymentCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of paid cents"
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "How this invoice is being paid. Either 'transfer' or 'collection'."
          },
          "paymentTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Date of last payment on this invoice"
          }
        },
        "required": [
          "active",
          "invoiceNumber",
          "contractId",
          "creationTimestamp",
          "ownerEmail",
          "netTotalCents",
          "vatTotalCents",
          "paymentCents",
          "paymentMethod",
          "paymentTimestamp"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "invoices"
  ]
}

Fetching all invoices requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching all invoices has been denied because the authenticated user does not cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch all invoices on cluster
GET/invoices/clusterlist?filter={filter}

Fetches all invoices residing on the cluster. You may filter by status.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
filter
enum (optional) 

If present, the filter keyword restricts results. Can be one of these values:

  • open - Get only invoices that are not fully paid and active.

  • closed - Get only invoices that are fully paid or inactive.


GET https://dev.skalio.net/teambeam//invoices/search?q=q
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "active": true,
      "invoiceNumber": "Hello, world!",
      "contractId": 1,
      "creationTimestamp": "2037-12-31T15:29:59+00:00",
      "ownerEmail": "Hello, world!",
      "netTotalCents": 1,
      "vatTotalCents": 1,
      "paymentCents": 1,
      "paymentMethod": "Hello, world!",
      "paymentTimestamp": "2037-12-31T15:29:59+00:00"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the contract"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if the contract is active"
          },
          "invoiceNumber": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the invoice number"
          },
          "contractId": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Contract ID of connected contract"
          },
          "creationTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Creation date of the invoice"
          },
          "ownerEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "E-Mail address of invoice owner"
          },
          "netTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice net sum"
          },
          "vatTotalCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of cents of invoice V.A.T. tax sum"
          },
          "paymentCents": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "Amount of paid cents"
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "How this invoice is being paid. Either 'transfer' or 'collection'."
          },
          "paymentTimestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "Date of last payment on this invoice"
          }
        },
        "required": [
          "active",
          "invoiceNumber",
          "contractId",
          "creationTimestamp",
          "ownerEmail",
          "netTotalCents",
          "vatTotalCents",
          "paymentCents",
          "paymentMethod",
          "paymentTimestamp"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Searching for invoices requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for invoices has been denied because the authenticated user does not cluster-admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search invoices
GET/invoices/search?q={q}

Searches for invoices on the cluster by providing a search keyword.

Please note: cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
q
String (required) 

search keyword


PUT https://dev.skalio.net/teambeam//invoices/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "active": true,
  "paymentCents": 1,
  "paymentTimestamp": "2037-12-31T15:29:59+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "description": "true if the invoice is active"
    },
    "paymentCents": {
      "type": "number",
      "description": "Amount of paid cents"
    },
    "paymentTimestamp": {
      "type": "string",
      "description": "Date of last payment on this invoice"
    }
  }
}
Responses200401403

The invoice has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "active": true,
  "invoiceNumber": "Hello, world!",
  "contractId": 1,
  "creationTimestamp": "2037-12-31T15:29:59+00:00",
  "ownerEmail": "Hello, world!",
  "netTotalCents": 1,
  "vatTotalCents": 1,
  "paymentCents": 1,
  "paymentMethod": "Hello, world!",
  "paymentTimestamp": "2037-12-31T15:29:59+00:00"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the contract"
    },
    "active": {
      "type": "boolean",
      "description": "true if the contract is active"
    },
    "invoiceNumber": {
      "type": "string",
      "description": "the invoice number"
    },
    "contractId": {
      "type": "number",
      "description": "Contract ID of connected contract"
    },
    "creationTimestamp": {
      "type": "string",
      "description": "Creation date of the invoice"
    },
    "ownerEmail": {
      "type": "string",
      "description": "E-Mail address of invoice owner"
    },
    "netTotalCents": {
      "type": "number",
      "description": "Amount of cents of invoice net sum"
    },
    "vatTotalCents": {
      "type": "number",
      "description": "Amount of cents of invoice V.A.T. tax sum"
    },
    "paymentCents": {
      "type": "number",
      "description": "Amount of paid cents"
    },
    "paymentMethod": {
      "type": "string",
      "description": "How this invoice is being paid. Either 'transfer' or 'collection'."
    },
    "paymentTimestamp": {
      "type": "string",
      "description": "Date of last payment on this invoice"
    }
  }
}

Updating a invoice requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a invoice has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Invoice
PUT/invoices/{idx}

Updates the specified invoice.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a invoice


Log Resource

Logging is available to all clients. Data is recorded into the storagehost- specific skp-infoserver.log.

Logging ID

A client shall generate an alpha-numeric logId that it uses to identify the origin of submitted entries. Currently there are no constraints on allowed characters, min/max length or uniqueness.

The logging ID can be used to filter the messages in the server-logs, by searching for <logId> (encapsulated in angle brackets).

Loglevels

The incoming message can be classified with a loglevel. When logging the message to file, the incoming loglevel has to be greater or equal than the loglevel of the server.

The following loglevels are supported:

  • TRACE

  • DEBUG (default)

  • INFO

  • WARN

  • ERROR, FATAL

Logging

POST https://dev.skalio.net/teambeam//log/logId
Requestsexample 1

Send one or more log entries to be recorded in the logfile. The url field is optional.

Headers
Content-Type: application/json
Body
[
    {
        "url": "https://transfer.example.org/where/this/happened",
        "level": "INFO",
        "message": "Something or other"
    },
    {
        ...
    }
]
Responses204
This response has no content.

Create Entries
POST/log/{logId}

Multiple messages can be submitted within a single request. Currently there is no limit on the number of entries per request, as long as the size of the request body is acceptable (currently limited at 64KiB).

URI Parameters
HideShow
logId
string (required) 

Logging identifier


Orders Resource

Orders are requests by a contract owner towards the system operator.

Order Type

Orders are of one of the following types:

  • newContract: A user without a contract orders a TeamBeam product.

  • update: A user with a contract orders a modification to the present contract.

  • quote: A user requests a quote for a TeamBeam product or product option.

  • support: A user requests support.

Order Stati

Orders may in one of the following stati:

  • created: The order has not been processed yet.

  • assigned: The order has been assigned to an agent of the system operator.

  • completed: The order has been completed.

  • cancelled: The order has been cancelled.

Orders

GET https://dev.skalio.net/teambeam//orders
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "orders": [
    {
      "idx": 1,
      "timestamp": "2016-04-27T16:41:06+00:00",
      "agentEmail": "Hello, world!",
      "purchaserEmail": "Hello, world!",
      "amount": 1,
      "componentIdx": 1,
      "componentName": "Hello, world!",
      "type": "newContract",
      "contractIdx": 1,
      "note": "Hello, world!",
      "special": "Hello, world!",
      "status": "created"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the order"
          },
          "timestamp": {
            "type": "string",
            "enum": [
              "2016-04-27T16:41:06+00:00"
            ],
            "description": "timestamp of order creation"
          },
          "agentEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
          },
          "purchaserEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the ordering person"
          },
          "amount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the amount of ordered items"
          },
          "componentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the product component that has been ordered"
          },
          "componentName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the product component that has been ordered. Readonly."
          },
          "type": {
            "type": "string",
            "enum": [
              "newContract",
              "update",
              "quote",
              "support"
            ],
            "description": "the type of the order"
          },
          "contractIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the contract this order applies to. 0 if not yet set."
          },
          "note": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "an accompanying text, given by the ordering person"
          },
          "special": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a specialization to a ordered component."
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "assigned",
              "completed",
              "cancelled"
            ],
            "description": "the current status of the order"
          }
        },
        "required": [
          "idx",
          "timestamp",
          "agentEmail",
          "purchaserEmail",
          "amount",
          "componentIdx",
          "componentName",
          "type",
          "contractIdx",
          "note",
          "special",
          "status"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "orders"
  ]
}

Fetching the users orders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List User's Orders
GET/orders

Returns the list of orders for the current user. The request must be authenticated.


GET https://dev.skalio.net/teambeam//orders/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "timestamp": "2016-04-27T16:41:06+00:00",
  "agentEmail": "Hello, world!",
  "purchaserEmail": "Hello, world!",
  "amount": 1,
  "componentIdx": 1,
  "componentName": "Hello, world!",
  "type": "newContract",
  "contractIdx": 1,
  "note": "Hello, world!",
  "special": "Hello, world!",
  "status": "created"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the order"
    },
    "timestamp": {
      "type": "string",
      "description": "timestamp of order creation"
    },
    "agentEmail": {
      "type": "string",
      "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
    },
    "purchaserEmail": {
      "type": "string",
      "description": "the e-mail address of the ordering person"
    },
    "amount": {
      "type": "number",
      "description": "the amount of ordered items"
    },
    "componentIdx": {
      "type": "number",
      "description": "the ID of the product component that has been ordered"
    },
    "componentName": {
      "type": "string",
      "description": "the name of the product component that has been ordered. Readonly."
    },
    "type": {
      "type": "string",
      "enum": [
        "newContract",
        "update",
        "quote",
        "support"
      ],
      "description": "the type of the order"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract this order applies to. 0 if not yet set."
    },
    "note": {
      "type": "string",
      "description": "an accompanying text, given by the ordering person"
    },
    "special": {
      "type": "string",
      "description": "a specialization to a ordered component."
    },
    "status": {
      "type": "string",
      "enum": [
        "created",
        "assigned",
        "completed",
        "cancelled"
      ],
      "description": "the current status of the order"
    }
  }
}

Fetching a specific order requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this order has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no order found by this idx

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Order
GET/orders/{idx}

Fetches the specified order.

Please note: Fetching your own order is always permitted. Fetching orders of other customers requires Cluster-Admin-privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a order


GET https://dev.skalio.net/teambeam//orders/clusterlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "orders": [
    {
      "idx": 1,
      "timestamp": "2016-04-27T16:41:06+00:00",
      "agentEmail": "Hello, world!",
      "purchaserEmail": "Hello, world!",
      "amount": 1,
      "componentIdx": 1,
      "componentName": "Hello, world!",
      "type": "newContract",
      "contractIdx": 1,
      "note": "Hello, world!",
      "special": "Hello, world!",
      "status": "created"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the order"
          },
          "timestamp": {
            "type": "string",
            "enum": [
              "2016-04-27T16:41:06+00:00"
            ],
            "description": "timestamp of order creation"
          },
          "agentEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
          },
          "purchaserEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the ordering person"
          },
          "amount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the amount of ordered items"
          },
          "componentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the product component that has been ordered"
          },
          "componentName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the product component that has been ordered. Readonly."
          },
          "type": {
            "type": "string",
            "enum": [
              "newContract",
              "update",
              "quote",
              "support"
            ],
            "description": "the type of the order"
          },
          "contractIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the contract this order applies to. 0 if not yet set."
          },
          "note": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "an accompanying text, given by the ordering person"
          },
          "special": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a specialization to a ordered component."
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "assigned",
              "completed",
              "cancelled"
            ],
            "description": "the current status of the order"
          }
        },
        "required": [
          "idx",
          "timestamp",
          "agentEmail",
          "purchaserEmail",
          "amount",
          "componentIdx",
          "componentName",
          "type",
          "contractIdx",
          "note",
          "special",
          "status"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "orders"
  ]
}

Fetching the all orders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching the all orders has been denied because the authenticated user does not have cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Orders on cluster
GET/orders/clusterlist

This retrieves all orders on the cluster.

Please note: Cluster-Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//orders/open
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "orders": [
    {
      "idx": 1,
      "timestamp": "2016-04-27T16:41:06+00:00",
      "agentEmail": "Hello, world!",
      "purchaserEmail": "Hello, world!",
      "amount": 1,
      "componentIdx": 1,
      "componentName": "Hello, world!",
      "type": "newContract",
      "contractIdx": 1,
      "note": "Hello, world!",
      "special": "Hello, world!",
      "status": "created"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the order"
          },
          "timestamp": {
            "type": "string",
            "enum": [
              "2016-04-27T16:41:06+00:00"
            ],
            "description": "timestamp of order creation"
          },
          "agentEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
          },
          "purchaserEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the ordering person"
          },
          "amount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the amount of ordered items"
          },
          "componentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the product component that has been ordered"
          },
          "componentName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the product component that has been ordered. Readonly."
          },
          "type": {
            "type": "string",
            "enum": [
              "newContract",
              "update",
              "quote",
              "support"
            ],
            "description": "the type of the order"
          },
          "contractIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the contract this order applies to. 0 if not yet set."
          },
          "note": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "an accompanying text, given by the ordering person"
          },
          "special": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a specialization to a ordered component."
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "assigned",
              "completed",
              "cancelled"
            ],
            "description": "the current status of the order"
          }
        },
        "required": [
          "idx",
          "timestamp",
          "agentEmail",
          "purchaserEmail",
          "amount",
          "componentIdx",
          "componentName",
          "type",
          "contractIdx",
          "note",
          "special",
          "status"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "orders"
  ]
}

Fetching all open orders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching all open orders has been denied because the authenticated user does not cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch all open orders on cluster
GET/orders/open

Fetches all orders residing on the cluster which are not yet completed or cancelled.

Please note: Cluster-Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//orders/search?q=q
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "timestamp": "2016-04-27T16:41:06+00:00",
      "agentEmail": "Hello, world!",
      "purchaserEmail": "Hello, world!",
      "amount": 1,
      "componentIdx": 1,
      "componentName": "Hello, world!",
      "type": "newContract",
      "contractIdx": 1,
      "note": "Hello, world!",
      "special": "Hello, world!",
      "status": "created"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the order"
          },
          "timestamp": {
            "type": "string",
            "enum": [
              "2016-04-27T16:41:06+00:00"
            ],
            "description": "timestamp of order creation"
          },
          "agentEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
          },
          "purchaserEmail": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the e-mail address of the ordering person"
          },
          "amount": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the amount of ordered items"
          },
          "componentIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the product component that has been ordered"
          },
          "componentName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the product component that has been ordered. Readonly."
          },
          "type": {
            "type": "string",
            "enum": [
              "newContract",
              "update",
              "quote",
              "support"
            ],
            "description": "the type of the order"
          },
          "contractIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the contract this order applies to. 0 if not yet set."
          },
          "note": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "an accompanying text, given by the ordering person"
          },
          "special": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a specialization to a ordered component."
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "assigned",
              "completed",
              "cancelled"
            ],
            "description": "the current status of the order"
          }
        },
        "required": [
          "idx",
          "timestamp",
          "agentEmail",
          "purchaserEmail",
          "amount",
          "componentIdx",
          "componentName",
          "type",
          "contractIdx",
          "note",
          "special",
          "status"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Searching for orders requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for orders has been denied because the authenticated user does not cluster-admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search orders
GET/orders/search?q={q}

Searches for orders on the cluster by providing a search keyword.

Please note: cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
q
String (required) 

search keyword


POST https://dev.skalio.net/teambeam//orders
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "type": "newContract",
  "contractIdx": 1,
  "componentIdx": 1,
  "amount": 1,
  "note": "Hello, world!",
  "special": "Hello, world!"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "newContract",
        "update",
        "quote",
        "support"
      ],
      "description": "the type of order"
    },
    "contractIdx": {
      "type": "number",
      "description": "ID of contract the order applies to"
    },
    "componentIdx": {
      "type": "number",
      "description": "ID of the component that is being ordered"
    },
    "amount": {
      "type": "number",
      "description": "amount of ordered items"
    },
    "note": {
      "type": "string",
      "description": "an accompanying text"
    },
    "special": {
      "type": "string",
      "description": "a specialization to a ordered component."
    }
  },
  "required": [
    "type",
    "contractIdx",
    "componentIdx",
    "amount"
  ]
}
Responses200401403

The order has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "timestamp": "2016-04-27T16:41:06+00:00",
  "agentEmail": "Hello, world!",
  "purchaserEmail": "Hello, world!",
  "amount": 1,
  "componentIdx": 1,
  "componentName": "Hello, world!",
  "type": "newContract",
  "contractIdx": 1,
  "note": "Hello, world!",
  "special": "Hello, world!",
  "status": "created"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the order"
    },
    "timestamp": {
      "type": "string",
      "description": "timestamp of order creation"
    },
    "agentEmail": {
      "type": "string",
      "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
    },
    "purchaserEmail": {
      "type": "string",
      "description": "the e-mail address of the ordering person"
    },
    "amount": {
      "type": "number",
      "description": "the amount of ordered items"
    },
    "componentIdx": {
      "type": "number",
      "description": "the ID of the product component that has been ordered"
    },
    "componentName": {
      "type": "string",
      "description": "the name of the product component that has been ordered. Readonly."
    },
    "type": {
      "type": "string",
      "enum": [
        "newContract",
        "update",
        "quote",
        "support"
      ],
      "description": "the type of the order"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract this order applies to. 0 if not yet set."
    },
    "note": {
      "type": "string",
      "description": "an accompanying text, given by the ordering person"
    },
    "special": {
      "type": "string",
      "description": "a specialization to a ordered component."
    },
    "status": {
      "type": "string",
      "enum": [
        "created",
        "assigned",
        "completed",
        "cancelled"
      ],
      "description": "the current status of the order"
    }
  }
}

Creating a order requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a order has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Order
POST/orders

Creates a new order.

Please note: For creating orders special requirements exist:

If one of the following preconditions are met, you may create a new order:

  • You do not belong to a contract and you do not own a contract and you want to create an order of type ‘newContract’

  • You own a contract and you want to create an order of type which is either ‘update’, ‘quote’, or ‘support’


PUT https://dev.skalio.net/teambeam//orders/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "agentEmail": "Hello, world!",
  "note": "Hello, world!",
  "special": "Hello, world!",
  "status": "created"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "agentEmail": {
      "type": "string",
      "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
    },
    "note": {
      "type": "string",
      "description": "an accompanying text"
    },
    "special": {
      "type": "string",
      "description": "a specialization to a ordered component."
    },
    "status": {
      "type": "string",
      "enum": [
        "created",
        "assigned",
        "completed",
        "cancelled"
      ],
      "description": "the current status of the order"
    }
  }
}
Responses200401403

The order has been updated successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "timestamp": "2016-04-27T16:41:06+00:00",
  "agentEmail": "Hello, world!",
  "purchaserEmail": "Hello, world!",
  "amount": 1,
  "componentIdx": 1,
  "componentName": "Hello, world!",
  "type": "newContract",
  "contractIdx": 1,
  "note": "Hello, world!",
  "special": "Hello, world!",
  "status": "created"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the order"
    },
    "timestamp": {
      "type": "string",
      "description": "timestamp of order creation"
    },
    "agentEmail": {
      "type": "string",
      "description": "the e-mail address of the agent who has been assigned to process the order. Empty string if not yet set."
    },
    "purchaserEmail": {
      "type": "string",
      "description": "the e-mail address of the ordering person"
    },
    "amount": {
      "type": "number",
      "description": "the amount of ordered items"
    },
    "componentIdx": {
      "type": "number",
      "description": "the ID of the product component that has been ordered"
    },
    "componentName": {
      "type": "string",
      "description": "the name of the product component that has been ordered. Readonly."
    },
    "type": {
      "type": "string",
      "enum": [
        "newContract",
        "update",
        "quote",
        "support"
      ],
      "description": "the type of the order"
    },
    "contractIdx": {
      "type": "number",
      "description": "the ID of the contract this order applies to. 0 if not yet set."
    },
    "note": {
      "type": "string",
      "description": "an accompanying text, given by the ordering person"
    },
    "special": {
      "type": "string",
      "description": "a specialization to a ordered component."
    },
    "status": {
      "type": "string",
      "enum": [
        "created",
        "assigned",
        "completed",
        "cancelled"
      ],
      "description": "the current status of the order"
    }
  }
}

Updating a order requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a order has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Order
PUT/orders/{idx}

Updates the specified order.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a order


DELETE https://dev.skalio.net/teambeam//orders/idx
Responses204401403404
This response has no content.

Deleting a order requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a order has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The requested order does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Order
DELETE/orders/{idx}

Deletes the specified order.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a order


Presets Resource

Presets can be used to create new Users by providing default settings. Usage of this resource requires authenticated admin-access.

Presets

GET https://dev.skalio.net/teambeam//presets/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "realname": "Standard",
  "lang": "de_DE",
  "clientType": "employee",
  "daysValid": 365,
  "emailText": "Hello, world!",
  "assignReceiver": false,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "Hello, world!",
    "adminunitIdx": 1,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": true,
    "clusterIdx": 100
  },
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  },
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ],
  "adminunitIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the preset"
    },
    "realname": {
      "type": "string",
      "description": "Employee (string) - the name of the preset"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the default locale of new users created via this preset"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee"
      ],
      "description": "the class of new users created via this preset"
    },
    "daysValid": {
      "type": "number",
      "description": "the validity of new users created via this preset"
    },
    "emailText": {
      "type": "string",
      "description": "a welcome text sent to new users created via this preset"
    },
    "assignReceiver": {
      "type": "boolean",
      "description": "if true the creating user is added as receiver to the new user's addressbook"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive upload confirmations by default"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive expiry warnings by default"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
        }
      }
    },
    "roles": {
      "type": "array",
      "description": "List of roles assigned to newly created users"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
    }
  }
}

Fetching the a specific preset requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this preset has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no preset found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Preset
GET/presets/{idx}

Fetches the specified preset.

Please note: This request requires admin privileges. If accessing a foreign preset this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a preset


GET https://dev.skalio.net/teambeam//presets/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "presets": [
    {
      "idx": 1,
      "realname": "Standard",
      "lang": "de_DE",
      "clientType": "employee",
      "daysValid": 365,
      "emailText": "Hello, world!",
      "assignReceiver": false,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "options": {
        "getUploadConfirmation": false,
        "getExpiryWarning": false,
        "getReceiveNewsletter": false
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "adminunitIdx": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "presets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the preset"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Standard"
            ],
            "description": "Employee (string) - the name of the preset"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the default locale of new users created via this preset"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee"
            ],
            "description": "the class of new users created via this preset"
          },
          "daysValid": {
            "type": "number",
            "enum": [
              365
            ],
            "description": "the validity of new users created via this preset"
          },
          "emailText": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a welcome text sent to new users created via this preset"
          },
          "assignReceiver": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "if true the creating user is added as receiver to the new user's addressbook"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "options": {
            "type": "object",
            "properties": {
              "getUploadConfirmation": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive upload confirmations by default"
              },
              "getExpiryWarning": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive expiry warnings by default"
              },
              "getReceiveNewsletter": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
              }
            },
            "required": [
              "getUploadConfirmation",
              "getExpiryWarning",
              "getReceiveNewsletter"
            ],
            "additionalProperties": false
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the ID of the role"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of roles assigned to newly created users"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
          }
        },
        "required": [
          "realname",
          "lang",
          "clientType",
          "daysValid",
          "emailText",
          "assignReceiver",
          "storagehost",
          "options",
          "roles"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "presets"
  ]
}

Fetching the presets requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the presets have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Presets
GET/presets/serverlist

This retrieves all presets on this storagehost.

Please note: Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//presets/clusterlist?s=s&au=au
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "presets": [
    {
      "idx": 1,
      "realname": "Standard",
      "lang": "de_DE",
      "clientType": "employee",
      "daysValid": 365,
      "emailText": "Hello, world!",
      "assignReceiver": false,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "options": {
        "getUploadConfirmation": false,
        "getExpiryWarning": false,
        "getReceiveNewsletter": false
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "adminunitIdx": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "presets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the preset"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Standard"
            ],
            "description": "Employee (string) - the name of the preset"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the default locale of new users created via this preset"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee"
            ],
            "description": "the class of new users created via this preset"
          },
          "daysValid": {
            "type": "number",
            "enum": [
              365
            ],
            "description": "the validity of new users created via this preset"
          },
          "emailText": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a welcome text sent to new users created via this preset"
          },
          "assignReceiver": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "if true the creating user is added as receiver to the new user's addressbook"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "options": {
            "type": "object",
            "properties": {
              "getUploadConfirmation": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive upload confirmations by default"
              },
              "getExpiryWarning": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive expiry warnings by default"
              },
              "getReceiveNewsletter": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
              }
            },
            "required": [
              "getUploadConfirmation",
              "getExpiryWarning",
              "getReceiveNewsletter"
            ],
            "additionalProperties": false
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the ID of the role"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of roles assigned to newly created users"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
          }
        },
        "required": [
          "realname",
          "lang",
          "clientType",
          "daysValid",
          "emailText",
          "assignReceiver",
          "storagehost",
          "options",
          "roles"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "presets"
  ]
}

Fetching the presets requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the presets have been denied, because of missing cluster-admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Presets on cluster
GET/presets/clusterlist?s={s}&au={au}

This retrieves all presets on this cluster.

Please note: This request requires cluster admin privileges.

URI Parameters
HideShow
au
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

s
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//presets/search?q=q&t=t&s=s&au=au
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "presets": [
    {
      "idx": 1,
      "realname": "Standard",
      "lang": "de_DE",
      "clientType": "employee",
      "daysValid": 365,
      "emailText": "Hello, world!",
      "assignReceiver": false,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "options": {
        "getUploadConfirmation": false,
        "getExpiryWarning": false,
        "getReceiveNewsletter": false
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "adminunitIdx": 1
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "presets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the preset"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Standard"
            ],
            "description": "Employee (string) - the name of the preset"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the default locale of new users created via this preset"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee"
            ],
            "description": "the class of new users created via this preset"
          },
          "daysValid": {
            "type": "number",
            "enum": [
              365
            ],
            "description": "the validity of new users created via this preset"
          },
          "emailText": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a welcome text sent to new users created via this preset"
          },
          "assignReceiver": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "if true the creating user is added as receiver to the new user's addressbook"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "options": {
            "type": "object",
            "properties": {
              "getUploadConfirmation": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive upload confirmations by default"
              },
              "getExpiryWarning": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive expiry warnings by default"
              },
              "getReceiveNewsletter": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
              }
            },
            "required": [
              "getUploadConfirmation",
              "getExpiryWarning",
              "getReceiveNewsletter"
            ],
            "additionalProperties": false
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the ID of the role"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of roles assigned to newly created users"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
          }
        },
        "required": [
          "realname",
          "lang",
          "clientType",
          "daysValid",
          "emailText",
          "assignReceiver",
          "storagehost",
          "options",
          "roles"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "presets"
  ]
}

Searching for presets requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for presets has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search presets
GET/presets/search?q={q}&t={t}&s={s}&au={au}

Searches for presets residing on the requested storagehost by providing a search keyword.

Please note: Admin-privileges are required to access this resource.

Please note: Cluster-privileges are required to search for presets on different storagehosts by the ID of the requested storagehost, or by passing s=0 to signal that the backend should search cluster-wide.

URI Parameters
HideShow
q
String (required) 

search keyword

t
String (required) 

optional filter for the client type of the found presets

au
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

s
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


POST https://dev.skalio.net/teambeam//presets
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "realname": "Standard",
  "lang": "de_DE",
  "clientType": "employee",
  "daysValid": 365,
  "emailText": "Hello, world!",
  "assignReceiver": false,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "Hello, world!",
    "adminunitIdx": 1,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": true,
    "clusterIdx": 100
  },
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  },
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ],
  "adminunitIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the preset"
    },
    "realname": {
      "type": "string",
      "description": "Employee (string) - the name of the preset"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the default locale of new users created via this preset"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee"
      ],
      "description": "the class of new users created via this preset"
    },
    "daysValid": {
      "type": "number",
      "description": "the validity of new users created via this preset"
    },
    "emailText": {
      "type": "string",
      "description": "a welcome text sent to new users created via this preset"
    },
    "assignReceiver": {
      "type": "boolean",
      "description": "if true the creating user is added as receiver to the new user's addressbook"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive upload confirmations by default"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive expiry warnings by default"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
        }
      }
    },
    "roles": {
      "type": "array",
      "description": "List of roles assigned to newly created users"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
    }
  }
}
Responses201401403

The preset has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "realname": "Standard",
  "lang": "de_DE",
  "clientType": "employee",
  "daysValid": 365,
  "emailText": "Hello, world!",
  "assignReceiver": false,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "Hello, world!",
    "adminunitIdx": 1,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": true,
    "clusterIdx": 100
  },
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  },
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ],
  "adminunitIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the preset"
    },
    "realname": {
      "type": "string",
      "description": "Employee (string) - the name of the preset"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the default locale of new users created via this preset"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee"
      ],
      "description": "the class of new users created via this preset"
    },
    "daysValid": {
      "type": "number",
      "description": "the validity of new users created via this preset"
    },
    "emailText": {
      "type": "string",
      "description": "a welcome text sent to new users created via this preset"
    },
    "assignReceiver": {
      "type": "boolean",
      "description": "if true the creating user is added as receiver to the new user's addressbook"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive upload confirmations by default"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive expiry warnings by default"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
        }
      }
    },
    "roles": {
      "type": "array",
      "description": "List of roles assigned to newly created users"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
    }
  }
}

Creating a preset requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a preset has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Preset
POST/presets

Creates a preset.

Please note: This request requires admin privileges. If accessing a foreign preset this request requires cluster admin privileges.


PUT https://dev.skalio.net/teambeam//presets/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "realname": "Standard",
  "lang": "de_DE",
  "clientType": "employee",
  "daysValid": 365,
  "emailText": "Hello, world!",
  "assignReceiver": false,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "Hello, world!",
    "adminunitIdx": 1,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": true,
    "clusterIdx": 100
  },
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  },
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ],
  "adminunitIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the preset"
    },
    "realname": {
      "type": "string",
      "description": "Employee (string) - the name of the preset"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the default locale of new users created via this preset"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee"
      ],
      "description": "the class of new users created via this preset"
    },
    "daysValid": {
      "type": "number",
      "description": "the validity of new users created via this preset"
    },
    "emailText": {
      "type": "string",
      "description": "a welcome text sent to new users created via this preset"
    },
    "assignReceiver": {
      "type": "boolean",
      "description": "if true the creating user is added as receiver to the new user's addressbook"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive upload confirmations by default"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive expiry warnings by default"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
        }
      }
    },
    "roles": {
      "type": "array",
      "description": "List of roles assigned to newly created users"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
    }
  }
}
Responses200401403

The preset has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "realname": "Standard",
  "lang": "de_DE",
  "clientType": "employee",
  "daysValid": 365,
  "emailText": "Hello, world!",
  "assignReceiver": false,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "Hello, world!",
    "adminunitIdx": 1,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": true,
    "clusterIdx": 100
  },
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  },
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ],
  "adminunitIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the preset"
    },
    "realname": {
      "type": "string",
      "description": "Employee (string) - the name of the preset"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the default locale of new users created via this preset"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee"
      ],
      "description": "the class of new users created via this preset"
    },
    "daysValid": {
      "type": "number",
      "description": "the validity of new users created via this preset"
    },
    "emailText": {
      "type": "string",
      "description": "a welcome text sent to new users created via this preset"
    },
    "assignReceiver": {
      "type": "boolean",
      "description": "if true the creating user is added as receiver to the new user's addressbook"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive upload confirmations by default"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive expiry warnings by default"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "if true new users created via this preset will receive a newsletter (if sent by admin)"
        }
      }
    },
    "roles": {
      "type": "array",
      "description": "List of roles assigned to newly created users"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "ID of adminunit to assign the preset. If none is given, the current adminunit is used."
    }
  }
}

Updating a preset requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a preset has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Preset
PUT/presets/{idx}

Updates the specified preset.

Please note: This request requires admin privileges. If accessing a foreign preset this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a preset


DELETE https://dev.skalio.net/teambeam//presets/idx
Responses204401403
This response has no content.

Deleting a preset requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a preset has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Preset
DELETE/presets/{idx}

Deletes the specified preset.

Please note: This request requires admin privileges. If accessing a foreign preset this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a preset


Preview Resource

The preview resource provides access to downscaled versions of image files of a transfer.

Preview

GET https://dev.skalio.net/teambeam//preview/7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831/0?width=200&height=140
Responses200401404415429
Headers
Content-Type: image/jpeg
Last-Modified: Mon, 30 May 2016 11:51:49 +0000
Etag: "41f810e561c65330ada00a23c9f232b5"
Cache-control: public, max-age=21600
Content-Length: 23401
Body
[... payload ...]

If the transfer requires authentication and none is provided.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 401001,
    "message": "Authorization failed or is missing. Please provide valid credentials.",
    "details": null
  }
}

The transfer has expired or does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 404002,
    "message": "The requested object does not exist.",
    "details": null
  }
}

The target file cannot be rendered as an image.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 415001,
    "message": "The mediatype is not supported.",
    "details": [
      "A preview cannot be generated."
    ]
  }
}

The number of current requests exceeds the allowed levels.

Headers
Content-Type: application/json
Body
{
  "error": {
    "message": "Maximum concurrent downloads reached.",
    "code": 0
  }
}

Preview an image file
GET/preview/{recipientId}/{index}?width={width}&height={height}

Fetches a downscaled version of an image. The client may optionally specify the dimensions in which the image should fit into. The aspect ratio of the image remains unchanged. The image can only be downscaled; specifying values for width or height which exceed the original dimensions has no effect. Minimum dimension is 100x100 pixel, default dimension is 600x600 pixel.

Accessing the preview resource requires the same download authorization as the normal download resource. Typically this is achieved through the HTTP session.

The server does not support partial downloads and download-resume through the Range-header at this resource.

The server supports conditional downloads through the If-none-match-header.

URI Parameters
HideShow
recipientId
string (required) Example: 7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft831

The ID of the transfer

index
number (required) Example: 0

The index of the file in the transfer

width
number (optional) Example: 200

Maximum width of the preview image

height
number (optional) Example: 140

Maximum height of the preview image


Publicboxes Resource

Publicbox objects represent the structure for a TeamBeam Mailbox, the feature which allows for receiving data from persons without own TeamBeam account.

Types

Company Mailbox

A Publicbox may be set up to be used as Company Mailbox. Company Mailboxes can only be created by cluster admins. Regular admins may only update the possible receivers and the vanity URL.

Personal Mailbox

A Publicbox may be set up to be used as Personal Mailbox if this feature has been enabled on the server. A personal mailbox can be created and edited by a regular user.

Vanity URLs

A Publicbox is being used by opening the publicbox URL in a web browser. It is possible to create an custom URL as alternative to the rather cryptic standard URL.

Publicboxes

GET https://dev.skalio.net/teambeam//publicboxes
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "publicboxes": [
    {
      "idx": 1,
      "title": "Hello, world!",
      "vendor": "Hello, world!",
      "helpUrl": "Hello, world!",
      "description": "Hello, world!",
      "uploadQuota": 1,
      "uploadVolume": 1,
      "url": "Hello, world!",
      "validDate": "2037-12-31T15:29:59+00:00",
      "email": "Hello, world!",
      "vanityBase": "Hello, world!",
      "hasVanityLink": true,
      "vanityLink": "Hello, world!",
      "isMyPublic": true,
      "myPublicOwner": {
        "realname": "Hello, world!",
        "email": "Hello, world!"
      },
      "receivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "groups": [
        {
          "idx": "Hello, world!",
          "name": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "publicboxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the publicbox"
          },
          "title": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the title of the publicbox"
          },
          "vendor": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "helpUrl": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "uploadQuota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
          },
          "uploadVolume": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "current number of bytes transferred this month via this publicbox"
          },
          "url": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the URL which opens the web client to use this publicbox"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the publicbox is valid."
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
          },
          "vanityBase": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Base URL for custom vanity URLs"
          },
          "hasVanityLink": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if a custom vanity URL has been defined"
          },
          "vanityLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Custom vanity URL for this publicbox."
          },
          "isMyPublic": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true, if this publicbox belongs to a personal mailbox."
          },
          "myPublicOwner": {
            "type": "object",
            "properties": {
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Name of person whose account is connected to this personal mailbox"
              },
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "E-Mail address of person whose account is connected to this personal mailbox"
              }
            },
            "required": [
              "realname",
              "email"
            ],
            "additionalProperties": false
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "E-Mail address of possible receiver"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receivers when using this publicbox"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of possible receiver group"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver group"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receiver groups when using this publicbox"
          }
        },
        "required": [
          "title",
          "vendor",
          "helpUrl",
          "description",
          "uploadQuota",
          "uploadVolume",
          "url",
          "validDate",
          "email",
          "vanityBase",
          "hasVanityLink",
          "vanityLink",
          "isMyPublic",
          "receivers",
          "groups"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "publicboxes"
  ]
}

Fetching the publixboxes requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List User's Publicboxes
GET/publicboxes

Returns the list of publicboxes in which the logged in user is listed as possible receiver.


GET https://dev.skalio.net/teambeam//publicboxes/idx?key=key
Responses200403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "url": "Hello, world!",
  "validDate": "2037-12-31T15:29:59+00:00",
  "email": "Hello, world!",
  "vanityBase": "Hello, world!",
  "hasVanityLink": true,
  "vanityLink": "Hello, world!",
  "isMyPublic": true,
  "myPublicOwner": {
    "realname": "Hello, world!",
    "email": "Hello, world!"
  },
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "groups": [
    {
      "idx": "Hello, world!",
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the publicbox"
    },
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "uploadQuota": {
      "type": "number",
      "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "current number of bytes transferred this month via this publicbox"
    },
    "url": {
      "type": "string",
      "description": "the URL which opens the web client to use this publicbox"
    },
    "validDate": {
      "type": "string",
      "description": "date until the publicbox is valid."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityBase": {
      "type": "string",
      "description": "Base URL for custom vanity URLs"
    },
    "hasVanityLink": {
      "type": "boolean",
      "description": "true if a custom vanity URL has been defined"
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "isMyPublic": {
      "type": "boolean",
      "description": "true, if this publicbox belongs to a personal mailbox."
    },
    "myPublicOwner": {
      "type": "object",
      "properties": {
        "realname": {
          "type": "string",
          "description": "Name of person whose account is connected to this personal mailbox"
        },
        "email": {
          "type": "string",
          "description": "E-Mail address of person whose account is connected to this personal mailbox"
        }
      }
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "groups": {
      "type": "array",
      "description": "List of possible receiver groups when using this publicbox"
    }
  }
}

Access to this publicbox has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no publicbox found by this id, or the key did not match

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Publicbox
GET/publicboxes/{idx}?key={key}

Fetches the specified publicbox.

Please note: This resource may be used without authentication.

URI Parameters
HideShow
idx
number (required) 

ID of a publicbox

key
number (optional) 

Numeric key of the publicbox. Required when accessing the publicbox without authentication.


GET https://dev.skalio.net/teambeam//publicboxes/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "publicboxes": [
    {
      "idx": 1,
      "title": "Hello, world!",
      "vendor": "Hello, world!",
      "helpUrl": "Hello, world!",
      "description": "Hello, world!",
      "uploadQuota": 1,
      "uploadVolume": 1,
      "url": "Hello, world!",
      "validDate": "2037-12-31T15:29:59+00:00",
      "email": "Hello, world!",
      "vanityBase": "Hello, world!",
      "hasVanityLink": true,
      "vanityLink": "Hello, world!",
      "isMyPublic": true,
      "myPublicOwner": {
        "realname": "Hello, world!",
        "email": "Hello, world!"
      },
      "receivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "groups": [
        {
          "idx": "Hello, world!",
          "name": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "publicboxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the publicbox"
          },
          "title": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the title of the publicbox"
          },
          "vendor": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "helpUrl": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "uploadQuota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
          },
          "uploadVolume": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "current number of bytes transferred this month via this publicbox"
          },
          "url": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the URL which opens the web client to use this publicbox"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the publicbox is valid."
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
          },
          "vanityBase": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Base URL for custom vanity URLs"
          },
          "hasVanityLink": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if a custom vanity URL has been defined"
          },
          "vanityLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Custom vanity URL for this publicbox."
          },
          "isMyPublic": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true, if this publicbox belongs to a personal mailbox."
          },
          "myPublicOwner": {
            "type": "object",
            "properties": {
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Name of person whose account is connected to this personal mailbox"
              },
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "E-Mail address of person whose account is connected to this personal mailbox"
              }
            },
            "required": [
              "realname",
              "email"
            ],
            "additionalProperties": false
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "E-Mail address of possible receiver"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receivers when using this publicbox"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of possible receiver group"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver group"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receiver groups when using this publicbox"
          }
        },
        "required": [
          "title",
          "vendor",
          "helpUrl",
          "description",
          "uploadQuota",
          "uploadVolume",
          "url",
          "validDate",
          "email",
          "vanityBase",
          "hasVanityLink",
          "vanityLink",
          "isMyPublic",
          "receivers",
          "groups"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "publicboxes"
  ]
}

Fetching the publicboxes requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the publicboxes have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Publicboxes
GET/publicboxes/serverlist

This retrieves all publicboxes on this storagehost.

Please note: Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//publicboxes/clusterlist?s=s
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "publicboxes": [
    {
      "idx": 1,
      "title": "Hello, world!",
      "vendor": "Hello, world!",
      "helpUrl": "Hello, world!",
      "description": "Hello, world!",
      "uploadQuota": 1,
      "uploadVolume": 1,
      "url": "Hello, world!",
      "validDate": "2037-12-31T15:29:59+00:00",
      "email": "Hello, world!",
      "vanityBase": "Hello, world!",
      "hasVanityLink": true,
      "vanityLink": "Hello, world!",
      "isMyPublic": true,
      "myPublicOwner": {
        "realname": "Hello, world!",
        "email": "Hello, world!"
      },
      "receivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "groups": [
        {
          "idx": "Hello, world!",
          "name": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "publicboxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the publicbox"
          },
          "title": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the title of the publicbox"
          },
          "vendor": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "helpUrl": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "uploadQuota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
          },
          "uploadVolume": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "current number of bytes transferred this month via this publicbox"
          },
          "url": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the URL which opens the web client to use this publicbox"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the publicbox is valid."
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
          },
          "vanityBase": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Base URL for custom vanity URLs"
          },
          "hasVanityLink": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if a custom vanity URL has been defined"
          },
          "vanityLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Custom vanity URL for this publicbox."
          },
          "isMyPublic": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true, if this publicbox belongs to a personal mailbox."
          },
          "myPublicOwner": {
            "type": "object",
            "properties": {
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Name of person whose account is connected to this personal mailbox"
              },
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "E-Mail address of person whose account is connected to this personal mailbox"
              }
            },
            "required": [
              "realname",
              "email"
            ],
            "additionalProperties": false
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "E-Mail address of possible receiver"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receivers when using this publicbox"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of possible receiver group"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver group"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receiver groups when using this publicbox"
          }
        },
        "required": [
          "title",
          "vendor",
          "helpUrl",
          "description",
          "uploadQuota",
          "uploadVolume",
          "url",
          "validDate",
          "email",
          "vanityBase",
          "hasVanityLink",
          "vanityLink",
          "isMyPublic",
          "receivers",
          "groups"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "publicboxes"
  ]
}

Fetching the publicboxes requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the publicboxes have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Publicboxes on cluster
GET/publicboxes/clusterlist?s={s}

This retrieves all publicboxes on the cluster.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
s
number (required) 

optional filter for the storagehost ID of the returned roles


GET https://dev.skalio.net/teambeam//publicboxes/search?q=q&s=s
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "publicboxes": [
    {
      "idx": 1,
      "title": "Hello, world!",
      "vendor": "Hello, world!",
      "helpUrl": "Hello, world!",
      "description": "Hello, world!",
      "uploadQuota": 1,
      "uploadVolume": 1,
      "url": "Hello, world!",
      "validDate": "2037-12-31T15:29:59+00:00",
      "email": "Hello, world!",
      "vanityBase": "Hello, world!",
      "hasVanityLink": true,
      "vanityLink": "Hello, world!",
      "isMyPublic": true,
      "myPublicOwner": {
        "realname": "Hello, world!",
        "email": "Hello, world!"
      },
      "receivers": [
        {
          "email": "Hello, world!",
          "realname": "Hello, world!"
        }
      ],
      "groups": [
        {
          "idx": "Hello, world!",
          "name": "Hello, world!"
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "publicboxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the publicbox"
          },
          "title": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the title of the publicbox"
          },
          "vendor": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "helpUrl": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
          },
          "uploadQuota": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
          },
          "uploadVolume": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "current number of bytes transferred this month via this publicbox"
          },
          "url": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the URL which opens the web client to use this publicbox"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the publicbox is valid."
          },
          "email": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
          },
          "vanityBase": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Base URL for custom vanity URLs"
          },
          "hasVanityLink": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true if a custom vanity URL has been defined"
          },
          "vanityLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Custom vanity URL for this publicbox."
          },
          "isMyPublic": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "true, if this publicbox belongs to a personal mailbox."
          },
          "myPublicOwner": {
            "type": "object",
            "properties": {
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Name of person whose account is connected to this personal mailbox"
              },
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "E-Mail address of person whose account is connected to this personal mailbox"
              }
            },
            "required": [
              "realname",
              "email"
            ],
            "additionalProperties": false
          },
          "receivers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "E-Mail address of possible receiver"
                },
                "realname": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver"
                }
              },
              "required": [
                "email",
                "realname"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receivers when using this publicbox"
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "ID of possible receiver group"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "Name of possible receiver group"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "List of possible receiver groups when using this publicbox"
          }
        },
        "required": [
          "title",
          "vendor",
          "helpUrl",
          "description",
          "uploadQuota",
          "uploadVolume",
          "url",
          "validDate",
          "email",
          "vanityBase",
          "hasVanityLink",
          "vanityLink",
          "isMyPublic",
          "receivers",
          "groups"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "publicboxes"
  ]
}

Searching for publicboxes requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for publicboxes has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search publicboxes
GET/publicboxes/search?q={q}&s={s}

Searches for publicboxes residing on the requested storagehost by providing a search keyword.

Please note: Admin-privileges are required to access this resource.

Please note: Cluster-privileges are required to search for publicboxes on different storagehosts by the ID of the requested storagehost, or by passing s=0 to signal that the backend should search cluster-wide.

URI Parameters
HideShow
q
String (required) 

search keyword

s
number (required) 

optional filter for the storagehost ID of the found publicboxes (pass s=0 to search cluster-wide)


POST https://dev.skalio.net/teambeam//publicboxes/
RequestsCreate Company MailboxCreate Personal Mailbox
Headers
Content-Type: application/json
Body
{
  "title": "ExampleMailbox",
  "presetIdx": 23
}
Responses201401403

The publicbox has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "url": "Hello, world!",
  "validDate": "2037-12-31T15:29:59+00:00",
  "email": "Hello, world!",
  "vanityBase": "Hello, world!",
  "hasVanityLink": true,
  "vanityLink": "Hello, world!",
  "isMyPublic": true,
  "myPublicOwner": {
    "realname": "Hello, world!",
    "email": "Hello, world!"
  },
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "groups": [
    {
      "idx": "Hello, world!",
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the publicbox"
    },
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "uploadQuota": {
      "type": "number",
      "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "current number of bytes transferred this month via this publicbox"
    },
    "url": {
      "type": "string",
      "description": "the URL which opens the web client to use this publicbox"
    },
    "validDate": {
      "type": "string",
      "description": "date until the publicbox is valid."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityBase": {
      "type": "string",
      "description": "Base URL for custom vanity URLs"
    },
    "hasVanityLink": {
      "type": "boolean",
      "description": "true if a custom vanity URL has been defined"
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "isMyPublic": {
      "type": "boolean",
      "description": "true, if this publicbox belongs to a personal mailbox."
    },
    "myPublicOwner": {
      "type": "object",
      "properties": {
        "realname": {
          "type": "string",
          "description": "Name of person whose account is connected to this personal mailbox"
        },
        "email": {
          "type": "string",
          "description": "E-Mail address of person whose account is connected to this personal mailbox"
        }
      }
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "groups": {
      "type": "array",
      "description": "List of possible receiver groups when using this publicbox"
    }
  }
}

Creating a publicbox requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a publicbox has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}
Headers
Content-Type: application/json
Body
{
  "title": "ExampleMailbox",
  "myPublicOwner": {
    "email": "bob@example.org",
    "name": "Bob Smith"
  }
}
Responses201401403

The publicbox has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "url": "Hello, world!",
  "validDate": "2037-12-31T15:29:59+00:00",
  "email": "Hello, world!",
  "vanityBase": "Hello, world!",
  "hasVanityLink": true,
  "vanityLink": "Hello, world!",
  "isMyPublic": true,
  "myPublicOwner": {
    "realname": "Hello, world!",
    "email": "Hello, world!"
  },
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "groups": [
    {
      "idx": "Hello, world!",
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the publicbox"
    },
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "uploadQuota": {
      "type": "number",
      "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "current number of bytes transferred this month via this publicbox"
    },
    "url": {
      "type": "string",
      "description": "the URL which opens the web client to use this publicbox"
    },
    "validDate": {
      "type": "string",
      "description": "date until the publicbox is valid."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityBase": {
      "type": "string",
      "description": "Base URL for custom vanity URLs"
    },
    "hasVanityLink": {
      "type": "boolean",
      "description": "true if a custom vanity URL has been defined"
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "isMyPublic": {
      "type": "boolean",
      "description": "true, if this publicbox belongs to a personal mailbox."
    },
    "myPublicOwner": {
      "type": "object",
      "properties": {
        "realname": {
          "type": "string",
          "description": "Name of person whose account is connected to this personal mailbox"
        },
        "email": {
          "type": "string",
          "description": "E-Mail address of person whose account is connected to this personal mailbox"
        }
      }
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "groups": {
      "type": "array",
      "description": "List of possible receiver groups when using this publicbox"
    }
  }
}

Creating a publicbox requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a publicbox has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Publicbox as admin
POST/publicboxes/

Creates a publicbox as administrator.

Please note: Cluster-Admin-privileges are required if creating a company mailbox.

Please note: Regular Admin-privileges are required if creating a personal mailbox for another user. This only works if personal mailboxes have been activated on the server and if the user has the right to use personal mailbox.

When creating a company mailbox you must define a preset id which is being used to create the underlying public box user. When creating a personal mailbox you must define a user for which the personal mailbox shall be created.


POST https://dev.skalio.net/teambeam//publicboxes/mypublic
Requestsexample 1
Headers
Content-Type: application/json
Responses201401403

The publicbox has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "url": "Hello, world!",
  "validDate": "2037-12-31T15:29:59+00:00",
  "email": "Hello, world!",
  "vanityBase": "Hello, world!",
  "hasVanityLink": true,
  "vanityLink": "Hello, world!",
  "isMyPublic": true,
  "myPublicOwner": {
    "realname": "Hello, world!",
    "email": "Hello, world!"
  },
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "groups": [
    {
      "idx": "Hello, world!",
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the publicbox"
    },
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "uploadQuota": {
      "type": "number",
      "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "current number of bytes transferred this month via this publicbox"
    },
    "url": {
      "type": "string",
      "description": "the URL which opens the web client to use this publicbox"
    },
    "validDate": {
      "type": "string",
      "description": "date until the publicbox is valid."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityBase": {
      "type": "string",
      "description": "Base URL for custom vanity URLs"
    },
    "hasVanityLink": {
      "type": "boolean",
      "description": "true if a custom vanity URL has been defined"
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "isMyPublic": {
      "type": "boolean",
      "description": "true, if this publicbox belongs to a personal mailbox."
    },
    "myPublicOwner": {
      "type": "object",
      "properties": {
        "realname": {
          "type": "string",
          "description": "Name of person whose account is connected to this personal mailbox"
        },
        "email": {
          "type": "string",
          "description": "E-Mail address of person whose account is connected to this personal mailbox"
        }
      }
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "groups": {
      "type": "array",
      "description": "List of possible receiver groups when using this publicbox"
    }
  }
}

Creating a publicbox requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a publicbox has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create User's personal Publicbox
POST/publicboxes/mypublic

Creates a publicbox which is being used a personal mailbox for the currently logged-in user.

Please note: This only works if personal mailboxes have been activated on the server and if the user has the right to use personal mailbox.


PUT https://dev.skalio.net/teambeam//publicboxes/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "email": "Hello, world!",
  "vanityLink": "Hello, world!",
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "presetIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "presetIdx": {
      "type": "number",
      "description": "The ID of the preset which shall be used to create a new publicbox."
    }
  }
}
Responses200401403404

The publicbox has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "title": "Hello, world!",
  "vendor": "Hello, world!",
  "helpUrl": "Hello, world!",
  "description": "Hello, world!",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "url": "Hello, world!",
  "validDate": "2037-12-31T15:29:59+00:00",
  "email": "Hello, world!",
  "vanityBase": "Hello, world!",
  "hasVanityLink": true,
  "vanityLink": "Hello, world!",
  "isMyPublic": true,
  "myPublicOwner": {
    "realname": "Hello, world!",
    "email": "Hello, world!"
  },
  "receivers": [
    {
      "email": "Hello, world!",
      "realname": "Hello, world!"
    }
  ],
  "groups": [
    {
      "idx": "Hello, world!",
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the publicbox"
    },
    "title": {
      "type": "string",
      "description": "the title of the publicbox"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor of the service. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "helpUrl": {
      "type": "string",
      "description": "a url pointing to a web resource. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "description": {
      "type": "string",
      "description": "a decriptive text. Used for Java Webstart legacy reasons. May be diregarded."
    },
    "uploadQuota": {
      "type": "number",
      "description": "the maximum number of megabytes that may be transferred via this publicbox within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "current number of bytes transferred this month via this publicbox"
    },
    "url": {
      "type": "string",
      "description": "the URL which opens the web client to use this publicbox"
    },
    "validDate": {
      "type": "string",
      "description": "date until the publicbox is valid."
    },
    "email": {
      "type": "string",
      "description": "the email address of the anonymous helper account behind this publicbox. May only be modified by cluster admins."
    },
    "vanityBase": {
      "type": "string",
      "description": "Base URL for custom vanity URLs"
    },
    "hasVanityLink": {
      "type": "boolean",
      "description": "true if a custom vanity URL has been defined"
    },
    "vanityLink": {
      "type": "string",
      "description": "Custom vanity URL for this publicbox."
    },
    "isMyPublic": {
      "type": "boolean",
      "description": "true, if this publicbox belongs to a personal mailbox."
    },
    "myPublicOwner": {
      "type": "object",
      "properties": {
        "realname": {
          "type": "string",
          "description": "Name of person whose account is connected to this personal mailbox"
        },
        "email": {
          "type": "string",
          "description": "E-Mail address of person whose account is connected to this personal mailbox"
        }
      }
    },
    "receivers": {
      "type": "array",
      "description": "List of possible receivers when using this publicbox"
    },
    "groups": {
      "type": "array",
      "description": "List of possible receiver groups when using this publicbox"
    }
  }
}

Updating a publicbox requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a publicbox has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no publicbox found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Publicbox
PUT/publicboxes/{idx}

Updates the specified publicbox.

Please note: When updating a public box used for a company mailbox Admin-privileges are required (Cluster admin rights if the public box is on a foreign storagehost). Regular users may update the publicbox used for their personal mailbox.

URI Parameters
HideShow
idx
number (required) 

ID of a publicbox


DELETE https://dev.skalio.net/teambeam//publicboxes/idx
Responses204401403
This response has no content.

Deleting a publicbox requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a publicbox has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Publicbox
DELETE/publicboxes/{idx}

Deletes the specified publicbox.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a publicbox


Register Resource

New users can be invited to join the service or signup themselves. The features must be activated and configured correctly.

Registration

POST https://dev.skalio.net/teambeam//register/invite
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Uncle Bob"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the invitee; must be a valid email"
    },
    "realname": {
      "type": "string",
      "description": "the invitee's name"
    }
  }
}
Responses204401403
This response has no content.

Authentication was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Inviting failed due to missing permissions. Details can be found in the Exception message.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Invite a person
POST/register/invite

Sends an invitation to a new user including a link with a valid OneTimeKey which can be used to set up a user account.

Please note: This feature must be activated and configured properly before it can be used.

The request must be authenticated. The principal must have the authorization to invite.


POST https://dev.skalio.net/teambeam//register/signup
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Uncle Bob"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the person signing up; must be a valid email"
    },
    "realname": {
      "type": "string",
      "description": "the name of the person signing up"
    }
  }
}
Responses204403
This response has no content.

Signing up failed due to missing permissions. Details can be found in the Exception message.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Self-Signup
POST/register/signup

Sends a sign up request to the server in order to get a registration e-mail with a valid OneTimeKey which can be used to set up a user account.

Please note: This feature must be activated and configured properly before it can be used.

The request does not need to be authenticated.


Reservations Resource

The Reservations API is used to initiate, complete or cancel a transfer. Typical order:

  1. Create reservation, receive objectIds and token in response
  2. Upload each file to upload URL containing matching objectId, authorize with token
  3. Confirm reservation using URL containing token

A reservation holds information about an upcoming or ongoing transfer. The initiator can either be a registered user or an anonymous user.

  • Registered users must use an authenticated session to access the resource.

  • Anonymous users do not require an authenticated session. They can only send data to a TeamBeam mailbox and must provide the sender’s email-address and name.

Reservations are valid for a certain amount of time (typically 48h) and get cancelled automatically if they are not confirmed in time.

Reservations

POST https://dev.skalio.net/teambeam//reservations
RequestsCreate new reservationCreate reservation for mailboxCreate reservation, forwarding a transfer
Headers
Content-Type: application/json
Body
{
  "subject": "Data from last financial quarter",
  "description": "Hi Alice,\\nHere are the results from last quarter.\\nCheers, Bob",
  "recipientNotification": true,
  "deliveryNotification": false,
  "recipientAuthentication": false,
  "ttl": 0,
  "priority": 3,
  "signatureId": 0,
  "folderIdx": 34,
  "receivers": [
    {
      "name": "Alice",
      "email": "alice@example.com",
      "type": "to"
    }
  ],
  "groups": [
    {
      "idx": 56,
      "type": "to"
    }
  ],
  "protection": {
    "enabled": false,
    "key": "correct-horse-battery-staple"
  },
  "files": [
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Subject line"
    },
    "description": {
      "type": "string",
      "description": "Multi-line text"
    },
    "recipientNotification": {
      "type": "boolean",
      "description": "If true, the recipient will be informed of the new transfer. For drive-transfer, this is always false."
    },
    "deliveryNotification": {
      "type": "boolean",
      "description": "If true, the sender will be informed of the delivery success."
    },
    "recipientAuthentication": {
      "type": "boolean",
      "description": "If true, the transfer can only be accessed by the authenticated recipient."
    },
    "ttl": {
      "type": "number",
      "enum": [
        0,
        1,
        2,
        3,
        5,
        7,
        14,
        31
      ],
      "description": "Time in days the transfer shall be valid. If `0` or not set, the server-default is used."
    },
    "priority": {
      "type": "number",
      "enum": [
        3,
        1,
        5
      ],
      "description": "The priority of the notification email. Defaults to `3`."
    },
    "signatureId": {
      "type": "number",
      "description": "The ID of the user's signature to append to notification mails."
    },
    "folderIdx": {
      "type": "number",
      "description": "The ID of a folder where the transfer shall be stored"
    },
    "receivers": {
      "type": "array",
      "description": "List of individual receivers the transfer shall be delivered to"
    },
    "groups": {
      "type": "array",
      "description": "List of groups the transfer shall be delivered to"
    },
    "protection": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "If true, the transfer will be protected from unauthorized access with a password."
        },
        "key": {
          "type": "string",
          "description": "The transfer password in cleartext"
        }
      }
    },
    "files": {
      "type": "array",
      "description": "List of files to be uploaded in the transfer."
    }
  },
  "required": [
    "files"
  ]
}
Responses201

Reservation has been created. A token has been created.

Headers
Content-Type: application/json
Location: /rs/v1/reservations/{token}
Body
{
  "token": "6bn5dnp8zs3vv4j7bsf0vcbk6oj9l19anivh6lh",
  "files": [
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1",
      "objectId": "f4esj7jlo9"
    }
  ],
  "totalSize": 231405
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Auth-token to be used when uploading files"
    },
    "files": {
      "type": "array"
    },
    "totalSize": {
      "type": "number",
      "description": "Sum of the size of all files, in Byte"
    }
  },
  "required": [
    "token",
    "totalSize"
  ]
}
Headers
Content-Type: application/json
Body
{
  "subject": "Data from last financial quarter",
  "description": "Hi Alice,\\nHere are the results from last quarter.\\nCheers, Bob",
  "recipientNotification": true,
  "deliveryNotification": false,
  "recipientAuthentication": false,
  "ttl": 0,
  "priority": 3,
  "signatureId": 0,
  "publicBoxIdx": 12,
  "receivers": [
    {
      "name": "Alice",
      "email": "alice@example.com",
      "type": "to"
    }
  ],
  "anon": {
    "email": "customer@example.net",
    "name": "John Doe"
  },
  "files": [
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Subject line"
    },
    "description": {
      "type": "string",
      "description": "Multi-line text"
    },
    "recipientNotification": {
      "type": "boolean",
      "description": "If true, the recipient will be informed of the new transfer. For drive-transfer, this is always false."
    },
    "deliveryNotification": {
      "type": "boolean",
      "description": "If true, the sender will be informed of the delivery success."
    },
    "recipientAuthentication": {
      "type": "boolean",
      "description": "If true, the transfer can only be accessed by the authenticated recipient."
    },
    "ttl": {
      "type": "number",
      "enum": [
        0,
        1,
        2,
        3,
        5,
        7,
        14,
        31
      ],
      "description": "Time in days the transfer shall be valid. If `0` or not set, the server-default is used."
    },
    "priority": {
      "type": "number",
      "enum": [
        3,
        1,
        5
      ],
      "description": "The priority of the notification email. Defaults to `3`."
    },
    "signatureId": {
      "type": "number",
      "description": "The ID of the user's signature to append to notification mails."
    },
    "publicBoxIdx": {
      "type": "number",
      "description": "The ID of a public box that the reservation is for"
    },
    "receivers": {
      "type": "array",
      "description": "List of individual receivers the transfer shall be delivered to"
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The sender's email address"
        },
        "name": {
          "type": "string",
          "description": "The sender's name"
        }
      },
      "required": [
        "email",
        "name"
      ]
    },
    "files": {
      "type": "array",
      "description": "List of files to be uploaded in the transfer."
    }
  },
  "required": [
    "publicBoxIdx",
    "anon",
    "files"
  ]
}
Responses201

Reservation has been created. A token has been created.

Headers
Content-Type: application/json
Location: /rs/v1/reservations/{token}
Body
{
  "token": "6bn5dnp8zs3vv4j7bsf0vcbk6oj9l19anivh6lh",
  "files": [
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1",
      "objectId": "f4esj7jlo9"
    }
  ],
  "totalSize": 231405
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Auth-token to be used when uploading files"
    },
    "files": {
      "type": "array"
    },
    "totalSize": {
      "type": "number",
      "description": "Sum of the size of all files, in Byte"
    }
  },
  "required": [
    "token",
    "totalSize"
  ]
}
Headers
Content-Type: application/json
Body
{
  "subject": "Fwd: Data from last quarter",
  "description": "Hi Alice,\\nHere are the results from last quarter.\\nCheers, Bob",
  "recipientNotification": true,
  "deliveryNotification": false,
  "recipientAuthentication": false,
  "ttl": 0,
  "priority": 3,
  "signatureId": 0,
  "folderIdx": 34,
  "receivers": [
    {
      "name": "Alice",
      "email": "alice@example.com",
      "type": "to"
    }
  ],
  "groups": [
    {
      "idx": 56,
      "type": "to"
    }
  ],
  "protection": {
    "enabled": false,
    "key": "correct-horse-battery-staple"
  },
  "srcRecipientId": "wgi6p82cp1eol9e3jg213im9df3gsbp965fdp96v",
  "files": [
    {
      "id": "sc8s461x5",
      "objectId": "f4esj7jlo9"
    },
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Subject line"
    },
    "description": {
      "type": "string",
      "description": "Multi-line text"
    },
    "recipientNotification": {
      "type": "boolean",
      "description": "If true, the recipient will be informed of the new transfer. For drive-transfer, this is always false."
    },
    "deliveryNotification": {
      "type": "boolean",
      "description": "If true, the sender will be informed of the delivery success."
    },
    "recipientAuthentication": {
      "type": "boolean",
      "description": "If true, the transfer can only be accessed by the authenticated recipient."
    },
    "ttl": {
      "type": "number",
      "enum": [
        0,
        1,
        2,
        3,
        5,
        7,
        14,
        31
      ],
      "description": "Time in days the transfer shall be valid. If `0` or not set, the server-default is used."
    },
    "priority": {
      "type": "number",
      "enum": [
        3,
        1,
        5
      ],
      "description": "The priority of the notification email. Defaults to `3`."
    },
    "signatureId": {
      "type": "number",
      "description": "The ID of the user's signature to append to notification mails."
    },
    "folderIdx": {
      "type": "number",
      "description": "The ID of a folder where the transfer shall be stored"
    },
    "receivers": {
      "type": "array",
      "description": "List of individual receivers the transfer shall be delivered to"
    },
    "groups": {
      "type": "array",
      "description": "List of groups the transfer shall be delivered to"
    },
    "protection": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "If true, the transfer will be protected from unauthorized access with a password."
        },
        "key": {
          "type": "string",
          "description": "The transfer password in cleartext"
        }
      }
    },
    "srcRecipientId": {
      "type": "string",
      "description": "The recipient ID of the source transfer"
    },
    "files": {
      "type": "array",
      "description": "List of files to be uploaded in the transfer."
    }
  },
  "required": [
    "srcRecipientId",
    "files"
  ]
}
Responses201

Reservation has been created. A token has been created.

Headers
Content-Type: application/json
Location: /rs/v1/reservations/{token}
Body
{
  "token": "6bn5dnp8zs3vv4j7bsf0vcbk6oj9l19anivh6lh",
  "files": [
    {
      "id": "sc8s461x5",
      "objectId": "f4esj7jlo9"
    },
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1"
    }
  ],
  "totalSize": 231405,
  "subject": "Fwd: Data from last quarter",
  "srcRecipientId": "wgi6p82cp1eol9e3jg213im9df3gsbp965fdp96v"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Auth-token to be used when uploading files"
    },
    "files": {
      "type": "array"
    },
    "totalSize": {
      "type": "number",
      "description": "Sum of the size of all files, in Byte"
    },
    "subject": {
      "type": "string"
    },
    "srcRecipientId": {
      "type": "string"
    }
  },
  "required": [
    "token",
    "totalSize"
  ]
}

Create Reservation
POST/reservations

The resource verifies that account privileges are not violated and may reject a reservation-request. Possible reasons:

  • sender is not allowed to address the receiver or group

  • file size or number of files exceed limits

  • upload quota cannot accomodate the transfer

  • password protection is required; password complexity requirements are violated

Once created, a reservation will allocate and block the required upload quota. When a reservation is cancelled, this allocation is released again.

In order to match request and response info regarding the files, each file needs an individual id in the reservation request. The same id will be present in the reponse file block.

The response contains additional important fields to be used during the upload:

  • token: authorizes the upload of files

  • objectId: each file has a server-assigned ID that is to be used in the upload URL

When forwarding an existing transfer, the reservation can select individual objects from the source transfer to be included. The reservation can also include new objects yet to be uploaded:

  • reference the source transfer in srcRecipientId

  • reference objects by specifying their objectId

The uploader must have access to the source transfer.

The request must be authenticated, unless the destination is a mailbox.


GET https://dev.skalio.net/teambeam//reservations/token
Responses200401404
Headers
Content-Type: application/json
Body
{
  "subject": "Data from last financial quarter",
  "description": "Hi Alice,\\nHere are the results from last quarter.\\nCheers, Bob",
  "recipientNotification": true,
  "deliveryNotification": false,
  "recipientAuthentication": false,
  "ttl": 0,
  "priority": 3,
  "signatureId": 0,
  "folderIdx": 34,
  "receivers": [
    {
      "name": "Alice",
      "email": "alice@example.com",
      "type": "to"
    }
  ],
  "groups": [
    {
      "idx": 56,
      "type": "to"
    }
  ],
  "protection": {
    "enabled": false,
    "key": "correct-horse-battery-staple"
  },
  "files": [
    {
      "name": "report_Q1.xlsx",
      "size": 231405,
      "id": "458894A1",
      "objectId": "f4esj7jlo9"
    }
  ],
  "token": "6bn5dnp8zs3vv4j7bsf0vcbk6oj9l19anivh6lh",
  "creationTimestamp": "2015-06-17T14:55:55+00:00",
  "totalSize": 231405,
  "publicBoxIdx": 12,
  "protectionEnabled": false,
  "anon": {
    "email": "customer@example.net",
    "name": "John Doe"
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "description": "Subject line"
    },
    "description": {
      "type": "string",
      "description": "Multi-line text"
    },
    "recipientNotification": {
      "type": "boolean",
      "description": "If true, the recipient will be informed of the new transfer. For drive-transfer, this is always false."
    },
    "deliveryNotification": {
      "type": "boolean",
      "description": "If true, the sender will be informed of the delivery success."
    },
    "recipientAuthentication": {
      "type": "boolean",
      "description": "If true, the transfer can only be accessed by the authenticated recipient."
    },
    "ttl": {
      "type": "number",
      "enum": [
        0,
        1,
        2,
        3,
        5,
        7,
        14,
        31
      ],
      "description": "Time in days the transfer shall be valid. If `0` or not set, the server-default is used."
    },
    "priority": {
      "type": "number",
      "enum": [
        3,
        1,
        5
      ],
      "description": "The priority of the notification email. Defaults to `3`."
    },
    "signatureId": {
      "type": "number",
      "description": "The ID of the user's signature to append to notification mails."
    },
    "folderIdx": {
      "type": "number",
      "description": "The ID of a folder where the transfer shall be stored"
    },
    "receivers": {
      "type": "array",
      "description": "List of individual receivers the transfer shall be delivered to"
    },
    "groups": {
      "type": "array",
      "description": "List of groups the transfer shall be delivered to"
    },
    "protection": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "If true, the transfer will be protected from unauthorized access with a password."
        },
        "key": {
          "type": "string",
          "description": "The transfer password in cleartext"
        }
      }
    },
    "files": {
      "type": "array",
      "description": "List of files to be uploaded in the transfer."
    },
    "token": {
      "type": "string",
      "description": "Auth-token to be used when uploading files"
    },
    "creationTimestamp": {
      "type": "string",
      "description": "Date string when the reservation was created"
    },
    "totalSize": {
      "type": "number",
      "description": "Sum of the size of all files, in Byte"
    },
    "publicBoxIdx": {
      "type": "number",
      "description": "The ID of a public box that the reservation is for"
    },
    "protectionEnabled": {
      "type": "boolean",
      "description": "If true, the transfer is protected from unauthorized access with a password."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The sender's email address"
        },
        "name": {
          "type": "string",
          "description": "The sender's name"
        }
      },
      "required": [
        "email",
        "name"
      ]
    }
  },
  "required": [
    "files",
    "token",
    "creationTimestamp",
    "totalSize",
    "publicBoxIdx",
    "anon"
  ]
}

The reservation requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Authentication failed or missing.",
  "details": []
}

The reservation is not found, or does not belong to the storagehost.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Reservation invalid or not found",
  "details": []
}

Retrieve Reservation
GET/reservations/{token}

Retrieves the reservation with the given ID.

The request must be authenticated, unless the destination is a mailbox. The user must have appropriate privileges to access the reservation.

URI Parameters
HideShow
token
string (required) 

The ID of the reservation


GET https://dev.skalio.net/teambeam//reservations
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "reservations": [
    {
      "subject": "Data from last financial quarter",
      "description": "Hi Alice,\\nHere are the results from last quarter.\\nCheers, Bob",
      "recipientNotification": true,
      "deliveryNotification": false,
      "recipientAuthentication": false,
      "ttl": 0,
      "priority": 3,
      "signatureId": 0,
      "folderIdx": 34,
      "receivers": [
        {
          "name": "Alice",
          "email": "alice@example.com",
          "type": "to"
        }
      ],
      "groups": [
        {
          "idx": 56,
          "type": "to"
        }
      ],
      "protection": {
        "enabled": false,
        "key": "correct-horse-battery-staple"
      },
      "files": [
        {
          "name": "report_Q1.xlsx",
          "size": 231405,
          "id": "458894A1",
          "objectId": "f4esj7jlo9"
        }
      ],
      "token": "6bn5dnp8zs3vv4j7bsf0vcbk6oj9l19anivh6lh",
      "creationTimestamp": "2015-06-17T14:55:55+00:00",
      "totalSize": 231405,
      "publicBoxIdx": 12,
      "protectionEnabled": false,
      "anon": {
        "email": "customer@example.net",
        "name": "John Doe"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "reservations": {
      "type": "array"
    }
  },
  "required": [
    "total"
  ]
}

The reservation requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Authentication failed or missing.",
  "details": []
}

Retrieve Open Reservations
GET/reservations

Retrieves the open reservations for the user.

The request must be authenticated.


POST https://dev.skalio.net/teambeam//reservations/token/confirm
Responses201401404403409

The reservation has been confirmed and relevant transfers have been created. The response contains IDs of the created transfers.

Body
{
  "result": [
    {
      "recipientId": "m1byzfec5xpf6q1jlm4819n4eefexlbek4ge3sfe"
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recipientId": {
            "type": "string",
            "description": "ID of the created transfer"
          }
        },
        "required": [
          "recipientId"
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-04/schema#"
}

The reservation requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Authentication failed or missing.",
  "details": []
}

The reservation is not found, or does not belong to the storagehost.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Reservation invalid or not found",
  "details": []
}

Contraints prohibit the acceptance of the reservation. Examples are quota violation, no access to referenced objects (groups, folders, etc). Check the response body for details.

Headers
Content-Type: application/json
Body
{
  "TODO": "fix me"
}

Something went wrong while persisting an objects. The request may be retried, but it might be necessary to retrieve additional information first.

Headers
Content-Type: application/json
Body
{
  "TODO": "fix me"
}

Confirm Reservation
POST/reservations/{token}/confirm

Confirms the reservation with the given ID. This request shall be made, once all files have been uploaded. The resource will verify that all files have been uploaded correctly and may reject the request. In such a case the sender can re-upload missing files and re-confirm the reservation.

The request must be authenticated, unless the destination is a mailbox. The user must have appropriate privileges to access the reservation.

A successfully confirmed reservation is automatically removed by the system. The response contains the recipient-ID of the newly created transfers.

URI Parameters
HideShow
token
string (required) 

The ID of the reservation


DELETE https://dev.skalio.net/teambeam//reservations/token
Responses204401

The reservation and its associated files have been deleted.

The reservation requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "errorCode": 0,
  "errorMessage": "Authentication failed or missing.",
  "details": []
}

Cancel Reservation
DELETE/reservations/{token}

Cancels the reservation with the given ID. Already uploaded files are deleted and the allocated upload-quota is returned.

The request must be authenticated, unless the destination is a mailbox. The user must have appropriate privileges to access the reservation.

URI Parameters
HideShow
token
string (required) 

The ID of the reservation


Roles Resource

Roles define a set of rights, which may limit or enable a user to access certain areas of the TeamBeam service. Usage of this resource requires authenticated admin-access.

General Info

Admins may create, update or delete roles. A role may contain a variable number of rights. It is not neccessary to define all available rights within a specific role. Admins may also add one or more roles to a user. For documentation please refer to Users resource.

Rights

The following rights may be defined within a role:

ID Name Type Unit Default Value Max. Value 0 = unlimited Info
1 free choice of receivers boolean n/a false n/a n/a If set user may transfer to any user. If not only to address book members.
2 Max. size per file number MB 8192 51200 false User may not send files larger than defined.
3 Max. Files number n/a 300 300 false User may not send nore files than defined.
4 Number Receivers number n/a 100 2000 false User may not send transfer to more receivers than defined.
5 My Drive boolean n/a false n/a n/a If set user may use the personal Drive feature.
6 Can invite boolean n/a false n/a n/a If set user may invite other users to obtain an account.
7 Size of My Drive number MB 10240 104857 true The maximum space a user may occupy in his personal Drive.
8 Monthly transfer limit number MB 10240 104857 true The maximum amount of data a user may transfer within a month.
9 Administrator boolean n/a false n/a n/a If set user becomes administrator on his storagehost. Set with care!
11 can create root folder boolean n/a false n/a n/a If set user may create new Drive Root Folders.
12 Personal Mailbox boolean n/a false n/a n/a If set user may create and use a personal mailbox to receive files from unregistered users.
13 Can send Transfer boolean n/a false n/a n/a If set user is allowed to send ad-hoc transfers.

Roles

GET https://dev.skalio.net/teambeam//roles/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "adminunitIdx": 1,
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the ID of the role, readonly"
    },
    "name": {
      "type": "string",
      "description": "the name of the role"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
    },
    "rights": {
      "type": "array",
      "description": "a list of rights that the role shall assign"
    }
  },
  "required": [
    "name"
  ]
}

Fetching the a specific role requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this role has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no role found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Role
GET/roles/{idx}

Fetches the specified role.

Please note: Admin-privileges are required to access this resource. If accessing a foreign role this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a role


GET https://dev.skalio.net/teambeam//roles/idx/users
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE",
      "clientType": "employee",
      "validDate": "2037-12-31T15:29:59+00:00",
      "adminunitIdx": 1,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "limitations": {
        "isAdmin": true
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the user"
          },
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee",
              "receiver",
              "anonymous",
              "system"
            ],
            "description": "the class of user"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the account is valid"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the Adminunit of the user"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    1
                  ],
                  "description": "the ID of the role, readonly"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "the list of rules that are assigned to the user"
          },
          "limitations": {
            "type": "object",
            "properties": {
              "isAdmin": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the admin-privilege"
              }
            },
            "required": [
              "isAdmin"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "email",
          "realname",
          "lang",
          "clientType",
          "validDate",
          "adminunitIdx",
          "storagehost",
          "roles",
          "limitations"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Fetching the a specific role requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this role has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no role found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Users Assigned to Role
GET/roles/{idx}/users

Fetches the users of the specified role.

Please note: Admin-privileges are required to access this resource. If accessing a foreign role this request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a role


GET https://dev.skalio.net/teambeam//roles/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "adminunitIdx": 1,
      "rights": [
        {
          "type": 1,
          "unit": "Hello, world!",
          "source": 1,
          "roleIdx": 1,
          "rightIdx": 1,
          "value": 1,
          "defaultValue": 1,
          "zeroUnlimited": true
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the role, readonly"
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the role"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
          },
          "rights": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "number",
                  "enum": [
                    1,
                    2
                  ],
                  "description": "the type of the right value. Readonly."
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the measurement unit, if any. Readonly."
                },
                "source": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3
                  ],
                  "description": "the source, where this right is defined."
                },
                "roleIdx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the id of role if this right is covered by a role. Otherwise '0'. Readonly."
                },
                "rightIdx": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ],
                  "description": "the id of the right"
                },
                "value": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the current value of the right. If type is boolean, then '0' means false and '1' means true"
                },
                "defaultValue": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the default value for the right. Readonly."
                },
                "zeroUnlimited": {
                  "type": "boolean",
                  "enum": [
                    false
                  ],
                  "description": "returns true if the value 0 means unlimited. Otherwise false. Readonly."
                }
              },
              "required": [
                "type",
                "unit",
                "source",
                "rightIdx",
                "value",
                "defaultValue",
                "zeroUnlimited"
              ],
              "additionalProperties": false
            },
            "description": "a list of rights that the role shall assign"
          }
        },
        "required": [
          "idx",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "roles"
  ]
}

Fetching the roles requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the roles have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Roles
GET/roles/serverlist

This retrieves all roles on this storagehost.

Please note: Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//roles/clusterlist?s=s&au=au
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "adminunitIdx": 1,
      "rights": [
        {
          "type": 1,
          "unit": "Hello, world!",
          "source": 1,
          "roleIdx": 1,
          "rightIdx": 1,
          "value": 1,
          "defaultValue": 1,
          "zeroUnlimited": true
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the role, readonly"
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the role"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
          },
          "rights": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "number",
                  "enum": [
                    1,
                    2
                  ],
                  "description": "the type of the right value. Readonly."
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the measurement unit, if any. Readonly."
                },
                "source": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3
                  ],
                  "description": "the source, where this right is defined."
                },
                "roleIdx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the id of role if this right is covered by a role. Otherwise '0'. Readonly."
                },
                "rightIdx": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ],
                  "description": "the id of the right"
                },
                "value": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the current value of the right. If type is boolean, then '0' means false and '1' means true"
                },
                "defaultValue": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the default value for the right. Readonly."
                },
                "zeroUnlimited": {
                  "type": "boolean",
                  "enum": [
                    false
                  ],
                  "description": "returns true if the value 0 means unlimited. Otherwise false. Readonly."
                }
              },
              "required": [
                "type",
                "unit",
                "source",
                "rightIdx",
                "value",
                "defaultValue",
                "zeroUnlimited"
              ],
              "additionalProperties": false
            },
            "description": "a list of rights that the role shall assign"
          }
        },
        "required": [
          "idx",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "roles"
  ]
}

Fetching the roles requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the roles have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List All Roles on cluster
GET/roles/clusterlist?s={s}&au={au}

This retrieves all roles on the cluster.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
au
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

s
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//roles/search?q=q&s=s&au=au
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!",
      "adminunitIdx": 1,
      "rights": [
        {
          "type": 1,
          "unit": "Hello, world!",
          "source": 1,
          "roleIdx": 1,
          "rightIdx": 1,
          "value": 1,
          "defaultValue": 1,
          "zeroUnlimited": true
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the role, readonly"
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the role"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
          },
          "rights": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "number",
                  "enum": [
                    1,
                    2
                  ],
                  "description": "the type of the right value. Readonly."
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the measurement unit, if any. Readonly."
                },
                "source": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3
                  ],
                  "description": "the source, where this right is defined."
                },
                "roleIdx": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the id of role if this right is covered by a role. Otherwise '0'. Readonly."
                },
                "rightIdx": {
                  "type": "number",
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7,
                    8,
                    9
                  ],
                  "description": "the id of the right"
                },
                "value": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the current value of the right. If type is boolean, then '0' means false and '1' means true"
                },
                "defaultValue": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "the default value for the right. Readonly."
                },
                "zeroUnlimited": {
                  "type": "boolean",
                  "enum": [
                    false
                  ],
                  "description": "returns true if the value 0 means unlimited. Otherwise false. Readonly."
                }
              },
              "required": [
                "type",
                "unit",
                "source",
                "rightIdx",
                "value",
                "defaultValue",
                "zeroUnlimited"
              ],
              "additionalProperties": false
            },
            "description": "a list of rights that the role shall assign"
          }
        },
        "required": [
          "idx",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "roles"
  ]
}

Searching for roles requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for roles has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search roles
GET/roles/search?q={q}&s={s}&au={au}

Searches for roles residing on the requested storagehost by providing a search keyword, referencing the name of the role.

Please note: Admin-privileges are required to access this resource.

Please note: Cluster-privileges are required to search for roles on different storagehosts by the ID of the requested storagehost, or by passing s=0 to signal that the backend should search cluster-wide.

URI Parameters
HideShow
q
String (required) 

search keyword

au
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

s
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


POST https://dev.skalio.net/teambeam//roles
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "adminunitIdx": 1,
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the ID of the role, readonly"
    },
    "name": {
      "type": "string",
      "description": "the name of the role"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
    },
    "rights": {
      "type": "array",
      "description": "a list of rights that the role shall assign"
    }
  },
  "required": [
    "name"
  ]
}
Responses201401403404

The role has been created.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "adminunitIdx": 1,
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the ID of the role, readonly"
    },
    "name": {
      "type": "string",
      "description": "the name of the role"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
    },
    "rights": {
      "type": "array",
      "description": "a list of rights that the role shall assign"
    }
  },
  "required": [
    "name"
  ]
}

Creating a role requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a role has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a role has been denied, the referenced adminunit does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Role
POST/roles

Creates a role. If the optional adminunitIdx is set and references an existing adminunit, the new role will be attached to that adminunit. Otherwise the current adminunit is used.

Please note: Admin-privileges for the adminunit of the new role are required to access this resource.


PUT https://dev.skalio.net/teambeam//roles/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "adminunitIdx": 1,
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the ID of the role, readonly"
    },
    "name": {
      "type": "string",
      "description": "the name of the role"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
    },
    "rights": {
      "type": "array",
      "description": "a list of rights that the role shall assign"
    }
  },
  "required": [
    "name"
  ]
}
Responses200401403404

The role has been updated.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "name": "Hello, world!",
  "adminunitIdx": 1,
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the ID of the role, readonly"
    },
    "name": {
      "type": "string",
      "description": "the name of the role"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the adminunit the role should belong to. If none is given during creation, the current adminunit is used."
    },
    "rights": {
      "type": "array",
      "description": "a list of rights that the role shall assign"
    }
  },
  "required": [
    "name"
  ]
}

Updating a role requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating a role has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Specified role not found, or referenced adminunit not found.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Role
PUT/roles/{idx}

Updates the specified role. If the optional adminunitIdx is set and references an existing adminunit, the role will be moved to the new adminunit.

If the field rights is set, the role rights will be updated. If it is set to an empty array, the role’s rights are cleared completely.

Please note: Admin-privileges are required to access this resource. If a role is moved, the principal requires admin-privileges to both the role’s current adminunit and the new target adminunit.

URI Parameters
HideShow
idx
number (required) 

ID of a role


DELETE https://dev.skalio.net/teambeam//roles/idx
Responses204401403
This response has no content.

Deleting a role requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a role has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Role
DELETE/roles/{idx}

Deletes the specified role. If accessing a foreign role this request requires cluster admin privileges.

Please note: Admin-privileges are required to access this resource.

URI Parameters
HideShow
idx
number (required) 

ID of a role


Statistics Resource

Returns statistics about recent ransactions of the data transfer service.

Statistics

The resource is available only to authenticated users. The user must have administrative privileges on the adminunit that is being queried. Cluster-admin users can request information summed up across the complete cluster.

GET https://dev.skalio.net/teambeam//stats/historyCombinedTransfer?i=3600&s=storagehostIdx&au=adminunitIdx
Responses200
Headers
Content-Type: application/json
Body
{
  "offset": 7200,
  "type": "area",
  "title": "Recent transfer activity",
  "xAxis": {
    "title": "Number of Transfers"
  },
  "yAxis": {
    "title": "Number of Transfers"
  },
  "pointStart": 1523604720,
  "pointInterval": 60,
  "series": [
    {
      "name": "Downloads",
      "data": [
        1,
        4,
        6,
        0,
        1
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "offset": {
      "type": "number",
      "description": "Timezone offset in seconds from UTC"
    },
    "type": {
      "type": "string",
      "description": "Graph type"
    },
    "title": {
      "type": "string",
      "description": "Graph title"
    },
    "xAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "yAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "pointStart": {
      "type": "number",
      "description": "Time of first data point in seconds since Epoch, in UTC"
    },
    "pointInterval": {
      "type": "number",
      "description": "Amount of seconds between data points"
    },
    "series": {
      "type": "array",
      "description": "Several data series"
    }
  }
}

History of recent transfers
GET/stats/historyCombinedTransfer?i={interval}&s={storagehostIdx}&au={adminunitIdx}

Returns data containing two series:

  • number of new created transfers,

  • number of accessed transfers.

Note: if a transfer is accessed by its sender, the event is not counted here.

URI Parameters
HideShow
interval
number (required) Example: 3600

report time in seconds

adminunitIdx
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

storagehostIdx
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//stats/historyCombinedVolume?i=3600&s=storagehostIdx&au=adminunitIdx
Responses200
Headers
Content-Type: application/json
Body
{
  "offset": 7200,
  "type": "area",
  "title": "Recent transfer activity",
  "xAxis": {
    "title": "Number of Transfers"
  },
  "yAxis": {
    "title": "Number of Transfers"
  },
  "pointStart": 1523604720,
  "pointInterval": 60,
  "series": [
    {
      "name": "Downloads",
      "data": [
        1,
        4,
        6,
        0,
        1
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "offset": {
      "type": "number",
      "description": "Timezone offset in seconds from UTC"
    },
    "type": {
      "type": "string",
      "description": "Graph type"
    },
    "title": {
      "type": "string",
      "description": "Graph title"
    },
    "xAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "yAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "pointStart": {
      "type": "number",
      "description": "Time of first data point in seconds since Epoch, in UTC"
    },
    "pointInterval": {
      "type": "number",
      "description": "Amount of seconds between data points"
    },
    "series": {
      "type": "array",
      "description": "Several data series"
    }
  }
}

History of recent upload / download volume
GET/stats/historyCombinedVolume?i={interval}&s={storagehostIdx}&au={adminunitIdx}

Returns data containing two series:

  • amount of data uploaded,

  • amount of data downloaded.

URI Parameters
HideShow
interval
number (required) Example: 3600

report time in seconds

adminunitIdx
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

storagehostIdx
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//stats/historyUserRegistration?i=3600&s=storagehostIdx&au=adminunitIdx
Responses200
Headers
Content-Type: application/json
Body
{
  "offset": 7200,
  "type": "area",
  "title": "Recent transfer activity",
  "xAxis": {
    "title": "Number of Transfers"
  },
  "yAxis": {
    "title": "Number of Transfers"
  },
  "pointStart": 1523604720,
  "pointInterval": 60,
  "series": [
    {
      "name": "Downloads",
      "data": [
        1,
        4,
        6,
        0,
        1
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "offset": {
      "type": "number",
      "description": "Timezone offset in seconds from UTC"
    },
    "type": {
      "type": "string",
      "description": "Graph type"
    },
    "title": {
      "type": "string",
      "description": "Graph title"
    },
    "xAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "yAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "pointStart": {
      "type": "number",
      "description": "Time of first data point in seconds since Epoch, in UTC"
    },
    "pointInterval": {
      "type": "number",
      "description": "Amount of seconds between data points"
    },
    "series": {
      "type": "array",
      "description": "Several data series"
    }
  }
}

History of recent user registration
GET/stats/historyUserRegistration?i={interval}&s={storagehostIdx}&au={adminunitIdx}

Returns data containing three series:

  • amount of new users signing up,

  • amount of new users confirming / completing their user registration,

  • amount of existing users being invalidated.

URI Parameters
HideShow
interval
number (required) Example: 3600

report time in seconds

adminunitIdx
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

storagehostIdx
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//stats/historyUserAuthentication?i=3600&s=storagehostIdx&au=adminunitIdx
Responses200
Headers
Content-Type: application/json
Body
{
  "offset": 7200,
  "type": "area",
  "title": "Recent transfer activity",
  "xAxis": {
    "title": "Number of Transfers"
  },
  "yAxis": {
    "title": "Number of Transfers"
  },
  "pointStart": 1523604720,
  "pointInterval": 60,
  "series": [
    {
      "name": "Downloads",
      "data": [
        1,
        4,
        6,
        0,
        1
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "offset": {
      "type": "number",
      "description": "Timezone offset in seconds from UTC"
    },
    "type": {
      "type": "string",
      "description": "Graph type"
    },
    "title": {
      "type": "string",
      "description": "Graph title"
    },
    "xAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "yAxis": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "The title of the axis"
        }
      }
    },
    "pointStart": {
      "type": "number",
      "description": "Time of first data point in seconds since Epoch, in UTC"
    },
    "pointInterval": {
      "type": "number",
      "description": "Amount of seconds between data points"
    },
    "series": {
      "type": "array",
      "description": "Several data series"
    }
  }
}

History of recent user authentication
GET/stats/historyUserAuthentication?i={interval}&s={storagehostIdx}&au={adminunitIdx}

Returns data containing one series:

  • amount of successful login attempts.
URI Parameters
HideShow
interval
number (required) Example: 3600

report time in seconds

adminunitIdx
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

storagehostIdx
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


Storagehosts Resource

A storagehost represents the technical instance of a TeamBeam server. It is attached to one single adminunit, but an adminunit may have multiple storagehosts.

All requests require an authenticated session, where the principal has admin privileges. Some requests require additionally cluster-admin privileges.

Storagehosts

GET https://dev.skalio.net/teambeam//storagehosts/idx
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}

Fetching the storagehost requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this storagehost has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no storagehost found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get specific storagehost
GET/storagehosts/{idx}

Returns the requested storagehost.

Please note: This request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a storagehost


GET https://dev.skalio.net/teambeam//storagehosts/clusterlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "storagehosts": [
    {
      "idx": 123,
      "hostName": "teambeam.example.org",
      "description": "Hello, world!",
      "adminunitIdx": 1,
      "portalUrl": "https://teambeam.example.org/my/",
      "active": true,
      "clusterIdx": 100
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "storagehosts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              123
            ],
            "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
          },
          "hostName": {
            "type": "string",
            "enum": [
              "teambeam.example.org"
            ],
            "description": "the fully qualified hostName"
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "a descriptive text"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The ID of the Adminunit to which this storagehost belongs"
          },
          "portalUrl": {
            "type": "string",
            "enum": [
              "https://teambeam.example.org/my/"
            ],
            "description": "URL to the My.TeamBeam portal of the storagehost"
          },
          "active": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true this storagehost is active"
          },
          "clusterIdx": {
            "type": "number",
            "enum": [
              100
            ],
            "description": "a global unique identifier of TeamBeam installations"
          }
        },
        "required": [
          "hostName",
          "description",
          "adminunitIdx",
          "portalUrl",
          "active",
          "clusterIdx"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "storagehosts"
  ]
}

Fetching the list of storagehosts requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the list of storagehosts has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List all Storagehosts
GET/storagehosts/clusterlist

Returns the list of all storagehosts on the cluster.

Please note: This request requires cluster admin privileges.


PUT https://dev.skalio.net/teambeam//storagehosts/idx
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 123,
  "hostName": "teambeam.example.org",
  "description": "Hello, world!",
  "adminunitIdx": 1,
  "portalUrl": "https://teambeam.example.org/my/",
  "active": true,
  "clusterIdx": 100
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
    },
    "hostName": {
      "type": "string",
      "description": "the fully qualified hostName"
    },
    "description": {
      "type": "string",
      "description": "a descriptive text"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "The ID of the Adminunit to which this storagehost belongs"
    },
    "portalUrl": {
      "type": "string",
      "description": "URL to the My.TeamBeam portal of the storagehost"
    },
    "active": {
      "type": "boolean",
      "description": "If true this storagehost is active"
    },
    "clusterIdx": {
      "type": "number",
      "description": "a global unique identifier of TeamBeam installations"
    }
  }
}

Updating the storagehost requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this storagehost has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no storagehost found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update storagehost
PUT/storagehosts/{idx}

Updates the requested storagehost.

Please note: This request requires cluster admin privileges.

The activity state of the storagehost cannot be change via this update call. Please use Activate Storagehost for Adminunit.

URI Parameters
HideShow
idx
number (required) 

ID of a storagehost


DELETE https://dev.skalio.net/teambeam//storagehosts/idx
Responses204401403404
This response has no content.

Deleting a storagehost requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a storagehost has been denied, because of missing privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no storagehost found by this id.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Storagehost
DELETE/storagehosts/{idx}

Deletes the specified storagehost.

Please note: This request requires cluster admin privileges.

URI Parameters
HideShow
idx
number (required) 

ID of a storagehost


Transfers Resource

A transfer contains all information relevant to a set of files sent by a user.

A individual transfer is being created if one of the following events occurs:

  • A user uploads files to one or more receivers by using the Reservation Resource and the Upload Resource.

  • A user uploads files to one or more Drive folders by using the Reservation Resource and the Upload Resource.

  • A User forwards a transfer to one or more receivers.

  • A User copies a transfer from the sent/received list to a Drive folder.

Please note: An individual transfer is being created for each receiver and/or Drive folder even if only one upload takes place.

Transfers

GET https://dev.skalio.net/teambeam//transfers?location=location&search=search
Responses200401
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "transfers": [
    {
      "recipientId": "",
      "isProtected": false,
      "passwordAttempts": 0,
      "isBlocked": false,
      "isLocked": false,
      "isRecipientAuthenticationEnabled": false,
      "sender": {
        "email": "",
        "realname": "",
        "portalUrl": ""
      },
      "receiver": {
        "email": "",
        "realname": "",
        "clientType": "",
        "type": "to",
        "portalUrl": ""
      },
      "uploadTimestamp": "2016-12-31T15:29:59+00:00",
      "accessTimestamp": "2016-12-31T15:29:59+00:00",
      "downloadTimestamp": "2017-01-04T15:29:59+00:00",
      "expirationTimestamp": "2017-01-14T15:29:59+00:00",
      "subject": "",
      "description": "",
      "priority": 0,
      "isInDrive": false,
      "isExpired": false,
      "isBounced": false,
      "isUnread": false,
      "malwareStatus": "",
      "processingState": "newTransfer",
      "bounceReason": "",
      "directLink": "",
      "totalFileSize": 0,
      "joinId": "",
      "anon": {},
      "files": [
        {
          "objectId": "",
          "name": "",
          "size": 0,
          "url": "",
          "hashsum": "",
          "malware": {
            "status": "",
            "text": ""
          },
          "downloadCounter": 0,
          "mimeType": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "transfers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recipientId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
          },
          "isProtected": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is additionally protected with a transfer password."
          },
          "passwordAttempts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of incorrect attempts left, before the transfer will be blocked."
          },
          "isBlocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is blocked to access due to bad password attempts."
          },
          "isLocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
          },
          "isRecipientAuthenticationEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
          },
          "sender": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer sender"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer sender"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the senders portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "receiver": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer receiver"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer receiver"
              },
              "clientType": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "to",
                  "cc",
                  "bcc"
                ],
                "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the receivers portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "clientType",
              "type",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "uploadTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was uploaded."
          },
          "accessTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was first accessed."
          },
          "downloadTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-04T15:29:59+00:00"
            ],
            "description": "The date when the transfer was last downloaded."
          },
          "expirationTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-14T15:29:59+00:00"
            ],
            "description": "The date when this transfer will automatically expire."
          },
          "subject": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's subject. Comparable to an email subject text."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's message. Comparable to an emails body text."
          },
          "folderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
          },
          "folderName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
          },
          "priority": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
          },
          "isInDrive": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer resides in a drive folder."
          },
          "isExpired": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is already expired and will be shortly deleted."
          },
          "isBounced": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
          },
          "isUnread": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not been (partly) downloaded yet."
          },
          "malwareStatus": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
          },
          "processingState": {
            "type": "string",
            "enum": [
              "newTransfer",
              "malwareScan",
              "hashCalculation",
              "notification",
              "completed"
            ],
            "description": "Current processing state."
          },
          "bounceReason": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "detailed information why a transfer email notification was not delivered."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The link which gives access to this transfer."
          },
          "totalFileSize": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The complete file size of all objects in this transfer in Bytes."
          },
          "joinId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "unique identifier for a group of transfers created from the same reservation."
          },
          "anon": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              }
            },
            "additionalProperties": false
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "objectId": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The system wide unique identifier for the file."
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The file name."
                },
                "size": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "The file size in bytes."
                },
                "url": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The download url for the file."
                },
                "hashsum": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The repeatable but non-reversable hashsum of the file. Used to have proof about the content."
                },
                "malware": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "The scan status. One of 'unknown', 'ok', 'infected', 'error'."
                    },
                    "text": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "Details of infection, if present."
                    }
                  },
                  "required": [
                    "status",
                    "text"
                  ],
                  "additionalProperties": false
                },
                "downloadCounter": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "number of times the file has been downloaded before."
                },
                "mimeType": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The mimeType of the file based on parsing the magic numbers on the backend."
                }
              },
              "required": [
                "objectId",
                "name",
                "size",
                "url",
                "hashsum",
                "malware",
                "downloadCounter",
                "mimeType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "recipientId",
          "isProtected",
          "passwordAttempts",
          "isBlocked",
          "isLocked",
          "isRecipientAuthenticationEnabled",
          "sender",
          "receiver",
          "uploadTimestamp",
          "accessTimestamp",
          "downloadTimestamp",
          "expirationTimestamp",
          "subject",
          "description",
          "priority",
          "isInDrive",
          "isExpired",
          "isBounced",
          "isUnread",
          "malwareStatus",
          "processingState",
          "bounceReason",
          "directLink",
          "totalFileSize",
          "joinId",
          "anon",
          "files"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "transfers"
  ]
}

Fetching the users transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List User's Transfers
GET/transfers?location={location}&search={search}

Returns the list of transfers for the current user. The request must be authenticated. You may filter by location and/or by search string.

URI Parameters
HideShow
location
enum (optional) 

If present, the filter keyword restrict result to a specific location. Can be one of these values:

  • sentandreceived - All sent and received transfers not including drive transfers.

  • sent - All sent transfers not including drive transfers

  • received - All received transfers not including drive transfers.

  • drive - All drive transfers the user has read access to including team folders/public folders.

search
string (optional) 

search string. The result is filtered to include only transfers that match the search string in one of these transfer fields:

  • email

  • realname

  • subject

  • description

  • name


GET https://dev.skalio.net/teambeam//transfers/recipientId
Responses200403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Access to this transfer has been denied. Either because of missing rights on a drive folder, or because the transfer was blocked.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Transfer
GET/transfers/{recipientId}

Fetches the specified transfer.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


GET https://dev.skalio.net/teambeam//transfers/recipientId/zip
Responses200403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Access to this transfer has been denied. Either because of missing rights on a drive folder, or because the transfer was blocked.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

ZIP files and fetch Transfer
GET/transfers/{recipientId}/zip

It is no longer necessary to request creation of Zip-files. This resource behaves identical to [Fetch Transfer]. It will be removed in the near future.

Fetches the specified transfer.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


GET https://dev.skalio.net/teambeam//transfers/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "transfers": [
    {
      "recipientId": "",
      "isProtected": false,
      "passwordAttempts": 0,
      "isBlocked": false,
      "isLocked": false,
      "isRecipientAuthenticationEnabled": false,
      "sender": {
        "email": "",
        "realname": "",
        "portalUrl": ""
      },
      "receiver": {
        "email": "",
        "realname": "",
        "clientType": "",
        "type": "to",
        "portalUrl": ""
      },
      "uploadTimestamp": "2016-12-31T15:29:59+00:00",
      "accessTimestamp": "2016-12-31T15:29:59+00:00",
      "downloadTimestamp": "2017-01-04T15:29:59+00:00",
      "expirationTimestamp": "2017-01-14T15:29:59+00:00",
      "subject": "",
      "description": "",
      "priority": 0,
      "isInDrive": false,
      "isExpired": false,
      "isBounced": false,
      "isUnread": false,
      "malwareStatus": "",
      "processingState": "newTransfer",
      "bounceReason": "",
      "directLink": "",
      "totalFileSize": 0,
      "joinId": "",
      "anon": {},
      "files": [
        {
          "objectId": "",
          "name": "",
          "size": 0,
          "url": "",
          "hashsum": "",
          "malware": {
            "status": "",
            "text": ""
          },
          "downloadCounter": 0,
          "mimeType": ""
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "transfers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recipientId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
          },
          "isProtected": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is additionally protected with a transfer password."
          },
          "passwordAttempts": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The number of incorrect attempts left, before the transfer will be blocked."
          },
          "isBlocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is blocked to access due to bad password attempts."
          },
          "isLocked": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
          },
          "isRecipientAuthenticationEnabled": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
          },
          "sender": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer sender"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer sender"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the senders portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "receiver": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The email address of the transfer receiver"
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The name the transfer receiver"
              },
              "clientType": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "to",
                  "cc",
                  "bcc"
                ],
                "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "The URL of the receivers portal URL"
              }
            },
            "required": [
              "email",
              "realname",
              "clientType",
              "type",
              "portalUrl"
            ],
            "additionalProperties": false
          },
          "uploadTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was uploaded."
          },
          "accessTimestamp": {
            "type": "string",
            "enum": [
              "2016-12-31T15:29:59+00:00"
            ],
            "description": "The date when this transfer was first accessed."
          },
          "downloadTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-04T15:29:59+00:00"
            ],
            "description": "The date when the transfer was last downloaded."
          },
          "expirationTimestamp": {
            "type": "string",
            "enum": [
              "2017-01-14T15:29:59+00:00"
            ],
            "description": "The date when this transfer will automatically expire."
          },
          "subject": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's subject. Comparable to an email subject text."
          },
          "description": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The transfer's message. Comparable to an emails body text."
          },
          "folderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
          },
          "folderName": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
          },
          "rootFolderIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
          },
          "priority": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
          },
          "isInDrive": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer resides in a drive folder."
          },
          "isExpired": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer is already expired and will be shortly deleted."
          },
          "isBounced": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
          },
          "isUnread": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "If true, this transfer has not been (partly) downloaded yet."
          },
          "malwareStatus": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
          },
          "processingState": {
            "type": "string",
            "enum": [
              "newTransfer",
              "malwareScan",
              "hashCalculation",
              "notification",
              "completed"
            ],
            "description": "Current processing state."
          },
          "bounceReason": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "detailed information why a transfer email notification was not delivered."
          },
          "directLink": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "The link which gives access to this transfer."
          },
          "totalFileSize": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "The complete file size of all objects in this transfer in Bytes."
          },
          "joinId": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "unique identifier for a group of transfers created from the same reservation."
          },
          "anon": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              },
              "realname": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
              }
            },
            "additionalProperties": false
          },
          "files": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "objectId": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The system wide unique identifier for the file."
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The file name."
                },
                "size": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "The file size in bytes."
                },
                "url": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The download url for the file."
                },
                "hashsum": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The repeatable but non-reversable hashsum of the file. Used to have proof about the content."
                },
                "malware": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "The scan status. One of 'unknown', 'ok', 'infected', 'error'."
                    },
                    "text": {
                      "type": "string",
                      "enum": [
                        ""
                      ],
                      "description": "Details of infection, if present."
                    }
                  },
                  "required": [
                    "status",
                    "text"
                  ],
                  "additionalProperties": false
                },
                "downloadCounter": {
                  "type": "number",
                  "enum": [
                    0
                  ],
                  "description": "number of times the file has been downloaded before."
                },
                "mimeType": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "The mimeType of the file based on parsing the magic numbers on the backend."
                }
              },
              "required": [
                "objectId",
                "name",
                "size",
                "url",
                "hashsum",
                "malware",
                "downloadCounter",
                "mimeType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "recipientId",
          "isProtected",
          "passwordAttempts",
          "isBlocked",
          "isLocked",
          "isRecipientAuthenticationEnabled",
          "sender",
          "receiver",
          "uploadTimestamp",
          "accessTimestamp",
          "downloadTimestamp",
          "expirationTimestamp",
          "subject",
          "description",
          "priority",
          "isInDrive",
          "isExpired",
          "isBounced",
          "isUnread",
          "malwareStatus",
          "processingState",
          "bounceReason",
          "directLink",
          "totalFileSize",
          "joinId",
          "anon",
          "files"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "transfers"
  ]
}

Fetching the transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the transfers have been denied, because of missing admin-privileges.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

List ' Transfers
GET/transfers/serverlist

This retrieves all direct transfers on this storagehost. Transfers which reside in a Drive folder are not retrieved.

Please note: Admin-privileges are required to access this resource.


DELETE https://dev.skalio.net/teambeam//transfers/recipientId
Responses204401403
This response has no content.

Deleting a transfer requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Deleting a transfer has been denied, because of missing write access to the transfer.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Transfer
DELETE/transfers/{recipientId}

Deletes the specified transfer.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


POST https://dev.skalio.net/teambeam//transfers/recipientId/extend
Requestsextend by daysnever expire

Extending an ad-hoc transfer by providing the number of days to be added to the current date.

Headers
Content-Type: application/json
Body
{
  "days": 14
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Updating of transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this transfer has been denied, because of missing write access to the transfer.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Extending a drive transfer by providing a the info that the transfer must not expire at all.

Headers
Content-Type: application/json
Body
{
  "infinite": true
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Updating of transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this transfer has been denied, because of missing write access to the transfer.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Extend Transfer
POST/transfers/{recipientId}/extend

Extends the validity of the transfer, so the server will delete the transfer at a later point of time. The POST data must contain information about the new expiration date. There are two options:

  • Provide a number of days from today as the new expiration date (will only be accepted for ad-hoc transfers)

  • Define that the transfer will never expire (will only be accepted for drive transfers)

Returns an updated Transfer object.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


POST https://dev.skalio.net/teambeam//transfers/recipientId/copy
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 47
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Updating of transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this transfer has been denied, because of missing read access to the transfer or missing write access to the target folder.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId or the target folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Copy Transfer
POST/transfers/{recipientId}/copy

Copies the transfer to a Drive folder. The POST data must contain the Drive folder idx to which the transfer shall be copied. Returns an updated Transfer object.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


POST https://dev.skalio.net/teambeam//transfers/recipientId/move
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 47
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

Updating of transfers requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this transfer has been denied, because of missing read access to the transfer or missing write access to the target folder.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no transfer found by this recipientId or the target folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Move Transfer
POST/transfers/{recipientId}/move

Moves the transfer from one Drive folder to another Drive folder. The POST data must contain the Drive folder idx to which the transfer shall be moved. Returns an updated Transfer object.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


POST https://dev.skalio.net/teambeam//transfers/recipientId/unlock
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "unlockCode": "secretpassword"
}
Responses200404
Headers
Content-Type: application/json
Body
{
  "recipientId": "",
  "isProtected": false,
  "passwordAttempts": 0,
  "isBlocked": false,
  "isLocked": false,
  "isRecipientAuthenticationEnabled": false,
  "sender": {
    "email": "",
    "realname": "",
    "portalUrl": ""
  },
  "receiver": {
    "email": "",
    "realname": "",
    "clientType": "",
    "type": "to",
    "portalUrl": ""
  },
  "uploadTimestamp": "2016-12-31T15:29:59+00:00",
  "accessTimestamp": "2016-12-31T15:29:59+00:00",
  "downloadTimestamp": "2017-01-04T15:29:59+00:00",
  "expirationTimestamp": "2017-01-14T15:29:59+00:00",
  "subject": "",
  "description": "",
  "priority": 0,
  "isInDrive": false,
  "isExpired": false,
  "isBounced": false,
  "isUnread": false,
  "malwareStatus": "",
  "processingState": "newTransfer",
  "bounceReason": "",
  "directLink": "",
  "totalFileSize": 0,
  "joinId": "",
  "anon": {},
  "files": [
    {
      "objectId": "",
      "name": "",
      "size": 0,
      "url": "",
      "hashsum": "",
      "malware": {
        "status": "",
        "text": ""
      },
      "downloadCounter": 0,
      "mimeType": ""
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "recipientId": {
      "type": "string",
      "description": "Unique identifier of this transfer. Used to fetch transfers via API. Knowledge about this string means access to the transfer data."
    },
    "isProtected": {
      "type": "boolean",
      "description": "If true, this transfer is additionally protected with a transfer password."
    },
    "passwordAttempts": {
      "type": "number",
      "description": "The number of incorrect attempts left, before the transfer will be blocked."
    },
    "isBlocked": {
      "type": "boolean",
      "description": "If true, this transfer is blocked to access due to bad password attempts."
    },
    "isLocked": {
      "type": "boolean",
      "description": "If true, this transfer has not yet been unlocked by giving the correct transfer password."
    },
    "isRecipientAuthenticationEnabled": {
      "type": "boolean",
      "description": "If true, this transfer can only be accessed by the recipient using an authenticated session."
    },
    "sender": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer sender"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer sender"
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the senders portal URL"
        }
      }
    },
    "receiver": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "The email address of the transfer receiver"
        },
        "realname": {
          "type": "string",
          "description": "The name the transfer receiver"
        },
        "clientType": {
          "type": "string",
          "description": "The type of the receiver account. Value is one of 'receiver','employee','anonymous','system'."
        },
        "type": {
          "type": "string",
          "enum": [
            "to",
            "cc",
            "bcc"
          ],
          "description": "Info about the destination type of the receiver in this transfer. Value is one of 'to','cc','bcc'."
        },
        "portalUrl": {
          "type": "string",
          "description": "The URL of the receivers portal URL"
        }
      }
    },
    "uploadTimestamp": {
      "type": "string",
      "description": "The date when this transfer was uploaded."
    },
    "accessTimestamp": {
      "type": "string",
      "description": "The date when this transfer was first accessed."
    },
    "downloadTimestamp": {
      "type": "string",
      "description": "The date when the transfer was last downloaded."
    },
    "expirationTimestamp": {
      "type": "string",
      "description": "The date when this transfer will automatically expire."
    },
    "subject": {
      "type": "string",
      "description": "The transfer's subject. Comparable to an email subject text."
    },
    "description": {
      "type": "string",
      "description": "The transfer's message. Comparable to an emails body text."
    },
    "folderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding drive folder."
    },
    "folderName": {
      "type": "string",
      "description": "If this transfer is a drive transfer, then this field will contain the name of the corresponding drive folder."
    },
    "rootFolderIdx": {
      "type": "number",
      "description": "If this transfer is a drive transfer, then this field will contain the ID of the corresponding root (toplevel) folder."
    },
    "priority": {
      "type": "number",
      "description": "the priority of the transfer which will be used to mark email notifications with a priority header. Value is one of 1, 2, 3, 4, 5."
    },
    "isInDrive": {
      "type": "boolean",
      "description": "If true, this transfer resides in a drive folder."
    },
    "isExpired": {
      "type": "boolean",
      "description": "If true, this transfer is already expired and will be shortly deleted."
    },
    "isBounced": {
      "type": "boolean",
      "description": "If true, the e-mail notification to the receiver of this transfer could not be delivered."
    },
    "isUnread": {
      "type": "boolean",
      "description": "If true, this transfer has not been (partly) downloaded yet."
    },
    "malwareStatus": {
      "type": "string",
      "description": "The result of a malware scan. Value is one of 'unknown', 'ok', 'infected', 'error'"
    },
    "processingState": {
      "type": "string",
      "enum": [
        "newTransfer",
        "malwareScan",
        "hashCalculation",
        "notification",
        "completed"
      ],
      "description": "Current processing state."
    },
    "bounceReason": {
      "type": "string",
      "description": "detailed information why a transfer email notification was not delivered."
    },
    "directLink": {
      "type": "string",
      "description": "The link which gives access to this transfer."
    },
    "totalFileSize": {
      "type": "number",
      "description": "The complete file size of all objects in this transfer in Bytes."
    },
    "joinId": {
      "type": "string",
      "description": "unique identifier for a group of transfers created from the same reservation."
    },
    "anon": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        },
        "realname": {
          "type": "string",
          "description": "the e-mail address of the anonymous sender if this transfer was sent via Mailbox link."
        }
      }
    },
    "files": {
      "type": "array"
    }
  }
}

There was no transfer found by this recipientId or the target folder does not exist.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Unlock Transfer
POST/transfers/{recipientId}/unlock

Unlocks a password-protected transfer in order to be able to access its data. The POST data must contain the correct transfer password. This request may be performed unauthenticated. Returns an updated Transfer object.

Please note: If an invalid password is given, the request will still return an updated Transfer object but the transfer will remain locked. Too many unsuccessful requests will block the transfer from unauthenticated access.

URI Parameters
HideShow
recipientId
string (required) 

unique recipientId of a transfer


POST https://dev.skalio.net/teambeam//transfers/cleanup
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "filters": [
    "created_before_7d"
  ],
  "logic": "AND"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "filters": {
      "type": "array"
    },
    "logic": {
      "type": "string",
      "enum": [
        "AND",
        "OR"
      ]
    }
  },
  "required": [
    "filters"
  ]
}
Responses200401403

The cleanup process has been initiated, resulting in up-to-X transfers being deleted, freeing up-to-Y bytes.

Headers
Content-Type: application/json
Body
{
  "total": 1,
  "totalBytes": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number",
      "description": "number of entities affected by the bulk operation"
    },
    "totalBytes": {
      "type": "number",
      "description": "sum of bytes affected by the bulk operation"
    }
  }
}

Requesting drive cleanup requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Requesting drive cleanup has been denied.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Initiate Drive Cleanup
POST/transfers/cleanup

Requests a drive root folder cleanup procedure: All transfers belonging to the storagehost that match the given filter criteria are marked for automatic deletion 30 days from the time of this request. Folder owners are informed and can reject individual transfers from scheduled deletion.

Available filters are:

  • created_before_7d: transfer was uploaded more than 7 days ago

  • created_before_30d: transfer was uploaded more than 30 days ago

  • created_before_90d: transfer was uploaded more than 90 days ago

  • created_before_365d: transfer was uploaded more than 365 days ago

  • not_downloaded_within_7d: transfer has not been downloaded within the last 7 days

  • not_downloaded_within_30d: transfer has not been downloaded within the last 30 days

  • not_downloaded_within_90d: transfer has not been downloaded within the last 90 days

  • not_downloaded_within_365d: transfer has not been downloaded within the last 365 days

If more than one filter is used, they can be combined with logical AND or OR. By default, the filters are combined with OR.

The filter not_downloaded_within_Xdays includes transfers that have never been downloaded.

This request requires administrator privileges.


Upload Resource

Uploading a file requires it to be registered with the service beforehand through a Reservation; see the Reservations Resource for details.

Files can be uploaded in one go or multiple chunks (aka upload resume). The chunksize is flexible and shall be set by the client according to the available bandwidth. In general it is recommended to make requests take roughly no longer than one minute. On a 1Mbit/sec connection, a chunksize of 8-10MB is ideal.

Chosing a too small chunksize will affect the performance of the upload and may even lead to rate-limit excess.

Upload

POST https://dev.skalio.net/teambeam//upload
RequestsFull uploadChunked upload

Uploads a complete file from beginning to end.

Headers
Content-Length: 23415
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvvTtKG8usN46aTrC
Body
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="objectId"

f4ie4sancs
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="authToken"

tqq1aubb0iaep4cjx52pzah1uz
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="f"; filename="_MG_8613.JPG"
Content-Type: image/jpeg

[... payload ...]

------WebKitFormBoundaryvvTtKG8usN46aTrC--
Responses200401403
Headers
Content-Type: application/json
Body
{
  "size": 200,
  "chunkStart": 0,
  "chunkEnd": 199,
  "totalSize": 200
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "size": {
      "type": "number",
      "description": "Number of Bytes successfully received during the upload"
    },
    "chunkStart": {
      "type": "number",
      "description": "Bytecount where the upload started"
    },
    "chunkEnd": {
      "type": "number",
      "description": "Bytecount where the upload completed"
    },
    "totalSize": {
      "type": "number",
      "description": "Total size of the uploaded file"
    }
  }
}

The X-Skp-Auth token was missing, expired or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The objectId was not allowed.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Upload a chunk and append it to an existing file.

Headers
Content-Length: 12994
Content-Range: bytes 100000-112583/112584
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvvTtKG8usN46aTrC
Body
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="objectId"

f4ie4sancs
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="authToken"

tqq1aubb0iaep4cjx52pzah1uz
------WebKitFormBoundaryvvTtKG8usN46aTrC
Content-Disposition: form-data; name="f"; filename="_MG_8613.JPG"
Content-Type: image/jpeg

[... payload ...]

------WebKitFormBoundaryvvTtKG8usN46aTrC--
Responses206409416
Headers
Content-Type: application/json
Body
{
  "size": 200,
  "chunkStart": 200,
  "chunkEnd": 299,
  "totalSize": 300
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "size": {
      "type": "number",
      "description": "Number of Bytes successfully received during the upload"
    },
    "chunkStart": {
      "type": "number",
      "description": "Bytecount where the upload started"
    },
    "chunkEnd": {
      "type": "number",
      "description": "Bytecount where the upload completed"
    },
    "totalSize": {
      "type": "number",
      "description": "Total size of the uploaded file"
    }
  }
}

An attempt to overwrite data was rejected.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The specified content-range was not acceptable.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested range could not be statisfied.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Upload File as Multipart
POST/upload

Uploads a file in a multipart/form-data format. The request body must have exactly three parts in specific order:

  1. objectId: The ID of the object to be stored (as assigned in the reservation)
  2. authToken: The reservation token to authorize the upload
  3. f: The actual payload
    • The part must have a valid Content-Type header
    • The filename field is ignored

The resource support upload resume through the use of the Content-Range header.


PUT https://dev.skalio.net/teambeam//upload/f4esdg2n23
RequestsFull uploadChunked upload

Uploads a complete file from beginning to end.

Headers
X-Skp-Auth: 1coardu6pb1eluamsdupi76831
Content-Length: 200
Content-Type: image/jpeg
Body
[... payload ...]
Responses200401403
Headers
Content-Type: application/json
Body
{
  "size": 200,
  "chunkStart": 0,
  "chunkEnd": 199,
  "totalSize": 200
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "size": {
      "type": "number",
      "description": "Number of Bytes successfully received during the upload"
    },
    "chunkStart": {
      "type": "number",
      "description": "Bytecount where the upload started"
    },
    "chunkEnd": {
      "type": "number",
      "description": "Bytecount where the upload completed"
    },
    "totalSize": {
      "type": "number",
      "description": "Total size of the uploaded file"
    }
  }
}

The X-Skp-Auth token was missing, expired or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The objectId was not allowed.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Upload a chunk and append it to an existing file.

Headers
X-Skp-Auth: 1coardu6pb1eluamsdupi76831
Content-Range: bytes 200-299/300
Content-Length: 100
Content-Type: image/jpeg
Body
[... payload ...]
Responses206409416
Headers
Content-Type: application/json
Body
{
  "size": 200,
  "chunkStart": 200,
  "chunkEnd": 299,
  "totalSize": 300
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "size": {
      "type": "number",
      "description": "Number of Bytes successfully received during the upload"
    },
    "chunkStart": {
      "type": "number",
      "description": "Bytecount where the upload started"
    },
    "chunkEnd": {
      "type": "number",
      "description": "Bytecount where the upload completed"
    },
    "totalSize": {
      "type": "number",
      "description": "Total size of the uploaded file"
    }
  }
}

An attempt to overwrite data was rejected.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The specified content-range was not acceptable.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested range could not be statisfied.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Upload File
PUT/upload/{objectId}

Uploads a file. The request must be authenticated with X-Skp-Auth header, containing the matching reservation token. It is mandatory to set the Content-Type header.

The resource support upload resume through the use of the Content-Range header.

URI Parameters
HideShow
objectId
string (required) Example: f4esdg2n23

ID of the object


HEAD https://dev.skalio.net/teambeam//upload/f4esdg2n23
Requestsexample 1
Headers
X-Skp-Auth: 1coardu6pb1eluamsdupi76831
Responses200404
Headers
Content-Length: 200
X-Skp-UploadSize: 200
Content-Type: image/jpeg
Headers
X-Skp-UploadSize: 0

Check uploaded size
HEAD/upload/{objectId}

Checks the size of the already uploaded file.

URI Parameters
HideShow
objectId
string (required) Example: f4esdg2n23

ID of the object


GET https://dev.skalio.net/teambeam//upload/f4esdg2n23/progress
Responses200
Headers
Content-Type: application/json
Body
{
  "objectId": "f4esdg2n23",
  "lengthComputable": true,
  "total": 12584,
  "loaded": 12584
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "objectId": {
      "type": "string",
      "description": "The ID of the object"
    },
    "lengthComputable": {
      "type": "boolean",
      "description": "Fixed value"
    },
    "total": {
      "type": "number",
      "description": "Expected total size of the file"
    },
    "loaded": {
      "type": "number",
      "description": "Number of Bytes already uploaded"
    }
  }
}

Get Upload Progress
GET/upload/{objectId}/progress

Checks the size of the already uploaded file. This resource is only necessary for legacy upload clients who cannot process the upload-stream themselves. Instead they can regularly poll this resource to understand how much data has been uploaded already.

URI Parameters
HideShow
objectId
string (required) Example: f4esdg2n23

ID of the object


User Resource

An authenticated user can access and update its own data using the User-resource. The user resource requires authenticated access.

Current User

GET https://dev.skalio.net/teambeam//user
Responses200
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

Fetch Current User
GET/user

Returns the current user of the session.


GET https://dev.skalio.net/teambeam//user/details
Responses200
Headers
Content-Type: application/json
Body
{
  "lastUpload": "2016-12-31T15:29:59+00:00",
  "lastPortalLogin": "2016-12-31T15:29:59+00:00",
  "previousPortalLogin": "2016-12-31T15:29:59+00:00",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "driveQuota": 1,
  "driveVolume": 1,
  "hasContract": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "lastUpload": {
      "type": "string",
      "description": "date of the last transfer sent by this user"
    },
    "lastPortalLogin": {
      "type": "string",
      "description": "date of the last portal login by this user"
    },
    "previousPortalLogin": {
      "type": "string",
      "description": "date of the previous portal login by this user"
    },
    "uploadQuota": {
      "type": "number",
      "description": "maximum number of megaBytes allowed to transfer within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "currently number of bytes transferred this month"
    },
    "driveQuota": {
      "type": "number",
      "description": "maximum number of megaBytes allowed to store in the Drive"
    },
    "driveVolume": {
      "type": "number",
      "description": "currently number of bytes stored in the Drive"
    },
    "hasContract": {
      "type": "boolean",
      "description": "true if the user is governed by a contract"
    }
  }
}

Fetch Details of Current User
GET/user/details

Returns the details of the current user of the session.


GET https://dev.skalio.net/teambeam//user/legal
Responses200
Headers
Content-Type: application/json
Body
{
  "legalDocumentList": [
    {
      "locale": "de_DE",
      "text": "All your base are belongs to us",
      "effectiveDate": "2016-12-31T15:29:59+00:00",
      "type": "terms"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "legalDocumentList": {
      "type": "array",
      "description": "A list of legal terms. List may be empty."
    }
  }
}

Fetch unaccepted Legal Documents
GET/user/legal

Returns the unaccepted legal documents of the current user of the session.


POST https://dev.skalio.net/teambeam//legal/idx
Responses204409404

The legal document has been marked as accepted. The response is empty in this case.

Accepting the legal document not work out because there has been a conflict. Check error details.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no legal document found by this idx.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Accept Legal document
POST/legal/{idx}

Mark a specific legal document as accepted for the current user of the session.

URI Parameters
HideShow
idx
number (required) 

ID of the legal document to be accepted


Users Resource

A User represents a person who uses TeamBeam. Access to this resource must be authenticated.

Users

GET https://dev.skalio.net/teambeam//users
Responses200
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

Fetch Current User
GET/users

Returns the current user of the session.

Deprecation Notice: Support for this request will be dropped in the future, please use the User Resource instead.


GET https://dev.skalio.net/teambeam//users/email
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

Fetching a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to this user has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch User
GET/users/{email}

Fetches the specified user.

Please note: This request requires admin privileges. If accessing a foreign user this request requires cluster admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


GET https://dev.skalio.net/teambeam//users/email/addressbook
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "receivers": [
    {
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "receivers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          }
        },
        "required": [
          "email",
          "realname"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "receivers"
  ]
}

Fetching the addressbook of a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the addressbook of this user has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Addressbook of User
GET/users/{email}/addressbook

Fetches the addressbook of the specified user.

Please note: If accessing another user’s addressbook admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


GET https://dev.skalio.net/teambeam//users/email/details
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "lastUpload": "2016-12-31T15:29:59+00:00",
  "lastPortalLogin": "2016-12-31T15:29:59+00:00",
  "previousPortalLogin": "2016-12-31T15:29:59+00:00",
  "uploadQuota": 1,
  "uploadVolume": 1,
  "driveQuota": 1,
  "driveVolume": 1,
  "hasContract": true
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "lastUpload": {
      "type": "string",
      "description": "date of the last transfer sent by this user"
    },
    "lastPortalLogin": {
      "type": "string",
      "description": "date of the last portal login by this user"
    },
    "previousPortalLogin": {
      "type": "string",
      "description": "date of the previous portal login by this user"
    },
    "uploadQuota": {
      "type": "number",
      "description": "maximum number of megaBytes allowed to transfer within a month"
    },
    "uploadVolume": {
      "type": "number",
      "description": "currently number of bytes transferred this month"
    },
    "driveQuota": {
      "type": "number",
      "description": "maximum number of megaBytes allowed to store in the Drive"
    },
    "driveVolume": {
      "type": "number",
      "description": "currently number of bytes stored in the Drive"
    },
    "hasContract": {
      "type": "boolean",
      "description": "true if the user is governed by a contract"
    }
  }
}

Fetching the details of a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the details of this user has been denied because the authenticated user does not have read access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch Details of User
GET/users/{email}/details

Fetches additional information about the specified user.

Please note: If accessing another user admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


GET https://dev.skalio.net/teambeam//users/serverlist
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE",
      "clientType": "employee",
      "validDate": "2037-12-31T15:29:59+00:00",
      "adminunitIdx": 1,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "limitations": {
        "isAdmin": true
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the user"
          },
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee",
              "receiver",
              "anonymous",
              "system"
            ],
            "description": "the class of user"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the account is valid"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the Adminunit of the user"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    1
                  ],
                  "description": "the ID of the role, readonly"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "the list of rules that are assigned to the user"
          },
          "limitations": {
            "type": "object",
            "properties": {
              "isAdmin": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the admin-privilege"
              }
            },
            "required": [
              "isAdmin"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "email",
          "realname",
          "lang",
          "clientType",
          "validDate",
          "adminunitIdx",
          "storagehost",
          "roles",
          "limitations"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Fetching all users requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching all users has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch all users
GET/users/serverlist

Fetches all users of type employee residing on the requested storagehost.

Please note: Admin-privileges are required to access this resource.


GET https://dev.skalio.net/teambeam//users/clusterlist?s=s
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE",
      "clientType": "employee",
      "validDate": "2037-12-31T15:29:59+00:00",
      "adminunitIdx": 1,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "Hello, world!",
        "adminunitIdx": 1,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": true,
        "clusterIdx": 100
      },
      "roles": [
        {
          "idx": 1,
          "name": "Hello, world!"
        }
      ],
      "limitations": {
        "isAdmin": true
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the user"
          },
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee",
              "receiver",
              "anonymous",
              "system"
            ],
            "description": "the class of user"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the account is valid"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the Adminunit of the user"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    1
                  ],
                  "description": "the ID of the role, readonly"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "the list of rules that are assigned to the user"
          },
          "limitations": {
            "type": "object",
            "properties": {
              "isAdmin": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the admin-privilege"
              }
            },
            "required": [
              "isAdmin"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "email",
          "realname",
          "lang",
          "clientType",
          "validDate",
          "adminunitIdx",
          "storagehost",
          "roles",
          "limitations"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Fetching all users requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching all users has been denied because the authenticated user does not cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch all users on cluster
GET/users/clusterlist?s={s}

Fetches all users residing on the cluster. The list includes users of all types, not just employees.

Please note: Cluster-Admin-privileges are required to access this resource.

URI Parameters
HideShow
s
number (optional) 

optional filter for the storagehost ID of the returned users


GET https://dev.skalio.net/teambeam//users/search?q=q&t=t&s=s&au=au
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "users": [
    {
      "idx": 1,
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE",
      "clientType": "employee",
      "validDate": "2037-12-31T15:29:59+00:00",
      "adminunitIdx": 0,
      "storagehost": {
        "idx": 123,
        "hostName": "teambeam.example.org",
        "description": "",
        "adminunitIdx": 0,
        "portalUrl": "https://teambeam.example.org/my/",
        "active": false,
        "clusterIdx": 100
      },
      "roles": [
        {
          "idx": 1,
          "name": ""
        }
      ],
      "limitations": {
        "canSendTransfer": false,
        "canInvite": false,
        "canUseDrive": false,
        "canCreateRootFolder": false,
        "sendToUnknown": false,
        "maxReceivers": 100,
        "maxFiles": 100,
        "maxFileSize": 0,
        "uploadQuota": 0,
        "myPublic": false,
        "isAdmin": false,
        "isClusterAdmin": false
      },
      "managedExternally": false,
      "timezone": "Asia/Pyongyang",
      "info": "",
      "oneTimeKey": {
        "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
        "validTimestamp": "2016-04-27T16:41:06+00:00"
      },
      "signatures": [],
      "myPublic": {
        "url": "",
        "boxId": 0
      },
      "passwordDefined": false,
      "options": {
        "getUploadConfirmation": false,
        "getExpiryWarning": false,
        "getReceiveNewsletter": false
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the user"
          },
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          },
          "clientType": {
            "type": "string",
            "enum": [
              "employee",
              "receiver",
              "anonymous",
              "system"
            ],
            "description": "the class of user"
          },
          "validDate": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date until the account is valid"
          },
          "adminunitIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the ID of the Adminunit of the user"
          },
          "storagehost": {
            "type": "object",
            "properties": {
              "idx": {
                "type": "number",
                "enum": [
                  123
                ],
                "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
              },
              "hostName": {
                "type": "string",
                "enum": [
                  "teambeam.example.org"
                ],
                "description": "the fully qualified hostName"
              },
              "description": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "a descriptive text"
              },
              "adminunitIdx": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "The ID of the Adminunit to which this storagehost belongs"
              },
              "portalUrl": {
                "type": "string",
                "enum": [
                  "https://teambeam.example.org/my/"
                ],
                "description": "URL to the My.TeamBeam portal of the storagehost"
              },
              "active": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "If true this storagehost is active"
              },
              "clusterIdx": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "a global unique identifier of TeamBeam installations"
              }
            },
            "required": [
              "hostName",
              "description",
              "adminunitIdx",
              "portalUrl",
              "active",
              "clusterIdx"
            ],
            "additionalProperties": false,
            "description": "Readonly."
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "idx": {
                  "type": "number",
                  "enum": [
                    1
                  ],
                  "description": "the ID of the role, readonly"
                },
                "name": {
                  "type": "string",
                  "enum": [
                    ""
                  ],
                  "description": "the name of the role"
                }
              },
              "required": [
                "idx",
                "name"
              ],
              "additionalProperties": false
            },
            "description": "the list of rules that are assigned to the user"
          },
          "limitations": {
            "type": "object",
            "properties": {
              "canSendTransfer": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the permission to send transfers"
              },
              "canInvite": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the invite-privilege"
              },
              "canUseDrive": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the privilege to use his own personal drive"
              },
              "canCreateRootFolder": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the privilege to create drive root folders"
              },
              "sendToUnknown": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the privilege to send to recipients outside his addressbook"
              },
              "maxReceivers": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "the maximum allowed number of receivers, the user can send to in a transfer"
              },
              "maxFiles": {
                "type": "number",
                "enum": [
                  100
                ],
                "description": "the maximum number of files the user can send in a transfer"
              },
              "maxFileSize": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "the maximum number of bytes a single file to transfer may have"
              },
              "uploadQuota": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "the maximum number of megabytes this user may transfer within a month"
              },
              "myPublic": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the privilege to create and use a personal mailbox"
              },
              "isAdmin": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the admin-privilege"
              },
              "isClusterAdmin": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user has the cluster-wide admin-privilege"
              }
            },
            "required": [
              "canSendTransfer",
              "canInvite",
              "canUseDrive",
              "canCreateRootFolder",
              "sendToUnknown",
              "maxReceivers",
              "maxFiles",
              "maxFileSize",
              "uploadQuota",
              "myPublic",
              "isAdmin",
              "isClusterAdmin"
            ],
            "additionalProperties": false
          },
          "managedExternally": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "if true, the user is managed by an external directory service"
          },
          "timezone": {
            "type": "string",
            "enum": [
              "Asia/Pyongyang"
            ],
            "description": "the user's timezone"
          },
          "info": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "Additional information about this user. May be empty."
          },
          "oneTimeKey": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "enum": [
                  "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13"
                ],
                "description": "a onetime key, to be used for login with the requested user"
              },
              "validTimestamp": {
                "type": "string",
                "enum": [
                  "2016-04-27T16:41:06+00:00"
                ],
                "description": "timestamp, when the onetime key expires"
              }
            },
            "required": [
              "key",
              "validTimestamp"
            ],
            "additionalProperties": false,
            "description": "Key to authenticate this user once, if set."
          },
          "signatures": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                ""
              ]
            },
            "description": "a list of signatures that can be appended to transfer messages"
          },
          "myPublic": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Link to access the personal Mailbox"
              },
              "boxId": {
                "type": "number",
                "enum": [
                  0
                ],
                "description": "ID of the personal Mailbox"
              },
              "vanityUrl": {
                "type": "string",
                "enum": [
                  ""
                ],
                "description": "Vanity url to access the personal Mailbox, if set"
              }
            },
            "required": [
              "url",
              "boxId"
            ],
            "additionalProperties": false,
            "description": "info about personal mailbox of this user"
          },
          "passwordDefined": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "false for new users who haven't set their password"
          },
          "options": {
            "type": "object",
            "properties": {
              "getUploadConfirmation": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
              },
              "getExpiryWarning": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
              },
              "getReceiveNewsletter": {
                "type": "boolean",
                "enum": [
                  false
                ],
                "description": "true, if the user wants to receive newsletters sent by administrators"
              }
            },
            "required": [
              "getUploadConfirmation",
              "getExpiryWarning",
              "getReceiveNewsletter"
            ],
            "additionalProperties": false
          },
          "contractId": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "if the use is owner of a contract, its identifier will be shown here"
          }
        },
        "required": [
          "email",
          "realname",
          "lang",
          "clientType",
          "validDate",
          "adminunitIdx",
          "storagehost",
          "roles",
          "limitations",
          "managedExternally",
          "timezone",
          "info",
          "passwordDefined",
          "options"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "users"
  ]
}

Searching for users requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for users has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Search users
GET/users/search?q={q}&t={t}&s={s}&au={au}

Searches for users residing on the requested storagehost by providing a search keyword.

Please note: Admin-privileges are required to access this resource.

Please note: Cluster-privileges are required to search for users on different storagehosts by the ID of the requested storagehost, or by passing s=0 to signal that the backend should search cluster-wide.

URI Parameters
HideShow
q
String (required) 

search keyword

t
String (required) 

optional filter for the client type of the found users

au
number (required) 

optional filter for the adminunit ID of the found users (pass au=0 to search cluster-wide)

s
number (required) 

optional filter for the storagehost ID of the found users (pass s=0 to search cluster-wide); ignored if au is also specified


GET https://dev.skalio.net/teambeam//users/creationinfo?e=e
Responses200401403
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "events": [
    {
      "idx": 1,
      "timestamp": "2037-12-31T15:29:59+00:00",
      "reason": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the internal identifier of the user creation info"
          },
          "timestamp": {
            "type": "string",
            "enum": [
              "2037-12-31T15:29:59+00:00"
            ],
            "description": "date of user creation event"
          },
          "reason": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the reason why the user has been created"
          }
        },
        "required": [
          "idx",
          "timestamp",
          "reason"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "events"
  ]
}

Searching for users requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Searching for users has been denied because the authenticated user does not have cluster admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Get creation info
GET/users/creationinfo?e={e}

Returns information about previous creation events of the given e-mail address.

Please note: Cluster-privileges are required to access this resource.

URI Parameters
HideShow
e
String (required) 

E-Mail address of user to get info about


GET https://dev.skalio.net/teambeam//users/email/rights
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "rights": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "number",
            "enum": [
              1,
              2
            ],
            "description": "the type of the right value. Readonly."
          },
          "unit": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the measurement unit, if any. Readonly."
          },
          "source": {
            "type": "number",
            "enum": [
              1,
              2,
              3
            ],
            "description": "the source, where this right is defined."
          },
          "roleIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the id of role if this right is covered by a role. Otherwise '0'. Readonly."
          },
          "rightIdx": {
            "type": "number",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ],
            "description": "the id of the right"
          },
          "value": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the current value of the right. If type is boolean, then '0' means false and '1' means true"
          },
          "defaultValue": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the default value for the right. Readonly."
          },
          "zeroUnlimited": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "returns true if the value 0 means unlimited. Otherwise false. Readonly."
          }
        },
        "required": [
          "type",
          "unit",
          "source",
          "rightIdx",
          "value",
          "defaultValue",
          "zeroUnlimited"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "rights"
  ]
}

Fetching a users rights requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetching users rights has been denied because the authenticated user does not admin rights.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Fetch rights of a user
GET/users/{email}/rights

Returns the set of rights of a user, including their values, types and source.

Please note: Admin-privileges are required to access this resource. If accessing a foreign user this request requires cluster admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of user


PUT https://dev.skalio.net/teambeam//users/email
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}
Responses200401403404409

The user has been updated successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

Updating a user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The user could not be updated. This can have different reasons, such as missing access rights or invalid or missing fields. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating the user did not work out because there has been a conflict. Check error details.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update User
PUT/users/{email}

Updates the specified user.

Please note: This resource may be used to update your own user object when logged in. Some administrative fields may only be updated by an admin. Updating other users than your own requires admin-privileges (or cluster admin privileges if user is on foreign storagehost).

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


PUT https://dev.skalio.net/teambeam//users/email/password
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "newPassword": "{PLAIN}Passw0rd",
  "currentPassword": "{PLAIN}OldPassw0rd",
  "oneTimeKey": "7u3zim1lm70191gb8u6ifglv7ovedq3b9dr46ft"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "newPassword": {
      "type": "string",
      "description": "The user's new password in plaintext"
    },
    "currentPassword": {
      "type": "string",
      "description": "The user's previous password in plaintext"
    },
    "oneTimeKey": {
      "type": "string",
      "description": "A valid oneTimeKey to authenticate."
    }
  },
  "required": [
    "newPassword"
  ]
}
Responses204401403404409
This response has no content.

Updating a password requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The password could not be updated. This can have different reasons, such as missing access rights or invalid or missing fields. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Updating the password did not work out because there has been a conflict. Check error details.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Password of User
PUT/users/{email}/password

Updates the password of the specified user.

When updating your own password as regular user without admin-rights, the following rules need to be taken into account:

  • If setting your password for the first time, providing just the new password is sufficient.

  • If setting a new password you need to provide your previous valid password or a oneTimeKey.

Please note: Updating other user’s passwords requires admin-privileges (or cluster admin privileges if user is on foreign storagehost).

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


PUT https://dev.skalio.net/teambeam//users/email/roles
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ]
}
Responses200401403404

The roles of the user have been updated successfully.

Headers
Content-Type: application/json
Body
{
  "roles": [
    {
      "idx": 1,
      "name": "Hello, world!"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idx": {
            "type": "number",
            "enum": [
              1
            ],
            "description": "the ID of the role, readonly"
          },
          "name": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the role"
          }
        },
        "required": [
          "idx",
          "name"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "roles"
  ]
}

Updating the roles of a user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The roles of the user could not be updated. This can have different reasons, such as missing access rights or invalid or missing fields. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Roles of User
PUT/users/{email}/roles

Updates the roles of the specified user. Roles define a set of rights which will overwrite the right defaults.

Please note: Admin-privileges are required to access this resource (or cluster admin privileges if user is on foreign storagehost).

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


PUT https://dev.skalio.net/teambeam//users/email/rights
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "rights": [
    {
      "type": 1,
      "unit": "",
      "source": 1,
      "rightIdx": 1,
      "value": 0,
      "defaultValue": 0,
      "zeroUnlimited": false
    }
  ]
}
Responses200401403404

The individual rights of the user have been updated successfully.

Headers
Content-Type: application/json
Body
{
  "rights": [
    {
      "type": 1,
      "unit": "Hello, world!",
      "source": 1,
      "roleIdx": 1,
      "rightIdx": 1,
      "value": 1,
      "defaultValue": 1,
      "zeroUnlimited": true
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "rights": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "number",
            "enum": [
              1,
              2
            ],
            "description": "the type of the right value. Readonly."
          },
          "unit": {
            "type": "string",
            "enum": [
              ""
            ],
            "description": "the name of the measurement unit, if any. Readonly."
          },
          "source": {
            "type": "number",
            "enum": [
              1,
              2,
              3
            ],
            "description": "the source, where this right is defined."
          },
          "roleIdx": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the id of role if this right is covered by a role. Otherwise '0'. Readonly."
          },
          "rightIdx": {
            "type": "number",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8,
              9
            ],
            "description": "the id of the right"
          },
          "value": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the current value of the right. If type is boolean, then '0' means false and '1' means true"
          },
          "defaultValue": {
            "type": "number",
            "enum": [
              0
            ],
            "description": "the default value for the right. Readonly."
          },
          "zeroUnlimited": {
            "type": "boolean",
            "enum": [
              false
            ],
            "description": "returns true if the value 0 means unlimited. Otherwise false. Readonly."
          }
        },
        "required": [
          "type",
          "unit",
          "source",
          "rightIdx",
          "value",
          "defaultValue",
          "zeroUnlimited"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "rights"
  ]
}

Updating the individual rights of a user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

The individual rights of the user could not be updated. This can have different reasons, such as missing access rights or invalid or missing fields. Check the message for details

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Rights of User
PUT/users/{email}/rights

Updates the individual rights of the specified user. Individual rights may be set to overwrite rights defined by roles.

Please note: Admin-privileges are required to access this resource (or cluster admin privileges if user is on foreign storagehost).

This request accepts an array of rights which will replace the specified user’s individual rights. For this to work correctly the source attribute of the rights must be set to INDIVIDUAL.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


PUT https://dev.skalio.net/teambeam//users/email/addressbook/email2
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    }
  }
}
Responses200401403404
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    }
  }
}

Editing the addressbook of a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the addressbook of this user has been denied because the authenticated user does not have write access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Addressbook entry for User
PUT/users/{email}/addressbook/{email2}

Updates an address book entry for the specified user.

Please note: If accessing another user’s addressbook admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user whose address book is to be edited

email2
string (required) 

e-mail address of the address book entry


PUT https://dev.skalio.net/teambeam//users/email/addressbook
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "receivers": [
    {
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "receivers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          }
        },
        "required": [
          "email",
          "realname"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "receivers"
  ]
}
Responses200401403404

The address book has been updated.

Headers
Content-Type: application/json
Body
{
  "total": 1,
  "receivers": [
    {
      "email": "bob@example.org",
      "realname": "Bob Smith",
      "lang": "de_DE"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "total": {
      "type": "number"
    },
    "receivers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "enum": [
              "bob@example.org"
            ],
            "description": "the email address of the user"
          },
          "realname": {
            "type": "string",
            "enum": [
              "Bob Smith"
            ],
            "description": "the full name of the user (as given by himself)"
          },
          "lang": {
            "type": "string",
            "enum": [
              "de_DE",
              "en_US",
              "fr_FR",
              "ru_RU",
              "ko_KR",
              "zh_CN",
              "zh_TW",
              "ja_JP"
            ],
            "description": "the user's language"
          }
        },
        "required": [
          "email",
          "realname"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "receivers"
  ]
}

Editing the addressbook of a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the addressbook of this user has been denied because the authenticated user does not have write access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Update Addressbook for User
PUT/users/{email}/addressbook

Updates the complete address book for the specified user.

Please note: If accessing another user’s addressbook admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


DELETE https://dev.skalio.net/teambeam//users/email?purge=purge&inform_user=inform_user
Responses204401403404
This response has no content.

Deleting a user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access is denied. The user does not have write access to the user.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete User
DELETE/users/{email}?purge={purge}&inform_user={inform_user}

Deletes the specified user.

Please note: Admin-privileges are required to access this resource. If accessing a foreign user this request requires cluster admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user

purge
boolean (optional) 

if present, the keyword controls deletion effectiveness.

  • true - The user account and all referenced data will be deleted.

  • false - Default. The user account will be deleted but referenced data will remain on the system.

inform_user
boolean (optional) 

if present, the keyword controls if the deleted user will be informed.

  • true - The systems sends an informative e-mail to the user after the account has been deleted.

  • false - Default. The systems does not send an e-mail to the user after the account has been deleted.


DELETE https://dev.skalio.net/teambeam//users/email/addressbook/email2
Responses204401403404
This response has no content.

Deleting an address book entry requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access is denied. The user does not have write access to the user.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

There was no user found by this e-mail.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Delete Addressbook entry of User
DELETE/users/{email}/addressbook/{email2}

Deletes an address book entry of the specified user.

Please note: If accessing another user’s address book admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user whose address book is to be edited

email2
string (required) 

e-mail address of address book entry to be deleted


POST https://dev.skalio.net/teambeam//users?inform_user=inform_user
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "presetIdx": 23,
  "email": "bob@example.org",
  "realname": "Bob Smith"
}
Responses201401403409

User has been created successfully.

Headers
Content-Type: application/json
Body
{
  "idx": 1,
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE",
  "clientType": "employee",
  "validDate": "2037-12-31T15:29:59+00:00",
  "adminunitIdx": 0,
  "storagehost": {
    "idx": 123,
    "hostName": "teambeam.example.org",
    "description": "",
    "adminunitIdx": 0,
    "portalUrl": "https://teambeam.example.org/my/",
    "active": false,
    "clusterIdx": 100
  },
  "roles": [
    {
      "idx": 1,
      "name": ""
    }
  ],
  "limitations": {
    "canSendTransfer": false,
    "canInvite": false,
    "canUseDrive": false,
    "canCreateRootFolder": false,
    "sendToUnknown": false,
    "maxReceivers": 100,
    "maxFiles": 100,
    "maxFileSize": 0,
    "uploadQuota": 0,
    "myPublic": false,
    "isAdmin": false,
    "isClusterAdmin": false
  },
  "managedExternally": false,
  "timezone": "Asia/Pyongyang",
  "info": "",
  "oneTimeKey": {
    "key": "z8jiie04kwh828cn7j4ykcx2jd2iz687oqgfqgag13",
    "validTimestamp": "2016-04-27T16:41:06+00:00"
  },
  "signatures": [],
  "myPublic": {
    "url": "",
    "boxId": 0
  },
  "passwordDefined": false,
  "options": {
    "getUploadConfirmation": false,
    "getExpiryWarning": false,
    "getReceiveNewsletter": false
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "idx": {
      "type": "number",
      "description": "the internal identifier of the user"
    },
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    },
    "clientType": {
      "type": "string",
      "enum": [
        "employee",
        "receiver",
        "anonymous",
        "system"
      ],
      "description": "the class of user"
    },
    "validDate": {
      "type": "string",
      "description": "date until the account is valid"
    },
    "adminunitIdx": {
      "type": "number",
      "description": "the ID of the Adminunit of the user"
    },
    "storagehost": {
      "type": "object",
      "properties": {
        "idx": {
          "type": "number",
          "description": "Unique identifier of this storagehost. Used to fetch storagehosts via API."
        },
        "hostName": {
          "type": "string",
          "description": "the fully qualified hostName"
        },
        "description": {
          "type": "string",
          "description": "a descriptive text"
        },
        "adminunitIdx": {
          "type": "number",
          "description": "The ID of the Adminunit to which this storagehost belongs"
        },
        "portalUrl": {
          "type": "string",
          "description": "URL to the My.TeamBeam portal of the storagehost"
        },
        "active": {
          "type": "boolean",
          "description": "If true this storagehost is active"
        },
        "clusterIdx": {
          "type": "number",
          "description": "a global unique identifier of TeamBeam installations"
        }
      },
      "description": "Readonly."
    },
    "roles": {
      "type": "array",
      "description": "the list of rules that are assigned to the user"
    },
    "limitations": {
      "type": "object",
      "properties": {
        "canSendTransfer": {
          "type": "boolean",
          "description": "true, if the user has the permission to send transfers"
        },
        "canInvite": {
          "type": "boolean",
          "description": "true, if the user has the invite-privilege"
        },
        "canUseDrive": {
          "type": "boolean",
          "description": "true, if the user has the privilege to use his own personal drive"
        },
        "canCreateRootFolder": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create drive root folders"
        },
        "sendToUnknown": {
          "type": "boolean",
          "description": "true, if the user has the privilege to send to recipients outside his addressbook"
        },
        "maxReceivers": {
          "type": "number",
          "description": "the maximum allowed number of receivers, the user can send to in a transfer"
        },
        "maxFiles": {
          "type": "number",
          "description": "the maximum number of files the user can send in a transfer"
        },
        "maxFileSize": {
          "type": "number",
          "description": "the maximum number of bytes a single file to transfer may have"
        },
        "uploadQuota": {
          "type": "number",
          "description": "the maximum number of megabytes this user may transfer within a month"
        },
        "myPublic": {
          "type": "boolean",
          "description": "true, if the user has the privilege to create and use a personal mailbox"
        },
        "isAdmin": {
          "type": "boolean",
          "description": "true, if the user has the admin-privilege"
        },
        "isClusterAdmin": {
          "type": "boolean",
          "description": "true, if the user has the cluster-wide admin-privilege"
        }
      }
    },
    "managedExternally": {
      "type": "boolean",
      "description": "if true, the user is managed by an external directory service"
    },
    "timezone": {
      "type": "string",
      "description": "the user's timezone"
    },
    "info": {
      "type": "string",
      "description": "Additional information about this user. May be empty."
    },
    "oneTimeKey": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "a onetime key, to be used for login with the requested user"
        },
        "validTimestamp": {
          "type": "string",
          "description": "timestamp, when the onetime key expires"
        }
      },
      "description": "Key to authenticate this user once, if set."
    },
    "signatures": {
      "type": "array",
      "description": "a list of signatures that can be appended to transfer messages"
    },
    "myPublic": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Link to access the personal Mailbox"
        },
        "boxId": {
          "type": "number",
          "description": "ID of the personal Mailbox"
        },
        "vanityUrl": {
          "type": "string",
          "description": "Vanity url to access the personal Mailbox, if set"
        }
      },
      "description": "info about personal mailbox of this user"
    },
    "passwordDefined": {
      "type": "boolean",
      "description": "false for new users who haven't set their password"
    },
    "options": {
      "type": "object",
      "properties": {
        "getUploadConfirmation": {
          "type": "boolean",
          "description": "true, if the user wants to receive email confirmations when a transfer has successfully been uploaded"
        },
        "getExpiryWarning": {
          "type": "boolean",
          "description": "true, if the user wants to receive email notifications warning him of a pending transfer expiration"
        },
        "getReceiveNewsletter": {
          "type": "boolean",
          "description": "true, if the user wants to receive newsletters sent by administrators"
        }
      }
    },
    "contractId": {
      "type": "number",
      "description": "if the use is owner of a contract, its identifier will be shown here"
    }
  }
}

Creating a user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a user has been denied because the authenticated user does not have admin access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Creating a user did not work out because there has been a conflict. Check error details.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The data could not be stored.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create User
POST/users?inform_user={inform_user}

Creates a new user by providing e-mail adress, name and preset id. The request returns the newly created user, if it was successful.

Please note: Admin-privileges are required to access this resource.

URI Parameters
HideShow
inform_user
boolean (optional) 

if present, the keyword controls if the new user will be informed by email.

  • true - The systems sends an informative welcome e-mail to the user after the account has been created.

  • false - Default. The systems does not send an e-mail to the user after the account has been created.


POST https://dev.skalio.net/teambeam//users/email/addressbook
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    }
  }
}
Responses201401403
Headers
Content-Type: application/json
Body
{
  "email": "bob@example.org",
  "realname": "Bob Smith",
  "lang": "de_DE"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "the email address of the user"
    },
    "realname": {
      "type": "string",
      "description": "the full name of the user (as given by himself)"
    },
    "lang": {
      "type": "string",
      "enum": [
        "de_DE",
        "en_US",
        "fr_FR",
        "ru_RU",
        "ko_KR",
        "zh_CN",
        "zh_TW",
        "ja_JP"
      ],
      "description": "the user's language"
    }
  }
}

Editing the addressbook of a specific user requires authentication, which was missing or incorrect.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "Authentication failed or missing.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Access to the addressbook of this user has been denied because the authenticated user does not have write access.

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "This request is forbidden.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Create Addressbook entry for User
POST/users/{email}/addressbook

Creates a new address book entry for the specified user.

Please note: If accessing another user’s addressbook admin privileges are required (or cluster admin privileges if user is on foreign storagehost). It is possible to access the logged in user’s addressbook without admin privileges.

URI Parameters
HideShow
email
string (required) 

e-mail address of a user


Validate Resource

This resource provides a number of useful functions that can be used without authentication.

Validate

GET https://dev.skalio.net/teambeam//validate/url?q=url&id=id
Responses200
Headers
Content-Type: application/json
Body
{
  "url": "http://www.example.org/",
  "id": "abc123"
}

Clean up a URL
GET/validate/url?q={url}&id={id}

Processes the given text and ensures it is a valid URL. Path and scheme are added if missing. Obviously invalid URLs and schemes other than http or https are rejected with a BadRequestException. However, the validation is very limited and URLs are not checked if they are reachable.

URI Parameters
HideShow
url
string (required) 

Input URL to be processed

id
string (optional) 

request id, will be returned if set


GET https://dev.skalio.net/teambeam//validate/email?q=email
Responses200
Headers
Content-Type: application/json
Body
{
    "valid": true|false
}

Validate an Email address
GET/validate/email?q={email}

Checks if the given string is a valid email address.

URI Parameters
HideShow
email
string (required) 

Input email addrss to be processed


Vanity Resource

Vanity links are custom URLs which contain a user-chosen name for a web resource. Vanity links consist of the base URL plus an individual vanity name. An example of a vanity link could be:

https://transfer.teambeam.de/john_kicks_ass

The advantage of creating vanity links include

  • easier remembering of an URL

  • option to give temporary access to a resource

This resource may be used without authentication

Uniqueness

A vanity name must be unique within the scope of the base URL. So the name ‘john_kicks_ass’ may only be used once on transfer.teambeam.de but would be still available on other storagehosts.

Supported resources

Currently the only supported resources are Publicboxes. Check the documentation on Publicboxes for reference.

HEAD https://dev.skalio.net/teambeam//vanity/name
Responses200404

The given name is either invalid, blocked or taken by someone else

Headers
Content-Type: application/json

The given name is available for registration (yeah!)

Headers
Content-Type: application/json

GET https://dev.skalio.net/teambeam//vanity/name
Responses200404
Headers
Content-Type: application/json
Body
{
  "name": "Hello, world!",
  "key": 1,
  "publicuserIdx": 1
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "the unique vanity name"
    },
    "key": {
      "type": "number",
      "description": "the key required to access the publicbox without authentication"
    },
    "publicuserIdx": {
      "type": "number",
      "description": "the ID of the publicbox user account"
    }
  }
}

There was no vanity link found by this vanity name

Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 0,
    "message": "The requested object does not exist.",
    "details": [
      "Hello, world!"
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "number",
          "description": "The error code"
        },
        "message": {
          "type": "string",
          "description": "English error message."
        },
        "details": {
          "type": "array",
          "description": "English details to error."
        }
      }
    }
  }
}

Generated by aglio on 31 Aug 2021