Field Reference
Complete reference for all available fields when creating courses via the Thought Industries API.
Required Fields
These fields are required for all course creation requests:
| Field | Type | Description |
|---|---|---|
title | string | Course title (max 255 characters) |
description | string | Course description (supports HTML) |
format | string | Course format: course, article, video, scorm, microcourse |
Common Optional Fields
These fields apply to all course formats:
Basic Information
| Field | Type | Default | Description |
|---|---|---|---|
slug | string | auto-generated | URL-friendly identifier |
subtitle | string | null | Course subtitle |
author | string | null | Course author name |
language | string | en | ISO 639-1 language code |
tags | array | [] | Array of tag strings |
Availability
| Field | Type | Default | Description |
|---|---|---|---|
published | boolean | false | Whether course is published |
availableFrom | datetime | null | Start date/time (ISO 8601) |
availableTo | datetime | null | End date/time (ISO 8601) |
enrollmentType | string | open | open, invite, approval |
Pricing
| Field | Type | Default | Description |
|---|---|---|---|
price | number | 0 | Course price in cents |
currency | string | USD | ISO 4217 currency code |
subscriptionEnabled | boolean | false | Enable subscription access |
subscriptionPrice | number | null | Monthly subscription price |
Display Settings
| Field | Type | Default | Description |
|---|---|---|---|
thumbnail | string | null | Thumbnail image URL |
banner | string | null | Banner image URL |
ribbonText | string | null | Ribbon badge text |
ribbonColor | string | #000000 | Ribbon badge color (hex) |
Course Settings
| Field | Type | Default | Description |
|---|---|---|---|
duration | number | null | Estimated duration in minutes |
difficulty | string | null | beginner, intermediate, advanced |
certificateEnabled | boolean | false | Enable certificate generation |
certificateTemplate | string | null | Certificate template ID |
SEO Fields
| Field | Type | Default | Description |
|---|---|---|---|
metaTitle | string | null | SEO meta title |
metaDescription | string | null | SEO meta description |
metaKeywords | array | [] | SEO keywords |
Format-Specific Fields
Course Format
Additional fields for format: "course":
| Field | Type | Default | Description |
|---|---|---|---|
lessons | array | [] | Array of lesson objects |
modules | array | [] | Array of module objects |
sequentialLearning | boolean | false | Force sequential completion |
passGrade | number | 70 | Passing grade percentage |
Lesson Object:
{
"title": "Lesson Title",
"description": "Lesson description",
"content": "HTML content",
"videoUrl": "https://...",
"duration": 15,
"order": 1
}
Article Format
Additional fields for format: "article":
| Field | Type | Default | Description |
|---|---|---|---|
content | string | required | Article content (HTML) |
readTime | number | auto | Estimated read time (minutes) |
tableOfContents | boolean | true | Auto-generate TOC |
Video Format
Additional fields for format: "video":
| Field | Type | Default | Description |
|---|---|---|---|
videoUrl | string | required | Video file URL or embed code |
videoProvider | string | custom | youtube, vimeo, wistia, custom |
videoId | string | null | Provider-specific video ID |
captionsUrl | string | null | WebVTT captions file URL |
transcriptUrl | string | null | Transcript file URL |
allowDownload | boolean | false | Allow video download |
SCORM Format
Additional fields for format: "scorm":
| Field | Type | Default | Description |
|---|---|---|---|
scormFile | string | required | SCORM package URL or file |
scormVersion | string | 2004 | 1.2 or 2004 |
trackingSettings | object | default | SCORM tracking configuration |
completionCriteria | string | completed | completed, passed, score |
microCourse Format
Additional fields for format: "microcourse":
| Field | Type | Default | Description |
|---|---|---|---|
cards | array | [] | Array of micro-learning cards |
cardOrder | string | sequential | sequential, random |
allowSkip | boolean | true | Allow skipping cards |
Card Object:
{
"type": "content|quiz|video",
"title": "Card Title",
"content": "Card content",
"order": 1
}
Nested Objects
Module Object
Used in course format:
{
"title": "Module Title",
"description": "Module description",
"order": 1,
"lessons": [...]
}
Tracking Settings Object
Used in SCORM format:
{
"trackCompletion": true,
"trackScore": true,
"trackTime": true,
"masteryScore": 80
}
Custom Fields
You can define custom fields for your courses:
{
"customFields": {
"internalId": "TRAIN-101",
"department": "Sales",
"requiredBy": "2024-12-31",
"customData": {
"key": "value"
}
}
}
Field Validation
String Length Limits
title: 1-255 charactersslug: 1-100 characters, alphanumeric and hyphens onlydescription: Max 5000 characterscontent: Max 500KB for articles
Number Ranges
price: 0-999999999 (in cents)duration: 1-999999 (minutes)passGrade: 0-100 (percentage)
Date/Time Format
Use ISO 8601 format for all datetime fields:
2024-01-15T10:00:00Z
2024-01-15T10:00:00-05:00
URL Format
All URL fields must be valid HTTP(S) URLs:
https://example.com/video.mp4
https://youtube.com/watch?v=abc123
Field Dependencies
Some fields depend on others:
subscriptionPricerequiressubscriptionEnabled: truecertificateTemplaterequirescertificateEnabled: truevideoIdrequiresvideoProviderto be setlessonscan only be used withformat: "course"
Deprecated Fields
These fields are deprecated and will be removed in future versions:
oldPricingModel- UsepriceinsteadlegacyVideoUrl- UsevideoUrlinsteaddeprecatedTags- Usetagsinstead
Next Steps
- Review format-specific examples:
- Learn about Bulk Create