Endpoints
Skip to sectionGET | /data-files/quotas |
GET | /data-files/connections/{id} |
GET | /data-files/connections |
POST | /data-files |
GET | /data-files |
PUT | /data-files/{id} |
GET | /data-files/{id} |
DELETE | /data-files/{id} |
POST | /data-files/{id}/actions/change-owner |
POST | /data-files/{id}/actions/change-space |
POST | /data-files/actions/delete |
POST | /data-files/actions/change-space |
Get quota information for the calling user.
Responses GET /data-files/quotas
200 application/json | The quota information was retrieved. |
400 application/json | Bad Request |
403 application/json | Forbidden |
GET/data-files/quotas
curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/quotas" \
-H "Authorization: Bearer <API-key>"
Response GET /data-files/quotas
{
"maxFileSize": 524288000,
"maxLargeFileSize": 6442450944,
"maxSize": 9223372036854776000,
"size": 5000,
"allowedExtensions": [],
"allowedInternalExtensions": []
}
Get the built-in connection used by the engine to load/write data files given a connection ID.
Path Parameters GET /data-files/connections/{id}
id string<uuid> | The ID of the connection. |
Responses GET /data-files/connections/{id}
200 application/json | The connection was returned. |
403 application/json | The space referenced by the specified connection was not found, or is not accessible to the current user. |
404 application/json | A connection with the specified ID was not found. |
GET/data-files/connections/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/connections/{id}" \
-H "Authorization: Bearer <API-key>"
Response GET /data-files/connections/{id}
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "DataFiles",
"type": "qix-datafiles.exe",
"connectStatement": "CUSTOM CONNECT TO \"provider=qix-datafiles.exe;path=mydatafiles;\"",
"spaceId": "617979737a9f56e49dea2e6e"
}
Get the list of built-in connections used by the engine to load/write data files.
The non-filtered list contains a set of hardcoded connections, along with one connection per team space that the given user has access to.
Query Parameters GET /data-files/connections
appId string | If present, get connections with connection strings that are scoped to the given app ID. |
name string | If present, only return connections with the given name. |
spaceId string | If present, only return the connection that accesses data files in the specified space. |
personal boolean | If true, only return the connections that access data in a personal space. Default is false. |
page string | If present, the cursor that starts the page of data that is returned. |
limit default=20, minimum=1, maximum=1000 integer<int32> | If present, the maximum number of data file connection records to return. |
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. |
Responses GET /data-files/connections
200 application/json | Connection list was returned. |
400 application/json | Bad Request |
403 application/json | Forbidden |
GET/data-files/connections
curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/connections" \
-H "Authorization: Bearer <API-key>"
Response GET /data-files/connections
{
"data": [
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "DataFiles",
"type": "qix-datafiles.exe",
"connectStatement": "CUSTOM CONNECT TO \"provider=qix-datafiles.exe;path=mydatafiles;\"",
"spaceId": "617979737a9f56e49dea2e6e"
}
],
"links": {
"next": {
"href": "http://example.com"
},
"self": {
"href": "http://example.com"
},
"prev": {
"href": "http://example.com"
}
}
}
Upload a new data file.
Request Body POST /data-files
Json multipart/form-data | See PostDataFileRequest schema which defines request structure. See model. |
File multipart/form-data string<binary> | IFormFile form multipart/form-data |
Responses POST /data-files
201 application/json | New file was uploaded and created. |
400 application/json | Bad Request |
403 application/json | Forbidden |
409 application/json | A file with the same name already exists in the specified user or app scope. |
413 application/json | The file exceeds the user's quota for maximum file size to upload. |
423 application/json | The file is already locked for read or write by another client. |
POST/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 '{"name":"MyFile.csv","appId":"f34b91a1-0dc3-44ac-a847-51cb84122c84","connectionId":"ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc","sourceId":"f34b91a1-0dc3-44ac-a847-51cb84122c84","tempContentFileId":"624b0f54459f1c00018dade4"}'
Request POST /data-files
{
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"connectionId": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"sourceId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"tempContentFileId": "624b0f54459f1c00018dade4"
}
Response POST /data-files
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"size": 1024,
"createdDate": "2020-07-07T20:52:40.8534780Z",
"modifiedDate": "2020-07-07T20:52:40.8534780Z",
"spaceId": "617979737a9f56e49dea2e6e",
"ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}
Get descriptive info for the specified data files.
Query Parameters GET /data-files
connectionId 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. |
appId 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. |
name string | Filter the list of files returned to the given file name. |
page string | If present, the cursor that starts the page of data that is returned. |
limit default=20, minimum=1, maximum=1000 integer<int32> | If present, the maximum number of data files to return. |
ownerId 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. |
allowInternalFiles boolean | If set to false, do not return data files with internal extensions else return all the data files. |
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 /data-files
200 application/json | The file list was retrieved. |
400 application/json | Bad Request |
403 application/json | Forbidden |
GET/data-files
curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files" \
-H "Authorization: Bearer <API-key>"
Response GET /data-files
{
"data": [
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"size": 1024,
"createdDate": "2020-07-07T20:52:40.8534780Z",
"modifiedDate": "2020-07-07T20:52:40.8534780Z",
"spaceId": "617979737a9f56e49dea2e6e",
"ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}
],
"links": {
"next": {
"href": "http://example.com"
},
"self": {
"href": "http://example.com"
},
"prev": {
"href": "http://example.com"
}
}
}
Re-upload an existing data file.
Path Parameters PUT /data-files/{id}
id string<uuid> | The ID of the data file to update. |
Request Body PUT /data-files/{id}
Json multipart/form-data | See PutDataFileRequest schema which defines request structure. See model. |
File multipart/form-data string<binary> | IFormFile form multipart/form-data |
Responses PUT /data-files/{id}
201 application/json | The fie was updated. |
400 application/json | Bad Request |
403 application/json | Forbidden |
404 application/json | A data file with the specified ID was not found. |
409 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 application/json | The file exceeds the user's quota for maximum file size to upload. |
423 application/json | The file is already locked for read or write by another client. |
PUT/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 '{"name":"MyFile.csv","appId":"f34b91a1-0dc3-44ac-a847-51cb84122c84","connectionId":"ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc","sourceId":"f34b91a1-0dc3-44ac-a847-51cb84122c84","tempContentFileId":"624b0f54459f1c00018dade4"}'
Request PUT /data-files/{id}
{
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"connectionId": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"sourceId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"tempContentFileId": "624b0f54459f1c00018dade4"
}
Response PUT /data-files/{id}
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"size": 1024,
"createdDate": "2020-07-07T20:52:40.8534780Z",
"modifiedDate": "2020-07-07T20:52:40.8534780Z",
"spaceId": "617979737a9f56e49dea2e6e",
"ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}
Get descriptive info for the specified data file.
Path Parameters GET /data-files/{id}
id string<uuid> | The ID of the data file. |
Responses GET /data-files/{id}
200 application/json | The file was located. |
400 application/json | Bad Request |
403 application/json | Forbidden |
404 application/json | A data file with the specified ID was not found. |
GET/data-files/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/data-files/{id}" \
-H "Authorization: Bearer <API-key>"
Response GET /data-files/{id}
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"name": "MyFile.csv",
"appId": "f34b91a1-0dc3-44ac-a847-51cb84122c84",
"size": 1024,
"createdDate": "2020-07-07T20:52:40.8534780Z",
"modifiedDate": "2020-07-07T20:52:40.8534780Z",
"spaceId": "617979737a9f56e49dea2e6e",
"ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}
Delete the specified data file.
Path Parameters DELETE /data-files/{id}
id string<uuid> | The ID of the data file to delete. |
Responses DELETE /data-files/{id}
204 object | The fie was deleted. |
400 application/json | Bad Request |
403 application/json | Forbidden |
404 application/json | A data file with the specified ID was not found. |
DELETE/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.
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.
Path Parameters POST /data-files/{id}/actions/change-owner
id string<uuid> | The ID of the data file whose owner will be updated. |
Request Body POST /data-files/{id}/actions/change-owner
application/json | The request. |
Responses POST /data-files/{id}/actions/change-owner
204 object | The file's owner was changed. |
400 application/json | An owner with the specified ID does not exist. |
403 application/json | The user does not have permission to modify the specified data file. |
404 application/json | A data file with the specified ID was not found. |
423 application/json | The file is already locked for read or write by another client. |
POST/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 /data-files/{id}/actions/change-owner
{
"ownerId": "lDL4DIINndhL_iJkcbqWyJenuwizP-2D"
}
Change the space that an existing data file resides in.
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.
Path Parameters POST /data-files/{id}/actions/change-space
id string<uuid> | The ID of the data file whose space will be updated. |
Request Body POST /data-files/{id}/actions/change-space
application/json | The request. |
Responses POST /data-files/{id}/actions/change-space
204 object | The file's space was changed. |
400 application/json | A space with the specified ID does not exist. |
403 application/json | The user does not have permission to modify the specified data file. |
404 application/json | A data file with the specified ID was not found. |
423 application/json | The file is already locked for read or write by another client. |
POST/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 /data-files/{id}/actions/change-space
{
"spaceId": "617979737a9f56e49dea2e6e"
}
Delete the specified set of data files as a single batch.
Request Body POST /data-files/actions/delete
application/json | The IDs for the batch of data files to delete. |
Responses POST /data-files/actions/delete
207 application/json | The result status of the delete operations on each specified data file. |
400 application/json | Bad Request |
POST/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 'undefined'
Response POST /data-files/actions/delete
{
"data": [
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"status": 400,
"title": "Cursor not formatted correctly.",
"code": "HTTP-400",
"detail": "Invalid encoding of cursor."
}
]
}
Change the spaces that a set of existing data files reside in a a single batch.
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.
Request Body POST /data-files/actions/change-space
application/json | 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 /data-files/actions/change-space
207 application/json | The result status of the change space operations on each specified data file. |
400 application/json | Bad Request |
POST/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 /data-files/actions/change-space
{
"change-space": [
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"spaceId": "617979737a9f56e49dea2e6e"
}
]
}
Response POST /data-files/actions/change-space
{
"data": [
{
"id": "ee6a390c-5d33-11e8-9c2d-fa7ae01bbebc",
"status": 400,
"title": "Cursor not formatted correctly.",
"code": "HTTP-400",
"detail": "Invalid encoding of cursor."
}
]
}
BatchChangeSpaceItem
objectProperties
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
objectProperties
id string<uuid> | The ID of the data file to delete. |
ChangeDataFileOwnerRequest
objectProperties
ownerId string | The ID of the new owner. |
ChangeDataFileSpaceRequest
objectProperties
spaceId string | The ID of the space. If null, this data file will be moved to the user's personal space. |
ConnectionsResponse
objectProperties
id string<uuid> | No description |
name string | The name of the connection. |
type string | The type of the connection. |
connectStatement string | The connect statement that will be passed to the connector when invoked. |
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. |
DataFileBatchChangeSpaceRequest
objectSpecifies the list of data file change space operations in a single batch.
Properties
change-space | The list of data files to delete. |
DataFileBatchDeleteRequest
objectSpecifies the list of data files to be deleted in a single batch.
DataFileDeleteRecordResponse
objectProperties
fileMetadataId string<uuid> | The unique ID of the file that was deleted. |
tenantId string | The tenant that this file is scoped to. |
userId optional string | If the file resided in a user's personal space, the user that this file is scoped to. |
deletedDate string<date-time> | The date that the file was deleted. |
name string | File Name |
spaceId optional string | If not null, the ID of the space that the uploaded file will reside in. If null, this implies that the file is stored in the user-private area (DataFiles) |
createdByUser string | The user that deleted this datafile. |
DataFileModificationResponse
objectProperties
tenantId string | The ID of the tenant that this file is scoped to. |
userId optional string | If the file resides in that user's personal space, the ID of the user that this file is scoped to. |
createdByUser string | The ID of the user that created the file. |
modifiedByUser optional string | The ID of the user that last modified the file. |
id string<uuid> | The ID for the uploaded file. |
name string | The name of the uploaded file. |
appId optional string | If this file is bound to the lifecycle of a specific app, this is the ID of this app. |
size integer<int64> | The size of the uploaded file, in bytes. |
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. |
spaceId optional string | If the file was uploaded to a team space, this is the ID of that space. |
ownerId string | The 'owner' of a file is the user who last uploaded the file's content. |
DataFileUploadResponse
objectProperties
id string<uuid> | The ID for the uploaded file. |
name string | The name of the uploaded file. |
appId optional string | If this file is bound to the lifecycle of a specific app, this is the ID of this app. |
size integer<int64> | The size of the uploaded file, in bytes. |
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. |
spaceId optional string | If the file was uploaded to a team space, this is the ID of that space. |
ownerId string | The 'owner' of a file is the user who last uploaded the file's content. |
ErrorResponse
objectProperties
errors | No description |
ErrorResponseItem
objectProperties
title optional string | No description |
code string | No description |
detail optional string | No description |
GetConnectionsResponse
objectProperties
data | No description |
links | No description |
GetConnectionsSortField
stringGetDataFileDeleteRecordsResponse
objectProperties
data | No description |
links | No description |
GetDataFileDeleteRecordsSortField
stringGetDataFileInfosResponse
objectProperties
data | No description |
links | No description |
GetDataFileInfosSortField
stringGetDataFileModificationsResponse
objectProperties
data | No description |
links | No description |
GetDataFileModificationsSortField
stringLinkResponse
objectProperties
href string<uri> | No description |
LinksResponse
objectProperties
next | No description |
self | No description |
prev | No description |
MultiStatusResponse
objectProperties
data | List of individual results for the items in the specified batch. |
MultiStatusResponseItem
objectProperties
id string<uuid> | No description |
status integer<int32> | No description |
title optional string | No description |
code string | No description |
detail optional string | No description |
PostDataFileRequest
objectSee PostDataFileRequest schema which defines request structure. See model.
Properties
name pattern='^[^<>":\u0000|?*]+$' string | Name that will be given to the uploaded file. It should be noted that the '/' character in a data file name indicates a 'path' separator in a logical folder hierarchy for the name. Names that contain '/'s should be used with the assumption that a logical 'folder hierarchy' is being defined for the full pathname of that file. '/' is a significant character in the data file name, and may impact the behavior of future APIs which take this folder hierarchy into account. |
appId optional string | If this file should be bound to the lifecycle of a specific app, this is the ID of this app. |
connectionId optional string<uuid> | If present, this is the DataFiles connection that the upload should occur in the context of. If absent, the default is that the upload will occur in the context of the MyDataFiles connection. If the DataFiles connection is different from the one specified when the file was last POSTed or PUT, this will result in a logical move of this file into the new space. |
sourceId optional string<uuid> | If a SourceId is specified, this is the ID of the existing data file whose content should be copied into the specified data file. That is, instead of the file content being specified in the Data element, it is effectively copied from an existing, previously uploaded file. |
tempContentFileId optional string | If a TempContentFileId is specified, this is the ID of a previously uploaded temporary content file whose content should be copied into the specified data file. That is, instead of the file content being specified in the Data element, it is effectively copied from an existing, previously uploaded file. The expectation is that this file was previously uploaded to the temporary content service, and the ID specified here is the one returned from the temp content upload request. |
ProblemDetails
objectProperties
type string | No description |
title string | No description |
status integer<int32> | No description |
detail string | No description |
instance string | No description |
PutDataFileRequest
objectSee PutDataFileRequest schema which defines request structure. See model.
Properties
name pattern='^[^<>":\u0000|?*]+$' string | Name that will be given to the uploaded file. If this name is different than the name used when the file was last POSTed or PUT, this will result in a rename of the file. It should be noted that the '/' character in a data file name indicates a 'path' separator in a logical folder hierarchy for the name. Names that contain '/'s should be used with the assumption that a logical 'folder hierarchy' is being defined for the full pathname of that file. '/' is a significant character in the data file name, and may impact the behavior of future APIs that take this folder hierarchy into account. |
appId string | If this file should be bound to the lifecycle of a specific app, this is the ID of this app. |
connectionId string<uuid> | If present, this is the DataFiles connection that the upload should occur in the context of. If absent, the default is that the upload will occur in the context of the MyDataFiles connection. If the DataFiles connection is different from the one specified when the file was last POSTed or PUT, this will result in a logical move of this file into the new space. |
sourceId string<uuid> | If a SourceId is specified, this is the ID of the existing data file whose content should be copied into the specified data file. That is, instead of the file content being specified in the Data element, it is effectively copied from an existing, previously uploaded file. |
tempContentFileId string | If a TempContentFileId is specified, this is the ID of a previously uploaded temporary content file whose content should be copied into the specified data file. That is, instead of the file content being specified in the Data element, it is effectively copied from an existing, previously uploaded file. The expectation is that this file was previously uploaded to the temporary content service, and the ID specified here is the one returned from the temp content upload request. |
QuotaResponse
objectProperties
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. |
maxSize integer<int64> | The maximum aggregate size of all files uploaded by a given user. |
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. |
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). |