openapi: 3.2.0
info:
title: Welcome to the Respondology Comment Results API
version: v1
description: "\n Respondology\n is an AI-powered platform that helps brands moderate, analyze, and activate conversations at\nscale. Our product enables teams to automatically identify and manage spam and brand-damaging comments while\nelevating meaningful audience interactions. Using advanced language and engagement analysis, the platform\nunderstands intent and context to support accurate, brand-safe moderation without relying on rigid rules or\nkeyword lists. Beyond moderation, Respondology delivers real-time analytics that reveal what audiences are\ntalking about, how conversations are evolving, and where engagement opportunities exist. Within seconds,\nbrands can uncover trends, measure sentiment, and gain actionable insight across high-volume comment streams.\nBuilt for fast-moving social and digital teams, Respondology brings moderation, insight, and activation\ntogether in one unified Comment Activation Platform—helping brands protect their presence and turn\nconversations into measurable impact.\n\n## Getting Started\n\nTo begin using Respondology, contact our team to set up your account and receive your API key and secret.\nDuring onboarding, you’ll also configure the endpoint where Respondology will deliver moderation and analysis\nresults. Respondology uses webhooks to send results asynchronously, so there’s no need to keep an open\nconnection while content is being processed. Once setup is complete, you can start submitting posts and\ncomments for moderation and analytics immediately. For fine-tuned control, moderation behavior can be\ncustomized in the\n\n Moderate\n asset settings panel. Your account manager can also help tailor configurations\nto align with your brand standards and specific use cases. Follow the endpoint guides below to start\nintegrating Respondology into your workflow or download the OpenAPI specification\n[here](swagger.json).\n"
servers:
- url: https://webhooks.respondology.io/
description: Production API server
tags:
- name: Comment Results
description: 'Respondology delivers comment moderation and analysis results via webhook. These webhooks provide the
outcome of moderation decisions along with any recorded analysis data. To configure or update the endpoint
where result webhooks are sent, contact your [account manager](mailto:support@respondology.com).
'
paths: {}
webhooks:
comment_result:
post:
summary: Comment result webhook
description: Payload sent to your endpoint when moderation is completed for a submitted comment, or when the comment has been recorded if moderation is not requested.
tags:
- Comment Results
parameters:
- name: X-Hub-Signature
in: header
required: true
schema:
type: string
example: 74dff3501a7e41a45c6381b7c20fd0ecb84cc54164af9b9c493aadb54d0ca5ca
description: 'A SHA-256 HMAC signature of the request body, created using your API key’s secret. You can use this header to verify that the webhook originated from Respondology and that its payload was not tampered with.
To verify, compute a SHA-256 HMAC using the raw request body in JSON format and the secret. If this matches the signature, the result is authentic.'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- action
- comment_id
- account_id
- screen_name
- message
- language
- custom
- webhook_sending_initiated_at
- request_id
properties:
action:
type: string
enum:
- moderated
- recorded
example: moderated
description: Indicates whether the updated comment was moderated or only recorded for analysis. The moderation related fields below will not be returned if the comment was only recorded.
comment_id:
type: string
example: '45305901000853414072'
description: The id of the processed comment. This will match the `comment_id` returned when the comment was submitted.
account_id:
type: string
example: '93135838437690541987'
description: The id of the account the processed comment is associated with.
screen_name:
type: string
example: johnsmith
description: The screen name of the creator of the processed comment.
message:
type: string
example: This is a comment message.
description: The message of the processed comment.
language:
type: string
example: EN
description: The detected language of the processed comment, in ISO 639-2 format. Will return 'UN' for unknown if the language could not be detected.
custom:
type: object
additionalProperties: true
example:
key: value
description: The custom field included with the processed comment during submission, for whatever tracking is required by your system.
webhook_sending_initiated_at:
type: string
format: date_time
example: '2025-07-14T12:01:10Z'
description: The time at which sending the result was initiated, in UTC time and ISO 8601 format.
request_id:
type: string
example: 2025-10-27-bb6315110cc5477bef57c619
description: A unique id for the request that can be used for tracking and troubleshooting. This will match the `request_id` that was returned when the comment was submitted.
moderation_completed_at:
type: string
format: date_time
example: '2025-07-14T12:01:08Z'
description: The time at which moderation was completed, in UTC time and ISO 8601 format. This field will not be included if the comment was not moderated.
moderation_result:
type: string
enum:
- approved
- rejected
example: rejected
description: The moderation result. This field will not be included if the comment was not moderated.
moderation_reasons:
type: array
items:
type: string
example:
- Spam
- Offensive Language
description: An array of moderation reasons for rejected comments, which match the categories visible in Moderate. This field will not be included if the comment was not moderated or was approved. See the [Moderation Reasons](#tag/Moderation-Reasons) section for an explanation of each reason.
example:
action: moderated
comment_id: '45305901000853414072'
account_id: '93135838437690541987'
screen_name: johnsmith
message: This is a comment message.
language: EN
custom:
key: value
webhook_sending_initiated_at: '2025-07-14T12:01:10Z'
request_id: 2025-10-27-bb6315110cc5477bef57c619
moderation_completed_at: '2025-07-14T12:01:08Z'
moderation_result: rejected
moderation_reasons:
- Spam
- Offensive Language
responses:
'200':
description: Your server should return a 200 OK result when it successfully processes the webhook. If a 200 OK result is not received, result sending will be retried for 72 hours with exponential backoff.
comment_update_result:
post:
summary: Comment update result webhook
description: Payload sent to your endpoint when moderation is completed for an updated comment, or when the comment update has been recorded if moderation is not requested.
tags:
- Comment Results
parameters:
- name: X-Hub-Signature
in: header
required: true
schema:
type: string
example: 74dff3501a7e41a45c6381b7c20fd0ecb84cc54164af9b9c493aadb54d0ca5ca
description: 'A SHA-256 HMAC signature of the request body, created using your API key’s secret. You can use this header to verify that the webhook originated from Respondology and that its payload was not tampered with.
To verify, compute a SHA-256 HMAC using the raw request body in JSON format and the secret. If this matches the signature, the result is authentic.'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- action
- comment_id
- account_id
- screen_name
- message
- language
- custom
- webhook_sending_initiated_at
- request_id
properties:
action:
type: string
enum:
- moderated
- recorded
example: moderated
description: Indicates whether the updated comment was moderated or only recorded for analysis. The moderation related fields below will not be returned if the comment was only recorded.
comment_id:
type: string
example: '45305901000853414072'
description: The id of the updated comment. This will match the `comment_id` submitted with the comment update information.
account_id:
type: string
example: '93135838437690541987'
description: The id of the account the updated comment is associated with.
screen_name:
type: string
example: johnsmith
description: The screen name of the creator of the updated comment.
message:
type: string
example: This is an updated comment message.
description: The message of the updated comment.
language:
type: string
example: EN
description: The detected language of the processed comment, in ISO 639-2 format. Will return 'UN' for unknown if the language could not be detected.
custom:
type: object
additionalProperties: true
example:
key: value
description: The custom field included with the updated comment during submission, for whatever tracking is required by your system.
webhook_sending_initiated_at:
type: string
format: date_time
example: '2025-07-18T13:45:00Z'
description: The time at which sending the result was initiated, in UTC time and ISO 8601 format.
request_id:
type: string
example: 2025-10-27-bb6315110cc5477bef57c619
description: A unique id for the request that can be used for tracking and troubleshooting. This will match the `request_id` that was returned when the comment was submitted.
moderation_completed_at:
type: string
format: date_time
example: '2025-07-14T12:01:08Z'
description: The time at which moderation was completed, in UTC time and ISO 8601 format. This field will not be included if the comment was not moderated.
moderation_result:
type: string
enum:
- approved
- rejected
example: rejected
description: The moderation result. This field will not be included if the comment was not moderated.
moderation_reasons:
type: array
items:
type: string
example:
- Spam
- Offensive Language
description: An array of moderation reasons for rejected comments, which match the categories visible in Moderate. This field will not be included if the comment was not moderated or was approved. See the [Moderation Reasons](#tag/Moderation-Reasons) section for an explanation of each reason.
example:
action: moderated
comment_id: '45305901000853414072'
account_id: '93135838437690541987'
screen_name: johnsmith
message: This is a comment message.
language: EN
custom:
key: value
webhook_sending_initiated_at: '2025-07-14T12:01:10Z'
request_id: 2025-10-27-bb6315110cc5477bef57c619
moderation_completed_at: '2025-07-14T12:01:08Z'
moderation_result: rejected
moderation_reasons:
- Spam
- Offensive Language
responses:
'200':
description: Your server should return a 200 OK result when it successfully processes the webhook. If a 200 OK result is not received, result sending will be retried for 72 hours with exponential backoff.
comment_error_result:
post:
summary: Comment error result webhook
description: Payload sent to your endpoint when an error occurs during processing or moderation for a submitted or updated comment.
tags:
- Comment Results
parameters:
- name: X-Hub-Signature
in: header
required: true
schema:
type: string
example: 74dff3501a7e41a45c6381b7c20fd0ecb84cc54164af9b9c493aadb54d0ca5ca
description: 'A SHA-256 HMAC signature of the request body, created using your API key’s secret. You can use this header to verify that the webhook originated from Respondology and that its payload was not tampered with.
To verify, compute a SHA-256 HMAC using the raw request body in JSON format and the secret. If this matches the signature, the result is authentic.'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- action
- comment_id
- account_id
- screen_name
- message
- custom
- error
- request_id
properties:
action:
type: string
example: errored
description: Indicates the comment submission or update request has errored.
comment_id:
type: string
example: '45305901000853414072'
description: The id of the comment that has caused the error. This will match the `comment_id` returned when the comment was submitted, or the `comment_id` submitted with the comment if it was being updated.
account_id:
type: string
example: '93135838437690541988'
description: The id of the account of the comment that has caused the error.
screen_name:
type: string
example: johnsmith
description: The screen name of the comment that has caused the error.
comment_message:
type: string
example: This is an erroring comment message.
description: The message of the comment that has caused the error.
custom:
type: object
additionalProperties: true
example:
key: value
description: The custom field included with the comment during submission, for whatever tracking is required by your system.
error:
type: object
required:
- code
- message
- status
description: Detailed information about the error that has occurred.
properties:
message:
type: string
example: Please check your parameters
description: A message regarding the error, with suggested actions.
status:
type: string
example: BAD_REQUEST
description: The error status text.
code:
type: integer
example: 400
description: The error status code.
details:
type: array[string]
example: invalid account_id submitted
description: A list of error details in string array format.
request_id:
type: string
example: 2025-10-27-bb6315110cc5477bef57c619
description: A unique id for the request that can be used for tracking and troubleshooting. This will match the `request_id` that was returned when the comment was submitted.
example:
action: errored
comment_id: '45305901000853414072'
account_id: '93135838437690541988'
screen_name: johnsmith
message: This is an erroring comment message.
error:
message: Please check your parameters
status: BAD_REQUEST
code: 400
details:
- invalid account_id submitted
request_id: 2025-10-27-bb6315110cc5477bef57c619
responses:
'200':
description: Your server should return a 200 OK result when it successfully processes the webhook. If a 200 OK result is not received, result sending will be retried for 72 hours with exponential backoff.
x-tagGroups:
- name: Comments
tags:
- Comments
- name: Comment Results
tags:
- Comment Results
- name: Moderation Reasons
tags:
- Moderation Reasons
- name: Posts
tags:
- Posts
- name: Post Results
tags:
- Post Results
- name: Changelog
tags:
- Changelog