Skip to main content

Files Actions

https://api.losant.com/applications/APPLICATION_ID/files

Below are the various requests that can be performed against the Files resource, as well as the expected parameters and the potential responses.

Get

Returns the files for an application

Method And Url

GET https://api.losant.com/applications/APPLICATION_ID/files

Authentication

A valid API access token is required to access this endpoint. The token must include at least one of the following scopes: all.Application, all.Application.cli, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.cli, all.User.read, files.*, or files.get.

Request Path Components

Path ComponentDescriptionExample
APPLICATION_IDID associated with the application575ec8687ae143cd83dc4a97

Request Query Parameters

NameRequiredDescriptionDefaultExample
sortFieldNField to sort the results by. Accepted values are: lastUpdated, type, name, creationDatelastUpdatedsortField=subject
sortDirectionNDirection to sort the results by. Accepted values are: asc, descascsortDirection=asc
pageNWhich page of results to return0page=0
perPageNHow many items to return per page100perPage=10
filterFieldNField to filter the results by. Blank or not provided means no filtering. Accepted values are: namefilterField=name
filterNFilter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.filter=myFile
typeNLimit by the type (file or directory) of the filetype=file
statusNLimit the result to only files of this status. Accepted values are: completed, pendingstatus=completed
directoryNGet files that are inside of this directorydirectory=/a/path/

Request Headers

NameRequiredDescriptionDefault
AuthorizationYThe token for authenticating the request, prepended with Bearer

Curl Example

curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_ACCESS_TOKEN' \
-X GET \
https://api.losant.com/applications/APPLICATION_ID/files

Successful Responses

CodeTypeDescription
200Files SchemaCollection of files

Error Responses

CodeTypeDescription
400ErrorError if malformed request
404ErrorError if application was not found

Post

Create a new file for an application

Method And Url

POST https://api.losant.com/applications/APPLICATION_ID/files

Authentication

A valid API access token is required to access this endpoint. The token must include at least one of the following scopes: all.Application, all.Application.cli, all.Organization, all.User, all.User.cli, files.*, or files.post.

Request Path Components

Path ComponentDescriptionExample
APPLICATION_IDID associated with the application575ec8687ae143cd83dc4a97

Request Headers

NameRequiredDescriptionDefault
AuthorizationYThe token for authenticating the request, prepended with Bearer

Request Body

The body of the request should be serialized JSON that validates against the File Post schema. For example, the following would be a valid body for this request:

{
"name": "file.csv",
"type": "file",
"parentDirectory": "/",
"fileSize": 500,
"contentType": "text/csv"
}

Curl Example

curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_ACCESS_TOKEN' \
-X POST \
-d '{"name":"file.csv","type":"file","parentDirectory":"/","fileSize":500,"contentType":"text/csv"}' \
https://api.losant.com/applications/APPLICATION_ID/files

Successful Responses

CodeTypeDescription
201File Upload Post ResponseSuccessfully created file and returned a post url to respond with

Error Responses

CodeTypeDescription
400ErrorError if malformed request
404ErrorError if application was not found

Schemas

Error

Schema for errors returned by the API

