> ## Documentation Index > Fetch the complete documentation index at: https://docs.skillable.com/llms.txt > Use this file to discover all available pages before exploring further. # Retrieves information about a specified lab profile > The **LabProfile** command will return information about a specific lab profile. ## OpenAPI ````json GET /labprofile { "openapi": "3.0.3", "info": { "title": "Lab API", "description": "# Introduction \nWelcome to Skillable Connect: LAB Edition, our core platform for creating, customizing, and managing labs. \n\n## Skillable Production API & Integration Testing\nOnly lab profiles with a development status of **Complete** are consumable via API.\n\nDevelopment/Integration Testing API available with all the same API calls your production API can make, but has the following settings:\n\n- Max Active Lab Instances: 5\n- Max Saved Labs per User: 1\n- Max Active Lab Instances per user: 5\n- Max lab duration: 30 minutes\n- Allows launching of lab profiles with any Development Status (i.e. is not restricted to a Complete development status)\n- Has a dedicated API key\n- Does not generate billable events\n\n## Authenticate with API Key\nSkillable APIs offer one form of authentication: an API Key. All methods require an API Key, which must be obtained from a Skillable team member working with your organization. Our systems use this key to validate your development account. \n\nPass your API Key as an HTTP request header with the header name \"api_key\".\n\n\n\n", "termsOfService": "https://skillable.com/terms-and-conditions/", "contact": { "name": "Skillable Support", "email": "support@skillable.com", "url": "https://skillable.com/customer-support/" }, "x-logo": { "url": "https://raw.githubusercontent.com/LearnOnDemandSystems/ConnectAPI/main/Skillable%20Connect%20Logo.svg", "altText": "Skillable Connect" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "3.0" }, "servers": [ { "url": "https://labondemand.com/api/v3", "description": "Skillable Connect LAB API" } ], "security": [ { "api_key": [] } ], "tags": [ { "name": "Lab Instance Management", "description": "The Lab Instance Management group of API commands allows interacting with lab instances. This includes but is not limited to the following actions: \n* [Launch a lab](https://connect.skillable.com/lab/operation/Launch/) \n* [Cancel a lab](https://connect.skillable.com/lab/operation/Cancel/)\n* [Save a lab](https://connect.skillable.com/lab/operation/Save/) \n* [Resuming a lab](https://connect.skillable.com/lab/operation/Resume/) \n* [Initiate scoring of activities in a lab](https://connect.skillable.com/lab/operation/ScoreActivities/) \n* [Send notifications to a lab](https://connect.skillable.com/lab/operation/SendNotification-post/) \n* [Retrieve information about lab instances](https://connect.skillable.com/lab/operation/Results/)" }, { "name": "Lab Profile Management", "description": "The Lab Profile Management group of API commands allows for managing instructions and retrieving information about Lab Profiles within Skillable Studio. \n* [Retrieve information about a specific lab profile](https://connect.skillable.com/lab/operation/LabProfile/) \n* [Retrieve lab instructions for a specific lab](https://connect.skillable.com/lab/operation/LabProfile/) \n* [Download instructions in a zip file for a specific lab](https://connect.skillable.com/lab/operation/GetLabInstructionsPackage/) \n* [Update lab instructions for a specific lab profile using an HTTP post](https://connect.skillable.com/lab/operation/UpdateLabInstructions/) \n* [Update lab instructions for a specific lab by uploading a zip file](https://connect.skillable.com/lab/operation/UpdateLabInstructionsPackage/) " }, { "name": "Class Management", "description": "The Class Management group of API commands allows for the creation, management, access, and monitoring of classes within Skillable Studio. \n* [Retrieve information about a class in Skillable Studio](https://connect.skillable.com/lab/operation/Class/) \n* [Retrieve information about an existing class, if the class does not exist, it will be created](https://connect.skillable.com/lab/operation/GetOrCreateClass/) \n* [Return a single access URL to access a class management page](https://connect.skillable.com/lab/operation/ClassAccessUrl/) \n* [Return a single use URL to monitor a lab instance](https://connect.skillable.com/lab/operation/LabMonitorUrl/) \n* [Return a single use URL to access a lab instance](https://connect.skillable.com/lab/operation/LabAccessUrl/) \n* [Update a specific class](https://connect.skillable.com/lab/operation/UpdateClass/) \n* [Delete a specific class](https://connect.skillable.com/lab/operation/DeleteClass/) " }, { "name": "User Management", "description": "The User Management group of API commands are used to administer user accounts within Skillable Studio.\n* [Return information about saved or running labs for a specific user account](https://connect.skillable.com/lab/operation/UserRunningAndSavedLabs/) \n* [Close a user account and remove all associated user information](https://connect.skillable.com/lab/operation/CloseUserAccount/) " }, { "name": "Event Management", "description": "The Event Management group of API commands allows for launching lab profiles for events and retrieving evaluation responses.\n* [Launch a lab within an event](https://connect.skillable.com/lab/operation/LaunchforEvent/) \n* [Launch a lab within an event, using an external ID](https://connect.skillable.com/lab/operation/LaunchforEventByExternalId/) \n* [Retrieve evaluation data for a specified event](https://connect.skillable.com/lab/operation/GetEvaluationResponsesForEvent/) " }, { "name": "Organization", "description": "Organizational API commands provide the ability to return information about lab profiles, lab series, and delivery regions available to your organization in Skillable Studio.\n* [Retrieve information about lab profiles, lab series, and delivery regions available to your organization](https://connect.skillable.com/lab/operation/Catalog/) \n* [Retrieve information about delivery regions that are available to your organization](https://connect.skillable.com/lab/operation/DeliveryRegions/) " } ], "paths": { "/labprofile": { "get": { "summary": "Retrieves information about a specified lab profile", "description": "The **LabProfile** command will return information about a specific lab profile.", "operationId": "LabProfile", "parameters": [ { "name": "id", "in": "query", "description": "The unique identifier of the lab profile.", "required": "true", "style": "form", "explode": "true", "schema": { "type": "integer", "format": "int32", "example": "77457" } } ], "responses": { "200": { "description": "OK Response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabProfileResponse" }, "examples": { "Example of returning information a specific lab profile": { "value": { "Error": null, "Status": "1", "Id": "1", "Name": "Demo Lab 1", "Number": " Module 1", "PlatformId": "2", "Platform": "2", "CloudPlatformId": null, "SeriesId": "1", "OrganizationId": "5", "Enabled": "true", "ReasonDisabled": null, "DevelopmentStatusId": "10", "DevelopmentStatus": "10", "RequiresBrowserPlugin": "false", "RequiresNestedVirtualization": "false", "NumPublicIpAddresses": "0", "Description": "A demo lab.", "Objective": "This is the HTML-formatted objective of the lab", "Scenario": " This is the HTML-formatted scenario of the lab", "DurationMinutes": "360", "ExpectedDurationMinutes": "360", "ResourceUnits": "16", "Ram": "512", "HasIntegratedContent": "true", "ContentVersion": "2", "IsExam": "false", "PremiumPrice": "10", "BasicPrice": "8", "PricePerHour": "2", "ExpectedCloudCost": "0", "ParticipantLabPrice": "0", "ExamPages": [ "Empty" ], "SharedClassEnvironmentRoleId": "0", "SharedClassEnvironmentRole": "0", "SharedClassEnvironmentLabProfileId": "0", "UsesRdp": "false", "Tags": [ "Tag1", "Tag2" ], "InstructionSets": [ { "Id": "Base-01", "Language": "en", "Description": "Basic Instructions", "LabTitle": "A demo lab", "DurationMinutes": "360", "OrganizationId": "1" }, { "Id": "Base-01", "Language": "fr", "Description": "Instructions de base", "LabTitle": "Un laboratoire de démonstration", "DurationMinutes": "360", "OrganizationId": "1" } ], "Created": "1656366326607", "LastModified": "1656440153550", "SCORMLastDownloaded": "1755781199000" } } } } } } }, "deprecated": "false", "tags": [ "Lab Profile Management" ] } } }, "components": { "schemas": { "LabProfileResponse": { "type": "object", "x-examples": {}, "properties": { "Error": { "type": "string", "description": "In the event of an error, this will contain a detailed error message.", "nullable": "true" }, "Status": { "type": "integer", "description": "Indicates the status of the API request. \n0 = Error \n1 = Success", "format": "int32" }, "Id": { "type": "integer", "description": "The unique identifier of the lab profile.", "format": "int32" }, "Name": { "type": "string", "description": "The name of the lab profile." }, "PlatformId": { "type": "integer", "description": "The virtualization platform the lab is run on. \n1 = None \n2 = Hyper-V \n3 = ESX \n10 = Azure \n11 = AWS \n20 = Docker", "format": "int32" }, "Number": { "type": "string", "description": "The lab number (usually to identify a lab within a series, e.g. Module 1, Module 2, etc.).", "nullable": "true" }, "Description": { "type": "string", "description": "A brief description of the lab profile.", "nullable": "true" }, "Products": { "type": "array", "x-stoplight": { "id": "gniy5vzhfligg" }, "description": "A list of the products assigned to the lab profile and their basic details.", "items": { "x-stoplight": { "id": "acr20yzhk602v" }, "type": "object", "properties": { "Id": { "type": "integer", "x-stoplight": { "id": "ke7wi02eu7kh2" }, "example": "48", "description": "The unique identifier of the product." }, "Name": { "type": "string", "x-stoplight": { "id": "mvmefyucaz00w" }, "example": "Database", "description": "The name of the product." } } } }, "Platform": { "type": "integer", "description": "This response property is obsolete, and will show the same value as PlatformId.", "format": "int32", "deprecated": "true" }, "CloudPlatformId": { "type": "integer", "description": "The cloud platform the lab is run on. \nnull = None \n10 = Azure \n11 = AWS", "format": "int32", "nullable": "true" }, "SeriesId": { "type": "integer", "description": "The unique identifier of the series the lab profile belongs to.", "format": "int32", "nullable": "true" }, "OrganizationId": { "type": "integer", "description": "The unique identifier of the Organization the lab profile belongs to.", "format": "int32", "nullable": "true" }, "OrganizationName": { "type": "string", "x-stoplight": { "id": "lyvnvl7uh8f1h" }, "description": "The name of the Organization the lab profile belongs to.", "nullable": "true" }, "Enabled": { "type": "boolean", "description": "Whether the lab is currently enabled for launch." }, "ReasonDisabled": { "type": "string", "description": "The reason the lab is disabled. Only supplied when the lab is not enabled.", "nullable": "true" }, "DevelopmentStatusId": { "type": "integer", "description": "Indicates the development status of the lab. In general, a lab not marked as Complete should not be launched (though it can be). \n1 = In Development \n5 = AwaitingVerification \n7 = InVerification \n8 = VerificationFailed \n10 = Complete", "format": "int32" }, "DevelopmentStatus": { "type": "integer", "description": "This response property is obsolete, and will show the same values as DevelopmentStatusId.", "format": "int32", "deprecated": "true" }, "RequiresBrowserPlugin": { "type": "boolean", "description": "Indicates if this lab profile requires the use of a browser plugin." }, "RequiresNestedVirtualization": { "type": "boolean", "description": "Indicates if this lab profile requires the use of nested virtualization." }, "NumPublicIpAddresses": { "type": "integer", "description": "Indicates the number of public ip addresses used in this lab profile.", "format": "int32", "nullable": "false" }, "Objective": { "type": "string", "description": "Text describing the objective of the lab.", "nullable": "true" }, "Scenario": { "type": "string", "description": "Text describing the scenario of the lab.", "nullable": "true" }, "DurationMinutes": { "type": "integer", "description": "The maximum number of minutes a lab instance is allowed to run before it expires.", "format": "int32" }, "ExpectedDurationMinutes": { "type": "integer", "description": "This response property is obsolete, and will reflect the same value shown for DurationMinutes.", "format": "int32", "deprecated": "true" }, "ResourceUnits": { "type": "integer", "description": "This response property is obsolete, and will show the value of RAM/32.", "format": "int32", "deprecated": "true" }, "Ram": { "type": "integer", "description": "The amount of RAM in MB used by the lab.", "format": "int32" }, "HasIntegratedContent": { "type": "boolean", "description": "Indicates whether the lab has integrated digital lab (IDL) content." }, "ContentVersion": { "type": "integer", "description": "Indicates the content version (only applicable if HasIntegratedContent = true).", "format": "int32" }, "IsExam": { "type": "boolean", "description": "Indicates whether the lab is scored." }, "PremiumPrice": { "type": "number", "description": "The consumption cost of the lab when premium experience features are included.", "format": "float" }, "BasicPrice": { "type": "number", "description": "The consumption cost of the lab when only basic experience features are included.", "format": "float" }, "PricePerHour": { "type": "number", "description": "The hourly consumption cost of the lab when only basic experience features are included.", "format": "float" }, "ExpectedCloudCost": { "type": "number", "description": "The expected cloud cost of the lab.", "format": "float", "nullable": "true" }, "ParticipantLabPrice": { "type": "number", "description": "The expected participant cost of the shared lab.", "format": "float", "nullable": "true" }, "SharedClassEnvironmentRoleId": { "type": "integer", "description": "Indicates the role the lab plays in a shared environment. \n0 = None. This lab has no shared environment involvement at all. Most labs work this way.) \n10 = Shared Environment. This lab provides the shared infrastructure that participant labs will connect into. Typically launched and maintained by an administrator or instructor. \n20 = Participant. This lab will connect into shared environments and act as a participant. Typically launched by students.", "format": "int32", "nullable": "true" }, "SharedClassEnvironmentRole": { "type": "integer", "description": "This response property is obsolete, and will show the same value as SharedClassEnvironmentRoleId.", "format": "int32", "deprecated": "true", "nullable": "true" }, "SharedClassEnvironmentLabProfileId": { "type": "integer", "description": "The id of the lab profile that will be used in the shared class environment.", "format": "int32", "nullable": "true" }, "UsesRdp": { "type": "boolean", "description": "Indicates whether this lab profile uses Remote Desktop Protocol (RDP) or not." }, "ExamPages": { "type": "array", "description": "This response property is obsolete and is not Populated.", "deprecated": "true", "items": { "type": "string" } }, "Tags": { "type": "array", "description": "A list of tags associated with the lab profile.", "items": { "type": "string" } }, "InstructionSets": { "type": "array", "description": "A list of the available instruction sets and their basic details for the lab profile.", "items": { "type": "object", "properties": { "Id": { "type": "string", "description": "The unique identifier of the instruction set.", "nullable": "false" }, "Language": { "type": "string", "description": "The character code for the language of the instruction set. \n\nen = English \nes = Spanish \nfr = French \nde = German \npt = Portuguese \nja = Japanese \nzh-hans = Simplified Chinese \nzh-hant = Traditional Chinese \nko = Korean " }, "Description": { "type": "string", "description": "The description of the instruction set." }, "LabTitle": { "type": "string", "description": "The title of the lab as used in this instruction set." }, "DurationMinutes": { "type": "integer", "description": "The duration of the lab, in minutes, when using this instruction set." }, "OrganizationId": { "type": "integer", "description": "The unique identifier of the organization to which this instruction set belongs." }, "ExternalInstructions": { "type": "array", "x-stoplight": { "id": "gciig014l4vlu" }, "description": "The externalInstructions array will only be returned when an external instructions source is utilized within a lab profile.", "items": { "x-stoplight": { "id": "y6l6g658kv1zx" }, "type": "object", "properties": { "Enabled": { "type": "boolean", "x-stoplight": { "id": "avyzgds9fockd" } }, "Source": { "type": "string", "x-stoplight": { "id": "tspba3jgtm4md" } }, "Repository": { "type": "string", "x-stoplight": { "id": "1u0lgewfp3hoq" } }, "ContentFile": { "type": "string", "x-stoplight": { "id": "twtm1phy0ron2" } }, "EditLocal": { "type": "boolean", "x-stoplight": { "id": "ezh4hfr2qbnzo" } }, "InjectBadges": { "type": "boolean", "x-stoplight": { "id": "cb6auz89r7mef" } } } } } } } }, "Created": { "type": "integer", "format": "int64", "description": "The date when the lab profile was created (in Unix epoch time)." }, "CreatedBy": { "type": "string", "x-stoplight": { "id": "r2de1eym9ozq3" }, "description": "Name of the user that created the lab profile." }, "LastModified": { "type": "integer", "format": "int64", "description": "The date when the lab profile was last modified (in Unix epoch time)." }, "LastModifiedBy": { "type": "string", "x-stoplight": { "id": "vivdalp6mnoyz" }, "description": "Name of the user that last updated the lab profile." }, "SCORMLastDownloaded": { "type": "integer", "format": "int64", "description": "The date when the SCORM package was last downloaded for the lab profile (in Unix epoch time)." }, "Skills": { "type": "array", "description": "A list of the skills assigned to the lab profile and their basic details.", "items": { "type": "object", "x-stoplight": { "id": "0xdoqzxrf3l4q" }, "properties": { "Id": { "type": "integer", "description": "The unique identifier of the skill.", "nullable": "false" }, "ExternalId": { "type": "string", "description": "The optional external unique identifier of the skill.", "x-stoplight": { "id": "1p51mvcaxobhb" }, "nullable": "true" }, "Name": { "type": "string", "description": "The name of the skill.", "x-stoplight": { "id": "s9j7rh2zwuc1l" } }, "FrameworkId": { "type": "integer", "description": "The unique identifier of the framework for this skill.", "x-stoplight": { "id": "q8chtpypezthy" } }, "FrameworkName": { "type": "string", "description": "The name of the framework for this skill.", "x-stoplight": { "id": "hcbixaiixlte1" } } } } } } } }, "securitySchemes": { "api_key": { "name": "api_key", "type": "apiKey", "in": "header", "description": "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\"." } } } } ````