NAV Navbar
shell ruby
  • Introduction
  • Authentication
  • Answers
  • Locations
  • Lists
  • Task Assigns
  • Notifications
  • Files
  • Webhooks
  • Errors
  • Introduction

    Welcome to the DataScope API! You can use our API to access DataScope API endpoints, which can get information collected from the DataScope platform and App.

    We have language bindings in Shell and Ruby! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

    Authentication

    DataScope uses API keys to allow access to the API. You can register a new DataScope API key at our developer portal.

    alt text

    DataScope expects for the API key to be included in all API requests to the server in a header that looks like the following:

    Authorization: b1cd93mfls9fdmfkadn23

    Answers

    Get All Answers

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/v2/answers'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/v2/answers"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "form_name":"Example Form",
          "form_state":"Accepted",
          "user_name":"Example User",
          "user_identifier":"user@email.com",
          "code":"2342",
          "form_id":432,
          "created_at":"2018-04-16T16:52:05.000Z",
          "form_answer_id":257189,
          "latitude":-33.398803,
          "longitude":-70.559834,
          "[question_name1]": "[question_value1]",
          "[question_name2]": "[question_value2]",
          "[question_name3]": "[question_value3]"
       }
    ]
    
    

    This endpoint retrieves last answers (Limit 200)

    HTTP Request

    GET https://www.mydatascope.com/api/external/v2/answers

    Query Parameters

    Parameter Default Description
    form_id blank If set, only get values of one form. This ID is in the URL at the moment of modify one form. eg. https://mydatascope.com/task_forms/XXXX/edit
    user_id blank If set, get values of only one user
    start last 7 days set the start date range
    end today set the end date range (Max range is 90 days)
    location_id blank set the answers of onlye one location
    date_modified false Bring forms by modification date or just new ones
    limit 200 Number of submission, default and max is 200
    offset 0 pagination to bring next 200 submissions in some date range

    Output Parameter

    Parameter Type Description
    form_code String Public identifier of the form answer.
    form_state String Last status of the form answer.
    form_id integer Internal code of the form, fixed to all answers of that form.
    form_answer_id Integer Internal code of the form answer.
    form_name String Name of the form.
    user_name String Name of the user.
    created_at Date When the form was received.
    latitude Float Latitude where the form was answered.
    longitude Float Longitude where the form was answered.
    question_name (String, Date, Number) String with each question name and value.

    Get All Answers with metadata

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/answers'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/answers"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "answers":[  
             {  
                "question_name":"Client Name", 
                "name":"Client", 
                "question_value":"Company 1",
                "question_type":"select_metadata",
                "subform_index":0,
                "metadata_type": "locations",
                "metadata_id": 4234,
                "question_id":1, 
                "form_code":"2342", 
                "form_state": "Accepted",
                "form_id":34543,
                "form_answer_id":432432
             }
          ],
          "form_name":"Example Form",
          "form_state":"Accepted",
          "user_name":"Example User",
          "code":"2342",
          "form_id":432,
          "created_at":"2018-04-16T16:52:05.000Z",
          "form_answer_id":257189,
          "latitude":-33.398803,
          "longitude":-70.559834
          "assign_id":"A32",
          "assign_internal_id":"4322",
          "assign_location_name":"Client 1 Factory A",
          "assign_location_description":"description Client 1",
          "assign_location_code":"client1",
       }
    ]
    
    

    This endpoint retrieves last answers (Limit 600)

    HTTP Request

    GET https://www.mydatascope.com/api/external/answers

    Query Parameters

    Parameter Default Description
    form_id blank If set, only get values of one form
    user_id blank If set, get values of only one user
    start last 7 days set the start date range
    end today set the end date range
    location_id blank set the answers of onlye one location

    Output Parameter

    Parameter Type Description
    answers Array array with all the question of the specific form answer.
    question_name String The name of the grouped question.
    name String Name of the specific Question.
    question_type String Type of the question.
    subform_index Integer If use a subform indicate the iteration inside the subform.
    metadata_id Integer Identifier of the metadata object of the List
    metadata_type String Identifier of the list of metadata (location, products, and more)
    question_id Integer Internal identifier of the question.
    form_code String Public identifier of the form answer.
    form_state String Last status of the form answer.
    form_id integer Internal code of the form, fixed to all answers of that form.
    form_answer_id Integer Internal code of the form answer.
    form_name String Name of the form.
    user_name String Name of the user.
    created_at Datetime When the form was received.
    latitude Float Latitude where the form was answered.
    longitude Floar Longitude where the form was answered.
    finished Boolean Identify if synchronization process finished.
    updated_at Datetime Last date and time When the form was updated
    assign_id Integer Assign ID generated by user
    assign_internal_id Integer Assign ID generated by system
    assign_location_name String Name of the location of the assigned Task
    assign_location_description String Description of the location assigned
    assign_location_code"  String  Code of the location assigned

    Change Answer

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/change_form_answer'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/change_form_answer"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "status": "ok",
          "form_answer": {
            "id": "4325235",
            "form_id": "6344234"
          }
       }
    ]
    
    

    HTTP Request

    POST https://www.mydatascope.com/api/external/change_form_answer

    Query Parameters

    Parameter Description
    form_name name of ID of the form
    form_code Code of the response
    question_name Name of the question to change
    question_value Value of the question to change
    subform_index Number to specify the subform index (Starting from 1). Leave blank if question it's not inside subform*.

    Locations

    Get All Locations

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/locations'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/locations"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
        "id":432432,
        "name":"Client ABC",
        "description":"Company ABC description",
        "code":"534534",
        "address":"1600 Amphitheatre Parkway, Mountain View, CA",
        "city":"SF",
        "country":"US",
        "latitude":37.395013,
        "longitude":-122.084374,
        "region":"CA",
        "phone":"4324234",
        "company_code":"432432",
        "company_name":"Client ABC S.A" 
       }
    ]
    
    

    This endpoint retrieves all locations

    HTTP Request

    GET https://www.mydatascope.com/api/external/locations

    Output Parameter

    Parameter Type Description
    id Integer Internal identifier of the location
    name String Name of the location
    description String Description of the location
    code String Code of the location
    address Integer Address of the location
    city Integer City
    country String Country
    latitude String Latitude GPS Coordinates
    longitude integer Longitude GPS Coordinates
    region Integer Region
    phone String Phone
    company_code String Code of the company
    company_name Date Name of the Company

    Create a Location

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/locations'
    response = RestClient.post url, {
      location: {
        name: "Test Location",
        description: "This is a test location created by API",
        code: "LOC_TEST01",
        company_code: "DSCODE_1",
        company_name: "Datascope Home",
        address: "P. Sherman, 42 Wallaby Way",
        city: "Sydney",
        country: "Australia",
        latitude: -33.673992,
        longitude: 151.285829,
        phone: "+18888888",
        email: "location@test.com"
      }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/locations"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "location": {
          "name": "Test Location",
          "description": "This is a test location created by API",
          "code": "LOC_TEST01",
          "company_code": "DSCODE_1",
          "company_name": "Datascope Home",
          "address": "P. Sherman, 42 Wallaby Way",
          "city": "Sydney",
          "country": "Australia",
          "latitude": -33.673992,
          "longitude": 151.285829,
          "phone": "+18888888",
          "email": "location@test.com"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": "123456",
        "name": "Test Location",
        "description": "This is a test location created by API",
        "code": "LOC_TEST01",
        "company_code": "DSCODE_1",
        "company_name": "Datascope Home",
        "address": "P. Sherman, 42 Wallaby Way",
        "city": "Sydney",
        "country": "Australia",
        "latitude": -33.673992,
        "longitude": 151.285829,
        "phone": "+18888888",
        "email": "location@test.com"
    }
    
    

    This endpoint create a location

    HTTP Request

    POST https://www.mydatascope.com/api/external/locations

    Input Parameter

    Parameter Type Description
    name String Name of the location
    description String Description of the location
    code String Code of the location
    address Integer Address of the location
    city Integer City
    country String Country
    latitude String Latitude GPS Coordinates
    longitude integer Longitude GPS Coordinates
    phone String Phone
    company_code String Code of the company
    company_name Date Name of the Company
    email String Email of the Company

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Update a Location

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/locations/123456'
    response = RestClient.post url, {
        location: {
          name: "Test Location",
          description: "This is a test location created by API",
          code: "LOC_TEST01",
          company_code: "DSCODE_1",
          company_name: "Datascope Home",
          address: "P. Sherman, 42 Wallaby Way",
          city: "Sydney",
          country: "Australia",
          latitude: -33.673992,
          longitude: 151.285829,
          phone: "+18888888",
          email: "location@test.com"
        }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/locations/123456"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "location": {
          "name": "Test Location",
          "description": "This is a test location created by API",
          "code": "LOC_TEST01",
          "company_code": "DSCODE_1",
          "company_name": "Datascope Home",
          "address": "P. Sherman, 42 Wallaby Way",
          "city": "Sydney",
          "country": "Australia",
          "latitude": -33.673992,
          "longitude": 151.285829,
          "phone": "+18888888",
          "email": "location@test.com"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": "123456",
        "name": "Test Location",
        "description": "This is a test location created by API",
        "code": "LOC_TEST01",
        "company_code": "DSCODE_1",
        "company_name": "Datascope Home",
        "address": "P. Sherman, 42 Wallaby Way",
        "city": "Sydney",
        "country": "Australia",
        "latitude": -33.673992,
        "longitude": 151.285829,
        "phone": "+18888888",
        "email": "location@test.com"
    }
    
    

    This endpoint updates a location

    HTTP Request

    POST https://www.mydatascope.com/api/external/locations

    Input Parameter

    Parameter Type Description
    name String Name of the location
    description String Description of the location
    code String Code of the location
    address Integer Address of the location
    city Integer City
    country String Country
    latitude String Latitude GPS Coordinates
    longitude integer Longitude GPS Coordinates
    phone String Phone
    company_code String Code of the company
    company_name Date Name of the Company
    email String Email of the Company

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Lists

    Get All List elements

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_objects'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => { metadata_type: 'products_examples'}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_objects"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "id":505680,
          "name":"Product 1",
          "description":"Product Description",
          "attribute1":"Atribute example 1",
          "attribute2":"Attribute example 2",
          "list_id":424324,
          "account_id":4234234,
          "code":"prod0",
          "created_at":"2015-12-03T17:48:47.000-02:00",
          "updated_at":"2015-12-03T17:48:47.000-02:00"
       },
       {  
          "id":505689,
          "name":"Product 2",
          "description":"Product Description",
          "attribute1":"Atribute example 1",
          "attribute2":"Attribute example 2",
          "list_id":424324,
          "account_id":4234234,
          "code":"prod9",
          "created_at":"2018-12-03T17:48:47.000-02:00",
          "updated_at":"2018-12-03T17:48:47.000-02:00"
       }
    ]
    
    
    

    This endpoint retrieves all list items of a specific list

    HTTP Request

    GET https://www.mydatascope.com/api/external/metadata_objects

    Query Parameters

    Parameter Default Description
    metadata_type blank Internal code to identify the list (products, locations and more)

    Output Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    attribute1 String Custom attribute of the element of the list
    attribute2 String Custom attribute of the element of the list
    created_at Datetime Date when the list element was created
    updated_at Datetime Date when the list element was updated

    Get an element of the list

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_object'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => { metadata_type: 'products_examples', metadata_id: 4324324}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_object"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    {  
      "id":505680,
      "name":"Product 1",
      "description":"Product Description",
      "attribute1":"Atribute example 1",
      "attribute2":"Attribute example 2",
      "list_id":424324,
      "account_id":4234234,
      "code":"prod0",
      "created_at":"2015-12-03T17:48:47.000-02:00",
      "updated_at":"2015-12-03T17:48:47.000-02:00"
    }
    
    
    

    This endpoint retrieves a specific element of the list

    HTTP Request

    GET https://www.mydatascope.com/api/external/metadata_object

    Query Parameters

    Parameter Default Description
    metadata_type blank Internal code to identify the list (products, locations and more)
    metadata_id blank Internal identifier of the element of the list

    Output Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    attribute1 String Custom attribute of the element of the list
    attribute2 String Custom attribute of the element of the list
    created_at Datetime Date when the list element was created
    updated_at Datetime Date when the list element was updated

    Create a List Element

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_object?metadata_type=LIST_TEST2'
    response = RestClient.post url, {
      list_object: {
        name: "Test List Object 2",
        description: "This is a test Object created by API",
        code: "LIST_OBJECT_TEST2",
        attribute1: "ATTR1",
        attribute2: "ATTR2"
      }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_object?metadata_type=LIST_TEST2"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "list_object": {
          "name": "Test List Object 2",
          "description": "This is a test Object created by API",
          "code": "LIST_OBJECT_TEST2",
          "attribute1": "ATTR1",
          "attribute2": "ATTR2"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": 123456,
        "name": "Test List Object 2",
        "description": "This is a test Object created by API",
        "code": "LIST_OBJECT_TEST2",
        "created_at": "2024-09-05T06:31:59.000-03:00",
        "updated_at": "2024-09-05T06:31:59.000-03:00",
        "metadata_type": "LIST_TEST2"
    }
    
    

    This endpoint creates a list element

    HTTP Request

    POST https://www.mydatascope.com/api/external/metadata_object

    Query params:

    Parameter Type Description
    metadata_type blank Internal code to identify the list (products, and more*)

    *For locations objects use locations API

    Input Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    code String Internal code of the element of the list
    attribute1 String Custom attribute of the element of the list
    attribute2 String Custom attribute of the element of the list

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Update a List Element

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_object/123456'
    response = RestClient.post url, {
      list_object: {
        name: "Test List Object 2",
        description: "This is a test Object created by API",
        code: "LIST_OBJECT_TEST2",
        attribute1: "ATTR1",
        attribute2: "ATTR2"
      }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_object/123456"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "list_object": {
          "name": "Test List Object 2",
          "description": "This is a test Object created by API",
          "code": "LIST_OBJECT_TEST2",
          "attribute1": "ATTR1",
          "attribute2": "ATTR2"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": 123456,
        "name": "Test List Object 2",
        "description": "This is a test Object created by API",
        "code": "LIST_OBJECT_TEST2",
        "created_at": "2024-09-05T06:31:59.000-03:00",
        "updated_at": "2024-09-05T06:31:59.000-03:00",
        "metadata_type": "LIST_TEST2"
    }
    
    

    This endpoint updates a list object

    HTTP Request

    POST https://www.mydatascope.com/api/external/metadata_object/{id}

    Input Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    code String Internal code of the element of the list
    attribute1 String Custom attribute of the element of the list
    attribute2 String Custom attribute of the element of the list

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Create a empty List

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_types'
    response = RestClient.post url, {
      list: {
        name: "Test List",
        description: "This is a test location created by API",
        code: "LIST_TEST",
        list_type: "standard"
      }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_types"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "list": {
          "name": "Test List",
          "description": "This is a test location created by API",
          "code": "LIST_TEST",
          "list_type": "standard"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": 123456,
        "name": "Test List",
        "description": "This is a test location created by API",
        "code": "LIST_TEST",
        "list_type": "standard"
    }
    
    

    This endpoint creates a empty list

    HTTP Request

    POST https://www.mydatascope.com/api/external/metadata_types

    Input Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    code String Internal code of the element of the list
    list_type String Valid values: ("standard", "percent", "price")

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Update a List

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_types/123456'
    response = RestClient.post url, {
      list: {
        name: "Test List",
        description: "This is a test location created by API",
        code: "LIST_TEST",
        list_type: "standard"
      }
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_types/123456"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "list": {
          "name": "Test List",
          "description": "This is a test location created by API",
          "code": "LIST_TEST",
          "list_type": "standard"
        }
      }'
    

    When successfull the above command returns JSON structured like this, you can check the description of each parameter below:

    {
        "id": 123456,
        "name": "Test List",
        "description": "This is a test location created by API",
        "code": "LIST_TEST",
        "list_type": "standard"
    }
    
    

    This endpoint updates a list

    HTTP Request

    POST https://www.mydatascope.com/api/external/metadata_types/{id}

    Input Parameter

    Parameter Type Description
    name String Name of the element of the list
    description String Description of the element of the list
    code String Internal code of the element of the list
    list_type String Valid values: ("standard", "percent", "price")

    Return Codes:

    Code Description
    201 Successfull
    403 Forbidden
    422 Wrong parameters, check documentation

    Bulk Update List Elements

    This endpoint allows bulk updating of metadata list objects, with soft deletion of objects not in the incoming list. If an object with an existing code is provided, it will be updated. If a new code is used, the object will be created.

    Warning: This operation will delete all existing objects for the specified metadata_type and replace them with the new objects provided. This endpoint is currently in an experimental stage. Changes may be made to functionality or structure as we continue testing and refining its implementation.

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/metadata_objects/bulk_update'
    response = RestClient.post url, {
      metadata_type: "DATASCOPE_SAFETY_LIST_CODE",
      list_objects: [
        {
          code: "PPE001",
          name: "Helmet",
          description: "Safety helmet in good condition",
          attribute1: "Mandatory",
          attribute2: "Daily check"
        },
        {
          code: "PPE002",
          name: "Boots",
          description: "Steel-toed safety boots",
          attribute1: "Mandatory",
          attribute2: "Check for wear"
        },
        {
          code: "PPE003",
          name: "Glasses",
          description: "Safety glasses with side shields",
          attribute1: "Mandatory",
          attribute2: "Clean daily"
        }
      ]
    }.to_json, {
     :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/metadata_objects/bulk_update"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
      -X POST
      -d '{
        "metadata_type": "DATASCOPE_SAFETY_LIST_CODE",
        "list_objects": [
          {
            "code": "PPE001",
            "name": "Helmet",
            "description": "Safety helmet in good condition",
            "attribute1": "Mandatory",
            "attribute2": "Daily check"
          },
          {
            "code": "PPE002",
            "name": "Boots",
            "description": "Steel-toed safety boots",
            "attribute1": "Mandatory",
            "attribute2": "Check for wear"
          },
          {
            "code": "PPE003",
            "name": "Glasses",
            "description": "Safety glasses with side shields",
            "attribute1": "Mandatory",
            "attribute2": "Clean daily"
          }
        ]
      }'
    

    When successful, the above command returns JSON structured like this:

    {
      "id": 1,
      "name": "Safety List",
      "description": "List for safety equipment",
      "code": "DATASCOPE_SAFETY_LIST_CODE",
      "list_type": "safety",
      "length": 3
    }
    

    HTTP Request

    POST https://www.mydatascope.com/api/external/metadata_objects/bulk_update

    Input Parameters

    Parameter Type Description
    metadata_type String Internal code to identify the list (must not be "locations")
    list_objects Array Array of objects to be created or updated

    List Object Structure

    Each object in the list_objects array should have the following structure:

    Parameter Type Description
    code String Internal code of the list element
    name String Name of the list element
    description String Description of the list element
    attribute1 String Custom attribute of the list element
    attribute2 String Custom attribute of the list element

    Return Codes

    Code Description
    200 Successful
    400 Bad Request if metadata_type is locations
    403 Forbidden
    422 Wrong parameters, check documentation
    500 Internal Server Error

    Response

    The response includes:

    Field Type Description
    id Integer ID of the updated list
    name String Name of the updated list
    description String Description of the updated list
    code String Code for the updated list
    list_type String Type of the list
    length Integer Number of active list objects

    Task Assigns

    Create Task Assign

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/assign_task'
    response = RestClient.post url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => {}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/assign_task"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
        "form_id":432432,
        "user_id": "user1@email.com",
        "date":"2021-05-10 15:00",
        "l_code":"l25",
        "task_instruction":"",
        "gap":"5"
       }
    ]
    
    

    HTTP Request

    POST https://www.mydatascope.com/api/external/assign_task

    Query Parameters

    Parameter Type Description
    form_id Integer Internal identifier of the Form. ID in the URL https://www.mydatascope.com/task_forms/[ID]/edit
    user_id String User Email
    date Datetime Date of the assigned Task (YYY-mm-dd HH:MM)
    l_code String Code of the Location
    location_name String Name of the location. Only needed if need to create or update
    location_address String Address of the Location
    l_phone String Phone of the Location
    l_email String Email of the Location
    c_name String Company Name of the location
    c_code String Company tax id of the location
    latitude String Latitude of the location
    longitude String Longitude of the location
    task_instruction String Instruction of the task
    gap Integer Hours to perform task
    code String Code to identify the task

    Notifications

    List Last notifications

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/notifications'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => { start: '10/12/2019', end: '30/12/2019'}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/notifications"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "id":2345,
          "type":"PDF",
          "url":"https://www.mydatascope.com/pdf_url_example",
          "form_name":"Form Name",
          "form_code":"25",
          "user":"user@email.com",
          "created_at":"2019-12-03T17:48:47.000-02:00"
       }]
    
    
    

    This endpoint retrieves all list items of a specific list

    HTTP Request

    GET https://www.mydatascope.com/api/external/notifications

    Query Parameters

    Parameter Default Description
    start last 7 days set the start date range
    end today set the end date range

    Output Parameter

    Parameter Type Description
    id String Identifier of the notification
    type String Type of notification: PDF or Excel
    url String URL of the notified file
    form_name String Name of the form
    form_code String Code of the form
    user String Name of the user
    created_at Datetime Date when the list element was created
    updated_at Datetime Date when the list element was updated

    Files

    List Last generated files

    require 'rest-client'
    require 'json'
    
    url = 'https://www.mydatascope.com/api/external/files'
    response = RestClient.get url, {
    :Authorization => 'b1cd93mfls9fdmfkadn23',
     :params => { start: '10/12/2019', end: '30/12/2019'}
    }
    JSON.parse(response)
    
    curl "https://www.mydatascope.com/api/external/files"
      -H "Authorization: b1cd93mfls9fdmfkadn23"
    

    The above command returns JSON structured like this, you can check the description of each parameter below:

    [  
       {  
          "id":2345,
          "type":"PDF",
          "url":"https://www.mydatascope.com/pdf_url_example",
          "form_name":"Form Name",
          "form_code":"25",
          "user":"user@email.com"
       }]
    
    
    

    This endpoint retrieves all list items of a specific list

    HTTP Request

    GET https://www.mydatascope.com/api/external/files

    Query Parameters

    Parameter Default Description
    start last 7 days set the start date range
    end today set the end date range

    Output Parameter

    Parameter Type Description
    id String Identifier of the notification
    type String Type of notification: PDF or Excel
    url String URL of the notified file
    form_name String Name of the form
    form_code String Code of the form
    user String Name of the user

    Webhooks

    Sometimes people call webhooks reverse APIs, but perhaps more accurately a webhook lets you skip a step. With most APIs there’s a request followed by a response. No request is required for a webhook, it just sends the data when it’s available.

    To use a webhook, you register a URL with the company providing the service. That URL is a place within your application that will accept the data and do something with it. In some cases, you can tell the provider the situations when you’d like to receive data. Whenever there’s something new, the webhook will send it to your URL.

    DataScope Webhook notifications are sent in an HTTP POST request, and their contents (containing the response data) are in JSON format.

    Configuration

    To configure the webhook you need to go to the Integrations section and then Webhooks and click on New Webhook.

    New Webhook

    Output

    The webhook will return a JSON with this structure:

    [{
      "form_name": "[Form Name] (String)",
      "code": "[Code Form ID] (String)",
      "latitude": "[latitude] (Float)",
      "longitude": "[longitude] (Float)",
      "[question_name][question_id]": {
        "name": "[Question name] (String)",
        "label": "[Section Name] (String)",
        "row" "[Nº repeatable field] (Integer) Default: null",
        "value": "[Value of the answer] (String)",
        "type": "[Type of question]*",
        "id": "[Internal ID of the question] (Integer)"
      }
    }]
    

    Errors

    The DataScope API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong.
    403 Forbidden -- The DataScope requested is hidden for administrators only.
    404 Not Found -- The specified request could not be found.
    405 Method Not Allowed -- You tried to access with an invalid method.
    406 Not Acceptable -- You requested a format that isn't json.
    429 Too Many Requests -- You're requesting too much! Slow down!
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.