Error Schema

  • {} 3 keys
    • "http://json-schema.org/draft-07/schema#"
    • "object"
    • {} 2 keys
      • {} 1 key
        • {} 1 key

      Error Example

      • {} 2 keys
        • "NotFound"
        • "Application was not found"

      File Post

      Schema to create a single file or directory

      File Post Schema

      • {} 5 keys
        • "http://json-schema.org/draft-07/schema#"
        • "object"
        • {} 6 keys
          • {} 3 keys
            • {} 2 keys
              • {} 2 keys
                • {} 1 key
                  • {} 2 keys
                    • {} 3 keys
                    • false
                    • [] 2 items

                    File Post Example

                    • {} 5 keys
                      • "file.csv"
                      • "file"
                      • "/"
                      • 500
                      • "text/csv"

                    File Upload Post Response

                    Schema to upload the file to s3

                    File Upload Post Response Schema

                    • {} 3 keys
                      • "http://json-schema.org/draft-07/schema#"
                      • "object"
                      • {} 14 keys
                        • {} 2 keys
                          • {} 2 keys
                            • {} 2 keys
                              • {} 2 keys
                                • {} 2 keys
                                  • {} 2 keys
                                    • {} 2 keys
                                      • {} 3 keys
                                        • {} 2 keys
                                          • {} 2 keys
                                            • {} 1 key
                                              • {} 2 keys
                                                • {} 2 keys
                                                  • {} 2 keys

                                                File Upload Post Response Example

                                                • {} 13 keys
                                                  • "575ec8687ae143cd83dc4a97"
                                                  • "575ec8687ae143cd83dc4a97"
                                                  • "2016-06-13T04:00:00.000Z"
                                                  • "2016-06-13T04:00:00.000Z"
                                                  • "575ed70c7ae143cd83dc4aa9"
                                                  • "user"
                                                  • "pending"
                                                  • "file.csv"
                                                  • "file"
                                                  • "/"
                                                  • 500
                                                  • "text/csv"
                                                  • {} 2 keys

                                                  Files Schema

                                                  Schema for a collection of files

                                                  Files Schema Schema

                                                  • {} 3 keys
                                                    • "http://json-schema.org/draft-07/schema#"
                                                    • "object"
                                                    • {} 10 keys
                                                      • {} 2 keys
                                                        • {} 1 key
                                                          • {} 1 key
                                                            • {} 1 key
                                                              • {} 1 key
                                                                • {} 1 key
                                                                  • {} 1 key
                                                                    • {} 1 key
                                                                      • {} 2 keys
                                                                        • {} 1 key

                                                                      Files Schema Example

                                                                      • {} 2 keys
                                                                        • [] 2 items
                                                                          • 2

                                                                        Usage of Response

                                                                        After making a Files: Post request to Losant with the information about your file, you will need to make a second request using the information from that response object (the upload property) to actually place the file onto the cloud storage service.

                                                                        In the upload field of the Files: Post response, to perform the actual upload of your file. For example, below is how to use curl and the values from the response to perform the upload of the file data:

                                                                        curl -X POST \
                                                                        -F 'Content-Type=<RESPONSE_OBJECT.upload.fields.Content-Type>' \
                                                                        -F 'key=<RESPONSE_OBJECT.upload.fields.key>' \
                                                                        -F 'X-Amz-Algorithm=<RESPONSE_OBJECT.upload.fields.X-Amz-Algorithm>' \
                                                                        -F 'X-Amz-Credential=<RESPONSE_OBJECT.upload.fields.X-Amz-Credential>' \
                                                                        -F 'X-Amz-Date=<RESPONSE_OBJECT.upload.fields.X-Amz-Date>' \
                                                                        -F 'Policy=<RESPONSE_OBJECT.upload.fields.Policy>' \
                                                                        -F 'X-Amz-Signature=<RESPONSE_OBJECT.upload.fields.X-Amz-Signature>' \
                                                                        -F 'file=@<YOUR_LOCAL_FILE_PATH>' \
                                                                        '<RESPONSE_OBJECT.upload.url>'

                                                                        As another example, here is how you would upload the file contents using JavaScript in a browser:

                                                                        var filePostResponse = /* result of Losant API Files POST call */;
                                                                        var fileBlob = /* a blob, buffer, or browser file instance */;
                                                                        var formData = new FormData();
                                                                        formData.append('Content-Type',
                                                                        filePostResponse.upload.fields['Content-Type']);
                                                                        formData.append('key', filePostResponse.upload.fields.key);
                                                                        formData.append('X-Amz-Algorithm',
                                                                        filePostResponse.upload.fields['X-Amz-Algorithm']);
                                                                        formData.append('X-Amz-Credential',
                                                                        filePostResponse.upload.fields['X-Amz-Credential']);
                                                                        formData.append('X-Amz-Date',
                                                                        filePostResponse.upload.fields['X-Amz-Date']);
                                                                        formData.append('Policy', filePostResponse.upload.fields['Policy']);
                                                                        formData.append('X-Amz-Signature',
                                                                        filePostResponse.upload.fields['X-Amz-Signature']);
                                                                        formData.append('file', fileBlob);
                                                                        var xhr = new XMLHttpRequest();
                                                                        xhr.open('POST', filePostResponse.upload.url, true);
                                                                        xhr.send(formData);

                                                                        Was this page helpful?


                                                                        Still looking for help? You can also search the Losant Forums or submit your question there.