Skip to content
Developer

Feedback Comments

Media9 EndpointsMedia / Feedback Comments

Returns a list of feedback comments (three-tier visibility).

GET/api/media/feedback_comment

Query parameters

entrystringRequires access right: PUBLIC, LOGGED_IN, SCOPE
socialProfilestringRequires access right: PUBLIC, LOGGED_IN, SCOPE
isOfficialbooleanMarks a reply written on behalf of the operator, so the UI can set it apart from community comments. | Requires access right: PUBLIC, LOGGED_IN, SCOPE
createdstringRequires access right: PUBLIC, LOGGED_IN, SCOPE
idinteger
deletedbooleanThis property is used to mark an entity as deleted / archived
moderationStatusstring
updatedstring
searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

200Returns a list of MediaFeedbackComment objectsarray<MediaFeedbackComment>

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
[
  {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "guest_email": "lena.hartmann@example.org",
    "entry": {
      "author_name": "Beispiel",
      "id": 42,
      "text": "Text",
      "guest_name": "Beispiel",
      "headline": "string",
      "feedback_type": "string",
      "status": "string",
      "status_note": "string",
      "moderation_status": "string",
      "vote_count": 1
    },
    "social_profile": {
      "id": 42,
      "public_name": "Beispiel",
      "profile_picture_url": "https://vynst.de",
      "public_about_me": "string",
      "global_profile": true,
      "name_display_type": "string",
      "show_profile_picture": true,
      "profile_picture_check_status": "string",
      "created": "2026-10-15T09:30:00+02:00",
      "updated": "2026-10-15T09:30:00+02:00"
    },
    "is_official": true,
    "moderation_status": "string",
    "moderation_reason": "string"
  }
]

Creates a comment as an administrator.

POST/api/media/feedback_comment

Request body application/json

  • dataMediaFeedbackComment2
    Show fields (8)
    • entryMediaFeedbackEntry9

      Feedback entry the comment belongs to.

    • textstring

      Text of the comment.

    • social_profileMediaSocialProfile16

      Profile that wrote the comment.

    • guest_namestring

      Name of the guest who wrote the comment.

    • is_officialboolean

      Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • moderation_reasonstring

      Reason for the moderation decision.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200Add a new MediaFeedbackCommentMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "text": "Text",
    "guest_name": "Beispiel",
    "entry": {
      "text": "Text",
      "headline": "string",
      "feedback_type": "string",
      "deleted": true
    },
    "social_profile": {
      "public_name": "Beispiel",
      "profile_picture_url": "https://vynst.de",
      "public_about_me": "string",
      "name_display_type": "string",
      "show_profile_picture": true,
      "profile_picture_check_status": "string"
    },
    "is_official": true,
    "moderation_status": "string"
  }
}
'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Returns a single feedback comment.

GET/api/media/feedback_comment/{identifier}

Path parameters

identifierrequiredstring

Responses

200Returns a single MediaFeedbackCommentMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Updates a comment as an administrator.

PUT/api/media/feedback_comment/{identifier}

Path parameters

identifierrequiredstring

Request body application/json

  • dataMediaFeedbackComment2
    Show fields (8)
    • entryMediaFeedbackEntry9

      Feedback entry the comment belongs to.

    • textstring

      Text of the comment.

    • social_profileMediaSocialProfile16

      Profile that wrote the comment.

    • guest_namestring

      Name of the guest who wrote the comment.

    • is_officialboolean

      Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • moderation_reasonstring

      Reason for the moderation decision.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200Update a MediaFeedbackCommentMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request PUT \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "text": "Text",
    "guest_name": "Beispiel",
    "entry": {
      "text": "Text",
      "headline": "string",
      "feedback_type": "string",
      "deleted": true
    },
    "social_profile": {
      "public_name": "Beispiel",
      "profile_picture_url": "https://vynst.de",
      "public_about_me": "string",
      "name_display_type": "string",
      "show_profile_picture": true,
      "profile_picture_check_status": "string"
    },
    "is_official": true,
    "moderation_status": "string"
  }
}
'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Updates a comment as an administrator.

PATCH/api/media/feedback_comment/{identifier}

Path parameters

identifierrequiredstring

Request body application/json

  • dataMediaFeedbackComment2
    Show fields (8)
    • entryMediaFeedbackEntry9

      Feedback entry the comment belongs to.

    • textstring

      Text of the comment.

    • social_profileMediaSocialProfile16

      Profile that wrote the comment.

    • guest_namestring

      Name of the guest who wrote the comment.

    • is_officialboolean

      Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • moderation_reasonstring

      Reason for the moderation decision.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200Update a MediaFeedbackCommentMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request PATCH \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "text": "Text",
    "guest_name": "Beispiel",
    "entry": {
      "text": "Text",
      "headline": "string",
      "feedback_type": "string",
      "deleted": true
    },
    "social_profile": {
      "public_name": "Beispiel",
      "profile_picture_url": "https://vynst.de",
      "public_about_me": "string",
      "name_display_type": "string",
      "show_profile_picture": true,
      "profile_picture_check_status": "string"
    },
    "is_official": true,
    "moderation_status": "string"
  }
}
'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Soft-deletes a comment.

DELETE/api/media/feedback_comment/{identifier}

Path parameters

identifierrequiredstring

Responses

200Delete a MediaFeedbackCommentMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Creates a comment as a logged-in user.

POST/api/media/feedback_comment/user

Request body application/json

  • dataMediaFeedbackComment2
    Show fields (8)
    • entryMediaFeedbackEntry9

      Feedback entry the comment belongs to.

    • textstring

      Text of the comment.

    • social_profileMediaSocialProfile16

      Profile that wrote the comment.

    • guest_namestring

      Name of the guest who wrote the comment.

    • is_officialboolean

      Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • moderation_reasonstring

      Reason for the moderation decision.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200User creates a feedback commentMediaFeedbackComment3

