---
title: "get recent comments"
method: GET
path: "/api/ganjoor/comments"
tags: ["Ganjoor"]
---

# get recent comments

`GET /api/ganjoor/comments`

## Query parameters

- `PageNumber` integer
- `PageSize` integer
- `filterUserId` string, uuid
- `term` string

## Response `200`

OK

- GanjoorCommentFullViewModel[]
  - `id` integer — Id
  - `authorName` string, nullable — author name (MySql imported field)
  - `authorUrl` string, nullable — author url (MySql imported field)
  - `commentDate` string, date-time — comment date
  - `htmlComment` string, nullable — comment
  - `publishStatus` string, nullable — status
  - `userId` string, uuid, nullable — User Id
  - `inReplyTo` GanjoorCommentSummaryViewModel — GanjoorComment Summary View Model
    - `id` integer — Id
    - `authorName` string, nullable — author name (MySql imported field)
    - `authorUrl` string, nullable — author url (MySql imported field)
    - `commentDate` string, date-time — comment date
    - `htmlComment` string, nullable — comment
    - `publishStatus` string, nullable — status
    - `inReplyToId` integer, nullable — in reply to
    - `userId` string, uuid, nullable — User Id
    - `replies` GanjoorCommentSummaryViewModel[], nullable — replies
    - `myComment` boolean — this can be used by clients
    - `coupletIndex` integer — couplet index
    - `coupletSummary` string, nullable — couplet summary
    - `isBookmarked` boolean — for client
    - `likeCount` integer — Total likes
    - `dislikeCount` integer — Total dislikes
    - `currentUserRatingValue` integer — +1 = Like -1 = Dislike
  - `poem` GanjoorPoemSummaryViewModel — poem summary
    - `id` integer — id
    - `title` string, nullable — title
    - `urlSlug` string, nullable — url => slug
    - `excerpt` string, nullable — excerpt text
    - `mainSections` GanjoorPoemSection[], nullable — whole poem sections
      - `id` integer — record id
      - `poemId` integer — Poem Id
      - `poem` GanjoorPoem — Ganjoor Poem
        - `id` integer — id
        - `catId` integer — cat-id
        - `cat` GanjoorCat — Ganjoor Category
          - `id` integer — id
          - `poetId` integer — poet_id
          - `poet` GanjoorPoet — Ganjoor Poet
            - `id` integer — id
            - `name` string, nullable — name
            - `description` string, nullable — description
            - `nickname` string, nullable — short name
            - `rImage` RImage — Image Files
              - …
            - `rImageId` string, uuid, nullable — user image id
            - `published` boolean — published on website
            - `birthYearInLHijri` integer — birth year in lunar hijri
            - `deathYearInLHijri` integer — death year in lunar hijri
            - `pinOrder` integer — Home page pin order (zero means not pinned)
            - `validBirthDate` boolean — BirthYearInLHijri, for some poets it is only indicator of their century of birth and should not be relied as their valid birth date
            - `validDeathDate` boolean — DeathYearInLHijri, for some poets it is only indicator of their century of death and should not be relied as their valid death date
            - `birthLocationId` integer, nullable — birth location id
            - `birthLocation` GanjoorGeoLocation — Geo Locations (Cities) referred by Ganjoor Metadata
              - …
            - `deathLocationId` integer, nullable — death location id
            - `deathLocation` GanjoorGeoLocation — Geo Locations (Cities) referred by Ganjoor Metadata
              - …
          - `title` string, nullable — text
          - `parentId` integer, nullable — parent_id
          - `parent` GanjoorCat — recursive
          - `urlSlug` string, nullable — url => slug
          - `fullUrl` string, nullable — sample: /hafez/ghazal
          - `tableOfContentsStyle` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 — ganjoor TOC options
          - `catType` 0 | 1 | 2 — Ganjoor Category Type
          - `description` string, nullable — additional description or note
          - `descriptionHtml` string, nullable — html mode of additional description or note
          - `mixedModeOrder` integer — order when mixed with poems
          - `published` boolean — published
          - `bookName` string, nullable — category book name
          - `rImage` RImage — Image Files
            - `id` string, uuid — Id
            - `originalFileName` string, nullable — Original File Name
            - `contentType` string, nullable — content type
            - `fileSizeInBytes` integer — Original Image File Size In Byte
            - `imageWidth` integer — Original Image Width
            - `imageHeight` integer — Original Image Height
            - `folderName` string, nullable — پوشه محل ذخیره تصویر
            - `storedFileName` string, nullable — نام فایل ذخیره شده با بالاترین کیفیت
            - `dataTime` string, date-time — datetime
            - `lastModified` string, date-time — Last Modified for caching purposes
          - `rImageId` string, uuid, nullable — user image id
          - `sumUpSubsGeoLocations` boolean — sum up sub categories geo locations
          - `mapName` string, nullable — category map name
        - `title` string, nullable — title
        - `fullTitle` string, nullable — cat + parent cats title + title
        - `urlSlug` string, nullable — url => slug
        - `fullUrl` string, nullable — sample: /hafez/ghazal/sh1
        - `plainText` string, nullable — verses text
        - `htmlText` string, nullable — verses text as html (ganjoor.net format)
        - `ganjoorMetreId` integer, nullable — prosody information
        - `ganjoorMetre` GanjoorMetre — Poem prosodic Metre
          - `id` integer — Id
          - `urlSlug` string, nullable — Url Slug
          - `rhythm` string, nullable — Rythm
          - `name` string, nullable — Name
          - `description` string, nullable — Description
          - `verseCount` integer — Total Verse Count (its actually couplet count)
        - `rhymeLetters` string, nullable — rhyme letters
        - `sourceName` string, nullable — source name
        - `sourceUrlSlug` string, nullable — source url slug
        - `oldTag` string, nullable — old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
        - `oldTagPageUrl` string, nullable — old collection page url e.g /saadi/tayyebat
        - `mixedModeOrder` integer — order when mixed with categories
        - `published` boolean — published
        - `language` string, nullable — language (this is intended to affect html page encodings and not determine actuallly accents and ....)
        - `poemSummary` string, nullable — poem summary
        - `claimedByMultiplePoets` boolean — poem is claimed by multiple poets
      - `poetId` integer, nullable — poet id might be different from GanjoorPoem.PoetId
      - `poet` GanjoorPoet — Ganjoor Poet
        - `id` integer — id
        - `name` string, nullable — name
        - `description` string, nullable — description
        - `nickname` string, nullable — short name
        - `rImage` RImage — Image Files
          - `id` string, uuid — Id
          - `originalFileName` string, nullable — Original File Name
          - `contentType` string, nullable — content type
          - `fileSizeInBytes` integer — Original Image File Size In Byte
          - `imageWidth` integer — Original Image Width
          - `imageHeight` integer — Original Image Height
          - `folderName` string, nullable — پوشه محل ذخیره تصویر
          - `storedFileName` string, nullable — نام فایل ذخیره شده با بالاترین کیفیت
          - `dataTime` string, date-time — datetime
          - `lastModified` string, date-time — Last Modified for caching purposes
        - `rImageId` string, uuid, nullable — user image id
        - `published` boolean — published on website
        - `birthYearInLHijri` integer — birth year in lunar hijri
        - `deathYearInLHijri` integer — death year in lunar hijri
        - `pinOrder` integer — Home page pin order (zero means not pinned)
        - `validBirthDate` boolean — BirthYearInLHijri, for some poets it is only indicator of their century of birth and should not be relied as their valid birth date
        - `validDeathDate` boolean — DeathYearInLHijri, for some poets it is only indicator of their century of death and should not be relied as their valid death date
        - `birthLocationId` integer, nullable — birth location id
        - `birthLocation` GanjoorGeoLocation — Geo Locations (Cities) referred by Ganjoor Metadata
          - `id` integer — id
          - `name` string, nullable — name
          - `latitude` number, double — Latitude
          - `longitude` number, double — Longitude
          - `machineGenerated` boolean — AI generated
        - `deathLocationId` integer, nullable — death location id
        - `deathLocation` GanjoorGeoLocation — Geo Locations (Cities) referred by Ganjoor Metadata
          - `id` integer — id
          - `name` string, nullable — name
          - `latitude` number, double — Latitude
          - `longitude` number, double — Longitude
          - `machineGenerated` boolean — AI generated
      - `index` integer — use this field instead of Id for referencing to ease record deletion for verses, Index starts at 0, each poem should have at least one non-virtual part ordered by Index without break
      - `number` integer — for lots of poems Number equals to Index + 1, but for rare ones such as a paragraph containing multi-band poem this could be different, 0 means no visible numbers
      - `sectionType` 0 | 1 | 2 | 3 — poem section type
      - `verseType` 1 | 2 | 3 | 4 — how GanjoorPoemSection is linked to GanjoorVerse
      - `ganjoorMetreId` integer, nullable — prosody information
      - `ganjoorMetre` GanjoorMetre — Poem prosodic Metre
        - `id` integer — Id
        - `urlSlug` string, nullable — Url Slug
        - `rhythm` string, nullable — Rythm
        - `name` string, nullable — Name
        - `description` string, nullable — Description
        - `verseCount` integer — Total Verse Count (its actually couplet count)
      - `ganjoorMetreRefSectionIndex` integer, nullable — for non WholePoem sections, there must be a reference section for meters in order to make them updatable
      - `rhymeLetters` string, nullable — rhyme letters
      - `plainText` string, nullable — verses text
      - `htmlText` string, nullable — verses text as html (ganjoor.net format)
      - `poemFormat` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 16 | 32 | 40 | 45 | 64 | 128 | 176 | 187 | 256 | 512 | 992 | 1024 | 2032 | 2048 — poem format
      - `cachedFirstCoupletIndex` integer — first couplet index
      - `language` string, nullable — language, null means farsi
      - `coupletsCount` integer — couplets count
      - `top6RelatedSections` GanjoorCachedRelatedSection[], nullable — top 6 related sections
        - `id` integer — id
        - `poemId` integer — poem id
        - `poem` GanjoorPoem — Ganjoor Poem
          - `id` integer — id
          - `catId` integer — cat-id
          - `cat` GanjoorCat — Ganjoor Category
            - `id` integer — id
            - `poetId` integer — poet_id
            - `poet` GanjoorPoet — Ganjoor Poet
              - …
            - `title` string, nullable — text
            - `parentId` integer, nullable — parent_id
            - `parent` GanjoorCat — recursive
            - `urlSlug` string, nullable — url => slug
            - `fullUrl` string, nullable — sample: /hafez/ghazal
            - `tableOfContentsStyle` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 — ganjoor TOC options
            - `catType` 0 | 1 | 2 — Ganjoor Category Type
            - `description` string, nullable — additional description or note
            - `descriptionHtml` string, nullable — html mode of additional description or note
            - `mixedModeOrder` integer — order when mixed with poems
            - `published` boolean — published
            - `bookName` string, nullable — category book name
            - `rImage` RImage — Image Files
              - …
            - `rImageId` string, uuid, nullable — user image id
            - `sumUpSubsGeoLocations` boolean — sum up sub categories geo locations
            - `mapName` string, nullable — category map name
          - `title` string, nullable — title
          - `fullTitle` string, nullable — cat + parent cats title + title
          - `urlSlug` string, nullable — url => slug
          - `fullUrl` string, nullable — sample: /hafez/ghazal/sh1
          - `plainText` string, nullable — verses text
          - `htmlText` string, nullable — verses text as html (ganjoor.net format)
          - `ganjoorMetreId` integer, nullable — prosody information
          - `ganjoorMetre` GanjoorMetre — Poem prosodic Metre
            - `id` integer — Id
            - `urlSlug` string, nullable — Url Slug
            - `rhythm` string, nullable — Rythm
            - `name` string, nullable — Name
            - `description` string, nullable — Description
            - `verseCount` integer — Total Verse Count (its actually couplet count)
          - `rhymeLetters` string, nullable — rhyme letters
          - `sourceName` string, nullable — source name
          - `sourceUrlSlug` string, nullable — source url slug
          - `oldTag` string, nullable — old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
          - `oldTagPageUrl` string, nullable — old collection page url e.g /saadi/tayyebat
          - `mixedModeOrder` integer — order when mixed with categories
          - `published` boolean — published
          - `language` string, nullable — language (this is intended to affect html page encodings and not determine actuallly accents and ....)
          - `poemSummary` string, nullable — poem summary
          - `claimedByMultiplePoets` boolean — poem is claimed by multiple poets
        - `sectionIndex` integer — section index
        - `poetId` integer — poet id
        - `relationOrder` integer — order
        - `poetName` string, nullable — poet name
        - `poetImageUrl` string, nullable — poet image url
        - `fullUrl` string, nullable — poem full url
        - `fullTitle` string, nullable — poem full title
        - `htmlExcerpt` string, nullable — excerpt
        - `targetPoemId` integer — target poem id
        - `targetSectionIndex` integer — target section index
        - `poetMorePoemsLikeThisCount` integer — other poems
      - `oldGanjoorMetreId` integer, nullable — old metre id to see it needs refreshing related sections
      - `oldRhymeLetters` string, nullable — old rhyme letters to see it needs refreshing related sections
      - `modified` boolean — modified
      - `excerpt` string, nullable — excerpt
  - `myComment` boolean — this can be used by clients
  - `verse1Id` integer — verse1 id
  - `verse2Id` integer — verse2 id
  - `coupletIndex` integer — couplet index
  - `coupletSummary` string, nullable — couplet summary
  - `likeCount` integer — Total likes
  - `dislikeCount` integer — Total dislikes
  - `currentUserRatingValue` integer — +1 = Like -1 = Dislike

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/ganjoor/apis/rmuseum-api.md) · [All operations](https://skmtc.net/ganjoor/apis/rmuseum-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ganjoor/rmuseum-api/revisions/cc1652ba4704/schema)
