---
title: "regenerate half centuries (Auth policies: ganjoor:modify)"
method: POST
path: "/api/ganjoor/periods"
tags: ["Ganjoor"]
---

# regenerate half centuries (Auth policies: ganjoor:modify)

`POST /api/ganjoor/periods`

## Response `200`

OK

- GanjoorPoetCompleteViewModel — Poet Complete Information
  - `poet` GanjoorPoetViewModel — Ganjoor Poet
    - `id` integer — id
    - `name` string, nullable — name
    - `description` string, nullable — description
    - `fullUrl` string, nullable — urlslug
    - `rootCatId` integer — root cat id
    - `nickname` string, nullable — short name
    - `published` boolean — published on website
    - `imageUrl` string, nullable — image url
    - `birthYearInLHijri` integer — birth 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
    - `deathYearInLHijri` integer — death year in lunar hijri
    - `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
    - `pinOrder` integer — Home page pin order (zero means not pinned)
    - `birthPlace` string, nullable — birth place
    - `birthPlaceLatitude` number, double — birth place latitude
    - `birthPlaceLongitude` number, double — birth place longitude
    - `deathPlace` string, nullable — death place
    - `deathPlaceLatitude` number, double — death place latitude
    - `deathPlaceLongitude` number, double — death place longitude
  - `cat` GanjoorCatViewModel — cat view model
    - `id` integer — id
    - `title` string, nullable — text
    - `urlSlug` string, nullable — url => slug
    - `fullUrl` string, nullable — full url
    - `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
    - `rImageId` string, uuid, nullable — user image id
    - `sumUpSubsGeoLocations` boolean — sum up sub categories geo locations
    - `mapName` string, nullable — category map name
    - `next` GanjoorCatViewModel — recursive
    - `previous` GanjoorCatViewModel — recursive
    - `ancestors` GanjoorCatViewModel[], nullable — ancestors
    - `children` GanjoorCatViewModel[], nullable — cat children
    - `poems` GanjoorPoemSummaryViewModel[], nullable — poems
      - `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
              - …
            - `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
        - `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
              - …
            - `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
              - …
            - `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
    - `paperSources` GanjoorPaperSource[], nullable — paper sources
      - `id` string, uuid — Id
      - `ganjoorPoetId` integer — poet id
      - `ganjoorCatId` integer — cat id
      - `ganjoorCatFullTitle` string, nullable — cat full title
      - `ganjoorCatFullUrl` string, nullable — cat full url
      - `bookType` 0 | 1 | 2 | 3 | 4 — Link Type
      - `bookFullUrl` string, nullable — book full url
      - `naskbanBookId` integer — naskban book id
      - `bookFullTitle` string, nullable — book title
      - `description` string, nullable — description
      - `isTextOriginalSource` boolean — is the text original source for the category?
      - `coverThumbnailImageUrl` string, nullable — cover thumbnail image url
      - `matchPercent` integer — match percent
      - `humanReviewed` boolean — reviewed by a human
      - `orderIndicator` integer — position in sorting
    - `newImage` string, binary, nullable — new image

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[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/64a5b49a158a/schema)