Show fields (6)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile23

    Profile that wrote the comment.

  • guest_namestring

    Name of the guest who wrote the comment.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/user \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "data": {
    "text": "Text",
    "guest_name": "Beispiel",
    "entry": {
      "text": "Text",
      "headline": "string",
      "feedback_type": "string",
      "deleted": true
    },
    "social_profile": {
      "public_name": "Beispiel",
      "profile_picture_url": "https://vynst.de",
      "public_about_me": "string",
      "name_display_type": "string",
      "show_profile_picture": true,
      "profile_picture_check_status": "string"
    },
    "is_official": true,
    "moderation_status": "string"
  }
}
'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "is_official": true
}

Moderates several comments in one call.

PUT/api/media/feedback_comment/bulk_moderation

Comment moderation is on by default, so this queue is the one that fills up fastest — and approving thirty harmless replies one request at a time is the work nobody does, which is how a moderated board ends up looking dead.

Approving or hiding also refreshes the comment counters of the entries involved, because the count only includes visible comments.

Query parameters

identifiersrequiredstringComma separated comment identifiers
moderationStatusrequiredstringTarget moderation status
moderationReasonstringReason kept with the comment

Responses

200Moderate multiple comments at onceMediaFeedbackComment

Show fields (14)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • entryMediaFeedbackEntry8

    Feedback entry the comment belongs to.

    Show fields (17)
    • author_namestring

      Display name of the author, honouring the pseudonymity the person chose on their social profile. Falls back to the guest name, then to a neutral label — never to an email address.

    • idinteger

      Primary key of the feedback entry. Internal ID.

    • boardMediaFeedbackBoard5

      Feedback board the entry belongs to.

    • headlinestring

      Headline of the feedback entry.

    • textstring

      Text of the feedback entry.

    • feedback_typestring

      Type of the feedback, for example idea or problem.

    • statusstring

      Status of the feedback, for example open, planned or done.

    • status_notestring

      Publicly visible reason for the current status. A declined wish without a reason is worse than no board at all, so this is exposed to every access tier.

    • moderation_statusstring

      Moderation status, for example pending or approved.

    • social_profileMediaSocialProfile10

      Author when submitted by a logged-in person. Reuses the social profile so the pseudonymity settings a person already chose apply here too.

    • guest_namestring

      Name of the guest who wrote the entry.

    • vote_countinteger

      Denormalized so lists can sort by popularity without a join. Maintained by MediaFeedbackVoteHelper; MediaFeedbackRecountCommand repairs it.

    • comment_countinteger

      Number of comments on the entry.

    • duplicate_ofMediaFeedbackEntry8

      Merge target. Set together with STATUS_DUPLICATE.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile10

    Profile that wrote the comment.

    Show fields (11)
    • idinteger

      Primary key of the social profile. Internal ID.

    • public_namestring

      Name shown publicly.

    • profile_picture_urlstring

      URL of the profile picture.

    • public_about_mestring

      Text about the person shown publicly.

    • global_profileboolean

      The profile is a global profile across installations.

    • name_display_typestring

      How the name is shown, for example full name or first name only.

    • show_profile_pictureboolean

      The profile picture is shown.

    • profile_picture_check_statusstring

      Pruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

  • guest_namestring

    Name of the guest who wrote the comment.

  • guest_emailstring

    Scope-only.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

  • moderation_statusstring

    Moderation status, for example pending or approved.

  • moderation_reasonstring

    Reason for the moderation decision.

  • moderated_atstring (date-time)

    Time the comment was moderated.

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

Request
curl --request PUT \
  --url 'https://your-instance.iw-erp.de/api/media/feedback_comment/bulk_moderation?identifiers=string&moderationStatus=string' \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "guest_email": "lena.hartmann@example.org",
  "entry": {
    "author_name": "Beispiel",
    "id": 42,
    "text": "Text",
    "guest_name": "Beispiel",
    "board": {
      "id": 42,
      "name": "Beispiel",
      "public_title": "Beispiel",
      "public_description": "Text",
      "image_url": "https://vynst.de",
      "is_public": true,
      "public_key": "string",
      "sort_order": 1,
      "allow_new_entries": true,
      "allow_voting": true
    },
    "headline": "string",
    "feedback_type": "string",
    "status": "string",
    "status_note": "string",
    "moderation_status": "string"
  },
  "social_profile": {
    "id": 42,
    "public_name": "Beispiel",
    "profile_picture_url": "https://vynst.de",
    "public_about_me": "string",
    "global_profile": true,
    "name_display_type": "string",
    "show_profile_picture": true,
    "profile_picture_check_status": "string",
    "created": "2026-10-15T09:30:00+02:00",
    "updated": "2026-10-15T09:30:00+02:00"
  },
  "is_official": true,
  "moderation_status": "string",
  "moderation_reason": "string"
}

Soft-deletes the caller's own comment.

DELETE/api/media/feedback_comment/user/{identifier}

Path parameters

identifierrequiredstring

Responses

200User deletes their own commentMediaFeedbackComment3

Show fields (6)
  • author_namestring
  • idinteger

    Primary key of the feedback comment. Internal ID.

  • textstring

    Text of the comment.

  • social_profileMediaSocialProfile23

    Profile that wrote the comment.

  • guest_namestring

    Name of the guest who wrote the comment.

  • is_officialboolean

    Marks a reply written on behalf of the operator, so the UI can set it apart from community comments.

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/media/feedback_comment/user/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "author_name": "Beispiel",
  "id": 42,
  "text": "Text",
  "guest_name": "Beispiel",
  "is_official": true
}