Data files

API for uploading and managing user data files

Endpoints

Skip to section
GET/v1/data-files
POST/v1/data-files
GET/v1/data-files/{id}
PUT/v1/data-files/{id}
DELETE/v1/data-files/{id}
POST/v1/data-files/{id}/actions/change-owner
POST/v1/data-files/{id}/actions/change-space
POST/v1/data-files/actions/change-space
POST/v1/data-files/actions/delete
GET/v1/data-files/connections
GET/v1/data-files/connections/{id}
GET/v1/data-files/quotas

Get descriptive info for the specified data files.

managebuild

Facts GET /v1/data-files

Rate limit
Tier 1 (1000 requests per minute)

Query Parameters GET /v1/data-files

allowInternalFiles
optional
boolean

If set to false, do not return data files with internal extensions else return all the data files.

appId
optional
string

Only return files scoped to the specified app. If this parameter is not specified, only files that are not scoped to any app are returned. "*" implies all app-scoped files are returned.

connectionId
optional
string<uuid>

Return files that reside in the space referenced by the specified DataFiles connection. If this parameter is not specified, the user's personal space is implied.

limit
optional, default=20, minimum=1, maximum=1000
integer<int32>

If present, the maximum number of data files to return.

name
optional
string

Filter the list of files returned to the given file name.

ownerId
optional
string

If present, fetch the data files for the specified owner. If a connectionId is specified in this case, the returned list is constrained to the specified space. If connectionId is not specified, then all files owned by the specified user are returned regardless of the personal space that a given file resides in.

page
optional
string

If present, the cursor that starts the page of data that is returned.

sort

The name of the field used to sort the result. By default, the sort order is ascending. Putting a '+' prefix on the sort field name explicitly indicates ascending sort order. A '-' prefix indicates a descending sort order.

Responses GET /v1/data-files

200
optional, application/json

The file list was retrieved.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

GET/v1/data-files

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files" \
 -H "Authorization: Bearer <API-key>"

Response GET /v1/data-files

{
  "data": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
      "name": "MyFile.csv",
      "size": 1024,
      "appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
      "ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D",
      "spaceId": "617979737a9f56e49dea2e6e",
      "createdDate": "2020-07-07T20:52:40.8534780Z",
      "modifiedDate": "2020-07-07T20:52:40.8534780Z"
    }
  ],
  "links": {
    "next": {
      "href": "http://example.com"
    },
    "prev": {
      "href": "http://example.com"
    },
    "self": {
      "href": "http://example.com"
    }
  }
}

Upload a new data file.

managebuild

Facts POST /v1/data-files

Rate limit
Tier 2 (100 requests per minute)

Request Body POST /v1/data-files

File
optional, multipart/form-data
string<binary>

IFormFile form multipart/form-data

Json
multipart/form-data

See PostDataFileRequest schema which defines request structure. See model.

Responses POST /v1/data-files

201
optional, application/json

New file was uploaded and created.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

409
optional, application/json

A file with the same name already exists in the specified user or app scope.

413
optional, application/json

The file exceeds the user's quota for maximum file size to upload.

423
optional, application/json

The file is already locked for read or write by another client.

POST/v1/data-files

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: multipart/form-data" \
 -F "file=@/path/to/file" \
 -d 'undefined'

Response POST /v1/data-files

{
  "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
  "name": "MyFile.csv",
  "size": 1024,
  "appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
  "ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D",
  "spaceId": "617979737a9f56e49dea2e6e",
  "createdDate": "2020-07-07T20:52:40.8534780Z",
  "modifiedDate": "2020-07-07T20:52:40.8534780Z"
}

Get descriptive info for the specified data file.

managebuild

Facts GET /v1/data-files/{id}

Rate limit
Tier 1 (1000 requests per minute)

Path Parameters GET /v1/data-files/{id}

id
string<uuid>

The ID of the data file.

Responses GET /v1/data-files/{id}

200
optional, application/json

The file was located.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

404
optional, application/json

A data file with the specified ID was not found.

GET/v1/data-files/{id}

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}" \
 -H "Authorization: Bearer <API-key>"

Response GET /v1/data-files/{id}

{
  "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
  "name": "MyFile.csv",
  "size": 1024,
  "appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
  "ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D",
  "spaceId": "617979737a9f56e49dea2e6e",
  "createdDate": "2020-07-07T20:52:40.8534780Z",
  "modifiedDate": "2020-07-07T20:52:40.8534780Z"
}

Re-upload an existing data file.

