openapi: 3.0.3 info: title: Trakstar Hire Auth Groups API description: The Trakstar Hire REST API (formerly Recruiterbox) enables developers to manage openings, candidates, candidate messages, internal notes, interviews, reviews, evaluations, and to-dos programmatically. It returns JSON responses and uses API key authentication generated from the account's Super Admin settings. The most common use cases include building custom career sites and syncing opening or candidate data with external systems. version: '2' contact: name: Trakstar Hire Support url: https://support.hire.trakstar.com/article/1617-accessing-the-hire-api license: name: Proprietary servers: - url: https://{companyName}.hire.trakstar.com/api/v2 description: Trakstar Hire API v2 variables: companyName: description: Your company subdomain name default: yourcompany security: - apiKey: [] tags: - name: Groups description: Manage user groups paths: /group: get: operationId: listGroups summary: List Groups description: Returns a list of all user groups in the organization. tags: - Groups parameters: - name: responseFormat in: query description: Format the response. required: false schema: type: string enum: - array - json responses: '200': description: A list of user groups. content: application/json: schema: type: array items: $ref: '#/components/schemas/Group' example: - id: 1662730984 name: Test Group 1 userCount: 2 - id: 1662730985 name: Test Group 2 userCount: 5 '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' post: operationId: addGroup summary: Add Group description: Creates a new user group in the organization. tags: - Groups parameters: - name: responseFormat in: query description: Format the response. required: false schema: type: string enum: - array - json requestBody: required: true content: application/json: schema: type: object required: - groupName properties: groupName: type: string description: Name for the new group. example: groupName: Engineering Team responses: '200': description: Group created successfully. content: application/json: schema: $ref: '#/components/schemas/Group' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' /group/{groupId}: get: operationId: getGroup summary: Get Group description: Returns user records in a specific group. Pass groupId of 0 to get all ungrouped users. tags: - Groups parameters: - name: groupId in: path required: true description: The Mindflash ID of the group. Use 0 to retrieve all ungrouped users. schema: type: integer format: int64 responses: '200': description: Group details with member users. content: application/json: schema: $ref: '#/components/schemas/GroupDetail' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' /group/{groupId}/user/{userId}: post: operationId: addUserToGroup summary: Add User to Group description: Adds a specific user to a specific group. tags: - Groups parameters: - name: groupId in: path required: true description: The Mindflash ID of the group. schema: type: integer format: int64 - name: userId in: path required: true description: The Mindflash ID of the user. schema: type: integer format: int64 responses: '200': description: User added to group successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' delete: operationId: removeUserFromGroup summary: Remove User from Group description: Removes a specific user from a specific group. tags: - Groups parameters: - name: groupId in: path required: true description: The Mindflash ID of the group. schema: type: integer format: int64 - name: userId in: path required: true description: The Mindflash ID of the user. schema: type: integer format: int64 responses: '200': description: User removed from group successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: GroupDetail: allOf: - $ref: '#/components/schemas/Group' - type: object properties: users: type: array description: Users in this group. items: $ref: '#/components/schemas/User' Group: type: object description: A user group in Trakstar Learn. properties: id: type: integer format: int64 description: Unique Mindflash group identifier. readOnly: true name: type: string description: Name of the group. userCount: type: integer description: Number of users in the group. readOnly: true Error: type: object properties: message: type: string description: Human-readable error message. errors: type: array items: type: string GroupSummary: type: object description: Summary of a group (used within user objects). properties: id: type: integer format: int64 name: type: string User: type: object description: A user account in Trakstar Learn. properties: id: type: integer format: int64 description: Unique Mindflash user identifier. readOnly: true name: type: string description: Full display name (Last, First format). readOnly: true firstName: type: string description: User's first name. lastName: type: string description: User's last name. username: type: string description: Unique username for login. email: type: string format: email description: User's email address. status: type: string description: User's account status. enum: - Active - Archived type: type: string description: User's role/type in the system. enum: - Trainee - Trainer - Manager - Administrator - Reporter - Team Lead isOwner: type: integer description: Whether this user is the account owner (1) or not (0). enum: - 0 - 1 groups: type: array description: Groups the user belongs to. items: $ref: '#/components/schemas/GroupSummary' example: id: 333 name: Doe, John firstName: John lastName: Doe username: jdoe email: jdoe@yourorg.com status: Active type: Trainee isOwner: 0 groups: [] responses: Unauthorized: description: Authentication credentials were not provided or are invalid. content: application/json: schema: $ref: '#/components/schemas/Error' TooManyRequests: description: Rate limit exceeded. The API enforces a limit of 10 requests per 10 seconds per API key. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource could not be found. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request was invalid or cannot be otherwise served. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: apiKey: type: apiKey in: header name: Authorization description: API key generated from the Trakstar Hire Super Admin settings page. Pass as "ApiKey {your_api_key}". externalDocs: description: Trakstar Hire API Reference url: https://developers.recruiterbox.com/reference/introduction