Workspace Specific Data Storage

GoodData workspace-specific data storage lets you stage and deliver your data files to the workspace. You can stage valid row-based CSV files or well-formed XML (adding a schema is helpful).

You must be a workspace administrator (see User Roles) to be able to access the workspace-specific data storage.

Workspace-specific storage is not permanent storage. Files are automatically deleted after 7 days.

Access Details

To access your workspace-specific data storage, you need to know the server URL and credentials to log in to this server.

Server URL

The server URL depends on the datacenter that your data is stored in.


  1. Find out what datacenter holds your data (see Finding Out Your Data Colocation).
  2. Find the server URL under your datacenter (see Datacenter Properties).

For example, the URL may look like the following:


where {} is the domain URL that is used to log in to the GoodData platform.


Use your GoodData username and password to log in.

Connect to Your Workspace-Specific Data Storage

The following examples use the sample workspace ID e863ii0azrnng2zt4fuu81ifgqtyeoj21 and the sample hostname{.plain .plain}. Replace them with your workspace ID and hostname.


The following cURL command returns the link to the workspace-specific data storage:

curl -H 'Accept: application/json' -X GET | jq  '.project.links.uploads'


The following picture shows how you can connect to your workspace-specific data storage via WebDAV using Cyberduck:

Mac Finder


  1. Open the Finder window.
  2. From the top menu, select Go > Connect to Server… . The dialog for connecting to a server appears.
  3. Enter the server URL (see Access Details), and click Connect:
  1. When prompted, enter your GoodData credentials, and click Connect.

Uploading a File to Workspace-Specific Data Storage Using Ruby

The following Ruby script uploads the file test.txt to the workspace-specific storage for the workspace with ID e863ii0azrnng2zt4fuu81ifgqtyeoj21:

require 'uri'
require 'net/http'
uri = URI.parse("")
file = 'test.txt'
http =, uri.port)
http.use_ssl = true
request ="#{uri.request_uri}/test.txt")
request.basic_auth '', 'secretpassword'
request.body_stream =
request["Content-Type"] = "multipart/form-data"
request.add_field('Content-Length', File.size(file))
response = http.request(request)