openapi: 3.1.0 info: title: Webflow Comments API description: Webflow Data API v2 - Comments endpoints. version: 2.0.0 contact: name: Webflow Developer Relations email: developers@webflow.com url: https://developers.webflow.com termsOfService: https://webflow.com/legal/terms license: name: MIT url: https://opensource.org/licenses/MIT servers: - url: https://api.webflow.com/v2 description: Webflow API v2 x-fern-server-name: Data API security: - OAuth2: [] - ApiKey: [] tags: - name: Comments - name: Sites description: Sites are the sites in your Webflow workspace. paths: /sites/{site_id}/comments: get: x-fern-sdk-group-name: - sites - comments x-fern-sdk-method-name: list-comment-threads security: - OAuth2: - comments:read operationId: list-comment-threads summary: Webflow List Comment Threads description: "List all comment threads for a site.\n\n\n There may be a delay of up to 5 minutes before new comments appear in the system.\n\n\nRequired scope | `comments:read`\n" tags: - Comments - Sites parameters: - name: site_id in: path description: Unique identifier for a Site example: 580e63e98c9a982ac9b8b741 required: true schema: type: string format: objectid default: - name: localeId in: query allowEmptyValue: true example: 65427cf400e02b306eaa04a0 description: 'Unique identifier for a specific Locale. [Lear more about localization.](/data/v2.0.0/docs/working-with-localization) ' schema: type: string - in: query example: 0 allowEmptyValue: true name: offset description: Offset used for pagination if the results have more than limit records required: false schema: type: integer - in: query allowEmptyValue: true name: limit example: 100 description: 'Maximum number of records to be returned (max limit: 100)' required: false schema: type: integer - name: sortBy in: query allowEmptyValue: true description: Sort results by the provided value. Only allowed when sortOrder is provided. required: false schema: type: string enum: - createdOn - lastUpdated - name: sortOrder in: query allowEmptyValue: true description: Sorts the results by asc or desc required: false schema: type: string enum: - asc - desc responses: '200': description: Request was successful content: application/json: schema: description: 'A list of comment threads on the site. Contains the content of the first reply. ' required: - comments - pagination properties: comments: type: array items: description: 'A comment thread represents a conversation between users on a specific page. Each comment thread has a unique identifier and can contain multiple comments. Retrieve comment replies using the replies API endpoint. ' type: object required: - id - siteId - pageId - localeId - itemId - breakpoint - url - content - isResolved - author - mentionedUsers - createdOn - lastUpdated properties: id: type: string example: 580e64008c9a982ac9b8b754 description: Unique identifier for the comment thread siteId: type: string example: 580e64008c9a982ac9b8b754 description: The site unique identifier pageId: type: string example: 580e64008c9a982ac9b8b754 description: The page unique identifier localeId: type: string readOnly: true example: 580e64008c9a982ac9b8b754 description: The locale unique identifier nullable: true itemId: type: string readOnly: true example: 580e64008c9a982ac9b8b754 description: The item unique identifier nullable: true breakpoint: type: string example: main description: The breakpoint the comment was left on url: type: string example: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc description: The URL of the page the comment was left on content: type: string example: This is a comment reply description: The content of the comment reply isResolved: type: boolean default: false description: Boolean determining if the comment thread is resolved author: type: object required: - userId - email - name properties: userId: type: string description: The unique identifier of the author email: type: string description: Email of the author name: type: string description: Name of the author example: id: 6287ec36a841b25637c663df email: email name: name mentionedUsers: type: array description: List of mentioned users. This is an empty array until email notifications are sent, which can take up to 5 minutes after the comment is created. items: type: object required: - userId - email - name properties: userId: type: string description: The unique identifier of the mentioned user email: type: string description: Email of the user name: type: string description: Name of the User example: userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: type: string format: date-string example: '2023-03-17T18:47:35.560Z' description: The date the item was created lastUpdated: type: string format: date-string example: '2023-03-17T18:47:35.560Z' description: The date the item was last updated example: value: id: 679d2ddb5196117ad04d1ffa siteId: 679826b3b20b045e176bc4b5 pageId: 679826b3b20b045e176bc4bc localeId: 67993753d910db250db64b3e itemId: breakpoint: main url: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc content: 'This comment mentions another user [[6287ec36a841b25637c663df]] ' isResolved: false author: userId: 6287ec36a841b25637c663df email: ford.prefect@heartofgold.spaceship name: Ford Prefect mentionedUsers: - userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: '2025-01-31T20:08:59.759Z' lastUpdated: '2025-01-31T20:08:59.759Z' pagination: type: object required: - limit - offset - total properties: limit: type: integer default: 100 description: The limit specified in the request (default 100) offset: type: integer default: 0 description: The offset specified for pagination total: type: integer description: Total number of comment threads example: comments: - id: 679d2ddb5196117ad04d1ffa siteId: 679826b3b20b045e176bc4b5 pageId: 679826b3b20b045e176bc4bc localeId: 67993753d910db250db64b3e itemId: breakpoint: main url: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc content: 'Let''s go to the pub! [[6287ec36a841b25637c663df]] ' isResolved: false author: userId: 6287ec36a841b25637c663df email: ford.prefect@heartofgold.spaceship name: Ford Prefect mentionedUsers: - userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: '2025-01-31T20:08:59.759Z' lastUpdated: '2025-01-31T20:08:59.759Z' - id: 679d2ddb5196117ad04d1ffc siteId: 679826b3b20b045e176bc4b5 pageId: 679826b3b20b045e176bc4bc localeId: 67993753d910db250db64b3e itemId: breakpoint: main url: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc content: 'You have five minutes left to drink it [[6287ec36a841b25637c663df]] ' isResolved: false author: userId: 6287ec36a841b25637c663df email: ford.prefect@heartofgold.spaceship name: Ford Prefect mentionedUsers: - userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: '2025-01-31T20:08:59.759Z' lastUpdated: '2025-01-31T20:08:59.759Z' pagination: limit: 2 offset: 0 total: 2 '400': description: Request body was incorrectly formatted. x-logErrorCode: 400 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: bad_request message: 'Bad Request: Request is malformed' externalReference: details: [] '401': description: Provided access token is invalid or does not have access to requested resource x-logErrorCode: 401 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: not_authorized message: Request not authorized externalReference: details: [] '404': description: Requested resource not found x-logErrorCode: 404 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: resource_not_found message: 'Requested resource not found: The site cannot be found' externalReference: details: [] '429': description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses. x-logErrorCode: 429 headers: X-RateLimit-Remaining: description: Contains the number of available requests remaining in the current minute schema: type: number X-RateLimit-Limit: description: Contains your current overall rate limit per minute schema: type: number content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: too_many_requests message: Too many requests externalReference: details: [] '500': description: We had a problem with our server. Try again later. content: application/json: x-logErrorCode: 500 schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: internal_error message: An Internal Error occurred externalReference: details: [] /sites/{site_id}/comments/{comment_thread_id}: get: x-fern-sdk-group-name: - sites - comments x-fern-sdk-method-name: get-comment-thread security: - OAuth2: - comments:read operationId: get-comment-thread summary: Webflow Get Comment Thread description: "Get details of a specific comment thread.\n\n \n There may be a delay of up to 5 minutes before new comments appear in the system.\n \n\nRequired scope | `comments:read`\n" tags: - Comments - Sites parameters: - name: site_id in: path description: Unique identifier for a Site example: 580e63e98c9a982ac9b8b741 required: true schema: type: string format: objectid default: - name: comment_thread_id in: path description: Unique identifier for a Comment Thread example: 580e63e98c9a982ac9b8b741 required: true schema: type: string format: objectid - name: localeId in: query allowEmptyValue: true example: 65427cf400e02b306eaa04a0 description: 'Unique identifier for a specific Locale. [Lear more about localization.](/data/v2.0.0/docs/working-with-localization) ' schema: type: string - in: query example: 0 allowEmptyValue: true name: offset description: Offset used for pagination if the results have more than limit records required: false schema: type: integer - in: query allowEmptyValue: true name: limit example: 100 description: 'Maximum number of records to be returned (max limit: 100)' required: false schema: type: integer - name: sortBy in: query allowEmptyValue: true description: Sort results by the provided value. Only allowed when sortOrder is provided. required: false schema: type: string enum: - createdOn - lastUpdated - name: sortOrder in: query allowEmptyValue: true description: Sorts the results by asc or desc required: false schema: type: string enum: - asc - desc responses: '200': description: Request was successful content: application/json: schema: description: 'A comment thread represents a conversation between users on a specific page. Each comment thread has a unique identifier and can contain multiple comments. Retrieve comment replies using the replies API endpoint. ' type: object required: - id - siteId - pageId - localeId - itemId - breakpoint - url - content - isResolved - author - mentionedUsers - createdOn - lastUpdated properties: id: type: string example: 580e64008c9a982ac9b8b754 description: Unique identifier for the comment thread siteId: type: string example: 580e64008c9a982ac9b8b754 description: The site unique identifier pageId: type: string example: 580e64008c9a982ac9b8b754 description: The page unique identifier localeId: type: string readOnly: true example: 580e64008c9a982ac9b8b754 description: The locale unique identifier nullable: true itemId: type: string readOnly: true example: 580e64008c9a982ac9b8b754 description: The item unique identifier nullable: true breakpoint: type: string example: main description: The breakpoint the comment was left on url: type: string example: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc description: The URL of the page the comment was left on content: type: string example: This is a comment reply description: The content of the comment reply isResolved: type: boolean default: false description: Boolean determining if the comment thread is resolved author: type: object required: - userId - email - name properties: userId: type: string description: The unique identifier of the author email: type: string description: Email of the author name: type: string description: Name of the author example: id: 6287ec36a841b25637c663df email: email name: name mentionedUsers: type: array description: List of mentioned users. This is an empty array until email notifications are sent, which can take up to 5 minutes after the comment is created. items: type: object required: - userId - email - name properties: userId: type: string description: The unique identifier of the mentioned user email: type: string description: Email of the user name: type: string description: Name of the User example: userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: type: string format: date-string example: '2023-03-17T18:47:35.560Z' description: The date the item was created lastUpdated: type: string format: date-string example: '2023-03-17T18:47:35.560Z' description: The date the item was last updated example: value: id: 679d2ddb5196117ad04d1ffa siteId: 679826b3b20b045e176bc4b5 pageId: 679826b3b20b045e176bc4bc localeId: 67993753d910db250db64b3e itemId: breakpoint: main url: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc content: 'This comment mentions another user [[6287ec36a841b25637c663df]] ' isResolved: false author: userId: 6287ec36a841b25637c663df email: ford.prefect@heartofgold.spaceship name: Ford Prefect mentionedUsers: - userId: 6287ec36a841b25637c663df email: arthur.dent@heartofgold.spaceship name: Arthur Dent createdOn: '2025-01-31T20:08:59.759Z' lastUpdated: '2025-01-31T20:08:59.759Z' '400': description: Request body was incorrectly formatted. x-logErrorCode: 400 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: bad_request message: 'Bad Request: Request is malformed' externalReference: details: [] '401': description: Provided access token is invalid or does not have access to requested resource x-logErrorCode: 401 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: not_authorized message: Request not authorized externalReference: details: [] '404': description: Requested resource not found x-logErrorCode: 404 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: resource_not_found message: 'Requested resource not found: The site cannot be found' externalReference: details: [] '429': description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses. x-logErrorCode: 429 headers: X-RateLimit-Remaining: description: Contains the number of available requests remaining in the current minute schema: type: number X-RateLimit-Limit: description: Contains your current overall rate limit per minute schema: type: number content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: too_many_requests message: Too many requests externalReference: details: [] '500': description: We had a problem with our server. Try again later. content: application/json: x-logErrorCode: 500 schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: internal_error message: An Internal Error occurred externalReference: details: [] /sites/{site_id}/comments/{comment_thread_id}/replies: get: x-fern-sdk-group-name: - sites - comments x-fern-sdk-method-name: list-comment-replies security: - OAuth2: - comments:read operationId: list-comment-replies summary: Webflow List Comment Replies description: "List all replies to a specific comment thread.\n\n\n There may be a delay of up to 5 minutes before new comments appear in the system.\n\n\nRequired scope | `comments:read`\n" tags: - Comments - Sites parameters: - name: site_id in: path description: Unique identifier for a Site example: 580e63e98c9a982ac9b8b741 required: true schema: type: string format: objectid default: - name: comment_thread_id in: path description: Unique identifier for a Comment Thread example: 580e63e98c9a982ac9b8b741 required: true schema: type: string format: objectid - name: localeId in: query allowEmptyValue: true example: 65427cf400e02b306eaa04a0 description: 'Unique identifier for a specific Locale. [Lear more about localization.](/data/v2.0.0/docs/working-with-localization) ' schema: type: string - in: query example: 0 allowEmptyValue: true name: offset description: Offset used for pagination if the results have more than limit records required: false schema: type: integer - in: query allowEmptyValue: true name: limit example: 100 description: 'Maximum number of records to be returned (max limit: 100)' required: false schema: type: integer - name: sortBy in: query allowEmptyValue: true description: Sort results by the provided value. Only allowed when sortOrder is provided. required: false schema: type: string enum: - createdOn - lastUpdated - name: sortOrder in: query allowEmptyValue: true description: Sorts the results by asc or desc required: false schema: type: string enum: - asc - desc responses: '200': description: Request was successful content: application/json: schema: description: 'A list of comment replies. ' required: - comments - pagination properties: comments: type: array items: description: 'A comment thread represents a conversation between users on a specific page. Each comment thread has a unique identifier and can contain multiple comments. ' type: object required: - id - commentId - siteId - pageId - breakpoint - content - isResolved - author - lastUpdated - createdOn properties: id: type: string example: 580e64008c9a982ac9b8b754 description: Unique identifier for the comment thread commentId: type: string example: 679d2ddb5196117ad04d1ff8 description: The comment reply unique identifier siteId: type: string example: 580e64008c9a982ac9b8b754 description: The site unique identifier pageId: type: string example: 580e64008c9a982ac9b8b754 description: The page unique identifier localeId: type: string readOnly: true example: 580e64008c9a982ac9b8b754 description: The locale unique identifier breakpoint: type: string example: main description: The breakpoint the comment was left on content: type: string example: This is a comment reply description: The content of the comment reply isResolved: type: boolean default: false description: Boolean determining if the comment thread is resolved author: type: object required: - id - email - name properties: id: type: string description: The unique identifier of the author email: type: string description: Email of the author name: type: string description: Name of the author example: id: 6287ec36a841b25637c663df email: email name: name mentionedUsers: type: array description: List of mentioned users is an empty array until email notifications are sent. items: type: object required: - id - email - name properties: id: type: string description: The unique identifier of the mentioned user email: type: string description: Email of the user name: type: string description: Name of the User example: id: 6287ec36a841b25637c663df email: arthur.dent@example.com name: Arthur Dent lastUpdated: type: string format: date-string readOnly: true example: '2023-03-17T18:47:35.560Z' description: The date the item was last updated createdOn: type: string format: date-string readOnly: true example: '2023-03-17T18:47:35.560Z' description: The date the item was created pagination: type: object required: - limit - offset - total properties: limit: type: integer default: 100 description: The limit specified in the request (default 100) offset: type: integer default: 0 description: The offset specified for pagination total: type: integer description: Total number of comment replies example: comments: - id: 679d2ddb5196117ad04d1ffa commentId: 679d2ddb5196117ad04d1ff8 siteId: 679826b3b20b045e176bc4b5 pageId: 679826b3b20b045e176bc4bc localeId: 67993753d910db250db64b3e itemId: breakpoint: main url: https://webflow.com/design/site-slug-4ec832?workflow=comment&commentId=679d2ddb5196117ad04d1ff8&pageId=679826b3b20b045e176bc4bc content: 'This comment mentions another user [[6287ec36a841b25637c663df]] ' isResolved: false author: userId: 6287ec36a841b25637c663df email: email name: name mentionedUsers: - userId: 6287ec36a841b25637c663df email: arthur.dent@example.com name: Arthur Dent createdOn: '2025-01-31T20:08:59.759Z' lastUpdated: '2025-01-31T20:08:59.759Z' pagination: limit: 2 offset: 0 total: 1 '400': description: Request body was incorrectly formatted. x-logErrorCode: 400 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: bad_request message: 'Bad Request: Request is malformed' externalReference: details: [] '401': description: Provided access token is invalid or does not have access to requested resource x-logErrorCode: 401 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: not_authorized message: Request not authorized externalReference: details: [] '404': description: Requested resource not found x-logErrorCode: 404 content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: resource_not_found message: 'Requested resource not found: The site cannot be found' externalReference: details: [] '429': description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses. x-logErrorCode: 429 headers: X-RateLimit-Remaining: description: Contains the number of available requests remaining in the current minute schema: type: number X-RateLimit-Limit: description: Contains your current overall rate limit per minute schema: type: number content: application/json: schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: too_many_requests message: Too many requests externalReference: details: [] '500': description: We had a problem with our server. Try again later. content: application/json: x-logErrorCode: 500 schema: type: object example: code: not_authorized message: Request not authorized externalReference: details: [] properties: code: type: string description: Error code example: not_authorized enum: - bad_request - collection_not_found - conflict - duplicate_collection - duplicate_user_email - ecommerce_not_enabled - forbidden - forms_require_republish - incompatible_webhook_filter - internal_error - invalid_auth_version - invalid_credentials - invalid_domain - invalid_user_email - item_not_found - missing_scopes - no_domains - not_authorized - not_enterprise_plan_site - not_enterprise_plan_workspace - order_not_found - resource_not_found - too_many_requests - unsupported_version - unsupported_webhook_trigger_type - user_limit_reached - user_not_found - users_not_enabled - validation_error message: type: string description: Error message example: Request not authorized externalReference: type: string description: Link to more information example: '' details: type: array description: Array of errors items: - type: string example: Invalid email address description: Error message - type: object example: field: email message: Invalid email address description: Error message example: [] example: code: internal_error message: An Internal Error occurred externalReference: details: [] components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: scopes: authorized_user:read: read details about the authorized user assets:read: read assets on the site assets:write: write assets on a site cms:read: read collections and items for a site cms:write: write to collections and items for a site comments:read: read comments on the site comments:write: write comments on the site custom_code:read: read custom code on the site custom_code:write: modify custom code on the site ecommerce:read: read ecommerce data ecommerce:write: edit ecommerce data forms:read: read form data forms:write: write form data pages:read: read pages on the site pages:write: write to pages on the site components:read: read component data components:write: write component data sites:read: read sites on the site sites:write: modify pages on the site users:read: read users on the site site_activity:read: read site activity logs users:write: modify users on the site workspace:read: read workspace resource data workspace:write: write workspace resource data site_config:read: read site configuration data site_config:write: write site configuration data authorizationUrl: https://webflow.com/oauth/authorize tokenUrl: https://api.webflow.com/oauth/token ApiKey: type: http scheme: bearer x-fern-token-variable-name: access_token