OpenAPI Specification
openapi: 3.1.0
info:
title: Thought Industries REST Content Groups API
description: The Thought Industries REST API v1 provides programmatic access to the Thought Industries B2B learning platform. Enables management of users, courses, enrollments, groups, content, categories, bundles, and reporting. Authentication uses API key via X-API-Key header or apiKey query parameter. Base URL is tenant-scoped per subdomain.
version: '1.0'
contact:
url: https://developer.thoughtindustries.com/
termsOfService: https://www.thoughtindustries.com/
license:
name: Commercial
url: https://www.thoughtindustries.com/
servers:
- url: https://{subdomain}.thoughtindustries.com/incoming/api/v1
description: Thought Industries REST API v1 (tenant-scoped)
variables:
subdomain:
default: yourtenant
description: Your Thought Industries tenant subdomain
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
tags:
- name: Groups
description: User group management
paths:
/groups:
get:
operationId: listGroups
summary: List Groups
description: Returns a paginated list of all user groups.
tags:
- Groups
parameters:
- name: page
in: query
schema:
type: integer
default: 1
- name: per_page
in: query
schema:
type: integer
default: 25
responses:
'200':
description: List of groups
content:
application/json:
schema:
$ref: '#/components/schemas/GroupListResponse'
/groups/{groupId}/users:
post:
operationId: addUserToGroup
summary: Add User to Group
description: Assigns a user to an existing group.
tags:
- Groups
parameters:
- name: groupId
in: path
required: true
schema:
type: string
description: Group ID.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddUserToGroupRequest'
responses:
'201':
description: User added to group
content:
application/json:
schema:
$ref: '#/components/schemas/GroupMembershipResponse'
components:
schemas:
GroupMembershipResponse:
type: object
properties:
user_id:
type: string
group_id:
type: string
added_at:
type: string
format: date-time
AddUserToGroupRequest:
type: object
required:
- user_id
properties:
user_id:
type: string
description: The ID of the user to add to the group.
GroupListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Group'
meta:
$ref: '#/components/schemas/PaginationMeta'
Group:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
member_count:
type: integer
created_at:
type: string
format: date-time
PaginationMeta:
type: object
properties:
total:
type: integer
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: X-API-Key
description: API key passed as X-API-Key request header.
ApiKeyQuery:
type: apiKey
in: query
name: apiKey
description: API key passed as apiKey query parameter.
externalDocs:
description: Thought Industries Developer Portal
url: https://developer.thoughtindustries.com/