managebuild

Facts PUT /v1/data-files/{id}

Rate limit
Tier 2 (100 requests per minute)

Path Parameters PUT /v1/data-files/{id}

id
string<uuid>

The ID of the data file to update.

Request Body PUT /v1/data-files/{id}

File
optional, multipart/form-data
string<binary>

IFormFile form multipart/form-data

Json
optional, multipart/form-data

See PutDataFileRequest schema which defines request structure. See model.

Responses PUT /v1/data-files/{id}

201
optional, application/json

The fie was updated.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

404
optional, application/json

A data file with the specified ID was not found.

409
optional, application/json

If the file was renamed during the update, a file with the new name already exists in the specified user or app scope. Also, if the space that the file resides in was changed as part of the update, a file with the same name already resides in the new space.

413
optional, application/json

The file exceeds the user's quota for maximum file size to upload.

423
optional, application/json

The file is already locked for read or write by another client.

PUT/v1/data-files/{id}

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}" \
 -X PUT \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: multipart/form-data" \
 -F "file=@/path/to/file" \
 -d 'undefined'

Response PUT /v1/data-files/{id}

{
  "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
  "name": "MyFile.csv",
  "size": 1024,
  "appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
  "ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D",
  "spaceId": "617979737a9f56e49dea2e6e",
  "createdDate": "2020-07-07T20:52:40.8534780Z",
  "modifiedDate": "2020-07-07T20:52:40.8534780Z"
}

Delete the specified data file.

managebuild

Facts DELETE /v1/data-files/{id}

Rate limit
Tier 2 (100 requests per minute)

Path Parameters DELETE /v1/data-files/{id}

id
string<uuid>

The ID of the data file to delete.

Responses DELETE /v1/data-files/{id}

204
optional
object

The fie was deleted.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

404
optional, application/json

A data file with the specified ID was not found.

DELETE/v1/data-files/{id}

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}" \
 -X DELETE \
 -H "Authorization: Bearer <API-key>"

Change the owner of an existing data file.

managebuild

This is primarily an admin type of operation. In general, the owner of a data file is implicitly set as part of a data file upload. For data files that reside in a personal space, changing the owner has the effect of moving the data file to the new owner's personal space.

Facts POST /v1/data-files/{id}/actions/change-owner

Rate limit
Tier 2 (100 requests per minute)

Path Parameters POST /v1/data-files/{id}/actions/change-owner

id
string<uuid>

The ID of the data file whose owner will be updated.

Request Body POST /v1/data-files/{id}/actions/change-owner

The request.

Responses POST /v1/data-files/{id}/actions/change-owner

204
optional
object

The file's owner was changed.

400
optional, application/json

An owner with the specified ID does not exist.

403
optional, application/json

The user does not have permission to modify the specified data file.

404
optional, application/json

A data file with the specified ID was not found.

423
optional, application/json

The file is already locked for read or write by another client.

POST/v1/data-files/{id}/actions/change-owner

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}/actions/change-owner" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"ownerId":"lDL4DIINndhL_iJkcbqWyJenuwizP-2D"}'

Request POST /v1/data-files/{id}/actions/change-owner

{
  "ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}

Change the space that an existing data file resides in.

managebuild

This is to allow for a separate admin type of operation that is more global in terms of access in cases where admin users may not explicitly have been granted full access to a given space within the declared space-level permissions. If the space ID is set to null, then the datafile will end up residing in the personal space of the user who is the owner of the file.

Facts POST /v1/data-files/{id}/actions/change-space

Rate limit
Tier 2 (100 requests per minute)

Path Parameters POST /v1/data-files/{id}/actions/change-space

id
string<uuid>

The ID of the data file whose space will be updated.

Request Body POST /v1/data-files/{id}/actions/change-space

optional, application/json

The request.

Responses POST /v1/data-files/{id}/actions/change-space

204
optional
object

The file's space was changed.

400
optional, application/json

A space with the specified ID does not exist.

403
optional, application/json

The user does not have permission to modify the specified data file.

404
optional, application/json

A data file with the specified ID was not found.

423
optional, application/json

The file is already locked for read or write by another client.

POST/v1/data-files/{id}/actions/change-space

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}/actions/change-space" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"spaceId":"617979737a9f56e49dea2e6e"}'

Request POST /v1/data-files/{id}/actions/change-space

{
  "spaceId": "617979737a9f56e49dea2e6e"
}

Change the spaces that a set of existing data files reside in a a single batch.

