Retrieve details about a lab instance
    • 15 Aug 2024
    • 14 Minutes to read

    Retrieve details about a lab instance


    Article summary

    Get
    /details

    The Details command retrieves detailed information about a specified lab instance.

    Security
    API Key
    Header parameter nameapi_key

    All methods require an API key, which must be obtained from Skillable. This key is used by Skillable to validate your account. The key can be passed as an HTTP request header with the header name "api_key".

    Query parameters
    labinstanceid
    integer (int64) Required

    The ID of the lab instance.

    Example360701
    Responses
    200

    OK Response.

    Example of the details returned from a specific lab instance
    {
      "Id": 360701,
      "LabProfileId": 18100,
      "LabProfileName": "01: Launch/Details Call",
      "SeriesId": 10702,
      "SeriesName": "API Examples",
      "UserId": "11",
      "UserFirstName": "Chad",
      "UserLastName": "S",
      "ClassId": null,
      "ClassName": null,
      "Start": 1603295589,
      "StartTime": "/Date(1603295589000)/",
      "Expires": 1603299334,
      "ExpiresTime": "/Date(1603299334000)/",
      "End": 1603295793,
      "EndTime": "/Date(1603295793000)/",
      "LastActivity": 1603295787,
      "LastActivityTime": "/Date(1603295787000)/",
      "LastSave": null,
      "LastSaveTime": null,
      "SaveExpires": null,
      "SaveExpiresTime": null,
      "State": "Tearing Down",
      "CompletionStatus": "Complete",
      "PoolMemberName": null,
      "LabHostId": 111,
      "LabHostName": "LOD-HV03",
      "DatacenterId": 4,
      "DatacenterName": "LOD-East",
      "DeliveryRegionId": 1,
      "DeliveryRegionName": "Default",
      "PlatformId": 2,
      "LastSaveTriggerType": null,
      "TimeInSession": 204,
      "TotalRunTime": 204,
      "TimeRemaining": 0,
      "InstructorName": null,
      "StartupDuration": 145,
      "Errors": [],
      "Snapshots": [],
      "Sessions": [
        {
          "Start": 1603295589,
          "StartTime": "/Date(1603295589000)/",
          "End": 1603295793,
          "EndTime": "/Date(1603295793000)/"
        }
      ],
      "Notes": [
        {
          "Time": 1603295793,
          "TimeValue": "/Date(1603295793000)/",
          "Title": "This environment has been submitted for grading and can no longer be accessed.",
          "Text": "Submitted for scoring from the lab console by the student."
        }
      ],
      "HasContent": true,
      "Task": null,
      "Exercise": null,
      "NumTasks": 0,
      "NumCompletedTasks": 0,
      "TaskCompletePercent": 100,
      "MonitorUrl": null,
      "DetailsUrl": "https://labondemand.com/LabInstance/360701",
      "RemoteController": "HTML5",
      "Tag": null,
      "BrowserUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36 Edg/86.0.622.48",
      "LastLatency": 35,
      "ExamPassed": true,
      "ExamScore": 5,
      "ExamMaxPossibleScore": 5,
      "ExamPassingScore": 2,
      "ExamScoredById": null,
      "ExamScoredByName": null,
      "ExamDetails": null,
      "ExamScoredDate": 1603295793,
      "ExamScoredTime": "/Date(1603295793000)/",
      "IsExam": true,
      "IpAddress": "198.199.209.76",
      "Country": "United States of America",
      "Region": "Florida",
      "City": "Lakeland",
      "Latitude": 28.03947,
      "Longitude": -81.9498,
      "PublicIpAddresses": [],
      "CloudCredentials": [
        {
          "PropertiesJson": "{  \"Username\": \"Username2\",  \"Password\": \"Password2\"}",
          "Expires": 1645557720000,
          "DisplayName": "Demo Demo Demo Demo Demo",
          "Message": null
        }
      ],
      "CloudPortalCredentials": [
        {
          "CloudPlatform": 10,
          "PropertiesJson": "{\r\n  \"Username\": \"User1-360701@lod.onmicrosoft.com\",\r\n  \"Password\": \"1234ABCD\",\r\n  \"_FirstName\": \"Chad\",\r\n  \"_LastName\": \"S\"\r\n}"
        }
      ],
      "VirtualMachineCredentials": [
        {
          "Id": 13484,
          "Name": "Windows 10 2004",
          "Username": "Student",
          "Password": "Pa$$w0rd"
        }
      ],
      "CloudPlatformId": 10,
      "ClientUrl": null,
      "ActivityResults": [
        {
          "ActivityId": 4910,
          "ActivityName": "What is 1 + 1?",
          "Scored": true,
          "Score": 1,
          "Passed": true,
          "ActivityType": 0,
          "TextResult": null,
          "UiResponse": "You got the correct answer.",
          "AnswerResults": [
            {
              "AnswerId": 2856,
              "AnswerText": "2",
              "Correct": true
            }
          ],
          "ScriptResults": [],
          "DisplayScriptsAsTaskList": false,
          "AnswerTexts": [
            {
              "Correct": false,
              "AnswerId": 2855,
              "Text": "1",
              "Chosen": false
            },
            {
              "Correct": true,
              "AnswerId": 2856,
              "Text": "2",
              "Chosen": true
            },
            {
              "Correct": false,
              "AnswerId": 2857,
              "Text": "3",
              "Chosen": false
            },
            {
              "Correct": false,
              "AnswerId": 2858,
              "Text": "4",
              "Chosen": false
            }
          ],
          "ScriptTexts": [],
          "ShowResultsInReports": true
        },
        {
          "ActivityId": 4911,
          "ActivityName": "Select all that result in a product of 4",
          "Scored": true,
          "Score": 3,
          "Passed": true,
          "ActivityType": 10,
          "TextResult": null,
          "UiResponse": "Good, you understand what a product function is.",
          "AnswerResults": [
            {
              "AnswerId": 2859,
              "AnswerText": "2024-01-04",
              "Correct": true
            },
            {
              "AnswerId": 2860,
              "AnswerText": "-1, -4",
              "Correct": true
            },
            {
              "AnswerId": 2861,
              "AnswerText": "2024-02-02",
              "Correct": true
            }
          ],
          "DisplayScriptsAsTaskList": false,
          "AnswerTexts": [
            {
              "Correct": true,
              "AnswerId": 2859,
              "Text": "2024-01-04",
              "Chosen": true
            },
            {
              "Correct": true,
              "AnswerId": 2860,
              "Text": "-1, -4",
              "Chosen": true
            },
            {
              "Correct": true,
              "AnswerId": 2861,
              "Text": "2024-02-02",
              "Chosen": true
            },
            {
              "Correct": false,
              "AnswerId": 2862,
              "Text": "2, -2",
              "Chosen": false
            }
          ],
          "ScriptTexts": [],
          "ShowResultsInReports": true
        },
        {
          "ActivityId": 4912,
          "ActivityName": "What is the southernmost continent on earth?",
          "Scored": true,
          "Score": 1,
          "Passed": true,
          "ActivityType": 20,
          "TextResult": "Antarctica",
          "UiResponse": "Great, you know your geography.",
          "AnswerResults": [],
          "ScriptResults": [],
          "DisplayScriptsAsTaskList": false,
          "AnswerTexts": [],
          "ScriptTexts": [],
          "ShowResultsInReports": true
        },
        {
          "ActivityId": 110631,
          "ActivityName": "What are the colors of the French flag?",
          "Scored": true,
          "Score": 3,
          "Passed": true,
          "ActivityType": 30,
          "TextResult": "It's blue, white, red",
          "UiResponse": "Correct, move on to the next flag question.",
          "AnswerResults": [],
          "ScriptResults": [],
          "DisplayScriptsAsTaskList": false,
          "AnswerTexts": [],
          "ScriptTexts": [],
          "ShowResultsInReports": true
        },
        {
          "ActivityId": 91810,
          "ActivityName": "Create a folder called LAB in the root of C:",
          "Scored": true,
          "Score": 0,
          "Passed": false,
          "ActivityType": 40,
          "TextResult": null,
          "UiResponse": null,
          "AnswerResults": [],
          "ScriptResults": [
            {
              "ScriptId": 37337,
              "Score": 0,
              "Passed": false,
              "UiResponse": "",
              "ScriptResponse": "Check if [C:\\LAB] exists.\r\n\r\nPath Does Not Exist\r\n",
              "PlatformError": false,
              "ScriptError": false
            }
          ],
          "DisplayScriptsAsTaskList": false,
          "AnswerTexts": [],
          "ScriptTexts": [
            {
              "ScriptId": 37337,
              "Text": null
            }
          ],
          "ShowResultsInReports": true
        }
      ],
      "ActivityGroupResults": [
        {
          "Id": 1131,
          "Name": "GRP1",
          "ScoreValueTotal": 40,
          "AggregateScore": 20,
          "ActivityResults": [
            {
              "ActivityId": 91811,
              "ActivityName": "Instructor First Name",
              "Scored": true,
              "Score": 20,
              "Passed": true,
              "ActivityType": 20,
              "TextResult": "Jon",
              "UiResponse": "Correct",
              "AnswerResults": [],
              "ScriptResults": [],
              "DisplayScriptsAsTaskList": false,
              "AnswerTexts": [],
              "ScriptTexts": [],
              "ShowResultsInReports": true
            },
            {
              "ActivityId": 91812,
              "ActivityName": "Instructor Last Name",
              "Scored": true,
              "Score": 0,
              "Passed": false,
              "ActivityType": 20,
              "TextResult": "Kirk",
              "UiResponse": "Incorrect",
              "AnswerResults": [],
              "ScriptResults": [],
              "DisplayScriptsAsTaskList": false,
              "AnswerTexts": [],
              "ScriptTexts": [],
              "ShowResultsInReports": true
            }
          ]
        }
      ],
      "EstimatedReadySeconds": null,
      "InstructionsId": "The ID of the Instructions used",
      "Lang": "en",
      "Error": null,
      "Status": 1
    }
    Expand All
    object
    Id
    integer (int64)

    The ID of the lab instance.

    LabProfileId
    integer (int32)

    The ID of the lab profile.

    LabProfileName
    string

    The name of the lab profile.

    SeriesId
    integer (int32) | null

    The ID of the lab series.

    SeriesName
    string | null

    The name of the lab series.

    UserId
    string

    The ID you use to identify the user in your external system.

    UserFirstName
    string

    The user's first name.

    UserLastName
    string

    The user's last name.

    UserEmail
    string | null

    The user's email address.

    ClassId
    string | null

    The ID you use to identify the associated class in your external system.

    ClassName
    string | null

    The name of the class the lab instance is associated with.

    PreinstanceStartTime
    integer (int64)

    When the lab was pre-instanced, if pre-instancing occurred (in Unix epoch time).

    Start
    integer (int64)

    When the lab was started (in Unix epoch time).

    StartTime
    string

    When the lab was started (in Unix epoch time).

    Expires
    integer (int64)

    When the lab expires (in Unix epoch time).

    ExpiresTime
    string

    When the lab expires (in Unix epoch time).

    End
    integer (int64) | null

    When the lab ended (in Unix epoch time).

    EndTime
    string | null

    When the lab ended (in Unix epoch time).

    LastActivity
    integer (int64) | null

    When student activity was last detected (in Unix epoch time).

    LastActivityTime
    string | null

    When student activity was last detected (in Unix epoch time).

    LastSave
    integer (int64) | null

    When the lab was last saved (in Unix epoch time).

    LastSaveTime
    string | null

    When the lab was last saved (in Unix epoch time).

    SaveExpires
    integer (int64) | null

    If the lab instance is saved, when the saved data will expire and be deleted (in Unix epoch time).

    SaveExpiresTime
    string | null

    If the lab instance is saved, when the saved data will expire and be deleted (in Unix epoch time).

    State
    string

    The state of the lab instance. Possible values:
    Off
    Provisioning Storage
    Building
    Building (Displayable)
    Starting
    Running
    Saving
    Saved
    Resuming
    Creating Snapshot
    Applying Snapshot
    Updating Lab Profile
    Tearing Down
    Cloning
    Creating As Clone
    Moving (Running)
    Moving (Saved)
    Creating New Lab Profile
    Scoring
    Scheduled

    CompletionStatus
    string

    The student's completion status. Possible values:
    Scheduled
    Cancelled
    Not Started
    Incomplete
    Complete
    Storage Provisioning Failed
    Lab Creation Failed
    Resume Failed
    Save Failed
    Submitted For Grading
    Grading In Progress

    PoolMemberName
    string | null

    If the lab contains a virtual machine pool, the name of the pool member that was used.

    LabHostId
    integer (int32)

    The ID of the lab host machine.

    LabHostName
    string

    The name of the lab host machine.

    DatacenterId
    integer (int32)

    The ID of the datacenter where the lab is located.

    DatacenterName
    string

    The name of the datacenter where the lab is located.

    DeliveryRegionId
    integer (int32)

    When specified, Skillable will attempt to launch the lab in the specified delivery region if a suitable host in that region is available and all required storage is available in that region. Delivery regions can be found using the DeliveryRegions command or Catalog command. Using the ipAddress parameter will result in a more reliable geo-location of the lab for the end user.

    DeliveryRegionName
    string

    The name of the delivery region where the lab is located.

    PlatformId
    integer (int32)

    The platform the lab has hosted on. Possible values:
    2 = Hyper-V
    3 = ESX
    20 = Docker
    -1 = None

    LastSaveTriggerType
    string | null

    If the lab is currently saved, what triggered the save operation. Possible values:
    Unknown
    By Student
    By Administrator
    Automatic
    From API Consumer

    TimeInSession
    integer (int32)

    The total number of seconds the user spent in the lab.

    TotalRunTime
    integer (int32)

    The total number of seconds the lab was running, whether or not the student was present.

    TimeRemaining
    integer (int32)

    The total number of seconds remaining before the lab expires.

    InstructorName
    string | null

    The name of the instructor for the associated class.

    StartupDuration
    integer (int32) | null

    The number of seconds it took the lab to start.

    Errors
    Array of object

    An array of all errors associated with the lab instance.

    object
    Snapshots
    Array of object

    An array of snapshots created by the user within the lab. This contains an array of LabInstanceSnapshot objects.

    object
    Name
    string

    The name that the student gave to the snapshot.

    Time
    integer (int64)

    When the student created the snapshot (in Unix epoch time).

    Sessions
    Array of object

    An array of session times the student spent in the lab. This contains an array of LabInstanceSnapshot objects.

    object
    Start
    integer (int64)

    When the session started (in Unix epoch time).

    StartTime
    string
    End
    integer | null

    When the session ended (in Unix epoch time).

    EndTime
    string
    Notes
    Array of object

    Array of notes applicable to the lab instance.

    object
    Time
    integer
    TimeValue
    string
    Title
    string
    Text
    string
    HasContent
    boolean

    Indicates whether the lab has content, or simply houses virtual machines.

    Task
    string | null

    If the lab has content (HasContent=true), indicates the name of the task the student is working on.

    Exercise
    string | null

    If the lab has content (HasContent=true), indicates the name of the exercise the student is working on.

    NumTasks
    integer (int32)

    If the lab has content (HasContent=true), indicates the total number of tasks in the lab.

    NumCompletedTasks
    integer (int32)

    If the lab has content (HasContent=true), indicates the number of tasks the student has completed.

    TaskCompletePercent
    integer (int32)

    If the lab has content (HasContent=true), indicates the percentage of tasks that the student has completed.

    MonitorUrl
    string | null

    This response property is deprecated. Unless explicitly allowed by Skillable, this field will always be null.
    To obtain an access URL, use the LabMonitorUrl command.

    DetailsUrl
    string

    The URL at which the lab instance details can be reviewed (required authentication to view).

    RemoteController
    string

    The name of the remote controller used by the user.

    Tag
    string | null

    Lab instance tag data.

    BrowserUserAgent
    string | null

    The browser user agent used by the user.

    LastLatency
    integer (int32) | null

    The last known latency value as measured between the client and the lab's datacenter.

    ExamPassed
    boolean | null

    Indicates whether the user passed the lab. Will only be set if the lab has activities which have been scored.

    ExamScore
    number (float) | null

    Indicates the lab score. Will only be set if the lab has activities which have been scored.

    ExamMaxPossibleScore
    integer (int32) | null

    Indicates the maximum possible score of the lab. Will only be set if the lab has activities which have been scored.

    ExamPassingScore
    integer (int32) | null

    Indicates the minimum score required to pass the lab. Will only be set if the lab has activities which have been scored.

    ExamScoredById
    integer (int64) | null

    The ID of the user that manually scored the lab. Will only be set if the lab has activities which have been scored manually. Automatically scored labs will not include a value for this property.

    ExamScoredByName
    string | null

    The name of the user that manually scored the lab. Will only be set if the lab has activities which have been scored manually. Automatically scored labs will not include a value for this property.

    ExamDetails
    string | null

    Legacy Field from previous scoring engine.

    ExamScoredDate
    integer (int64) | null

    The date the lab was scored (in Unix epoch time).

    ExamScoredTime
    string | null

    When the lab was scored (in Unix epoch time). Will only be set if the lab has activities which have been scored.

    IsExam
    boolean

    Indicates whether the lab is scored.

    IpAddress
    string | null

    The user's IP address. This is only included if the IP address was provided when the lab was launched.

    Country
    string | null

    The user's country as determined by IP address geolocation. This is only included if the IP address was provided when the lab was launched.

    Region
    string | null

    The user's state/region as determined by IP address geolocation. This is only included if the IP address was provided when the lab was launched.

    City
    string | null

    The user's city as determined by IP address geolocation. This is only included if the IP address was provided when the lab was launched.

    Latitude
    number (float) | null

    The user's latitude as determined by IP address geolocation. This is only included if the IP address was provided when the lab was launched.

    Longitude
    number (float) | null

    The user's longitude as determined by IP address geolocation. This is only included if the IP address was provided when the lab was launched.

    PublicIpAddresses
    Array of object

    An array of public IP address information objects. This contains an array of IpAddressInfo objects.

    object
    IpAddress
    string

    An IP address.

    MacAddress
    string

    The MAC address of the NIC that the IP address was assigned to.

    MachineInstanceName
    string

    The name of the virtual machine instance that the IP address was assigned to.

    CloudCredentials
    Array of object

    An array of credentials assigned to the lab instance. This contains an array of CloudCredential objects.

    object
    PropertiesJson
    string

    Json serialized properties for the credentials, as defined in the cloud credential pool.

    Expires
    integer (int64)

    When the credentials expire (in Unix epoch time).

    DisplayName
    string

    Friendly credential name displayed in the lab user interface.

    Message
    string | null
    CloudPortalCredentials
    Array of object

    An array of credentials assigned to the lab instance. This contains an array of CloudPortalCredential objects.

    object
    CloudPlatform
    integer (int32)

    The ID of the cloud platform to which the credentials belong.
    10 = Azure
    11 = AWS

    PropertiesJson
    string

    Json serialized properties for the credentials.

    VirtualMachineCredentials
    Array of object

    An array of credentials used to access the virtual machines. This contains an array of VirtualMachineCredential objects.

    object
    Id
    integer (int32)

    ID of the virtual machine.

    Name
    string

    Name of the virtual machine.

    Username
    string

    Username used to accces the virtual machine.

    Password
    string

    Password used to access the virtual machine.

    CloudPlatformId
    integer (int32) | null

    The ID of the cloud platform. Possible values:
    10 = Azure
    11 = AWS

    ClientUrl
    string | null

    This response property is deprecated. Unless explicitly allowed by Skillable, this field will always be null.
    To obtain an access URL, use the LabAccessUrl command.

    ActivityResults
    Array of object

    An array of results for activities displayed in the lab instance. This contains an array of ActivityResult objects.

    object
    ActivityId
    integer (int32)

    ID of the Activity.

    ActivityName
    string

    Name of the Activity.

    Scored
    boolean

    Whether the activity is scored.

    Score
    number (float)

    The Score received by the student.

    Passed
    boolean

    Whether the student received a passing score on the activity.

    ActivityType
    integer (int32)

    0 = Multiple choice, single answer
    10 = Multiple choice, multiple answer
    20 = Short answer, exact match
    30 = Short answer, regex match
    40 = Automated Activity

    TextResult
    string | null

    The answer given by a student for Short Answer type questions.

    UiResponse
    string | null

    The response given to the student if specified in the question Answer Feedback.

    AnswerResults
    Array of object

    A collection of the answers available in single-answer activities.

    object
    AnswerId
    integer (int32)
    AnswerText
    string
    Correct
    boolean
    ScriptResults
    Array of object

    A collection of the results of the an automated activity. Includes Script ID, Score, Passing Status, UiResponse, ScriptResponse, PlatformError, and ScriptError.

    object
    DisplayScriptsAsTaskList
    boolean

    Whether automated activities are scored as a TaskList or individually.

    AnswerTexts
    Array of object

    A collection of the answers available in multi- answer activities.

    object
    Correct
    boolean
    AnswerId
    integer (int32)
    Text
    string
    Chosen
    boolean
    ScriptTexts
    Array of object

    The Activity ID and Text displayed in the Task List if Task List is enabled on the activity.

    object
    ShowResultsInReports
    boolean

    Whether results of the script are shown on the lab instance.

    ActivityGroupResults
    Array of object

    An array of results for activities displayed in the lab instance Activity Group. This contains an array of ActivityResult objects.

    object
    Id
    integer (int32)

    ID of the Activity Group.

    Name
    string

    Name of the Activity Group.

    ScoreValueTotal
    number (float)

    The maximum score for the Activity Group.

    AggregateScore
    number (float)

    The resultant score the of the Activity Group.

    ActivityResults
    Array of object

    An array of results for activities displayed in the lab instance Activity Group. This contains an array of ActivityResult objects.

    object
    ActivityId
    integer (int32)

    ID of the Activity.

    ActivityName
    string

    Name of the Activity.

    Scored
    boolean

    Whether the activity is scored.

    Score
    integer

    The Score received by the student.

    Passed
    boolean

    Whether the student received a passing score on the activity.

    ActivityType
    integer

    0 = Multiple choice, single answer
    10 = Multiple choice, multiple answer
    20 = Short answer, exact match
    30 = Short answer, regex match
    40 = Automated Activity

    TextResult
    string

    The answer given by a student for Short Answer type questions.

    UiResponse
    string

    The response given to the student if specified in the question Answer Feedback.

    AnswerResults
    Array of object

    A collection of the answers available in single-answer activities.

    object
    ScriptResults
    Array of object

    A collection of the results of the an automated activity. Includes Script ID, Score, Passing Status, UiResponse, ScriptResponse, PlatformError, and ScriptError.

    object
    DisplayScriptsAsTaskList
    boolean

    Whether automated activities are scored as a TaskList or individually.

    AnswerTexts
    Array of object

    A collection of the answers available in multi- answer activities.

    object
    string
    ScriptTexts
    Array of object

    The Activity ID and Text displayed in the Task List if Task List is enabled on the activity.

    object
    ShowResultsInReports
    boolean

    Whether results of the script are shown on the lab instance.

    EstimatedReadySeconds
    integer (int32) | null

    An estimated number of seconds before the lab is ready.

    InstructionsId
    string | null

    The ID of the Instructions used

    Lang
    string | null

    The lanuage code of the instruction set.

    en = English
    es = Spanish
    fr = French
    de = German
    pt = Portuguese
    ja = Japanese
    zh-hans = Simplified Chinese
    zh-hant = Traditional Chinese
    ko = Korean

    Error
    string | null

    In the event of an error, this will contain a detailed error message.

    Status
    integer (int32)

    Indicates the status of the API request.
    0 = Error
    1 = Success


    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.