{"docs":{"name":"Mobile Data Anywhere","info":"\n\u003ch1 id=\"mobile_data_anywhere__api_reference\"\u003eMobile Data Anywhere - API Reference\u003c/h1\u003e\n\n\u003cp\u003eThis is the documentation for the Mobile Data Anywhere API.\u003c/p\u003e\n\n\u003cp\u003eAll requests are made over HTTPS. All requests require authentication, except asking the server what the time is using the \u003ccode\u003eGET /api/v1/time\u003c/code\u003e method.\u003c/p\u003e\n\n\u003ch2 id=\"authentication\"\u003eAuthentication\u003c/h2\u003e\n\n\u003cp\u003eThe API supports two authentication methods:\u003c/p\u003e\n\n\u003ch3 id=\"method_1_basic_authentication_simplest\"\u003eMethod 1: Basic Authentication (Simplest)\u003c/h3\u003e\n\n\u003cp\u003eThe simplest way to authenticate is to use standard HTTP Basic Authentication with your Mobile Data Anywhere username and password:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUsername\u003c/code\u003e: This is the same as the user name that is used to log in to the Mobile Data Anywhere site.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003ePassword\u003c/code\u003e: This is your regular account password (the same password you use to log in to the web portal).\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch4 id=\"example_using_curl\"\u003eExample using curl:\u003c/h4\u003e\n\n\u003cp\u003ecurl -X GET “https://mobiledataanywhere.com/api/v1/devices” \\ -u “your_username:your_password” \\ -H “Accept: application/json”\u003c/p\u003e\n\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e This method is simplest but requires storing user passwords. For production integrations, consider using one of the token-based methods below.\u003c/p\u003e\n\n\u003ch3 id=\"method_2_timebased_api_token_authentication_most_secure_recommended_for_production\"\u003eMethod 2: Time-based API Token Authentication (Most secure, recommended for production)\u003c/h3\u003e\n\n\u003cp\u003eEach request is individually authenticated without the use of cookies. This method requires the following HTTP headers to be defined for each request:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eHTTP-X-API-TIMESTAMP\u003c/code\u003e: This is the unix time stamp of when the client makes the requests. Unix timestamps measure the elapsed time in seconds since 1 January 1970 in UTC to the current time in UTC.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eHTTP-AUTHORIZATION\u003c/code\u003e: each request is authenticated using basic HTTP authentication as follows:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eUsername\u003c/code\u003e: This is the same as the user name that is used to log in to the Mobile Data Anywhere site.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003ePassword\u003c/code\u003e: This is a calculated value that is unique for each request. It is calculated based on the following formula (pseudo-code):\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003e\u003ccode\u003epassword = Base64-encoded( HMAC-SHA256( \u0026quot;name:\u0026quot; + username + \u0026quot;;timestamp:\u0026quot; + timestamp + \u0026quot;;\u0026quot;, api_secret ) )\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003eWhere the first argument to the HMAC-SHA256 function is the document to be hashed, and the second argument is the HMAC “secret”.\u003c/p\u003e\n\n\u003cp\u003eThe timestamp must be exactly the same as the value given in the header, and must be within a close enough margin to the time in the server. This mitigates against replay attacks.\u003c/p\u003e\n\n\u003cp\u003eRequests that do not pass authentication will return a \u003ccode\u003e403 Forbidden\u003c/code\u003e error status.\u003c/p\u003e\n\n\u003ch4 id=\"example_timebased_authentication\"\u003eExample time-based authentication\u003c/h4\u003e\n\n\u003cp\u003eGiven the following:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003etimestamp = 123456789\nusername = \u0026quot;username\u0026quot;\napi-secret = \u0026quot;some-api-secret\u0026quot;\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eThen the calculated password would be:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026quot;gFUxSuDp1AexwedepvxGPOixhk4jsiinClqYGrjqkNc=\u0026quot;\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch2 id=\"summary_of_authentication_methods\"\u003eSummary of Authentication Methods\u003c/h2\u003e\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003eMethod\u003c/th\u003e\u003cth\u003eUsername\u003c/th\u003e\u003cth\u003ePassword\u003c/th\u003e\u003cth\u003eTimestamp Required\u003c/th\u003e\u003cth\u003eHMAC Signing\u003c/th\u003e\u003cth\u003eBest For\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd style=\"text-align: left;\"\u003eMethod 1: Basic Auth\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eUsername\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eUser password\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eNo\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eNo\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eQuick testing, development\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd style=\"text-align: left;\"\u003eMethod 2: Time-based Token\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eUsername\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eHMAC(username+timestamp, API Secret)\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eYes\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eYes\u003c/td\u003e\u003ctd style=\"text-align: left;\"\u003eMaximum security, prevents replay attacks\u003c/td\u003e\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003ch2 id=\"json_responses\"\u003eJSON Responses\u003c/h2\u003e\n\n\u003cp\u003eWhere an API call returns a JSON response (virtually all calls except those that retrieve raw files or images) the response will conform to the following:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe response will be a JSON object (dictionary) with the following keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e\u0026quot;status\u0026quot;\u003c/code\u003e (always present) - This will be a string representation mirroring the HTTP response status code, such as \u003ccode\u003esuccess\u003c/code\u003e, \u003ccode\u003eforbidden\u003c/code\u003e, \u003ccode\u003enot found\u003c/code\u003e or \u003ccode\u003ebad request\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e\u0026quot;result\u0026quot;\u003c/code\u003e (mostly present) - This will be the result of the API call. For example, count calls will return an integer value in this key. Get List actions will return an array of objects, and get object actions will return a single object here for the response.\u003c/p\u003e\n\u003c/li\u003e\n\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e\u0026quot;message\u0026quot;\u003c/code\u003e (sometimes present) - An additional human readable status message. Mostly this occurs when there is an error and the message will provide more information on the error. For example, a request missing a required parameter will return a message here indicating why it was a bad request.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3 id=\"example_responses\"\u003eExample responses:\u003c/h3\u003e\n\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eGET /api/v1/devices/count\u003c/code\u003e -\u0026gt; \u003ccode\u003e{\u0026quot;status\u0026quot;:\u0026quot;success\u0026quot;,\u0026quot;result\u0026quot;:1}\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eGET /api/v1/devices\u003c/code\u003e -\u0026gt; \u003ccode\u003e{\u0026quot;status\u0026quot;:\u0026quot;success\u0026quot;,\u0026quot;result\u0026quot;:[{\u0026quot;name\u0026quot;:\u0026quot;My iPhone\u0026quot;,\u0026quot;unit_id\u0026quot;:\u0026quot;iphone\u0026quot;},{\u0026quot;name\u0026quot;:\u0026quot;My Nexus\u0026quot;,\u0026quot;unit_id\u0026quot;:\u0026quot;nexus\u0026quot;}]}\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 id=\"request_bodies_for_post_and_put_requests\"\u003eRequest bodies for POST and PUT requests\u003c/h2\u003e\n\n\u003cp\u003eThe API server will accept post bodies as either form encoded data or JSON data, so long as the \u003ccode\u003eContent-Type\u003c/code\u003e header correctly identifies the content type.\u003c/p\u003e\n\n\u003cp\u003eThe following request bodies are equivalent:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003ePOST /api/v1/projects/5/deliver\nContent-Type: application/x-www-form-urlencoded\n\nunit_id=device-01\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eAnd:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003ePOST /api/v1/projects/5/deliver\nContent-Type: application/json\n\n{\u0026quot;unit_id\u0026quot;:\u0026quot;device_01\u0026quot;}\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch2 id=\"time_stamps\"\u003eTime stamps\u003c/h2\u003e\n\n\u003cp\u003eAll server times are stored in UTC.\u003c/p\u003e\n\n\u003cp\u003eWhere data is recorded in a local time zone (for example, the date created in a session from a mobile client) the time is converted to UTC when the session is received according to the time zone offset recorded by the device if provided, or the default time zone offset for the account to which the device belongs.\u003c/p\u003e\n\n\u003cp\u003eAll times referenced in the API are in UTC and are typically measured as unix timestamps. That is, seconds since 1-Jan-1970 UTC.\u003c/p\u003e\n\n\u003cp\u003eSome API calls will return a date as a string with a timestamp in an adjacent field. The string value is for convenience. The timestamp values are the actual values stored in the system.\u003c/p\u003e\n","copyright":"\u0026copy; 2026 Mobile Data Anywhere Pty Ltd","doc_url":"/api/docs/v1","api_url":"/api","resources":{"activity_logs":{"doc_url":"/api/docs/v1/activity_logs","api_url":"/api","name":"Activity logs","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/activity_logs/index","name":"index","apis":[{"api_url":"/api/v1/activity_logs","http_method":"GET","short_description":"Return a list of activity logs","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"attachments":{"doc_url":"/api/docs/v1/attachments","api_url":"/api","name":"Attachments","short_description":null,"full_description":"\n\u003cp\u003eAttachments are binary files, such as photos, that are attached to data points in a session.\u003c/p\u003e\n\n\u003cp\u003ePhotos are by far the most common type of attachment, but other files may be attached depending on the project.\u003c/p\u003e\n\n\u003cp\u003eAttachments can be manipulated downloaded, uploaded (replaced or added) or deleted from a session. Actions that change attachments automatically save the session to reflect the changes to its attachments.\u003c/p\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/attachments/show","name":"show","apis":[{"api_url":"/api/v1/project/:project_id/sessions/:session_id/attachments/:id","http_method":"GET","short_description":"Fetch the raw data of a file attached to a session","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe raw attachment is returned in the response body, with a response \u003ccode\u003eContent-Type\u003c/code\u003e set to \u003ccode\u003eapplication/octet-stream\u003c/code\u003e\u003c/p\u003e\n\n\u003cp\u003eThis api call returns a \u003ccode\u003e404 Not Found\u003c/code\u003e error if there is no attachment in the named point.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session_id","full_name":"session_id","description":"\n\u003cp\u003eThe session UUID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe name of the point containing an attached file to be downloaded.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/attachments/update","name":"update","apis":[{"api_url":"/api/v1/project/:project_id/sessions/:session_id/attachments/:id","http_method":"PUT","short_description":"Upload a new file and store it as an attachment to a session","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe raw attachment is uploaded and attached to the session. Any previous value of the session in that point name is replaced. If the previous value was an attachment, then the previous attachment is also deleted from the system.\u003c/p\u003e\n\n\u003cp\u003eThis api call will accept a standard form upload post (content-type = ‘multipart/form-data’), in which case the attached file is expected to be in a form field named “attachment”.\u003c/p\u003e\n\n\u003cp\u003eThis api call will also accept a raw upload (content-type = ‘application/octet-stream’). In this case the request body is saved as is into the attachment. To specify a filename for the attachment, use a “filename” query parameter in the request URI.\u003c/p\u003e\n\n\u003cp\u003eThis api call returns a \u003ccode\u003e400 Bad Request\u003c/code\u003e error if the content type was not recognised or the attachment was not found in the request (eg: incorrect form field name).\u003c/p\u003e\n\n\u003cp\u003eOn a successful request, this endpoint returns a JSON response with the result set to a hash with the following keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003elength =\u0026gt; the length of the file that was uploaded\u003c/li\u003e\n\n\u003cli\u003emd5 =\u0026gt; a hex digest of the contents of the file.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eThese will allow the calling application to determine that the file was indeed delivered and saved correctly.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session_id","full_name":"session_id","description":"\n\u003cp\u003eThe session UUID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe name of the point containing an attached file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/attachments/destroy","name":"destroy","apis":[{"api_url":"/api/v1/project/:project_id/sessions/:session_id/attachments/:id","http_method":"DELETE","short_description":"Delete an attached file from a session","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis api call will remove an attachment from a session. The point value is removed from the session and the attached file is deleted from the system.\u003c/p\u003e\n\n\u003cp\u003eThis api call returns a \u003ccode\u003e404 Not Found\u003c/code\u003e error if there was no attachment saved in the given point of the session.\u003c/p\u003e\n\n\u003cp\u003eA successful request returns a standard JSON response with a result of \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session_id","full_name":"session_id","description":"\n\u003cp\u003eThe session UUID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe name of the point containing an attached file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"client_accounts":{"doc_url":"/api/docs/v1/client_accounts","api_url":"/api","name":"Client accounts","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/client_accounts/show","name":"show","apis":[{"api_url":"/api/v1/client_account","http_method":"GET","short_description":"Retrieve details for the logged in users account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/client_accounts/features","name":"features","apis":[{"api_url":"/api/v1/client_account/features","http_method":"GET","short_description":"Retrieve feature switches for the logged in users account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"clients":{"doc_url":"/api/docs/v1/clients","api_url":"/api","name":"Clients","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/clients/show","name":"show","apis":[{"api_url":"/api/v1/clients/:id","http_method":"GET","short_description":"Retrieve a client account details.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/clients/create","name":"create","apis":[{"api_url":"/api/v1/clients","http_method":"POST","short_description":"Register a new client account with a primary user.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"mail","full_name":"mail","description":"\n\u003cp\u003eThe email address to be used for the new user account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"phone","full_name":"phone","description":"\n\u003cp\u003eThe contact number for the new user account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"password","full_name":"password","description":"\n\u003cp\u003eThe password for the new user account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"first_name","full_name":"first_name","description":"\n\u003cp\u003eThe name of primary contact for this new user account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/clients/update","name":"update","apis":[{"api_url":"/api/v1/clients/:id","http_method":"POST","short_description":"Updates a client account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUpdates a client account.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/clients/destroy","name":"destroy","apis":[{"api_url":"/api/v1/clients/:id","http_method":"DELETE","short_description":"Removes a client account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRemoves a client account.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/clients/devices_count","name":"devices_count","apis":[{"api_url":"/api/v1/projects/:project_id/devices/count","http_method":"GET","short_description":"Return a count of devices linked to this project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a count of devices linked to this project\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/clients/destroy_client_project","name":"destroy_client_project","apis":[{"api_url":"/api/v1/clients/:client_id/projects/:id","http_method":"DELETE","short_description":"Delete a project from the database","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe project will be deleted from the database, including any sessions.\u003c/p\u003e\n\n\u003cp\u003eThis api call will return a \u003ccode\u003e404 Not Found\u003c/code\u003e if the project does not exist.\u003c/p\u003e\n\n\u003cp\u003eOn a successful call, a standard JSON response will be returned with a result of \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe Client ID for the account that the project belongs to.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"connection_logs":{"doc_url":"/api/docs/v1/connection_logs","api_url":"/api","name":"Connection logs","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/connection_logs/index","name":"index","apis":[{"api_url":"/api/v1/connection_logs","http_method":"GET","short_description":"Return a list of connection logs","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"dashboards":{"doc_url":"/api/docs/v1/dashboards","api_url":"/api","name":"Dashboards","short_description":null,"full_description":"\n\u003cp\u003eDashboards can be used to display session data in graphs, grids and other dashboard widgets.\u003c/p\u003e\n\n\u003cp\u003eDashboards when fetched via the API return a data record with the follow keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e - a unique identifier for the dashboard in the Mobile Data Anywhere system.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003ename\u003c/code\u003e - The name of the dashboard\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003exml_data\u003c/code\u003e - The raw xml data used to save the dashboard.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;id\u0026quot;: 123\n    \u0026quot;name\u0026quot;: \u0026quot;My Dashboard\u0026quot;,\n    \u0026quot;xml_data\u0026quot;: \u0026quot;\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt;\u0026lt;Dashboard\u0026gt;\u0026lt;/Dashboard\u0026gt;\u0026lt;/?xml\u0026gt; \u0026quot;,\n}\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/dashboards/show","name":"show","apis":[{"api_url":"/api/v1/dashboards/:id","http_method":"GET","short_description":"Get the details for a specific dashboard.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the dashboard.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/dashboards/index","name":"index","apis":[{"api_url":"/api/v1/dashboards","http_method":"GET","short_description":"Return a list of all dashbords in the user's account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/dashboards/create","name":"create","apis":[{"api_url":"/api/v1/dashboards","http_method":"POST","short_description":"Save a new dashboard.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/dashboards/update","name":"update","apis":[{"api_url":"/api/v1/dashboards","http_method":"PUT","short_description":"Update an existing dashboard .","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the dashboard.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"last_fetch_date","full_name":"last_fetch_date","description":"\n\u003cp\u003eThe date/time that this dashboard was last requested from the server.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/dashboards/destroy","name":"destroy","apis":[{"api_url":"/api/v1/dashboards/:id","http_method":"DELETE","short_description":"Remove a dashboard from your account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the dashboard.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/dashboards/projects","name":"projects","apis":[{"api_url":"/api/v1/dashboards/:id","http_method":"GET","short_description":"Remove a dashboard from your account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the dashboard.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"devices":{"doc_url":"/api/docs/v1/devices","api_url":"/api","name":"Devices","short_description":null,"full_description":"\n\u003cp\u003eDevices represent mobile client apps running on iOS, Android or Windows Mobile devices.\u003c/p\u003e\n\n\u003cp\u003eDevices are uniquely identified within an account by their “Unit ID”. This is configured on the device when the client software is installed on the device.\u003c/p\u003e\n\n\u003cp\u003eDevice GET actions return a JSON description of the device, including the last time is was used. The last used time is updated when the device submits a session to the server.\u003c/p\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;id\u0026quot; : 1234,\n    \u0026quot;name\u0026quot; : \u0026quot;my device\u0026quot;,\n    \u0026quot;unit_id\u0026quot; : \u0026quot;DEVICE01\u0026quot;\n    \u0026quot;last_used\u0026quot;: \u0026quot;2013-11-27 11:23:45\u0026quot;,\n    \u0026quot;last_used_timestamp\u0026quot;: 1385515425,\n}\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/devices/index","name":"index","apis":[{"api_url":"/api/v1/devices","http_method":"GET","short_description":"List devices in the user's account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eList devices in the user’s account. Lists all devices, or those linked to a specific project if using the project path.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project. Required for the projects linked devices count api call\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\" : \"success\",\n  \"result\" : [\n    {\n    \"id\" : 1234,\n    \"name\" : \"my device\",\n    \"unit_id\" : \"DEVICE01\"\n    \"last_used\": \"2013-11-27 11:23:45\",\n    \"last_used_timestamp\": 1385515425,\n    },\n    {\n    \"id\" : 2345,\n    \"name\" : \"my other device\",\n    \"unit_id\" : \"DEVICE02\"\n    \"last_used\": \"2013-11-26 11:23:45\",\n    \"last_used_timestamp\": 1385429025,\n    },\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/show","name":"show","apis":[{"api_url":"/api/v1/devices/:id","http_method":"GET","short_description":"Get the details for a device.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eGet the name and unit id for a device. The device is identified by its ID, which is an unique identifier for the device within the system. The ID can be found in the device list.\u003c/p\u003e\n\n\u003cp\u003eThere should be little need to use this call directly, since all of the data it returns is also included in the \u003ccode\u003eGET /api/v1/devices\u003c/code\u003e device list action.\u003c/p\u003e\n","errors":[],"params":[],"examples":["{\n  \"status\" : \"success\",\n  \"result\" : {\n    \"name\" : \"my device\",\n    \"unit_id\" : \"DEVICE01\"\n    \"name\": \"John's Device\",\n    \"last_used\": \"2017-12-12T02:06:57.000Z\",\n    \"last_used_timestamp\": \"2017-12-12T02:06:57.000Z\",\n    \"platform\": \"iOS\",\n    \"platform_version\": \"8.1.2\",\n    \"platform_version_value\": 8102,\n    \"device_model\": \"iPhone\",\n    \"device_system\": \"iPhone OS\",\n    \"app_version\": \"Mobile Data Anywhere 1.1.35/1000\"\n  }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/count","name":"count","apis":[{"api_url":"/api/v1/devices/count","http_method":"GET","short_description":"Return the count of devices in the user's account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturns the count of devices in the user’s account.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project. Required for the projects linked devices count api call\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\" : \"success\",\n  \"result\" : 2\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/create","name":"create","apis":[{"api_url":"/api/v1/devices","http_method":"POST","short_description":"Create a new device in this account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis api call creates a new device in the database, if your subscription has any available device allocations.\u003c/p\u003e\n\n\u003cp\u003eThis api call accepts the following content-types:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eapplication/json : The request body is interpreted as a JSON document.\u003c/li\u003e\n\n\u003cli\u003emultipart/form-data : The request is interpreted as a standard web form post.\u003c/li\u003e\n\n\u003cli\u003eapplication/x-www-form-urlencoded: The request is interpretted as a form post.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eThe request is expected to contain a structured document as follows:\u003c/p\u003e\n\n\u003cp\u003eJSON example for content-type application/json:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;device\u0026quot;:{\n    \u0026quot;unit_id\u0026quot; : \u0026quot;Device 005\u0026quot;,\n    \u0026quot;name\u0026quot; : \u0026quot;John\u0026#39;s Device\u0026quot;,\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eFor a form post with content-type multipart/form-data:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003edevice[unit_id]=Device 005\ndevice[name]=John\u0026#39;s Device\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eA successful call will return a JSON response with the new device data in the result.\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;result\u0026quot;: {\n    \u0026quot;id\u0026quot;: 33,\n    \u0026quot;unit_id\u0026quot;: \u0026quot;Device 005\u0026quot;,\n    \u0026quot;name\u0026quot;: \u0026quot;John\u0026#39;s Device\u0026quot;,\n    \u0026quot;last_used\u0026quot;: \u0026quot;2017-12-12T02:06:57.000Z\u0026quot;,\n    \u0026quot;last_used_timestamp\u0026quot;: \u0026quot;2017-12-12T02:06:57.000Z\u0026quot;,\n    \u0026quot;platform\u0026quot;: \u0026quot;iOS\u0026quot;,\n    \u0026quot;platform_version\u0026quot;: \u0026quot;8.1.2\u0026quot;,\n    \u0026quot;platform_version_value\u0026quot;: 8102,\n    \u0026quot;device_model\u0026quot;: \u0026quot;iPhone\u0026quot;,\n    \u0026quot;device_system\u0026quot;: \u0026quot;iPhone OS\u0026quot;,\n    \u0026quot;app_version\u0026quot;: \u0026quot;Mobile Data Anywhere 1.1.35/1000\u0026quot;\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eIf your account’s subscription does not have any available devices you will receive an error:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;status\u0026quot;: \u0026quot;bad_request\u0026quot;,\n  \u0026quot;message\u0026quot;: \u0026quot;Validation failed: Unit has already been taken\u0026quot;\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID for this device. Unit IDs must be unique within a user’s account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"name","full_name":"name","description":"\n\u003cp\u003eA display name that can be associated with the device. Used for display purposes only.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/update","name":"update","apis":[{"api_url":"/api/v1/device/:id","http_method":"PUT","short_description":"Update a device in this account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID for this device. Unit IDs must be unique within a user’s account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"name","full_name":"name","description":"\n\u003cp\u003eA display name that can be associated with the device. Used for display purposes only.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/destroy","name":"destroy","apis":[{"api_url":"/api/v1/devices/:id","http_method":"DELETE","short_description":"Remove a device from this account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/projects_index","name":"projects_index","apis":[{"api_url":"/api/v1/devices/:device_id/projects","http_method":"GET","short_description":"Return a list of projects linked to this device.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a list of projects linked to this device.\u003c/p\u003e\n","errors":[],"params":[],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      {\n          \"id\": 1,\n          \"name\": \"Courier\",\n          \"escaped_name\": \"courier\",\n          \"uid\": 123123123,\n          \"filename\": \"Courier.ppc\"\n      },\n      {\n          \"id\": 2,\n          \"name\": \"Breathalyser\",\n          \"escaped_name\": \"breathalyser\",\n          \"uid\": 123123124,\n          \"filename\": \"Breathalyser.ppc\"\n      },\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/link_project","name":"link_project","apis":[{"api_url":"/api/v1/devices/:device_id/projects/link","http_method":"POST","short_description":"Link one of more projects to a device","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink one or more projects to a device.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eproject_id\u003c/code\u003e parameter can be: * a Project ID to link a single project. * an array of Project ID’s to unlink multiple projects.\u003c/p\u003e\n","errors":[],"params":[{"name":"device_id","full_name":"device_id","description":"\n\u003cp\u003eThe device’s Id or device Unit ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project id or array of project ids.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      PROJECT_ID_1,\n      PROJECT_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/unlink_project","name":"unlink_project","apis":[{"api_url":"/api/v1/devices/:device_id/projects/unlink","http_method":"DELETE","short_description":"Unlink one or more projects from a device.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUnlink one or more projects from a device.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eproject_id\u003c/code\u003e parameter can be: * a Project ID to unlink a single project. * an array of Project ID’s to unlink multiple projects. * a string of “all” to unlink all projects from the device.\u003c/p\u003e\n","errors":[],"params":[{"name":"device_id","full_name":"device_id","description":"\n\u003cp\u003eThe device’s Id or device Unit ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project id of the project to unlink or an array of project ids to be unlinked from the device or a string, “all”, to unlinke all projects from the device.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["  {\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": [\n        PROJECT_ID_1,\n        PROJECT_ID_2\n    ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/link_language_translation","name":"link_language_translation","apis":[{"api_url":"/api/v1/devices/:id/link_language_translation","http_method":"POST","short_description":"Link one language translation to a device","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe device’s Id or device Unit ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"language_translation_id","full_name":"language_translation_id","description":"\n\u003cp\u003eThe language translation id.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": \"linked\"\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/unlink_language_translation","name":"unlink_language_translation","apis":[{"api_url":"/api/v1/devices/:id/unlink_language_translation","http_method":"POST","short_description":"Unlink the current language translation from a device","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe device’s Id or device Unit ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": \"unlinked\"\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/projects_count","name":"projects_count","apis":[{"api_url":"/api/v1/devices/:device_id/projects/count","http_method":"GET","short_description":"Return a count of projects linked to this device.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a count of projects linked to this device.\u003c/p\u003e\n","errors":[],"params":[],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  {\n      \"status\": \"success\",\n      \"message\": \"success\",\n      \"result\": 2\n  }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/devices/connect","name":"connect","apis":[{"api_url":"/api/v1/devices/:id/connect","http_method":"POST","short_description":"Attempt to connect device via api","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/devices/disconnect","name":"disconnect","apis":[{"api_url":"/api/v1/devices/:id/disconnect","http_method":"POST","short_description":"Attempt to disconnect device via api","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/devices/manifest","name":"manifest","apis":[{"api_url":"/api/v1/devices/:id/manifest","http_method":"POST","short_description":"Retrieve device manifest for http connecction","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":null},"downloads":{"doc_url":"/api/docs/v1/downloads","api_url":"/api","name":"Downloads","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/downloads/ppcx_template","name":"ppcx_template","apis":[{"api_url":"/api/v1/downloads/:id/ppcx_template","http_method":"GET","short_description":"Get a ppcx template","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"file_storage":{"doc_url":"/api/docs/v1/file_storage","api_url":"/api","name":"File storage","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/file_storage/show","name":"show","apis":[{"api_url":"/api/v1/file_storage/:id","http_method":"GET","short_description":"Retrieve a file from storage using a given file id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe File ID of the file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/file_storage/file_data","name":"file_data","apis":[{"api_url":"/api/v1/file_storage/:id/data","http_method":"GET","short_description":"Retrieve the data for a file using a given file id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe File ID of the file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/file_storage/create","name":"create","apis":[{"api_url":"/api/v1/file_storage","http_method":"POST","short_description":"Add a file to file storage.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/file_storage/destroy","name":"destroy","apis":[{"api_url":"/api/v1/file_storage/:id","http_method":"DELETE","short_description":"Remove a file using a given file id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe File ID of the file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/file_storage/delete_with_filename","name":"delete_with_filename","apis":[{"api_url":"/api/v1/file_storage/filename","http_method":"DELETE","short_description":"Remove a file using a given filename.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Filename for the file.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"clientId","full_name":"clientId","description":"\n\u003cp\u003eThe client account id.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"projectId","full_name":"projectId","description":"\n\u003cp\u003eThe project id.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"global_user_stores":{"doc_url":"/api/docs/v1/global_user_stores","api_url":"/api","name":"Global user stores","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/global_user_stores/show","name":"show","apis":[{"api_url":"/api/v1//user_store","http_method":"GET","short_description":"Fetch a global user store for this user","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/global_user_stores/update","name":"update","apis":[{"api_url":"/api/v1/user_store","http_method":"PUT","short_description":"Create or update a global user store for this user.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe user ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"user_store[data][\u003ckey\u003e]","full_name":"user_store[data][\u003ckey\u003e]","description":"\n\u003cp\u003eThe value for the key. This can be a scalar value (string) or a hash with a rawData key for any small amount of embedded binary data.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"language_translations":{"doc_url":"/api/docs/v1/language_translations","api_url":"/api","name":"Language translations","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/language_translations/index","name":"index","apis":[{"api_url":"/api/v1/language_translations","http_method":"GET","short_description":"List language translations.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eList language translations in the user’s account.\u003c/p\u003e\n","errors":[],"params":[],"examples":["{\n  \"status\" : \"success\",\n  \"message\": \"success\",\n  \"result\" : [\n    {\n      \"id\"=\u003e 1,\n      \"name\"=\u003e \"CustomLanguage.ini\",\n      \"description\"=\u003e\"Custom description\",\n      \"checksum\"=\u003e1582586769,\n      \"created_at\"=\u003e\"2020-03-02T22:24:27.000Z\",\n      \"updated_at\"=\u003e\"2020-03-02T22:24:27.000Z\"\n    },\n    {\n      \"id\"=\u003e 2,\n      \"name\"=\u003e \"CustomLanguage2.ini\",\n      \"description\"=\u003e\"Custom description\",\n      \"checksum\"=\u003e1582586770,\n      \"created_at\"=\u003e\"2020-02-24T22:14:47.000Z\",\n      \"updated_at\"=\u003e\"2020-02-24T22:14:47.000Z\"\n    },\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/show","name":"show","apis":[{"api_url":"/api/v1/language_translation/:id","http_method":"GET","short_description":"Get the details for a language translation.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eGet the details for a language translation using a specified language translation ID or using the file name (including .ini extension). The ID and name of a language translation can be found in the language translation list.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Language Translation ID.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"name","full_name":"name","description":"\n\u003cp\u003eThe URI encoded name of the Language Translation, including .ini file extension.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["{\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": {\n        \"id\"=\u003e 1,\n        \"name\"=\u003e \"CustomLanguage.ini\",\n        \"description\"=\u003e\"Custom description\",\n        \"checksum\"=\u003e1582586769,\n        \"created_at\"=\u003e\"2020-03-02T22:24:27.000Z\",\n        \"updated_at\"=\u003e\"2020-03-02T22:24:27.000Z\"\n      }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/create","name":"create","apis":[{"api_url":"/api/v1/language_translations","http_method":"POST","short_description":"Create a new language translation.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eCreates a new language translation for this account.\u003c/p\u003e\n\n\u003cp\u003eAccepted content-types: * multipart/form-data * application/octet-stream\u003c/p\u003e\n\n\u003cp\u003eExample multipart/form-data request:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;language_translation\u0026quot; : {\n    \u0026quot;description\u0026quot; : \u0026quot;custom description\u0026quot;,\n    \u0026quot;file_input\u0026quot; : file attachment\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eNOTE: The filename will be extracted from the attached file and must be a valid .ini file.\u003c/p\u003e\n\n\u003cp\u003eExample application/octet-stream request:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;language_translation\u0026quot;:{\n    \u0026quot;name\u0026quot; : \u0026quot;CustomLanguage.ini\u0026quot;\n    \u0026quot;description\u0026quot; : \u0026quot;custom description\u0026quot;\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eNOTE: The file to upload will be extracted from the raw POST request.\u003c/p\u003e\n\n\u003cp\u003eAn example successful response:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;result\u0026quot;: {\n    \u0026quot;id\u0026quot;=\u0026gt;134,\n    \u0026quot;name\u0026quot;=\u0026gt;\u0026quot;CustomLanguage.ini\u0026quot;,\n    \u0026quot;description\u0026quot;=\u0026gt;\u0026quot;custom description\u0026quot;,\n    \u0026quot;checksum\u0026quot;=\u0026gt;1583191961,\n    \u0026quot;created_at\u0026quot;=\u0026gt;Mon, 02 Mar 2020 23:32:41 UTC +00:00,\n    \u0026quot;updated_at\u0026quot;=\u0026gt;Mon, 02 Mar 2020 23:32:41 UTC +00:00\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"language_translation[\"description\"]","full_name":"language_translation[\"description\"]","description":"\n\u003cp\u003eThe description of the language file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"language_translation[\"file_input\"]","full_name":"language_translation[\"file_input\"]","description":"\n\u003cp\u003eThe file to upload when using multipart/form-data content type.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a File","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/update","name":"update","apis":[{"api_url":"/api/v1/language_translations","http_method":"PUT","short_description":"Update an existing language translation.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUpdates an existing language translation.\u003c/p\u003e\n\n\u003cp\u003eAccepted content-types: * multipart/form-data * application/octet-stream\u003c/p\u003e\n\n\u003cp\u003eExample multipart/form-data request:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;id\u0026quot; : 134,\n  \u0026quot;language_translation\u0026quot; : {\n    \u0026quot;description\u0026quot; : \u0026quot;custom description\u0026quot;,\n    \u0026quot;file_input\u0026quot; : file attachment\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eNOTE: The filename will be extracted from the attached file and must be a valid .ini file.\u003c/p\u003e\n\n\u003cp\u003eExample application/octet-stream request:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;id\u0026quot; : 134,\n  \u0026quot;language_translation\u0026quot;:{\n    \u0026quot;name\u0026quot; : \u0026quot;CustomLanguage.ini\u0026quot;\n    \u0026quot;description\u0026quot; : \u0026quot;custom description\u0026quot;\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eNOTE: The file to upload will be extracted from the raw POST request.\u003c/p\u003e\n\n\u003cp\u003eAn example successful response:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n  \u0026quot;result\u0026quot;: {\n    \u0026quot;id\u0026quot;=\u0026gt;134,\n    \u0026quot;name\u0026quot;=\u0026gt;\u0026quot;CustomLanguage.ini\u0026quot;,\n    \u0026quot;description\u0026quot;=\u0026gt;\u0026quot;custom description\u0026quot;,\n    \u0026quot;checksum\u0026quot;=\u0026gt;1583191961,\n    \u0026quot;created_at\u0026quot;=\u0026gt;Mon, 02 Mar 2020 23:32:41 UTC +00:00,\n    \u0026quot;updated_at\u0026quot;=\u0026gt;Mon, 02 Mar 2020 23:32:41 UTC +00:00\n  }\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Language Translation ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"language_translation[\"description\"]","full_name":"language_translation[\"description\"]","description":"\n\u003cp\u003eThe description of the language file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"language_translation[\"file_input\"]","full_name":"language_translation[\"file_input\"]","description":"\n\u003cp\u003eThe file to upload when using multipart/form-data content type.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a File","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/destroy","name":"destroy","apis":[{"api_url":"/api/v1/language_translations/:id","http_method":"DELETE","short_description":"Remove a language translation.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRemove a language translation.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Language Translation ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/download","name":"download","apis":[{"api_url":"/api/v1/language_translations/:id/download","http_method":"GET","short_description":"Download the file contents of a language translation.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eDownload the file contents of a language translation.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe Language Translation ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/link_device","name":"link_device","apis":[{"api_url":"/api/v1/language_translations/:language_translation_id/devices/link","http_method":"POST","short_description":"Link a language translation to one or more devices.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink a language translation to one or more devices.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003edevice_id\u003c/code\u003e parameter can be: * a Device ID. * an array of Device IDs.\u003c/p\u003e\n\n\u003cp\u003eOR\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eunit_id\u003c/code\u003e parameter can be: * a Unit ID. * an array of Unit IDs.\u003c/p\u003e\n","errors":[],"params":[{"name":"language_translation_id","full_name":"language_translation_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"device_id","full_name":"device_id","description":"\n\u003cp\u003eThe Device ID of the device(s).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID of the device(s).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/link_all_devices","name":"link_all_devices","apis":[{"api_url":"/api/v1/language_translations/:language_translation_id/devices/link_all","http_method":"POST","short_description":"Link a language translation to all devices.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink a language translation to all devices.\u003c/p\u003e\n","errors":[],"params":[{"name":"language_translation_id","full_name":"language_translation_id","description":"\n\u003cp\u003eThe Language Translation ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"response_type","full_name":"response_type","description":"\n\u003cp\u003eBy default, the request will return an array of Device IDs. If response_type parameter is set to ‘unit_ids’ the request will return an array of Device Unit IDs instead.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/unlink_device","name":"unlink_device","apis":[{"api_url":"/api/v1/language_translations/:language_translation_id/devices/unlink","http_method":"POST","short_description":"Unlink a language translation from one or more devices.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink a language translation to one or more devices.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003edevice_id\u003c/code\u003e parameter can be: * a Device ID. * an array of Device IDs.\u003c/p\u003e\n\n\u003cp\u003eOR\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eunit_id\u003c/code\u003e parameter can be: * a Unit ID. * an array of Unit IDs.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the language translation.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"device_id","full_name":"device_id","description":"\n\u003cp\u003eThe Device ID of the device(s).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID of the device(s).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/language_translations/unlink_all_devices","name":"unlink_all_devices","apis":[{"api_url":"/api/v1/language_translations/:language_translation_id/devices/unlink_all","http_method":"POST","short_description":"Unlink a language translation from all devices.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUnlink all devices from a language translation.\u003c/p\u003e\n","errors":[],"params":[{"name":"language_translation_id","full_name":"language_translation_id","description":"\n\u003cp\u003eThe Language Translation ID.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"response_type","full_name":"response_type","description":"\n\u003cp\u003eBy default, the request will return an array of Device IDs. If response_type parameter is set to ‘unit_ids’ the request will return an array of Device Unit IDs instead.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"menus":{"doc_url":"/api/docs/v1/menus","api_url":"/api","name":"Menus","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/menus/main","name":"main","apis":[{"api_url":"/api/v1/menu/main","http_method":"GET","short_description":"","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/menus/top","name":"top","apis":[{"api_url":"/api/v1/menu/top","http_method":"GET","short_description":"","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/menus/session","name":"session","apis":[{"api_url":"/api/v1/menu/session","http_method":"GET","short_description":"","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"packets":{"doc_url":"/api/docs/v1/packets","api_url":"/api","name":"Packets","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/packets/receive_packet","name":"receive_packet","apis":[{"api_url":"/api/v1/packets/:packet_type/c2s","http_method":"POST","short_description":"Recieve a packet from a HTTP compliant device.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"packet_type","full_name":"packet_type","description":"\n\u003cp\u003eThe packet type\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"primary_users":{"doc_url":"/api/docs/v1/primary_users","api_url":"/api","name":"Primary users","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/primary_users/show","name":"show","apis":[{"api_url":"/api/v1/clients/:client_id/primary_user","http_method":"GET","short_description":"Retrieves the primary user account for the client.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRetrieves the primary user account for the client.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/primary_users/update","name":"update","apis":[{"api_url":"/api/v1/clients/:client_id/primary_user","http_method":"PUT","short_description":"Updates the primary user for a client account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUpdates the primary user for a client account.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"mail","full_name":"mail","description":"\n\u003cp\u003eThe email address and username for this primary user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"api_secret","full_name":"api_secret","description":"\n\u003cp\u003eThe api key for this user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"first_name","full_name":"first_name","description":"\n\u003cp\u003eThe name of primary contact for this new user account.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"phone","full_name":"phone","description":"\n\u003cp\u003eThe contact number for the user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"project_exports":{"doc_url":"/api/docs/v1/project_exports","api_url":"/api","name":"Project exports","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_exports/sessions","name":"sessions","apis":[{"api_url":"/api/v1/project_exports/:project_export_id/sessions","http_method":"GET","short_description":"Returns a list of sessions for the specified project that are selected in the project export.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a list of all sessions in the project that are selected in the project export.\u003c/p\u003e\n\n\u003cp\u003eUse the ‘limit’ and ‘skip’ query parameters to do range sub-queries. Use the ‘filter’ query parameter to filter the sessions in the database.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_export_id","full_name":"project_export_id","description":"\n\u003cp\u003eThe project export ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"project_ppcx_files":{"doc_url":"/api/docs/v1/project_ppcx_files","api_url":"/api","name":"Project ppcx files","short_description":null,"full_description":"\n\u003cp\u003eEach project has a .ppcx file which is an xml manifest for the project’s structure including pages, points and properties.\u003c/p\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_ppcx_files/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/ppcx_file","http_method":"GET","short_description":"Get the PPCX (XML) design for the specified project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/project_ppcx_files/get_ppcx_file_using_project_uid","name":"get_ppcx_file_using_project_uid","apis":[{"api_url":"/api/v1/projects/ppcx_file?project_uid=:project_uid","http_method":"GET","short_description":"Get the PPCX (XML) design for the specified project using project uid.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/project_ppcx_files/get_draft","name":"get_draft","apis":[{"api_url":"/api/v1/projects/:project_id/ppcx_file/draft","http_method":"GET","short_description":"Get the Draft PPCX (XML) design for the specified project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/project_ppcx_files/get_draft_info","name":"get_draft_info","apis":[{"api_url":"/api/v1/projects/:project_id/ppcx_file/draft_info","http_method":"GET","short_description":"Get the Draft PPCX (XML) info for the specified project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/project_ppcx_files/revert_draft","name":"revert_draft","apis":[{"api_url":"/api/v1/projects/:project_id/ppcx_file/revert_draft","http_method":"GET","short_description":"Reverts a draft ppcx to the saved published version","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/project_ppcx_files/update_draft","name":"update_draft","apis":[{"api_url":"/api/v1/projects/:project_id/ppcx_file/update_draft","http_method":"PUT","short_description":"Save a draft ppcx file for a project","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":null},"project_restore_points":{"doc_url":"/api/docs/v1/project_restore_points","api_url":"/api","name":"Project restore points","short_description":null,"full_description":"\n\u003cp\u003eEach project has a .ppcx file which is an xml manifest for the project’s structure including pages, points and properties.\u003c/p\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_restore_points/index","name":"index","apis":[{"api_url":"/api/v1/projects/:project_id/restore_points","http_method":"GET","short_description":"List restore points for previous versions of the project.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eList restore points for previous versions of the project.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_restore_points/create","name":"create","apis":[{"api_url":"/api/v1/projects/:project_id/restore_point","http_method":"POST","short_description":"Create a new restore point for this project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_restore_points/save_test_ppcx","name":"save_test_ppcx","apis":[{"api_url":"/api/v1/clients/:client_id/projects/:project_id/restore_point/:id/save_test_ppcx","http_method":"PUT","short_description":"Saves automated test ppcx comparison for this project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_restore_points/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/restore_point/:id","http_method":"GET","short_description":"Returns a restore point for a selected project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the project restore point.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_restore_points/restore","name":"restore","apis":[{"api_url":"/api/v1/projects/:project_id/restore_point/:id/restore","http_method":"POST","short_description":"Restores a project to the selected restore point.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the project restore point.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"project_user_stores":{"doc_url":"/api/docs/v1/project_user_stores","api_url":"/api","name":"Project user stores","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_user_stores/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/user_stores","http_method":"GET","short_description":"Fetch a user store for this project and a user","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_user_stores/update","name":"update","apis":[{"api_url":"/api/v1/projects/:project_id/user_stores/:id","http_method":"PUT","short_description":"Create or update a user store for this project and user.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe user ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"user_store[data][\u003ckey\u003e]","full_name":"user_store[data][\u003ckey\u003e]","description":"\n\u003cp\u003eThe value for the key. This can be a scalar value (string) or a hash with a rawData key for any small amount of embedded binary data.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"project_web_hook_events":{"doc_url":"/api/docs/v1/project_web_hook_events","api_url":"/api","name":"Project web hook events","short_description":null,"full_description":"\n\u003cp\u003eA project web hook event is created when a project’s web hook is triggered from a session event such as a session being created, updated or deleted.\u003c/p\u003e\n\n\u003cp\u003eThe event can be used to monitor the response code and response message that are returned from the congigured web hook endpoint.\u003c/p\u003e\n\n\u003cp\u003eThe response code and response message will be null while the event is being processed. When completed, either successfully or with a failure, the response code will represent the HTTP status code that was recieved from the endpoint. Polling can be used to re-request the event to monitor the response_code for a completed result.\u003c/p\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_web_hook_events/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/web_hook/events/:event_id","http_method":"GET","short_description":"Gets the Web Hook Event, including current state of the event and response code if the event is complete.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eGet the information for a web hook event including the type of event, the time it was triggered and the response from the endpoint. The event will contain a response code and a response message once the event has finished being executed.\u003c/p\u003e\n\n\u003cp\u003eThe event type will be determined by what triggered the event. The \u003ccode\u003esession.test\u003c/code\u003e event will occur when testing the web hook via the API or the project options page. When a new session is created it will trigger a \u003ccode\u003esession.create\u003c/code\u003e event. When a session is deleted it will trigger a \u003ccode\u003esession.delete\u003c/code\u003e event. When a session is updated or restored (from deleted) then it will trigger a \u003ccode\u003esession.update\u003c/code\u003e event.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003esession_id\u003c/code\u003e field will be null for the \u003ccode\u003esession.test\u003c/code\u003e event but will contain a session guid for all other event types.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"event_id","full_name":"event_id","description":"\n\u003cp\u003eThe ID of the web hook event. This will be returned when triggering a test session event for a project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["A 'session.create' event which is pending (incomplete).\n{\n  \"status\" : \"success\",\n  \"result\" : {\n    \"id\": 1239583414,\n    \"client_id\": 19817472,\n    \"project_id\": 1249918,\n    \"session_id\": \"7e9c00a0-f3d0-4a5c-a4c8-9d8258c31e34\",\n    \"event_type\": \"session.create\",\n    \"event_timestamp\": 1513045894.577,\n    \"response_code\": null,\n    \"response_message\": null,\n    \"endpoint\": \"example.com/web_hook\"\n  }\n}\n","A 'session.test' event which is completed successfully.\n{\n  \"status\" : \"success\",\n  \"result\" : {\n    \"id\": 1239583414,\n    \"client_id\": 19817472,\n    \"project_id\": 1249918,\n    \"session_id\": null,\n    \"event_type\": \"session.test\",\n    \"event_timestamp\": 1513045894.577,\n    \"response_code\": 200,\n    \"response_message\": \"OK\",\n    \"endpoint\": \"example.com/web_hook\"\n  }\n}\n","A 'session.update' event which completed with a failure response from the executed endpoint.\n{\n  \"status\" : \"success\",\n  \"result\" : {\n    \"id\": 1239583414,\n    \"client_id\": 19817472,\n    \"project_id\": 1249918,\n    \"session_id\": \"7e9c00a0-f3d0-4a5c-a4c8-9d8258c31e34\",\n    \"event_type\": \"session.update\",\n    \"event_timestamp\": 1513045894.577,\n    \"response_code\": 404,\n    \"response_message\": \"Not Found\",\n    \"endpoint\": \"example.com/web_hook\"\n  }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"project_web_hooks":{"doc_url":"/api/docs/v1/project_web_hooks","api_url":"/api","name":"Project web hooks","short_description":null,"full_description":"\n\u003cp\u003eA project web hook is a URL that will be executed when a session is created, updated or deleted. Each project can be configured with a project web hook which can be enabled/disabled at any time, either via the Project Options page or via the API.\u003c/p\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/project_web_hooks/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/web_hook","http_method":"GET","short_description":"Get the project's web hook details.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturns the web hook configuration for a project.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": {\n        \"client_id\": 19817472,\n        \"project_id\": 1249918,\n        \"endpoint\": \"example.com/web_hook\",\n        \"enable_http_authorization\": false,\n        \"enable_web_hook\": true\n    }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_web_hooks/update","name":"update","apis":[{"api_url":"/api/v1/projects/:project_id/web_hook","http_method":"PUT","short_description":"Creates or updates the web hook for a project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eCreates a new web hook configuration for a project or updates the existing configuration.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"endpoint","full_name":"endpoint","description":"\n\u003cp\u003eThe URL to execute when this web hook is triggered. The HTTPS protocol is automatically enforced to increase security and the endpoint URL should not contain the protocol.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"enable_web_hook","full_name":"enable_web_hook","description":"\n\u003cp\u003eEnables or disables the web hook. Can be “true” (enabled) or “false” (disabled).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"enable_http_authorization","full_name":"enable_http_authorization","description":"\n\u003cp\u003eEnables or disables using HTTP Authorization header with the web hook. Can be “true” (enabled) or “false” (disabled).\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"http_authorization_value","full_name":"http_authorization_value","description":"\n\u003cp\u003eThe value to be added to the HTTP Authorization header when the web hook is executed. This value cannot be retrieved once set. This value can be set to basic authentication, token authentication or other HTTP Authorization values in order to authorize the web hook event for the executed endpoint.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"custom_parameters","full_name":"custom_parameters","description":"\n\u003cp\u003eA dictionary of key-pair values that will be added to the web hook POST request.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]}],"examples":["Example Response:\n{\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": {\n        \"client_id\": 19817472,\n        \"project_id\": 1249918,\n        \"endpoint\": \"example.com/web_hook\",\n        \"enable_http_authorization\": false,\n        \"enable_web_hook\": true,\n        \"customer_parameters\": {\n          \"key 1\": \"value 1\",\n          \"key 2\": \"value 2\",\n          \"key 3\": \"value 3\",\n        }\n    }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_web_hooks/destroy","name":"destroy","apis":[{"api_url":"/api/v1/projects/:project_id/web_hook","http_method":"DELETE","short_description":"Removes the web hook configuration for the project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRemoves the web hook configuration for a project.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": \"deleted\"\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/project_web_hooks/trigger_session_test","name":"trigger_session_test","apis":[{"api_url":"/api/v1/projects/:project_id/web_hook/trigger_session_test","http_method":"POST","short_description":"Tests the execution of the project's web hook with a payload containing dummy data with the event type 'session.test'.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eTests the project’s web hook configuration by sending a POST request to the endpoint with a test payload. The test payload will be sent with the \u003ccode\u003esession.test\u003c/code\u003e event type and a null \u003ccode\u003esession_id\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003eThe request will return a Web Hook Event that is created to process the request.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["Example of the POST parameters that are sent to the endpoint.\n{\n    \"client_id\": 19817472,\n    \"project_id\": 1249918,\n    \"session_id\": null,\n    \"event_type\": \"session.test\",\n    \"event_timestamp\": 1512624088.977,\n    \"custom parameter key 1\": \"custom parameter value 1\",\n    \"custom parameter key 2\": \"custom parameter value 2\",\n    \"custom parameter key 3\": \"custom parameter value 3\",\n    \"ssl_version\": 1.2\n}\n","Example response from triggering the test event. Polling can be used to re-request this event until the processing is complete which can be determined by waiting for the response_code and response_message to be populated.\n{\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": {\n        \"id\": EVENT_ID,\n        \"client_id\": 19817472,\n        \"project_id\": 1249918,\n        \"session_id\": null,\n        \"event_type\": \"session.test\",\n        \"event_timestamp\": 1512624088.977,\n        \"response_code\": null,\n        \"response_message\": null\n    }\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"projects":{"doc_url":"/api/docs/v1/projects","api_url":"/api","name":"Projects","short_description":null,"full_description":"\n\u003cp\u003eProjects represent Mobile Data Studio project files that have been uploaded to Mobile Data Anywhere. They define the schema for data collected on the device, defining the user interface on the device, including validation and so on.\u003c/p\u003e\n\n\u003cp\u003eProjects when fetched via the API return a data record with the follow keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e - a unique identifier for the project in the Mobile Data Anywhere system.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003ename\u003c/code\u003e - The name of the project\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilename\u003c/code\u003e - The filename when the project was uploaded. This must not ever change, as it is used on the mobile devices to identify the project there.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003euid\u003c/code\u003e - a unique identifier that is an attribute of the .ppc file. This must also remain the same, as it is used by the mobile devices to identify the project.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;id\u0026quot;: 123\n    \u0026quot;name\u0026quot;: \u0026quot;Courier\u0026quot;,\n    \u0026quot;uid\u0026quot;: 14253646,\n    \u0026quot;filename\u0026quot;: \u0026quot;Courier.ppc\u0026quot;,\n}\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/projects/index","name":"index","apis":[{"api_url":"/api/v1/projects","http_method":"GET","short_description":"Return a list of all projects in the user's account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis method supports filtering of the following fields:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003ename\u003c/li\u003e\n\u003c/ul\u003e\n","errors":[],"params":[{"name":"filename","full_name":"filename","description":"\n\u003cp\u003eFilter the list of projects to ones that have a filename that match the given Filename\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"device_id","full_name":"device_id","description":"\n\u003cp\u003eFilter the list of projects to ones that are linked to a device with the given Unit Id\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/show","name":"show","apis":[{"api_url":"/api/v1/projects/:id","http_method":"GET","short_description":"Get the details for a specific project.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/show_by_name","name":"show_by_name","apis":[{"api_url":"/api/v1/projects/name/:name","http_method":"GET","short_description":"Get the details for a specific project using the project's name.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/count","name":"count","apis":[{"api_url":"/api/v1/projects/count","http_method":"GET","short_description":"Return the number of projects in a user's account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/create","name":"create","apis":[{"api_url":"/api/v1/projects","http_method":"POST","short_description":"Create a new project by uploading a .ppc or .ppcx file","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/update","name":"update","apis":[{"api_url":"/api/v1/projects","http_method":"PUT","short_description":"Update an existing project by uploading a .ppc or .ppcx file","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/send_to_device","name":"send_to_device","apis":[{"api_url":"/api/v1/projects/:id/deliver","http_method":"POST","short_description":"Send the project a device","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis sends the project to a device, identified by its “Unit ID”. If the device is connected, it will be delivered immediately. Otherwise the project will be queued and sent to the device the next time it connects.\u003c/p\u003e\n\n\u003cp\u003eFuture updates to a project are only sent to the device if the device is “linked” to the project. See the /api/v1/projects/:id/link API method.\u003c/p\u003e\n\n\u003cp\u003eNote: Sending a project to a device does not load the project on the device. The user may still require completing whatever session is in progress and returning to the project list. Only when the project is shown in the list highlighted will it be reloaded on the device the next time the user opens it.\u003c/p\u003e\n","errors":[],"params":[{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe unit ID of the device\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/devices_index","name":"devices_index","apis":[{"api_url":"/api/v1/projects/:id/devices","http_method":"GET","short_description":"Return a list of devices linked to this project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a list of devices linked to this project\u003c/p\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/link_device","name":"link_device","apis":[{"api_url":"/api/v1/projects/:project_id/devices/link","http_method":"POST","short_description":"Link a project to one or more devices","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink one or more devices to a project.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eunit_id\u003c/code\u003e parameter can be: * a Unit ID to link a single device. * an array of Unit ID’s to link multiple devices.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID of the device.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/link_all_devices","name":"link_all_devices","apis":[{"api_url":"/api/v1/projects/:project_id/devices/link_all","http_method":"POST","short_description":"Link a project to all devices","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eLink a project to all devices.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/redeploy_all_devices","name":"redeploy_all_devices","apis":[{"api_url":"/api/v1/projects/:project_id/devices/redeploy_all","http_method":"POST","short_description":"Re-deploy a project to all devices","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRe-deploy a project to all devices.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["{\n  \"status\": \"success\",\n  \"message\": \"success\",\n  \"result\": [\n      DEVICE_ID_1,\n      DEVICE_ID_2\n  ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/unlink_device","name":"unlink_device","apis":[{"api_url":"/api/v1/projects/:id/devices/unlink","http_method":"DELETE","short_description":"Unlink one or more devices from a project.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUnlink one or more devices from a project.\u003c/p\u003e\n\n\u003cp\u003eThe \u003ccode\u003eunit_id\u003c/code\u003e parameter can be: * a Unit ID to unlink a single device. * an array of Unit ID’s to unlink multiple devices. * a string of “all” to unlink all devices from the project.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe unit ID of the device.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":["  {\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": [\n        DEVICE_ID_1,\n        DEVICE_ID_2\n    ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/unlink_all_devices","name":"unlink_all_devices","apis":[{"api_url":"/api/v1/projects/:id/devices/unlink_all_devices","http_method":"DELETE","short_description":"Unlink all devices from a project.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUnlink all devices from a project.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID of the project.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":["  {\n    \"status\": \"success\",\n    \"message\": \"success\",\n    \"result\": [\n        DEVICE_ID_1,\n        DEVICE_ID_2\n    ]\n}\n"],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/session_list_columns","name":"session_list_columns","apis":[{"api_url":"/api/v1/projects/:id/session_list_columns","http_method":"GET","short_description":null,"deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/compare_latest_ppcx","name":"compare_latest_ppcx","apis":[{"api_url":"/api/v1/clients/:client_id/projects/:project_id/test_designer_integration","http_method":"GET","short_description":null,"deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/download_ppc","name":"download_ppc","apis":[{"api_url":"/api/v1/projects/:id/download_ppc","http_method":"GET","short_description":null,"deprecated":null},{"api_url":"/api/v1/clients/:client_id/projects/:project_id/download_ppc","http_method":"GET","short_description":null,"deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/xml_schema","name":"xml_schema","apis":[{"api_url":"/api/v1/projects/:id/xml_schema","http_method":"GET","short_description":"Get the XML Schema for the specified project.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis method will return the XML Schema in a similar format to:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eExample XML for a basic project:\u003c/code\u003e\u003c/pre\u003e\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cpre\u003e\u003ccode\u003e\u0026lt;xs:schema xmlns=\u0026quot;\u0026quot; xmlns:xs=\u0026quot;http://www.w3.org/2001/XMLSchema\u0026quot; xmlns:msdata=\u0026quot;urn:schemas-microsoft-com:xml-msdata\u0026quot; id=\u0026quot;ProjectDataSet\u0026quot;\u0026gt;\n    \u0026lt;xs:element name=\u0026quot;ProjectDataSet\u0026quot; msdata:IsDataSet=\u0026quot;true\u0026quot; msdata:UseCurrentLocale=\u0026quot;true\u0026quot;\u0026gt;\n        \u0026lt;xs:complexType\u0026gt;\n            \u0026lt;xs:choice minOccurs=\u0026quot;0\u0026quot; maxOccurs=\u0026quot;unbounded\u0026quot;\u0026gt;\n                \u0026lt;xs:element name=\u0026quot;Project\u0026quot;\u0026gt;\n                    \u0026lt;xs:complexType\u0026gt;\n                        \u0026lt;xs:sequence\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;UUID\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Date\u0026quot; type=\u0026quot;xs:date\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Created\u0026quot; type=\u0026quot;xs:dateTime\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Saved\u0026quot; type=\u0026quot;xs:dateTime\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;UnitID\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;JobNumber\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;JobAssigned\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;TransportandRate\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Material\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Courier\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;Client\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;PickUpAddress\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;PickUpContactName\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;PickUpPhone\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;PickUpTime\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;DeliveryAddress\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;DeliveryContactName\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;DeliveryPhone\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;DeliveryTime\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;DeliverySignature\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                            \u0026lt;xs:element name=\u0026quot;CostDollars\u0026quot; type=\u0026quot;xs:string\u0026quot;/\u0026gt;\n                        \u0026lt;/xs:sequence\u0026gt;\n                    \u0026lt;/xs:complexType\u0026gt;\n                \u0026lt;/xs:element\u0026gt;\n            \u0026lt;/xs:choice\u0026gt;\n        \u0026lt;/xs:complexType\u0026gt;\n    \u0026lt;/xs:element\u0026gt;\n\u0026lt;/xs:schema\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/archive","name":"archive","apis":[{"api_url":"/api/v1/projects/:project_id/archive","http_method":"POST","short_description":"Moves a project from Active to Archived.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis changes the status of a project from Active to Archived to temporarily hide the project. An archived project can be changed back to active at any time using the unarchive endpoint: /api/v1/projects/:project_id/unarchive\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/unarchive","name":"unarchive","apis":[{"api_url":"/api/v1/projects/:project_id/unarchive","http_method":"POST","short_description":"Moves a project from Archived to Active.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis changes the status of a project from Archived to Active.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/projects/update_sequence","name":"update_sequence","apis":[{"api_url":"/api/v1/projects/:project_id/update_sequence","http_method":"POST","short_description":"Attempts to set the next sequential id for the project. This will fail if the new sequential id is less than the existing sequential id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"next_sequential_id","full_name":"next_sequential_id","description":"\n\u003cp\u003eThe next sequential id\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/reset_sequence","name":"reset_sequence","apis":[{"api_url":"/api/v1/projects/:project_id/reset_sequence","http_method":"POST","short_description":"Resets the sequence for the project and updates all sessions to match the new sequence.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"initial_sequential_id","full_name":"initial_sequential_id","description":"\n\u003cp\u003eThe new sequential id that will start the sequence\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/reformat_sequence","name":"reformat_sequence","apis":[{"api_url":"/api/v1/projects/:project_id/reformat_sequence","http_method":"POST","short_description":"Queues a background job to reformat all existing sessions with the latest project sequence formatting settings.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/promote","name":"promote","apis":[{"api_url":"/api/v1/projects/:project_id/promote","http_method":"POST","short_description":"Promotes a project from developer account to production account.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/clone_down","name":"clone_down","apis":[{"api_url":"/api/v1/projects/:project_id/clone_down","http_method":"POST","short_description":"Clones a project from production account to developer account.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"new_project_name","full_name":"new_project_name","description":"\n\u003cp\u003eNew Project Name\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/projects/clone","name":"clone","apis":[{"api_url":"/api/v1/projects/:project_id/clone","http_method":"POST","short_description":"Clones a project into the same account, with a new name.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe Project ID\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"new_project_name","full_name":"new_project_name","description":"\n\u003cp\u003eNew Project Name\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":null},"queued_actions":{"doc_url":"/api/docs/v1/queued_actions","api_url":"/api","name":"Queued actions","short_description":null,"full_description":"\n\u003cp\u003eA Queued Action represents a command to send a project or session to a mobile device.\u003c/p\u003e\n\n\u003cp\u003eQueued Actions are represented as a data record with the following keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e - a unique identifier for the queued action in the system.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eproject_id\u003c/code\u003e - the database id of the project relating to this queued action\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003edevice_id\u003c/code\u003e - the database id of the device to receive the project or session\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003edevice_unit_id\u003c/code\u003e - the unit id of the device to receive the project or session\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eaction\u003c/code\u003e - which action, one of “update project” or “send session”\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003estatus\u003c/code\u003e - a string representing the status of the action, one of: “pending”, “succeeded”, “failed”, “in progress”\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003esession_uuid\u003c/code\u003e (optional) - the uuid of the session to be sent. Only used for “send session” actions.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003equeued_timestamp\u003c/code\u003e - a unix timestamp of when the queued action was created.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eexecuted_timestamp\u003c/code\u003e - a unix timestamp of when the queued action was executed (transitioned from pending to succeeded or failed)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;id\u0026quot;: 123\n    \u0026quot;project_id\u0026quot;: 1234,\n    \u0026quot;device_id\u0026quot;: 2345,\n    \u0026quot;device_unit_id\u0026quot;: \u0026quot;iphone_1\u0026quot;,\n    \u0026quot;action\u0026quot;: \u0026quot;update project\u0026quot;,\n    \u0026quot;status\u0026quot;: \u0026quot;pending\u0026quot;,\n    \u0026quot;queued_timestamp\u0026quot;: 123456789,\n    \u0026quot;executed_timestamp\u0026quot;: 123456789\n}\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3 id=\"filtering_results\"\u003eFiltering results.\u003c/h3\u003e\n\n\u003cp\u003eThe index (get list) method can apply a filter to the database and return the queued actions that match the specified filter.\u003c/p\u003e\n\n\u003cp\u003eThe following filters can be applied in the query string:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eskip\u003c/code\u003e: Skip a number of results in the get session list method.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003elimit\u003c/code\u003e: Return only this many results in the get session list method. Defaults to 100.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[project_id]\u003c/code\u003e: return only queued actions for the specified project.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[device_id]\u003c/code\u003e: return only queued actions for the specified device. This number is the device ID which can be obtained from the devices list.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[action]\u003c/code\u003e: return only queued actions for the action. Valid values are “update project” and “send session”.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[status]\u003c/code\u003e: return only queued actions with the specific status. Valid values are “pending”, “succeeded”, “failed”, “in progress”\u003c/li\u003e\n\u003c/ul\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/queued_actions/index","name":"index","apis":[{"api_url":"/api/v1/queued_actions","http_method":"GET","short_description":"Return a list of queued actions for a device","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRefer to the documentation above for more details on filtering the results.\u003c/p\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/queued_actions/raw_sessions_results","name":"raw_sessions_results","apis":[{"api_url":"/api/v1/queued_actions/raw_sessions_results","http_method":"POST","short_description":"Updates action status for batch of session results","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/queued_actions/success","name":"success","apis":[{"api_url":"/api/v1/queued_actions/:id/success","http_method":"POST","short_description":"Sets action status to completed successfully.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/queued_actions/fail","name":"fail","apis":[{"api_url":"/api/v1/queued_actions/:id/fail","http_method":"POST","short_description":"Sets action status to failed.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/queued_actions/raw_project","name":"raw_project","apis":[{"api_url":"/api/v1/queued_actions/:id/raw_project","http_method":"GET","short_description":"Retrieves the project for a queued action","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/queued_actions/raw_session","name":"raw_session","apis":[{"api_url":"/api/v1/queued_actions/:id/raw_session","http_method":"GET","short_description":"Retrieves the session for a queued action","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/queued_actions/raw_sessions","name":"raw_sessions","apis":[{"api_url":"/api/v1/queued_actions/raw_sessions","http_method":"POST","short_description":"Retrieves a batch of sessions for an array of queued actions","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":null},"reports":{"doc_url":"/api/docs/v1/reports","api_url":"/api","name":"Reports","short_description":null,"full_description":"\n\u003cp\u003eReports can be used to display session data in graphs, grids and other report widgets.\u003c/p\u003e\n\n\u003cp\u003eReports when fetched via the API return a data record with the follow keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e - a unique identifier for the report in the Mobile Data Anywhere system.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003ename\u003c/code\u003e - The name of the report\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003exml_data\u003c/code\u003e - The raw xml data used to save the report.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;id\u0026quot;: 123\n    \u0026quot;name\u0026quot;: \u0026quot;My Report\u0026quot;,\n    \u0026quot;xml_data\u0026quot;: \u0026quot;\u0026lt;?xml version=\u0026quot;1.0\u0026quot; encoding=\u0026quot;UTF-8\u0026quot;?\u0026gt;\u0026lt;Report\u0026gt;\u0026lt;/Report\u0026gt;\u0026lt;/?xml\u0026gt; \u0026quot;,\n}\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/reports/show","name":"show","apis":[{"api_url":"/api/v1/reports/:id","http_method":"GET","short_description":"Get the details for a specific report.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the report.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/reports/index","name":"index","apis":[{"api_url":"/api/v1/reports","http_method":"GET","short_description":"Return a list of all dashbords in the user's account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/reports/create","name":"create","apis":[{"api_url":"/api/v1/reports","http_method":"POST","short_description":"Save a new report.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/reports/update","name":"update","apis":[{"api_url":"/api/v1/reports","http_method":"PUT","short_description":"Update an existing report .","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the report.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"last_fetch_date","full_name":"last_fetch_date","description":"\n\u003cp\u003eThe date/time that this report was last requested from the server.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/reports/destroy","name":"destroy","apis":[{"api_url":"/api/v1/reports/:id","http_method":"DELETE","short_description":"Remove a report from your account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the report.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/reports/projects","name":"projects","apis":[{"api_url":"/api/v1/reports/:id","http_method":"GET","short_description":"Remove a report from your account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe id of the report.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"sessions":{"doc_url":"/api/docs/v1/sessions","api_url":"/api","name":"Sessions","short_description":null,"full_description":"\n\u003cp\u003eA session is the same as a session on the mobile device.\u003c/p\u003e\n\n\u003cp\u003eEach session has a number of attributes associated with it that are common for each project, such as the Unit ID of the device that created the session, and a variable number of points according to the definition of the project at the time the session was created.\u003c/p\u003e\n\n\u003cp\u003eThe JSON representation of the session will be an object with the following keys:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026quot;uuid\u0026quot; : String, The session UUID\n\u0026quot;unit_id\u0026quot; :  String, The Unit ID of the device that created (or last edited) this session\n\u0026quot;created\u0026quot; :  String, The date and time the session was created\n\u0026quot;created_timestamp\u0026quot; : Integer, The unix timestamp for when the session was created\n\u0026quot;saved\u0026quot; :  String, The date and time the session was saved\n\u0026quot;saved_timestamp\u0026quot; :  Integer, The unix timestamp for when the session was saved\n\u0026quot;received\u0026quot; :  String, The date and time the session was received at the server (when the device submitted the session).\n\u0026quot;received_timestamp\u0026quot; : Integer, The unix timestamp for when the session was received.\n\u0026quot;received_from\u0026quot; : String, The username or device unit ID that created or most recently modified this session. This will be a User\u0026#39;s username if the session was created/edited from the web portal or via the API and would be a device unit ID if created/edited via a device.\n\u0026quot;is_deleted\u0026quot;: Boolean, The status for the session. This will be true when the session has been deleted or false when the session is active.\n\u0026quot;data\u0026quot; : object/dictionary, The values for the points in this session, see below for further notes.\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eThe data values for point names are returned in an object as follows:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eThe point name is used as the key. This is always represented in lower case, which mirrors the internal implementation of Mobile Data mobile clients, and allows point names to be referred to in a case insentive manner by always converting point names to lower case.\u003c/li\u003e\n\n\u003cli\u003eThe corresponding object (dictionary) value is the value of the point. Typically, all values are stored as strings. There may be some points, such as Sketch points that store binary data, or Camera points that store attached image files. These complex values are represented as an object(dictionary) with keys describing the file. This typically includes the name of the attached file, but will not normally contain the actual file data.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3 id=\"time_zone_support\"\u003eTime Zone Support\u003c/h3\u003e\n\n\u003cp\u003eAll values stored in the Mobile Data Anywhere database are UTC timestamps. These can be consistently converted to whatever timezone is required.\u003c/p\u003e\n\n\u003cp\u003eHowever, on the mobile client devices, the times are stored in the local time zone of the device. In order to know what the device’s local time zone is, the mobile devices store their local time zone offset in a hidden point named “\u003cstrong\u003etimezone\u003c/strong\u003e”. This value is used, if present to convert the created and saved dates into UTC and back again if sent to a device.\u003c/p\u003e\n\n\u003cp\u003eYou can easily set this value when creating a session.\u003c/p\u003e\n\n\u003cp\u003eThe value of the \u003ccode\u003e__timezone__\u003c/code\u003e point is the number of seconds from UTC. For example, Brisbane Australia (+10 hours) would be 36000, and New York (-5 hours) would be -18000\u003c/p\u003e\n\n\u003ch3 id=\"accessing_attachments\"\u003eAccessing Attachments\u003c/h3\u003e\n\n\u003cp\u003eFor points that contain attachments, the attached file can be accessed via the Attachments API calls. Attachments can be quite large and are stored separately to optimise session data access and filtering operations. This also allows API clients to cache attachments so that they do not need to be downloaded repeatedly, saving bandwidth and time.\u003c/p\u003e\n\n\u003ch3 id=\"changing_project_definitions\"\u003eChanging project definitions\u003c/h3\u003e\n\n\u003cp\u003eThe points stored in a session reflect the definition of the project at the time the session was created. Subsequently altering a project does not cause session values to be recalculated or populated with default values in the updated project.\u003c/p\u003e\n\n\u003cp\u003eAdditionally, some points may not store a value at all if the page containing the point has never been accessed. Clients should always test for the presence of a point’s name in the “data” object. A missing key, key with a null value or a key with an empty string value should all be considered as having the same “empty” value.\u003c/p\u003e\n\n\u003ch3 id=\"filtering_results\"\u003eFiltering results.\u003c/h3\u003e\n\n\u003cp\u003eThe index (get list) and count (get count) methods can apply a filter to the database and return the sessions, or count of sessions matching the filter.\u003c/p\u003e\n\n\u003cp\u003eThe following filters can be applied in the query string:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereceived_since\u003c/code\u003e: A unix timestamp where only sessions received by the server after this time will be included.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eskip\u003c/code\u003e: Skip a number of results in the get session list method (does not apply to count method).\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003elimit\u003c/code\u003e: Return only this many results in the get session list method (does not apply to count method).\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[unit_id]\u003c/code\u003e: Only sessions submitted by a specific unit id.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[received_from]\u003c/code\u003e: Only sessions that were last modified by the specified username or device unit id.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilter[Data.{point_name}]\u003c/code\u003e. Only sessions where the point named “point_name” will be included. Note that “Data” must have a capital D and the point name must be in lower case.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eThe “filter” keys also support a number of conditions, such as equals, not equals, contains, not contains, and case insensitive versions of these. There is also conditions to check for the presence or absence of a value for the given point. These filter conditions are used by constructing the query parameter like so:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efilter[Data.{point_name}][{condition}]\u003c/code\u003e where {point_name} is the lower case point name, and {condition} is one of:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eeq\u003c/code\u003e - equals\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003enot_eq\u003c/code\u003e - not equals\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003econtains\u003c/code\u003e\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003enot_contains\u003c/code\u003e\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eeq_case\u003c/code\u003e - case insensitive equals\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003enot_eq_case\u003c/code\u003e\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003econtains_case\u003c/code\u003e\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003enot_contains_case\u003c/code\u003e\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003epresent\u003c/code\u003e - value is ignored in comparison\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003eblank\u003c/code\u003e - value is ignored in comparison\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eAlso note that the square brackets need to be correctly URL encoded.\u003c/p\u003e\n\n\u003cp\u003eExample:\u003c/p\u003e\n\n\u003cp\u003eFilter by presence of a value in a the point “name” and the point “address” containing ‘Coast’ results in the following query string before URL escaping: \u003ccode\u003e?filter[Data.name][present]=1\u0026amp;filter[Data.address][contains]=Coast\u003c/code\u003e\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eGET /api/v1/projects/1234/sessions?filter%5BData.name%5D%5Bpresent%5D%3D1%26filter%5BData.address%5D%5Bcontains%5D%3DCoast\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/sessions/index","name":"index","apis":[{"api_url":"/api/v1/projects/:project_id/sessions","http_method":"GET","short_description":"Return a list of sessions in a project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn a list of all sessions in the project.\u003c/p\u003e\n\n\u003cp\u003eUse the ‘limit’ and ‘skip’ query parameters to do range sub-queries. Use the ‘filter’ query parameter to filter the sessions in the database.\u003c/p\u003e\n\n\u003cp\u003eAll session data is returned except for attachments. If you have many sessions, it may be better to make repeated calls to the server to fetch smaller amounts at a time.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"xml","full_name":"xml","description":"\n\u003cp\u003eReturns sessions data as XML instead of as a JSON array.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"uuids_only","full_name":"uuids_only","description":"\n\u003cp\u003eReturns an array of session uuids only.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/count","name":"count","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/count","http_method":"GET","short_description":"Return the count of sessions in a project","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturn the count all sessions in the project.\u003c/p\u003e\n\n\u003cp\u003eUse the ‘filter’ query parameter to filter the sessions in the database.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/show","name":"show","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/:id","http_method":"GET","short_description":"Fetch the details of a session","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eFetch a session from the database. For points that have an attached file, the value of the point will be a hash with a “filename” key with the filename of the attached file. Each attachment can be downloaded with an individual call to the attachments endpoint. This is to save bandwidth and time in case attachments do not need to be downlaoded multiple times.\u003c/p\u003e\n\n\u003cp\u003eThis api call will return a \u003ccode\u003e404 Not Found\u003c/code\u003e if the session does not exist.\u003c/p\u003e\n\n\u003cp\u003eOn a successful call, a standard JSON response with the session data in the result.\u003c/p\u003e\n\n\u003cp\u003eWhen include_sub_sessions=1 is passed, the response will include sub-sessions from sub-projects in a sub_project_sessions field organized by project ID.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe UUID of the session to fetch\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"deleted","full_name":"deleted","description":"\n\u003cp\u003eSearch on deleted sessions\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"include_sub_sessions","full_name":"include_sub_sessions","description":"\n\u003cp\u003eInclude sub-sessions from sub-projects\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/data","name":"data","apis":[{"api_url":"/api/v1/projects/:id/sessions/:uuid/data","http_method":"GET","short_description":null,"deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/s2c_packet","name":"s2c_packet","apis":[{"api_url":"/api/v1/projects/:id/sessions/:uuid/s2c_packet","http_method":"GET","short_description":null,"deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/create","name":"create","apis":[{"api_url":"/api/v1/projects/:project_id/sessions","http_method":"POST","short_description":"Create a new session in the database.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis api call creates a new session in the database.\u003c/p\u003e\n\n\u003cp\u003eIf a UUID is supplied, any existing session with that UUID is deleted first. Otherwise, if no UUID is supplied One is created.\u003c/p\u003e\n\n\u003cp\u003eThis api call accepts the following content-types:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eapplication/json : The request body is interpreted as a JSON document. File attachments are not supported.\u003c/li\u003e\n\n\u003cli\u003emultipart/form-data : The request is interpreted as a standard web form post. File attachments are supported.\u003c/li\u003e\n\n\u003cli\u003eapplication/x-www-form-urlencoded: The request is interpretted as a form post. File attachments are supported.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eFor the form request types, attachments can be uploaded to the database at the same time as uploaded the session. The attachments must be in the correct field names to be recognised, as detailed below.\u003c/p\u003e\n\n\u003cp\u003eThe request is expected to contain a structured document as follows:\u003c/p\u003e\n\n\u003cp\u003eJSON example:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026amp;#123;\n  \u0026quot;session\u0026quot;:\u0026amp;#123;\n    \u0026quot;uuid\u0026quot; : \u0026quot;12341234-12341234-1234-1234-123412341234\u0026quot;,\n    \u0026quot;unit_id\u0026quot; : \u0026quot;mydevice\u0026quot;,\n    \u0026quot;created\u0026quot; : 1234567890,\n    \u0026quot;saved\u0026quot; : 1234567890,\n    \u0026quot;data\u0026quot; : \u0026amp;#123;\n      \u0026quot;point1\u0026quot; : \u0026quot;value1\u0026quot;,\n      \u0026quot;point2\u0026quot; : \u0026quot;value2\u0026quot;,\n      \u0026quot;sketch1\u0026quot; : \u0026amp;#123; \u0026quot;rawData\u0026quot; : \u0026quot;base-64-data-goes-here\u0026quot; \u0026amp;#125;\n    \u0026amp;#125;\n  \u0026amp;#125;\n\u0026amp;#125;\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eFor a form post the fields would be named:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003esession[uuid]=12341234-12341234-1234-1234-123412341234\nsession[unit_id]=mydevice\nsession[created]=1234567890\nsession[saved]=1234567890\nsession[data][point1]=value1\nsession[data][point2]=value2\nsession[data][sketch1][rawData]=base-64-data-goes-here==\nsession[data][__timezone__]=36000\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eA successful call will return a JSON response with the session data in the result.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session[uuid]","full_name":"session[uuid]","description":"\n\u003cp\u003eThe UUID for the session. A random UUID will be created if none is supplied.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"session[unit_id]","full_name":"session[unit_id]","description":"\n\u003cp\u003eThe UnitID for the device that created the session.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"session[created]","full_name":"session[created]","description":"\n\u003cp\u003eThe unix timestamp for when the session was created. Defaults to the current time if not supplied\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session[saved]","full_name":"session[saved]","description":"\n\u003cp\u003eThe unix timestamp for when the session was saved. Defaults to the current time if not supplied\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session[data][\u003cpoint_name\u003e]","full_name":"session[data][\u003cpoint_name\u003e]","description":"\n\u003cp\u003eThe value for the point given by point_name. This can be a scalar value (string) or a hash with a rawData key for any small amount of embedded binary data. For attachments, this field will be an file uploaded in a mutipart form post.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/receive_raw_session","name":"receive_raw_session","apis":[{"api_url":"/api/v1/projects/:name/receive_raw_session","http_method":"POST","short_description":"Receive a single session and process it as if it came from a device.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/sessions/receive_raw_sessions","name":"receive_raw_sessions","apis":[{"api_url":"/api/v1/projects/:name/receive_raw_sessions","http_method":"POST","short_description":"Receive a batch of sessions and process them as if it came from a device.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/sessions/update","name":"update","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/:session_id","http_method":"PUT","short_description":"Update an existing session.","deprecated":null},{"api_url":"/api/v1/projects/:project_id/sessions","http_method":"PUT","short_description":"Update multiple existing sessions.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis api call creates a new session in the database. The existing session is modified and only the provided values are updated in the existing session. All other values are left unchanged. This call accepts the same request body content-types as the Session create (POST) action. Attachments are handled in the same way.\u003c/p\u003e\n\n\u003cp\u003eAny attachments uploaded via this api call will replace existing attachments, which will be deleted once the new attachment is saved to the database.\u003c/p\u003e\n\n\u003cp\u003eThis api call returns a \u003ccode\u003e404 Not Found\u003c/code\u003e if the session does not exist in the database.\u003c/p\u003e\n\n\u003cp\u003eA successful call will return a JSON response with the session data in the result.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe UUID for the session. A random UUID will be created if none is supplied.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"session[unit_id]","full_name":"session[unit_id]","description":"\n\u003cp\u003eThe UnitID for the device that created the session.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"session[saved]","full_name":"session[saved]","description":"\n\u003cp\u003eThe unix timestamp for when the session was saved. Defaults to the current time if not supplied\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session[data][\u003cpoint_name\u003e]","full_name":"session[data][\u003cpoint_name\u003e]","description":"\n\u003cp\u003eThe value for the point given by point_name. This can be a scalar value (string) or a hash with a rawData key for any small amount of embedded binary data. For attachments, this field will be an file uploaded in a mutipart form post.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"sessions","full_name":"sessions","description":"\n\u003cp\u003eAn array of sessions to update\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be an array of any type","expected_type":"array","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/destroy","name":"destroy","apis":[{"api_url":"/api/v1/projects/:project_id/session/:id","http_method":"DELETE","short_description":"Delete a session from the database","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe session will be deleted from the database, including any uploaded attachments.\u003c/p\u003e\n\n\u003cp\u003eThis api call will return a \u003ccode\u003e404 Not Found\u003c/code\u003e if the session does not exist.\u003c/p\u003e\n\n\u003cp\u003eOn a successful call, a standard JSON response will be returned with a result of \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project identifier\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe UUID of the session\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/send_to_device","name":"send_to_device","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/:session_id/deliver","http_method":"POST","short_description":"Send this session to a device","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe session will be sent to the device identified by its Unit ID. The session will remain in the database on the server. When the device sends the session back, the updated session will \u003cem\u003ereplace\u003c/em\u003e the record in the server database.\u003c/p\u003e\n\n\u003cp\u003eIf the device is connected, the session will be sent immediately. Otherwise the session will be queued and sent to the device when it next connects.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project identifier\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session_id","full_name":"session_id","description":"\n\u003cp\u003eThe UUID of the session\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"unit_id","full_name":"unit_id","description":"\n\u003cp\u003eThe Unit ID of the device that will receive the session.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"session_type","full_name":"session_type","description":"\n\u003cp\u003eDetermines if the original session or a new duplicate is sent. Options: ‘duplicate’ | ‘original’. Default: ‘original’\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"include_sub_sessions","full_name":"include_sub_sessions","description":"\n\u003cp\u003eDetermines if sub sessions (from sub project) will be sent as well. Options: true | false. Default: false\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/duplicate","name":"duplicate","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/duplicate","http_method":"POST","short_description":"Duplicate sessions","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe sessions will be duplicated together with their attachments a number of times, once by default. Based on the parameters the sub sessions from sub projects can be included in the duplication process or not.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project identifier\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"session_ids","full_name":"session_ids","description":"\n\u003cp\u003eThe UUIDs of the sessions\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"times_to_duplicate","full_name":"times_to_duplicate","description":"\n\u003cp\u003eDetermines how many times to duplicate the sessions. Default: 1\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"include_sub_sessions","full_name":"include_sub_sessions","description":"\n\u003cp\u003eDetermines if sub sessions (from sub projects) will be sent as well. Options: true | false. Default: false\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/subsessions_count","name":"subsessions_count","apis":[{"api_url":"/api/v1//projects/:project_id/sessions/subsessions_count","http_method":"GET","short_description":"Get count of subsessions for given session UUIDs","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a number.","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"uuids","full_name":"uuids","description":"\n\u003cp\u003eArray of session UUIDs to count subsessions for\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be an array of any type","expected_type":"array","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/sessions/batch","name":"batch","apis":[{"api_url":"/api/v1/projects/:project_id/sessions/batch","http_method":"POST","short_description":"Perform batch operations on sessions including create, update, delete, and restore across multiple projects","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis API endpoint allows batch operations on sessions across multiple projects including sub sessions.\u003c/p\u003e\n\n\u003cp\u003eThe request must group sessions by project ID using the following structure:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003esessionsToUpdate: Hash where keys are project IDs and values are arrays of sessions to update (data fields are merged with existing data)\u003c/li\u003e\n\n\u003cli\u003esessionsToAdd: Hash where keys are project IDs and values are arrays of sessions to create\u003c/li\u003e\n\n\u003cli\u003esessionsToDelete: Hash where keys are project IDs and values are arrays of sessions to delete\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eNote: For update operations, only the data fields you specify will be updated. Existing fields not included in the request will be preserved.\u003c/p\u003e\n\n\u003ch2 id=\"request_format\"\u003eRequest Format:\u003c/h2\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026amp;#123;\n  \u0026quot;sessionsToUpdate\u0026quot;: \u0026amp;#123;\n    \u0026quot;project_id\u0026quot;: [\n      \u0026amp;#123;\n        \u0026quot;uuid\u0026quot;: \u0026quot;existing-session-uuid\u0026quot;,\n        \u0026quot;data\u0026quot;: \u0026amp;#123; \u0026quot;field1\u0026quot;: \u0026quot;updated-value\u0026quot; \u0026amp;#125;,\n        \u0026quot;is_deleted\u0026quot;: false\n      \u0026amp;#125;\n    ]\n  \u0026amp;#125;,\n  \u0026quot;sessionsToAdd\u0026quot;: \u0026amp;#123;\n    \u0026quot;project_id\u0026quot;: [\n      \u0026amp;#123;\n        \u0026quot;uuid\u0026quot;: \u0026quot;new-session-uuid\u0026quot;, \n        \u0026quot;unit_id\u0026quot;: \u0026quot;device-1\u0026quot;,\n        \u0026quot;data\u0026quot;: \u0026amp;#123; \u0026quot;field1\u0026quot;: \u0026quot;value1\u0026quot; \u0026amp;#125;\n      \u0026amp;#125;\n    ]\n  \u0026amp;#125;,\n  \u0026quot;sessionsToDelete\u0026quot;: \u0026amp;#123;\n    \u0026quot;project_id\u0026quot;: [\n      \u0026amp;#123;\n        \u0026quot;uuid\u0026quot;: \u0026quot;session-to-delete\u0026quot;\n      \u0026amp;#125;\n    ]\n  \u0026amp;#125;,\n  \u0026quot;recalc\u0026quot;: false\n\u0026amp;#125;\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch2 id=\"example_with_multiple_projects\"\u003eExample with multiple projects:\u003c/h2\u003e\n\n\u003cpre\u003e\u003ccode\u003e\u0026amp;#123;\n  \u0026quot;sessionsToUpdate\u0026quot;: \u0026amp;#123;\n    \u0026quot;39\u0026quot;: [\n      \u0026amp;#123;\n        \u0026quot;uuid\u0026quot;: \u0026quot;f5888307-c837-4401-b907-e2d1d26aff8a\u0026quot;,\n        \u0026quot;data\u0026quot;: \u0026amp;#123; \u0026quot;jobnumber\u0026quot;: \u0026quot;3\u0026quot; \u0026amp;#125;\n      \u0026amp;#125;\n    ],\n    \u0026quot;38\u0026quot;: [\n      \u0026amp;#123;\n        \u0026quot;uuid\u0026quot;: \u0026quot;65ec3fb1-937a-45a1-bbe9-490c323f03bb\u0026quot;, \n        \u0026quot;data\u0026quot;: \u0026amp;#123; \u0026quot;jobnumber\u0026quot;: \u0026quot;3\u0026quot; \u0026amp;#125;\n      \u0026amp;#125;\n    ]\n  \u0026amp;#125;,\n  \u0026quot;recalc\u0026quot;: false\n\u0026amp;#125;\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eAuthentication: Use HTTP Basic Auth with username and password.\u003c/p\u003e\n\n\u003cp\u003eA successful call will return a JSON response with the results of each operation.\u003c/p\u003e\n","errors":[],"params":[{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project ID number\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"sessionsToUpdate","full_name":"sessionsToUpdate","description":"\n\u003cp\u003eHash where keys are project IDs and values are arrays of sessions to update\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]},{"name":"sessionsToAdd","full_name":"sessionsToAdd","description":"\n\u003cp\u003eHash where keys are project IDs and values are arrays of sessions to create\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]},{"name":"sessionsToDelete","full_name":"sessionsToDelete","description":"\n\u003cp\u003eHash where keys are project IDs and values are arrays of sessions to delete\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]},{"name":"source","full_name":"source","description":"\n\u003cp\u003eSource of the session operations\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"recalc","full_name":"recalc","description":"\n\u003cp\u003eWhether to recalculate session data\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Boolean","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"shared_user_roles":{"doc_url":"/api/docs/v1/shared_user_roles","api_url":"/api","name":"Shared user roles","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/shared_user_roles/index","name":"index","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"GET","short_description":"Lists all roles including standard and custom roles.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/custom","name":"custom","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"GET","short_description":"Lists all custom roles.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/standard","name":"standard","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"GET","short_description":"Lists all standard roles.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/show","name":"show","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"GET","short_description":"Retrieves the role.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/create","name":"create","apis":[{"api_url":"/api/v1/clients/:client_id/roles","http_method":"POST","short_description":"Create a new custom role for a client account.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"name","full_name":"name","description":"\n\u003cp\u003eThe name of the custom role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"description","full_name":"description","description":"\n\u003cp\u003eThe description for the custom role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"permissions","full_name":"permissions","description":"\n\u003cp\u003eHash of permissions. Only {“write”: true|false} is currently accepted\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/update","name":"update","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"PUT","short_description":"Updates the custom role for a client account","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"name","full_name":"name","description":"\n\u003cp\u003eThe name of the custom role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"description","full_name":"description","description":"\n\u003cp\u003eThe description for the custom role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"permissions","full_name":"permissions","description":"\n\u003cp\u003eHash of permissions. Only {“write”: true|false} is currently accepted\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Hash","expected_type":"hash","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/destroy","name":"destroy","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id","http_method":"DELETE","short_description":"Removes a custom role from the client account.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the custom role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/users_for_role","name":"users_for_role","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id/users","http_method":"GET","short_description":"Retrieves the users assigned to this role.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the role.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_user_roles/assign_or_unassign_users","name":"assign_or_unassign_users","apis":[{"api_url":"/api/v1/clients/:client_id/roles/:id/users","http_method":"PUT","short_description":"Add or remove users from this role.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"operation","full_name":"operation","description":"\n\u003cp\u003eThe operation to do: ‘add’|‘remove’\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"user_ids","full_name":"user_ids","description":"\n\u003cp\u003eArray of id’s corresponding to the users that will be added\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be an array of any type","expected_type":"array","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"shared_users":{"doc_url":"/api/docs/v1/shared_users","api_url":"/api","name":"Shared users","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/shared_users/show","name":"show","apis":[{"api_url":"/api/v1/clients/:client_id/shared_users/:id","http_method":"GET","short_description":"Retrieves the shared user account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRetrieves the shared user account.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the shared user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_users/get_by_email_address","name":"get_by_email_address","apis":[{"api_url":"/api/v1/clients/shared_user?email_address=:email_address","http_method":"GET","short_description":"Retrieves the shared user account using an email address.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRetrieves the shared user account using an email address.\u003c/p\u003e\n","errors":[],"params":[{"name":"email_address","full_name":"email_address","description":"\n\u003cp\u003eThe email address of the shared user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/shared_users/create","name":"create","apis":[{"api_url":"/api/v1/clients/:client_id/shared_users","http_method":"POST","short_description":"Register a new shared user for a client account.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"mail","full_name":"mail","description":"\n\u003cp\u003eThe email address and username for this primary user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"first_name","full_name":"first_name","description":"\n\u003cp\u003eThe name of primary contact for this new user account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"phone","full_name":"phone","description":"\n\u003cp\u003eThe contact number for the user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"password","full_name":"password","description":"\n\u003cp\u003eThe password for the new shared user. For security purposes, this password will not be retrievable once saved.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_users/update","name":"update","apis":[{"api_url":"/api/v1/clients/:client_id/shared_users/:id","http_method":"PUT","short_description":"Updates the shared user for a client account","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUpdates the shared user for a client account.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the shared user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"mail","full_name":"mail","description":"\n\u003cp\u003eThe email address and username for this primary user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"api_secret","full_name":"api_secret","description":"\n\u003cp\u003eThe api key for this user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"first_name","full_name":"first_name","description":"\n\u003cp\u003eThe name of primary contact for this new user account.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"phone","full_name":"phone","description":"\n\u003cp\u003eThe contact number for the user.\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/shared_users/destroy","name":"destroy","apis":[{"api_url":"/api/v1/clients/:client_id/shared_users/:id","http_method":"DELETE","short_description":"Removes a shared user from the client account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eRemoves a shared user from a client account.\u003c/p\u003e\n","errors":[],"params":[{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe ID of the client account.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe ID of the shared user.\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[""],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":{"admin_only":true}},"time":{"doc_url":"/api/docs/v1/time","api_url":"/api","name":"Time","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/time/show","name":"show","apis":[{"api_url":"/api/v1/time","http_method":"GET","short_description":"Get the current time according to the server.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThis method simply returns the time in the server. This is useful for:\u003c/p\u003e\n\n\u003col\u003e\n\u003cli\u003eEnsuring that we can actually connect to the server, and\u003c/li\u003e\n\n\u003cli\u003eMeasure the time difference between the Client and the Server so that this time delta can be compensated for in case the client clock is out by more than our allowable amount.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003cp\u003eAPI Authentication relies on the clock of the client making the request to be within a close enough margin to the clock in the server.\u003c/p\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null}],"headers":[],"custom_params":null},"ultradrop_files":{"doc_url":"/api/docs/v1/ultradrop_files","api_url":"/api","name":"Ultradrop files","short_description":null,"full_description":"\n\u003cp\u003eUltradrop Files are text files that can be used to insert data into an Ultradrop Point. These files are identified by their file name and can be shared across projects by configuring an ultradrop point to load data from the same ultradrop file.\u003c/p\u003e\n\n\u003cp\u003eUltradrop files when fetched via the API return a data record with the follow keys:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efilename\u003c/code\u003e - The unique filename for the ultradrop file.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003elength\u003c/code\u003e - File size in bytes.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003emd5\u003c/code\u003e - md5 encoded hash of the file.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone.txt\u0026quot;,\n  \u0026quot;length\u0026quot;: 6273,\n  \u0026quot;md5\u0026quot;: \u0026quot;1b2619e7b73e33c4d088eeae3bd06c70\u0026quot;\n}\u003c/code\u003e\u003c/pre\u003e\n","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/ultradrop_files/index","name":"index","apis":[{"api_url":"/api/v1/ultradrop_files","http_method":"GET","short_description":"Returns a list of ultradrop files that have been uploaded to the user's account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturns a list of uploaded ultradrop files in the user’s account.\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;result\u0026quot;: [\n      {\n        \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone2.txt\u0026quot;,\n        \u0026quot;length\u0026quot;: 6053,\n        \u0026quot;md5\u0026quot;: \u0026quot;55434271bcd0c7414dead7ba9ecbd914\u0026quot;\n      },\n      {\n        \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone3.txt\u0026quot;,\n        \u0026quot;length\u0026quot;: 6053,\n        \u0026quot;md5\u0026quot;: \u0026quot;55434271bcd0c7414dead7ba9ecbd914\u0026quot;\n      },\n      {\n        \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone.txt\u0026quot;,\n        \u0026quot;length\u0026quot;: 6053,\n        \u0026quot;md5\u0026quot;: \u0026quot;55434271bcd0c7414dead7ba9ecbd914\u0026quot;\n      }\n    ]\n  }\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/available","name":"available","apis":[{"api_url":"/api/v1/ultradrop_files/available","http_method":"GET","short_description":"Returns a list of ultradrop files that are associated with projects in the user's account.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturns a list of ultradrop files that are associated with projects in the user’s account.\u003c/p\u003e\n\n\u003cp\u003eThe filenames are for files that are referenced by one or more of the projects in the user’s account. Uploading a matching filename will update the resource that is used in each project that references the filename.\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;result\u0026quot;: [\n      \u0026quot;%PPC_PATH%\\Ultradrop\\hotels_by_zone.txt\u0026quot;,\n      \u0026quot;%PPC_PATH%\\Ultradrop\\cities.txt\u0026quot;\n    ]\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/count","name":"count","apis":[{"api_url":"/api/v1/ultradrop_files/count","http_method":"GET","short_description":"Returns the number of ultradrop files that have been uploaded.","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eReturns the number of ultradrop files that have been uploaded.\u003c/p\u003e\n","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/show","name":"show","apis":[{"api_url":"/api/v1/ultradrop_files/:id","http_method":"GET","short_description":"Returns a hash of attributes for the ultradrop file","deprecated":null}],"formats":null,"full_description":"\n\u003cpre\u003e\u003ccode\u003eFetch the definition of an Ultradrop File including the following attributes:\u003c/code\u003e\u003c/pre\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eid\u003c/code\u003e - Unique identifier for this ultradrop file.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003efilename\u003c/code\u003e - The unique filename for the ultradrop file.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003elength\u003c/code\u003e - File size in bytes.\u003c/li\u003e\n\n\u003cli\u003e\u003ccode\u003emd5\u003c/code\u003e - md5 encoded hash of the file.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eExample JSON object:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n  \u0026quot;id\u0026quot;: \u0026quot;1234\u0026quot;,\n  \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone.txt\u0026quot;,\n  \u0026quot;length\u0026quot;: 6273,\n  \u0026quot;md5\u0026quot;: \u0026quot;1b2619e7b73e33c4d088eeae3bd06c70\u0026quot;\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe unique id of the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/download","name":"download","apis":[{"api_url":"/api/v1/ultradrop_files/:id/download","http_method":"GET","short_description":"Download the content of the ultradrop file using the file's id","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eFetch an ultradrop file from the database using the file’s id.\u003c/p\u003e\n\n\u003cp\u003eIf a file is found with the given filename, the contents of the ultradrop file will be the result.\u003c/p\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe unique id for the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/download_using_filename","name":"download_using_filename","apis":[{"api_url":"/api/v1/ultradrop_files/download?filename=:filename","http_method":"GET","short_description":"Download the content of the ultradrop file using the filename","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eFetch an ultradrop file from the database using the file’s filename. Since these filenames often contain characters outside the ASCII set, the filename will have to be converted into a valid ASCII format using URL encoding.\u003c/p\u003e\n\n\u003cp\u003eIf a file is found with the given filename, the contents of the ultradrop file will be the result.\u003c/p\u003e\n","errors":[],"params":[{"name":"filename","full_name":"filename","description":"\n\u003cp\u003eThe URI Encoded filename of the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/update","name":"update","apis":[{"api_url":"/api/v1/ultradrop_files/upload?filename=:filename","http_method":"PUT","short_description":"Upload a new .txt file for an available ultradrop file","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eUpload an ultradrop file to the database using the file’s filename. Since these filenames often contain characters outside the ASCII set, the filename will have to be converted into a valid ASCII format using URL encoding.\u003c/p\u003e\n\n\u003cp\u003eOn a successful call, a standard JSON response will be returned with the a json result matching the format:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;result\u0026quot;: {\n      \u0026quot;filename\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone.txt\u0026quot;,\n      \u0026quot;length\u0026quot;: 6053,\n      \u0026quot;md5\u0026quot;: \u0026quot;55434271bcd0c7414dead7ba9ecbd914\u0026quot;\n    }\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"filename","full_name":"filename","description":"\n\u003cp\u003eThe URI Encoded filename of the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/destroy","name":"destroy","apis":[{"api_url":"/api/v1/ultradrop_files/:id","http_method":"DELETE","short_description":"Delete an ultradrop file from the database","deprecated":null}],"formats":null,"full_description":"\n\u003cp\u003eThe ultradrop file will be deleted from the database.\u003c/p\u003e\n\n\u003cp\u003eOn a successful call, a standard JSON response will be returned with the a json result matching the format:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003e{\n    \u0026quot;status\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;message\u0026quot;: \u0026quot;success\u0026quot;,\n    \u0026quot;result\u0026quot;: \u0026quot;%PPC_PATH%\\ultradrop\\hotels_by_zone.txt\u0026quot;\n}\u003c/code\u003e\u003c/pre\u003e\n","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe unique id for the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":null},{"doc_url":"/api/docs/v1/ultradrop_files/xml_schema","name":"xml_schema","apis":[{"api_url":"/api/v1/ultradrop_files/:id/xml_schema","http_method":"GET","short_description":"Get the XML Schema for the specified Ultradrop File using the id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe unique id for the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/ultradrop_files/xml_data_set","name":"xml_data_set","apis":[{"api_url":"/api/v1/ultradrop_files/:id/xml_data_set","http_method":"GET","short_description":"Get the XML Schema Dataset for the specified Ultradrop File using the id.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"id","full_name":"id","description":"\n\u003cp\u003eThe unique id for the ultradrop file\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":null},"user_tracked_events":{"doc_url":"/api/docs/v1/user_tracked_events","api_url":"/api","name":"User tracked events","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/user_tracked_events/show","name":"show","apis":[{"api_url":"/api/v1/user_tracked_events/:id","http_method":"GET","short_description":"Get a user tracked event.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/user_tracked_events/event","name":"event","apis":[{"api_url":"/api/v1/user_tracked_events/event","http_method":"GET","short_description":"Get a user tracked event.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"event_name","full_name":"event_name","description":"\n\u003cp\u003eName of the event\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"event_action","full_name":"event_action","description":"\n\u003cp\u003eAction of the event\u003c/p\u003e\n","required":true,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/user_tracked_events/create","name":"create","apis":[{"api_url":"/api/v1/user_tracked_events/event","http_method":"POST","short_description":"Add a user tracked event.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}},{"doc_url":"/api/docs/v1/user_tracked_events/destroy","name":"destroy","apis":[{"api_url":"/api/v1/users/:user_id/user_tracked_events/:id","http_method":"DELETE","short_description":"Remove a user tracked event.","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}},"web_hook_simulator":{"doc_url":"/api/docs/v1/web_hook_simulator","api_url":"/api","name":"Web hook simulator","short_description":null,"full_description":"","version":"v1","formats":null,"metadata":null,"methods":[{"doc_url":"/api/docs/v1/web_hook_simulator/show","name":"show","apis":[{"api_url":"/api/v1/web_hook","http_method":"POST","short_description":"Returns the JSON payload of a web hook trigger","deprecated":null}],"formats":null,"full_description":"","errors":[],"params":[{"name":"session_id","full_name":"session_id","description":"\n\u003cp\u003eThe UUID of the session\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"project_id","full_name":"project_id","description":"\n\u003cp\u003eThe project identifier\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"client_id","full_name":"client_id","description":"\n\u003cp\u003eThe account identifier\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]},{"name":"event_type","full_name":"event_type","description":"\n\u003cp\u003eThe event that triggered the web hook\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a String","expected_type":"string","metadata":null,"show":true,"validations":[]},{"name":"event_time","full_name":"event_time","description":"\n\u003cp\u003eThe time the event occurred in UTC Unix Timestamp with millisecond precision\u003c/p\u003e\n","required":false,"allow_nil":false,"allow_blank":false,"validator":"Must be a Integer","expected_type":"numeric","metadata":null,"show":true,"validations":[]}],"examples":[],"metadata":null,"see":[],"headers":[],"show":true,"custom_params":{"admin_only":true}}],"headers":[],"custom_params":{"admin_only":true}}}}}