managebuild

This is to allow for a separate admin type of operation that is more global in terms of access in cases where admin users may not explicitly have been granted full access to a given space within the declared space-level permissions. If the space ID is set to null, then the data file will end up residing in the personal space of the user who is the owner of the file.

Facts POST /v1/data-files/actions/change-space

Rate limit
Tier 2 (100 requests per minute)

Request Body POST /v1/data-files/actions/change-space

The batch of IDs for each data file in the batch whose space will be changed along with the space IDs for each change.

Responses POST /v1/data-files/actions/change-space

207
optional, application/json

The result status of the change space operations on each specified data file.

400
optional, application/json

Bad Request

POST/v1/data-files/actions/change-space

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/actions/change-space" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"change-space":[{"id":"ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc","spaceId":"617979737a9f56e49dea2e6e"}]}'

Request POST /v1/data-files/actions/change-space

{
  "change-space": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
      "spaceId": "617979737a9f56e49dea2e6e"
    }
  ]
}

Response POST /v1/data-files/actions/change-space

{
  "data": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
      "code": "HTTP-400",
      "title": "Cursor not formatted correctly.",
      "detail": "Invalid encoding of cursor.",
      "status": 400
    }
  ]
}

Delete the specified set of data files as a single batch.

managebuild

Facts POST /v1/data-files/actions/delete

Rate limit
Tier 2 (100 requests per minute)

Request Body POST /v1/data-files/actions/delete

The IDs for the batch of data files to delete.

Responses POST /v1/data-files/actions/delete

207
optional, application/json

The result status of the delete operations on each specified data file.

400
optional, application/json

Bad Request

POST/v1/data-files/actions/delete

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/actions/delete" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"delete":[{"id":"ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc"}]}'

Request POST /v1/data-files/actions/delete

{
  "delete": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc"
    }
  ]
}

Response POST /v1/data-files/actions/delete

{
  "data": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
      "code": "HTTP-400",
      "title": "Cursor not formatted correctly.",
      "detail": "Invalid encoding of cursor.",
      "status": 400
    }
  ]
}

Get the list of built-in connections used by the engine to load/write data files.

managebuild

The non-filtered list contains a set of hardcoded connections, along with one connection per team space that the given user has access to.

Facts GET /v1/data-files/connections

Rate limit
Tier 1 (1000 requests per minute)

Query Parameters GET /v1/data-files/connections

appId
optional
string

If present, get connections with connection strings that are scoped to the given app ID.

limit
optional, default=20, minimum=1, maximum=1000
integer<int32>

If present, the maximum number of data file connection records to return.

name
optional
string

If present, only return connections with the given name.

page
optional
string

If present, the cursor that starts the page of data that is returned.

personal
optional
boolean

If true, only return the connections that access data in a personal space. Default is false.

sort

The name of the field used to sort the result. By default, the sort is ascending. Putting a '+' prefix on the sort field name explicitly indicates ascending sort order. A '-' prefix indicates a descending sort order.

spaceId
optional
string

If present, only return the connection that accesses data files in the specified space.

Responses GET /v1/data-files/connections

200
optional, application/json

Connection list was returned.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

GET/v1/data-files/connections

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/connections" \
 -H "Authorization: Bearer <API-key>"

Response GET /v1/data-files/connections

{
  "data": [
    {
      "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
      "name": "DataFiles",
      "type": "qix-datafiles.exe",
      "spaceId": "617979737a9f56e49dea2e6e",
      "connectStatement": "CUSTOM CONNECT TO \"provider=qix-datafiles.exe;path=mydatafiles;\""
    }
  ],
  "links": {
    "next": {
      "href": "http://example.com"
    },
    "prev": {
      "href": "http://example.com"
    },
    "self": {
      "href": "http://example.com"
    }
  }
}

Get the built-in connection used by the engine to load/write data files given a connection ID.

managebuild

Facts GET /v1/data-files/connections/{id}

Rate limit
Tier 1 (1000 requests per minute)

Path Parameters GET /v1/data-files/connections/{id}

id
string<uuid>

The ID of the connection.

Responses GET /v1/data-files/connections/{id}

200
optional, application/json

The connection was returned.

403
optional, application/json

The space referenced by the specified connection was not found, or is not accessible to the current user.

404
optional, application/json

A connection with the specified ID was not found.

GET/v1/data-files/connections/{id}

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/connections/{id}" \
 -H "Authorization: Bearer <API-key>"

Response GET /v1/data-files/connections/{id}

