openapi: 3.1.0
info:
title: API Reference subpackage_actions subpackage_comments API
version: 1.0.0
servers:
- url: http://localhost:8000
tags:
- name: subpackage_comments
paths:
/api/comments/:
get:
operationId: list
summary: ✨ List comments
description: " \n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n \n
curl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'200':
description: List of comments
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MaybeExpandedComment'
post:
operationId: create
summary: ✨ Create comment
description: "\n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n
\ncurl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MaybeExpandedComment'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentRequest'
/api/comments/export/:
get:
operationId: export
summary: ✨ Export comments to CSV
description: "\n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n
\ncurl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'200':
description: CSV file with comments
content:
application/json:
schema:
type: string
format: binary
/api/comments/{id}/:
get:
operationId: get
summary: ✨ Get comment
description: "\n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n
\ncurl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MaybeExpandedComment'
delete:
operationId: delete
summary: ✨ Delete comment
description: "\n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n
\ncurl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'200':
description: Successful response
patch:
operationId: update
summary: ✨ Update comment
description: "\n This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)\n
\ncurl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MaybeExpandedComment'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedCommentRequest'
components:
schemas:
TrialRoleEnum:
type: string
enum:
- annotator
- annotator_team_manager
- business_analyst
- business_or_data_team_leadership
- data_engineer_platform_engineer
- data_scientist
- other
description: '* `annotator` - Annotator
* `annotator_team_manager` - Annotator Team Manager
* `business_analyst` - Business Analyst
* `business_or_data_team_leadership` - Business Or Data Team Leadership
* `data_engineer_platform_engineer` - Data Engineer Platform Engineer
* `data_scientist` - Data Scientist
* `other` - Other'
title: TrialRoleEnum
OnboardingStateEnum:
type: string
enum:
- not_started
- signup
- trial_signup
- first_tutorial
- in_app_guidance
- complete
description: '* `not_started` - Not Started
* `signup` - Signup
* `trial_signup` - Trial Signup
* `first_tutorial` - First Tutorial
* `in_app_guidance` - In App Guidance
* `complete` - Complete'
title: OnboardingStateEnum
MaybeExpandedComment:
oneOf:
- $ref: '#/components/schemas/Comment'
- $ref: '#/components/schemas/CommentSerializerWithExpandedUser'
title: MaybeExpandedComment
CommentRequest:
type: object
properties:
annotation:
type:
- integer
- 'null'
classifications:
oneOf:
- description: Any type
- type: 'null'
description: Classifications applied by a reviewer or annotator
draft:
type:
- integer
- 'null'
is_resolved:
type: boolean
description: True if the comment is resolved
region_ref:
oneOf:
- description: Any type
- type: 'null'
description: Set if this comment is related to a specific part of the annotation. Normally contains region ID and control name.
text:
type:
- string
- 'null'
description: Reviewer or annotator comment
description: 'Comment Serializer with FSM state support.
Note: The ''state'' field will be populated from the queryset annotation
if present, preventing N+1 queries. Use .with_state() on your queryset.
The state field display is controlled by both:
- fflag_feat_fit_568_finite_state_management (FSM background calculations)
- fflag_feat_fit_710_fsm_state_fields (state field display in APIs)'
title: CommentRequest
LseUser:
type: object
properties:
active_organization:
type:
- integer
- 'null'
active_organization_meta:
type: string
allow_newsletters:
type:
- boolean
- 'null'
description: Allow sending newsletters to user
avatar:
type: string
custom_hotkeys:
oneOf:
- description: Any type
- type: 'null'
description: Custom keyboard shortcuts configuration for the user interface
date_joined:
type: string
format: date-time
email:
type: string
format: email
first_name:
type: string
id:
type: integer
initials:
type: string
default: '?'
last_activity:
type: string
format: date-time
last_name:
type: string
lse_fields:
$ref: '#/components/schemas/LseFields'
org_membership:
type: array
items:
$ref: '#/components/schemas/OrganizationMembership'
organization_membership:
$ref: '#/components/schemas/OrganizationMembership'
pause:
type: string
phone:
type: string
username:
type: string
required:
- active_organization_meta
- avatar
- id
- initials
- last_activity
- lse_fields
- org_membership
- organization_membership
- pause
- username
description: 'A ModelSerializer that takes additional arguments for
"fields", "omit" and "expand" in order to
control which fields are displayed, and whether to replace simple
values with complex, nested serializations'
title: LseUser
PatchedCommentRequest:
type: object
properties:
annotation:
type:
- integer
- 'null'
classifications:
oneOf:
- description: Any type
- type: 'null'
description: Classifications applied by a reviewer or annotator
draft:
type:
- integer
- 'null'
is_resolved:
type: boolean
description: True if the comment is resolved
region_ref:
oneOf:
- description: Any type
- type: 'null'
description: Set if this comment is related to a specific part of the annotation. Normally contains region ID and control name.
text:
type:
- string
- 'null'
description: Reviewer or annotator comment
description: 'Comment Serializer with FSM state support.
Note: The ''state'' field will be populated from the queryset annotation
if present, preventing N+1 queries. Use .with_state() on your queryset.
The state field display is controlled by both:
- fflag_feat_fit_568_finite_state_management (FSM background calculations)
- fflag_feat_fit_710_fsm_state_fields (state field display in APIs)'
title: PatchedCommentRequest
OrganizationMembership:
type: object
properties:
active:
type: string
organization_id:
type: integer
description: Organization ID
role:
type: string
required:
- active
- organization_id
- role
title: OrganizationMembership
LseFields:
type: object
properties:
email_notification_settings:
type: string
invite_activated:
type:
- boolean
- 'null'
invite_expired:
type: string
invite_expired_at:
type: string
invited_at:
type:
- string
- 'null'
format: date-time
invited_by:
type:
- integer
- 'null'
onboarding_state:
oneOf:
- $ref: '#/components/schemas/OnboardingStateEnum'
- type: 'null'
description: 'The current stage of user onboarding
* `not_started` - Not Started
* `signup` - Signup
* `trial_signup` - Trial Signup
* `first_tutorial` - First Tutorial
* `in_app_guidance` - In App Guidance
* `complete` - Complete'
social_auth_finished:
type:
- boolean
- 'null'
description: Is user finished social authentication
trial_company:
type:
- string
- 'null'
trial_experience_labeling:
type:
- string
- 'null'
trial_license_enterprise:
type:
- boolean
- 'null'
trial_models_in_production:
type:
- string
- 'null'
trial_role:
oneOf:
- $ref: '#/components/schemas/TrialRoleEnum'
- type: 'null'
required:
- email_notification_settings
- invite_expired
- invite_expired_at
title: LseFields
Comment:
type: object
properties:
annotation:
type:
- integer
- 'null'
classifications:
oneOf:
- description: Any type
- type: 'null'
description: Classifications applied by a reviewer or annotator
created_at:
type: string
format: date-time
description: Creation time
created_by:
type: integer
description: User who made this comment
draft:
type:
- integer
- 'null'
id:
type: integer
is_resolved:
type: boolean
description: True if the comment is resolved
project:
type:
- integer
- 'null'
region_ref:
oneOf:
- description: Any type
- type: 'null'
description: Set if this comment is related to a specific part of the annotation. Normally contains region ID and control name.
resolved_at:
type:
- string
- 'null'
format: date-time
description: Resolving time
state:
type: string
task:
type:
- integer
- 'null'
text:
type:
- string
- 'null'
description: Reviewer or annotator comment
updated_at:
type: string
format: date-time
description: Last updated time
required:
- created_at
- created_by
- id
- project
- resolved_at
- state
- task
- updated_at
description: 'Comment Serializer with FSM state support.
Note: The ''state'' field will be populated from the queryset annotation
if present, preventing N+1 queries. Use .with_state() on your queryset.
The state field display is controlled by both:
- fflag_feat_fit_568_finite_state_management (FSM background calculations)
- fflag_feat_fit_710_fsm_state_fields (state field display in APIs)'
title: Comment
CommentSerializerWithExpandedUser:
type: object
properties:
annotation:
type:
- integer
- 'null'
classifications:
oneOf:
- description: Any type
- type: 'null'
description: Classifications applied by a reviewer or annotator
created_at:
type: string
format: date-time
description: Creation time
created_by:
$ref: '#/components/schemas/LseUser'
draft:
type:
- integer
- 'null'
id:
type: integer
is_resolved:
type: boolean
description: True if the comment is resolved
project:
type:
- integer
- 'null'
region_ref:
oneOf:
- description: Any type
- type: 'null'
description: Set if this comment is related to a specific part of the annotation. Normally contains region ID and control name.
resolved_at:
type:
- string
- 'null'
format: date-time
description: Resolving time
state:
type: string
task:
type:
- integer
- 'null'
text:
type:
- string
- 'null'
description: Reviewer or annotator comment
updated_at:
type: string
format: date-time
description: Last updated time
required:
- created_at
- created_by
- id
- project
- resolved_at
- state
- task
- updated_at
description: 'Comment Serializer with FSM state support.
Note: The ''state'' field will be populated from the queryset annotation
if present, preventing N+1 queries. Use .with_state() on your queryset.
The state field display is controlled by both:
- fflag_feat_fit_568_finite_state_management (FSM background calculations)
- fflag_feat_fit_710_fsm_state_fields (state field display in APIs)'
title: CommentSerializerWithExpandedUser
securitySchemes:
Token:
type: apiKey
in: header
name: Authorization
description: 'The token (or API key) must be passed as a request header. You can find your user token on the User Account page in Label Studio. Example: curl https://label-studio-host/api/projects -H "Authorization: Token [your-token]"'