Task Attachments

{
  "error": "One or more attachments could not be downloaded.",
  "attachments": [
    {
      "statusCode": 500,
      "url": "https://your-s3-bucket.s3.amazonaws.com/attachment-1.png"
    },
    {
      "statusCode": 500,
      "url": "https://your-s3-bucket.s3.amazonaws.com/attachment-2.png"
    }
  ]
}

Tasks often require a file associated with them that Scale calls an attachment. For example, an annotation task requires an image file to show to labelers. These attachments are not limited to images and may also be audio, video, or pdf files, or a website, or even plain text. For all attachment types except plain text, the attachment must be specified via a URL. See the specific task documentation below for some examples.

HTTP vs HTTPS

Currently, we support fetching URLs over HTTP or HTTPS. Make sure that the URL is a direct link to the file you wish to use as an attachment and not a document showing a preview of the file. For certain storage providers, we may be able to rewrite URLs that are previews of the file you are trying to attach to the correct direct download URL. HTTPS is preferred over HTTP, as HTTPS guarantees data integrity, preventing corruption.

Direct Access via AWS, GCP, or Azure

In addition to fetching using HTTP/HTTPS URLs, we can also directly retrieve attachments from AWS S3, Google Cloud Storage, or Azure. See our Secure Attachment Access for more information.

Handling Failures

Scale will attempt to fetch the attachment via the URL you provide. If we do not receive an HTTP 200 response when attempting to fetch your attachment(s), we will send your callback_url an error with the bad HTTP codes we received, and the task status will be error. See the response on the sidebar for an example.

Attachment Limits

For audio and video attachments we support the containers and formats listed on this Chromium project page; for image attachments, we support JPEG, PNG, BMP, GIF, and TIFF file formats up to a maximum of 10000 pixels in width or height.