---
title: "Returns information about a class. If the class doesn’t exist, it is created"
slug: "returns-information-about-a-class-if-the-class-doesnt-exist-it-is-created-1"
updated: 2025-08-07T14:39:28Z
published: 2025-08-07T14:41:42Z
---

> ## 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.

# Returns information about a class. If the class doesn’t exist, it is created

Get/GetOrCreateClass

The **GetOrCreateClass** command returns information about a class. If the class doesn’t exist, it is created.

SecurityAPI Key: api_keyHeader 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 parametersidstringRequired

The unique identifier of the class, as represented in your organization.

Example1223334444
namestringRequired

The name of the class.

ExampleSample+Class
startinteger (int64) Required

When the class starts (in Unix epoch time).

Example1333267200
endinteger (int64) Required

When the class ends (in Unix epoch time).

Example1333299600
expiresinteger (int64) Required

When labs can no longer be associated with the class (in Unix epoch time).

Example1335978000
instructorIdstring

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

Example65214
instructorFirstNamestring

The first name of the class instructor.

ExampleDemo
instructorLastNamestring

The last name of the class instructor.

ExampleInstructor
maxActiveLabInstancesinteger (int32) 

The maximum number of active lab instances than can exist concurrently within this class context. This is optional in most situations. However, it is required for classes that host shared environments. If a shared lab is launched against a class that doesn't have this value set, the launch will fail.

Example20
AvailableLabsarray of integer

An optional array of lab profile IDs. When provided, Skillable will know that these labs are available within the class. You do not need to set this value in order to launch labs against the class. This is useful when using Skillable to display a class attendance page, or when consuming shared class environments and you want the shared environment launch link to appear on the class monitor page.

Example[
  17390,
  17432
]

Responses200

OK Response.

<select class='api-response-data' aria-label='Media type'><option value='1db52916-4052-465e-aad7-58650aa27ade'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='107fb4b1-04f7-4ff5-93eb-36eaeadfa5bc'>Example of creating a class</option>
<option value='58877496-d987-43fb-ae9e-49e83a03e1db'>Example of retrieving information on an existing class</option>
</select>Example of creating a class

```json
{
  "Id": "4449999",
  "Name": "Sample Class",
  "Start": 1333267200,
  "StartTime": "/Date(1333267200000)/",
  "End": 1333299600,
  "EndTime": "/Date(1333299600000)/",
  "Expires": 1335978000,
  "ExpiresTime": "/Date(1335978000000)/",
  "Instructor": null,
  "Url": null,
  "MaxActiveLabInstances": null,
  "AvailableLabs": [
    17390,
    17432
  ],
  "Status": 1,
  "Error": null
}
```

Example of retrieving information on an existing class

```json
{
  "Id": "4449999",
  "Name": "Sample Class",
  "Start": 1333267200,
  "StartTime": "/Date(1333267200000)/",
  "End": 1333299600,
  "EndTime": "/Date(1333299600000)/",
  "Expires": 1335978000,
  "ExpiresTime": "/Date(1335978000000)/",
  "Instructor": {
    "Id": "65214",
    "FirstName": "Demo",
    "LastName": "Instructor"
  },
  "Url": null,
  "MaxActiveLabInstances": null,
  "AvailableLabs": [
    17390,
    17432
  ],
  "Status": 1,
  "Error": null
}
```

Expand Allobject  Idstring    

The unique identifier of the class, as represented in your organization.

Namestring    

The name of the class.

Startinteger  (int64)    

When the class starts (in Unix epoch time).

StartTimestring    

When the class starts (in Unix epoch time).

Endinteger  (int64)    

When the class ends (in Unix epoch time).

EndTimestring    

When the class ends (in Unix epoch time).

Expiresinteger  (int64)    

When labs can no longer be associated with the class (in Unix epoch time).

ExpiresTimestring    

When labs can no longer be associated with the class (in Unix epoch time).

Instructorobject | null  Idstring    

The ID of the class instructor in your external system.

FirstNamestring    

The first name of the class instructor.

LastNamestring    

The last name of the class instructor.

Urlstring   | null  

This response property is deprecated. Unless explicitly allowed by Skillable, this field will always be null. To obtain a class URL, use the **ClassAccessUrl** API command.

MaxActiveLabInstancesinteger  (int32)   | null  

The maximum number of active lab instances than can exist concurrently within this class context.

AvailableLabs Array of integer   

The IDs of labs available for launch within the class when using the class attendance UI directly in Skillable (generally not used for class deliveries managed outside of Skillable).

integer    
Statusinteger  (int32)    

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

Errorstring   | null  

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