---
title: "get the poems tagged with this person"
method: GET
path: "/api/people/{id}/poems"
tags: ["GanjoorRelatedPerson"]
---

# get the poems tagged with this person

`GET /api/people/{id}/poems`

## Request

- Base URL: `https://api.ganjoor.net` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ganjoor.net/api/people/{id}/poems`
- Auth: none declared

## Path parameters

- `id` integer, required

## Query parameters

- `catId` integer

## Response `200`

OK

- PoemGeoDateTag[]
  - `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
        - `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
      - `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
  - `coupletIndex` integer: couplet index: 0 based like GanjoorVerse.CoupletIndex (0 is the first couplet), or RMuseum.Models.Ganjoor.PoemGeoDateTag.WholePoem (-1) if the tag applies to the whole poem
  - `locationId` integer, nullable: location
  - `location` 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
  - `lunarYear` integer, nullable: Hijri Ghamari year
  - `lunarMonth` integer, nullable: Hijri Ghamari month
  - `lunarDay` integer, nullable: Hijri Ghamari day
  - `lunarDateTotalNumber` integer, nullable: sample: 14440101, would be used in sorting events
  - `verifiedDate` boolean: verified date
  - `ignoreInCategory` boolean: ignore in category
  - `personId` integer, nullable: related person id
  - `person` GanjoorRelatedPerson: a person refered by a poem
    - `id` integer: id
    - `name` string, nullable: name
    - `description` string, nullable: description
    - `wikiUrl` string, nullable: wikipedia url
    - `birthYearInLHijri` integer: birth year in lunar hijri
    - `deathYearInLHijri` integer: death year in lunar hijri
    - `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
    - `machineGenerated` boolean: AI generated
    - `familyTreeCaption` string, nullable: optional caption for the family tree this person is treated as the root of (e.g. "ساسانیان", "آل برمک") - purely a display label for whoever a tree is being browsed from; nothing enforces that this person actually has no recorded ancestors themselves, and most people will leave this null (only whichever person a tree is "named after" needs one set).
    - `importance` 0 | 1 | 2: how editorially prominent a GanjoorRelatedPerson is treated as - purely a display/sizing hint (see GanjoorRelatedPerson.Importance, GanjoorPersonGraphNode.Importance and peoplegraph.js's nodeRadius()), never used to filter, rank or otherwise affect query results. New values can be appended safely later (stored as int).
    - `gender` 0 | 1 | 2: a GanjoorRelatedPerson's gender - used only by the family-tree chart (familytree.js's buildLayout()) to break ties when a child has two recorded parents and both happen to have their own recorded ancestors (so neither side can be preferred on "continues a documented lineage" grounds alone): the father is preferred as the tree's spine parent, matching conventional patrilineal genealogy-chart practice, with the mother then drawn attached beside him. Never used to filter, rank or otherwise affect query results. New values can be appended safely later (stored as int).
    - `aliases` string, nullable: other names this person is known by (epithets, titles, alternative spellings), separated by the Persian comma (،) - e.g. for رستم: «تهمتن، رستم دستان، پور زال». Used by the AI tagging jobs to match a name in a poem to this person, and filled automatically when two people are merged
  - `personMention` 0 | 1: why a person is named in a tagged couplet/poem (PoemGeoDateTag.PersonMention): is the person actually part of the story/context being told, or only mentioned in passing? Needed to tell "poems where this person appears" from "poems that merely refer to them", e.g. when building presence and lifetime charts. Stored as int; new values can be appended later.
  - `machineGenerated` boolean: AI generated
  - `note` string, nullable: optional explanatory note for this tag (e.g. why this couplet is relevant to the tagged person - carried over from the suggestion's SuggestionNote when a moderator approves it, and editable afterwards like the tag's other fields)
  - `coupletText` string, nullable: the tagged couplet's own text (both مصرع of the verse at PoemId/CoupletIndex), filled in on read by whichever service method needs to show it (e.g. GanjoorRelatedPersonService.GetPoemsByPersonAsync) - not a mapped database column

## Other responses

- `400`: Bad Request

## Changes

- **2026-10-10** `330e7bb195c1`: 2 info
  - added the new optional `query` request parameter `catId`
  - added the optional property `items/person/aliases` to the response with the `200` status
- **2026-10-09** `285a0385568d`: 1 info
  - added the optional property `items/personMention` to the response with the `200` status
- **2026-10-03** `3812f6309404`: 2 info
  - added the optional property `items/person/gender` to the response with the `200` status
  - added the optional property `items/person/importance` to the response with the `200` status
- **2026-10-02** `86221e628c51`: 2 info
  - added the optional property `items/coupletText` to the response with the `200` status
  - added the optional property `items/note` to the response with the `200` status
- **2026-09-28** `e07d36be1da3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ganjoor/apis/rmuseum-api/changes/api/people/:id/poems/get.md)

---

[API](https://skmtc.dev/ganjoor/apis/rmuseum-api.md) - [All operations](https://skmtc.dev/ganjoor/apis/rmuseum-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ganjoor/apis/rmuseum-api/revisions/143b912b1085?raw)