{
  "id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
  "name": "DataFiles",
  "type": "qix-datafiles.exe",
  "spaceId": "617979737a9f56e49dea2e6e",
  "connectStatement": "CUSTOM CONNECT TO \"provider=qix-datafiles.exe;path=mydatafiles;\""
}

Get quota information for the calling user.

managebuild

Facts GET /v1/data-files/quotas

Rate limit
Tier 1 (1000 requests per minute)

Responses GET /v1/data-files/quotas

200
optional, application/json

The quota information was retrieved.

400
optional, application/json

Bad Request

403
optional, application/json

Forbidden

GET/v1/data-files/quotas

curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/quotas" \
 -H "Authorization: Bearer <API-key>"

Response GET /v1/data-files/quotas

{
  "size": 5000,
  "maxSize": 9223372036854776000,
  "maxFileSize": 524288000,
  "maxLargeFileSize": 6442450944,
  "allowedExtensions": [],
  "allowedInternalExtensions": []
}

BatchChangeSpaceItem

object

Properties

id
string<uuid>

The ID of the data file whose space will be changed.

spaceId
optional
string

The ID of the new space. Passing in a null will result in the data file being moved to the user's personal space.

BatchDeleteItem

object

Properties

id
string<uuid>

The ID of the data file to delete.

ChangeDataFileOwnerRequest

object

Properties

ownerId
string

The ID of the new owner.

ChangeDataFileSpaceRequest

object

Properties

spaceId
optional
string

The ID of the space. If null, this data file will be moved to the user's personal space.

ConnectionsResponse

object

Properties

id
string<uuid>

No description

name
string

The name of the connection.

type
string

The type of the connection.

spaceId
optional
string

The team space that the given connection is associated with. If null, the connection is not associated with any specific team space.

connectStatement
string

The connect statement that will be passed to the connector when invoked.

DataFileBatchChangeSpaceRequest

object

Specifies the list of data file change space operations in a single batch.

Properties

change-space

The list of data files to delete.

DataFileBatchDeleteRequest

object

Specifies the list of data files to be deleted in a single batch.

Properties

delete

The list of data files to delete.

DataFileUploadResponse

object

Properties

id
string<uuid>

The ID for the uploaded file.

name
string

The name of the uploaded file.

size
integer<int64>

The size of the uploaded file, in bytes.

appId
optional
string

If this file is bound to the lifecycle of a specific app, this is the ID of this app.

ownerId
string

The 'owner' of a file is the user who last uploaded the file's content.

spaceId
optional
string

If the file was uploaded to a team space, this is the ID of that space.

createdDate
string<date-time>

The date that the uploaded file was created.

modifiedDate
optional
string<date-time>

The date that the updated file was last modified.

ErrorResponse

object

Properties

errors

No description

ErrorResponseItem

object

Properties

code
string

No description

title
optional
string

No description

detail
optional
string

No description

GetConnectionsResponse

object

Properties

data

No description

links

No description

GetConnectionsSortField

string

Enum:

spaceId

+spaceId

-spaceId

GetDataFileInfosResponse

object

Properties

data

No description

links

No description

GetDataFileInfosSortField

string

Enum:

name

+name

-name

size

+size

-size

modifiedDate

+modifiedDate

-modifiedDate

LinkResponse

object

Properties

href
optional
string<uri>

No description

LinksResponse

object

Properties

next
optional

No description

prev
optional

No description

self
optional

No description

MultiStatusResponse

object

Properties

data

List of individual results for the items in the specified batch.

MultiStatusResponseItem

object

Properties

id
string<uuid>

No description

code
string

No description

title
optional
string

No description

detail
optional
string

No description

status
integer<int32>

No description

QuotaResponse

object

Properties

size
integer<int64>

The current aggregate size of all files uploaded by a given user. If the current aggregate size is greater than the maximum aggregate size, this is a quota violation.

maxSize
integer<int64>

The maximum aggregate size of all files uploaded by a given user.

maxFileSize
integer<int64>

Maximum allowable size of an uploaded file.

maxLargeFileSize
integer<int64>

Maximum allowable size for a single uploaded large data file (in bytes). This is a file that was indirectly uploaded using the temp content service chunked upload capability.

allowedExtensions
Array<string>

The allowed file extensions on files that are uploaded.

allowedInternalExtensions
Array<string>

The allowed file extensions for files that are only used internally by the system (and thus not typically shown to end users).

v0.509.8
Was this page helpful?