Meeras
PoetsSherGhazalsNazmsTagsCollections
Sign in
Meeras

اردو اور ہندی شاعری کا زندہ ذخیرہ — مفت، کھلا، تین رسم الخط میں۔

تلاش
شعرااشعارغزلیںنظمیںکیفیات اور موضوعاتٹاپ 20مجموعے
تعارف
میراث کا تعارفلغتAPI دستاویزات
قانونی
رابطہپرائیویسی پالیسیشرائطِ استعمال
© 2026 میراث · ایک کھلا ذخیرہ

میراث API دستاویزات

عوامی، صرف پڑھنے کے لیے API۔ غیر تجارتی استعمال کے لیے مفت، فی IP شرحِ محدود۔ ذیل کا حوالہ زندہ OpenAPI تفصیل سے تیار کیا گیا ہے؛ اینڈ پوائنٹ اور فیلڈ کے نام زبان سے آزاد ہیں۔

انٹرایکٹو کنسول کھولیں

اینڈ پوائنٹس

  • Admin45
  • Auth9
  • Collections2
  • Engagement8
  • Home1
  • Lughat2
  • Me6
  • Poets3
  • Search1
  • Super-admin4
  • System2
  • Tags3
  • Works7

Admin

get/admin/commentsList comments for moderation (offset paginated; filter by status/user/work/flagged/deleted)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
statusquery—
userIdquery—
workIdquery—
flaggedquery
—
includeDeletedquery—
sortquery—

جوابات

200 — A page of comments in admin shape.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
statusstringyes
moderationReasonstringnullyes
flagCountnumberyes
createdAtstringyes

خرابیاں

  • 403 — FORBIDDEN (non-admin)
patch/admin/comments/{id}/approveApprove a pending comment

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The approved comment.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
statusstringyes
moderationReasonstringnullyes
flagCountnumberyes
createdAtstringyes

خرابیاں

  • 403 — FORBIDDEN (non-admin)
  • 404 — NOT_FOUND
  • 409 — COMMENT_INVALID_TRANSITION (not pending)
patch/admin/comments/{id}/rejectReject a pending or approved comment (reason ≥ 20 chars)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
reasonstringyes

جوابات

200 — The rejected comment.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
statusstringyes
moderationReasonstringnullyes

خرابیاں

  • 403 — FORBIDDEN (non-admin)
  • 404 — NOT_FOUND
  • 422 — VALIDATION_FAILED (reason too short)
patch/admin/comments/{id}/restoreRestore a soft-deleted comment

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The restored comment.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
statusstringyes
moderationReasonstringnullyes
flagCountnumberyes
createdAtstringyes

خرابیاں

  • 403 — FORBIDDEN (non-admin)
  • 404 — NOT_FOUND
get/admin/submissionsList submissions (admin; offset-paginated; FIFO by submittedAt; defaults to pending)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
statusquery—
entityTypequery—
submitterIdquery—
actionquery—

جوابات

200 — A page of submissions.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not an admin)
patch/admin/submissions/{id}/approveApprove a pending submission — publishes the entity (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
notesstring—

جوابات

200 — The approved submission and the published entity.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
submissionobjectyes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnull

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not an admin)
  • 404 — NOT_FOUND
  • 409 — SUBMISSION_INVALID_TRANSITION (not pending)
  • 422 — SUBMISSION_INCOMPLETE
patch/admin/submissions/{id}/rejectReject a pending submission (admin; reason ≥ 20 chars)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
reasonstringyes

جوابات

200 — The rejected submission.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not an admin)
  • 404 — NOT_FOUND
  • 409 — SUBMISSION_INVALID_TRANSITION (not pending)
  • 422 — VALIDATION_FAILED (reason too short)
patch/admin/submissions/{id}/needs-revisionSend a pending submission back for revision (admin; notes ≥ 10 chars)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
notesstringyes

جوابات

200 — The submission, now needs_revision.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not an admin)
  • 404 — NOT_FOUND
  • 409 — SUBMISSION_INVALID_TRANSITION (not pending)
  • 422 — VALIDATION_FAILED (notes too short)
post/admin/poetsCreate a poet (admin)

درخواست باڈی

FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bioShortobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bioFullobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
eraenumyes
languagesWrittenInarray<string>yes
copyrightStatusenumyes
sourceAttributionstringyes

جوابات

201 — Poet created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS
  • 422 — VALIDATION_FAILED
patch/admin/poets/{id}Update a poet (admin, If-Match required)

پیرامیٹرز

NameInRequiredDescription
idpathyes
If-Matchheaderyes

درخواست باڈی

FieldTypeRequiredDescription
slugstring—
nameobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bioShortobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bioFullobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
eraenum—
languagesWrittenInarray<string>—
copyrightStatusenum—
sourceAttributionstring—

جوابات

200 — Poet updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 409 — VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (incl. missing If-Match)
delete/admin/poets/{id}Soft-delete a poet (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Poet soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/poets/{id}/restoreRestore a soft-deleted poet (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Poet restored.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
eraenumyes
submissionStatusstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
post/admin/worksCreate a work (admin, sher only in Phase 1)

درخواست باڈی

FieldTypeRequiredDescription
typeenumyes
poetIdstringyes
slugstringyes
bodyobjectyes
FieldTypeRequiredDescription
enarray<any>yes
hiarray<any>yes
urarray<any>yes
tagsarray<string>yes
languageenumyes
sourceAttributionstringyes

جوابات

201 — Work created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND (poet missing or not approved)
  • 409 — ALREADY_EXISTS
  • 422 — VALIDATION_FAILED (incl. non-sher type, zero tags)
patch/admin/works/{id}Update a work (admin, If-Match required)

پیرامیٹرز

NameInRequiredDescription
idpathyes
If-Matchheaderyes

درخواست باڈی

FieldTypeRequiredDescription
poetIdstring—
slugstring—
bodyobject—
FieldTypeRequiredDescription
enarray<any>yes
hiarray<any>yes
urarray<any>yes
tagsarray<string>—
languageenum—
sourceAttributionstring—

جوابات

200 — Work updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 409 — VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (incl. missing If-Match, immutable slug/poetId)
delete/admin/works/{id}Soft-delete a work (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Work soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/works/{id}/restoreRestore a soft-deleted work (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Work restored.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
post/admin/tagsCreate a tag (admin)

درخواست باڈی

FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
typeenumyes
sortPrioritynumber—
isFeaturedboolean—

جوابات

201 — Tag created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS
  • 422 — VALIDATION_FAILED
patch/admin/tags/{id}Update a tag (admin, If-Match required)

پیرامیٹرز

NameInRequiredDescription
idpathyes
If-Matchheaderyes

درخواست باڈی

FieldTypeRequiredDescription
slugstring—
nameobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
typeenum—
sortPrioritynumber—
isFeaturedboolean—

جوابات

200 — Tag updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 409 — VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (incl. missing If-Match, immutable slug)
delete/admin/tags/{id}Soft-delete a tag (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Tag soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/tags/{id}/restoreRestore a soft-deleted tag (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Tag restored.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
typeenumyes
isFeaturedbooleanyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
post/admin/lughatCreate a dictionary entry (admin)

درخواست باڈی

FieldTypeRequiredDescription
slugstringyes
headwordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnull—
exampleSherIdstringnull—

جوابات

201 — Dictionary entry created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
headwordobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS
  • 422 — VALIDATION_FAILED
patch/admin/lughat/{id}Update a dictionary entry (admin, If-Match required)

پیرامیٹرز

NameInRequiredDescription
idpathyes
If-Matchheaderyes

درخواست باڈی

FieldTypeRequiredDescription
slugstring—
headwordobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnull—
exampleSherIdstringnull—

جوابات

200 — Dictionary entry updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
headwordobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 409 — VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (incl. missing If-Match, immutable slug)
delete/admin/lughat/{id}Soft-delete a dictionary entry (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Dictionary entry soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/lughat/{id}/restoreRestore a soft-deleted dictionary entry (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Dictionary entry restored.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
headwordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequired

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
get/admin/works/{id}/glossesList a work's Lughat glosses (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The work's glosses.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
workIdstringyes
tokenobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coupletIndexnumberyes
lineIndexnumberyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
post/admin/works/{id}/glossesAdd a Lughat gloss to a work (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
tokenobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coupletIndexnumberyes
lineIndexnumberyes
occurrencenumber—
dictionaryEntryIdstringnull—
meaningobjectnull—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
displayPrioritynumber—

جوابات

201 — Gloss created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
workIdstringyes
tokenobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS (token slot already annotated)
  • 422 — VALIDATION_FAILED (incl. non-approved work, exactly-one-source rule)
delete/admin/works/{id}/glosses/{glossId}Remove a Lughat gloss from a work (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes
glossIdpathyes

جوابات

204 — Gloss removed.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
get/admin/featured-todayList pinned featured-today days, newest first (admin)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—

جوابات

200 — A page of pinned days.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
datestringyes
topSherIdsarray<string>yes
featuredPoetIdstringyes
featuredCollectionIdstringnullyes
recommendedPoetIdsarray<string>yes
createdBystringyes
createdAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
post/admin/featured-todayPin a featured-today day (admin)

درخواست باڈی

FieldTypeRequiredDescription
datestringyes
topSherIdsarray<string>yes
featuredPoetIdstringyes
featuredCollectionIdstringnull—
wordOfDayobjectyes
FieldTypeRequiredDescription
wordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
recommendedPoetIdsarray<string>yes

جوابات

201 — Day pinned.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
datestringyes
topSherIdsarray<string>yes
featuredPoetIdstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS (date already pinned)
  • 422 — VALIDATION_FAILED (bad date, wrong ref counts, missing sher/poet)
patch/admin/featured-today/{id}Update a pinned day (admin; date is immutable)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
datestring—
topSherIdsarray<string>—
featuredPoetIdstring—
featuredCollectionIdstringnull—
wordOfDayobject—
FieldTypeRequiredDescription
wordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
Field
recommendedPoetIdsarray<string>—

جوابات

200 — Day updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
datestringyes
topSherIdsarray<string>yes
featuredPoetIdstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 422 — VALIDATION_FAILED (immutable date, bad refs)
delete/admin/featured-today/{id}Delete a pinned day (admin, hard delete)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Day deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
get/admin/featured-today/calendarCalendar of pinned days over a range (default today + 14d), entries hydrated (admin)

پیرامیٹرز

NameInRequiredDescription
startDatequery—
endDatequery—

جوابات

200 — Days in the range, each with its entry or null.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
daysarray<object>yes
FieldTypeRequiredDescription
datestringyes
entryobject—

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 422 — VALIDATION_FAILED (bad date format)
get/admin/featured-today/preview-todayToday's pinned day, hydrated (admin) — what the home page will show

جوابات

200 — Today's hydrated entry, or null.

FieldTypeRequiredDescription
successenumyes
dataobject—

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
get/admin/collectionsList collections including unpublished (admin, offset-paginated)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
categoryquery—
isFeaturedquery—
includeDeletedquery—

جوابات

200 — A page of collections.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
post/admin/collectionsCreate a collection (admin)

درخواست باڈی

FieldTypeRequiredDescription
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
descriptionobjectnull—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
worksarray<object>—
FieldTypeRequiredDescription
workIdstringyes
orderintegeryes
editorialNoteobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coverImageUrlstringnull—
coverColorstringnull—
categoryenum—
tagsarray<string>—
displayPrioritynumber—
isFeaturedboolean—
isPublishedboolean—

جوابات

201 — Collection created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS
  • 422 — VALIDATION_FAILED (bad works array, missing title)
get/admin/collections/{id}Get a collection by id with hydrated works (admin; incl. unpublished + soft-deleted)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The collection with hydrated works.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/collections/{id}Update a collection (admin, If-Match required)

پیرامیٹرز

NameInRequiredDescription
idpathyes
If-Matchheaderyes

درخواست باڈی

FieldTypeRequiredDescription
slugstring—
titleobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
descriptionobjectnull—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
worksarray<object>—
FieldTypeRequiredDescription
workIdstringyes
orderintegeryes
editorialNoteobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coverImageUrlstringnull—
coverColorstringnull—
categoryenum—
tagsarray<string>—
displayPrioritynumber—
isFeaturedboolean—
isPublishedboolean—

جوابات

200 — Collection updated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 409 — VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (incl. missing If-Match, immutable slug)
delete/admin/collections/{id}Soft-delete a collection (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Collection soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
patch/admin/collections/{id}/restoreRestore a soft-deleted collection (admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Collection restored.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
post/admin/collections/{id}/worksAdd a work to a collection (admin; appends or inserts at an order)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
workIdstringyes
orderinteger—
editorialNoteobject—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes

جوابات

200 — The updated collection.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND (collection missing)
  • 409 — ALREADY_EXISTS (work already in the collection)
  • 422 — VALIDATION_FAILED (order collision, missing/unapproved work)
patch/admin/collections/{id}/works/reorderReorder a collection's works (admin; must cover every work)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
orderarray<object>yes
FieldTypeRequiredDescription
workIdstringyes
orderintegeryes

جوابات

200 — The updated collection.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldType

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND
  • 422 — VALIDATION_FAILED (incomplete mapping or duplicate order/workId)
delete/admin/collections/{id}/works/{workId}Remove a work from a collection (admin; the Work itself is untouched)

پیرامیٹرز

NameInRequiredDescription
idpathyes
workIdpathyes

جوابات

200 — The updated collection.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
categoryenumyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND (collection missing or work not in collection)
get/admin/related-worksList related-works links, offset-paginated, filterable by fromWorkId (admin)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
fromWorkIdquery—

جوابات

200 — A page of links.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
fromWorkIdstringyes
toWorkIdstringyes
relationshipTypeenumyes
editorialNoteobjectnullyes
FieldTypeRequiredDescription
enstring

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
post/admin/related-worksCreate a related-works link (admin)

درخواست باڈی

FieldTypeRequiredDescription
fromWorkIdstringyes
toWorkIdstringyes
relationshipTypeenumyes
editorialNoteobjectnull—
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bidirectionalboolean—
displayPrioritynumber—

جوابات

201 — Link created.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
fromWorkIdstringyes
toWorkIdstringyes
relationshipTypeenumyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 409 — ALREADY_EXISTS (duplicate from/to/type)
  • 422 — VALIDATION_FAILED (self-reference, missing/unapproved work)
delete/admin/related-works/{id}Delete a related-works link (admin, hard delete)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Link deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN
  • 404 — NOT_FOUND

Auth

get/auth/csrfBootstrap a CSRF token

Sets the `meeras_csrf` cookie and returns its value in the body. Frontend echoes the value in `X-CSRF-Token` on every state-changing request. CSRF-exempt (the bootstrapping endpoint).

جوابات

200 — CSRF token issued.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
csrfTokenstringyes
post/auth/registerRegister a new user

Creates a user with `isEmailVerified=false` and queues a verification email. Rate-limited 5/15min per IP. No cookies set; user cannot log in until verified.

درخواست باڈی

FieldTypeRequiredDescription
emailstringyes
passwordstringyes
displayNamestringyes

جوابات

201 — Created.

FieldTypeRequiredDescription
post/auth/verify-emailVerify email + auto-login

Consumes the verification token, sets `isEmailVerified=true`, and issues access/refresh/csrf cookies (auto-login per BACKEND_ARCHITECTURE §4.4).

درخواست باڈی

FieldTypeRequiredDescription
tokenstringyes

جوابات

200 — Verified + auto-logged in.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
post/auth/resend-verificationResend a verification email (enumeration-safe)

Always returns 200 regardless of whether the email matches a real user (email enumeration prevention). Rate-limited 5/15min per IP.

درخواست باڈی

FieldTypeRequiredDescription
emailstringyes

جوابات

200 — OK (silent for unknown emails).

FieldTypeRequiredDescription
successenumyes
dataobjectyes
post/auth/loginLog in with email + password

Issues access/refresh/csrf cookies on success. Unknown-email and wrong-password both return the same 401 INVALID_CREDENTIALS (email enumeration prevention). Rate-limited 10/15min per IP.

درخواست باڈی

FieldTypeRequiredDescription
emailstringyes
passwordstringyes

جوابات

200 — Logged in.

FieldTypeRequiredDescription
successenumyes
post/auth/refreshRotate refresh token (with reuse detection)

Rotates the refresh JWT in the same family. Replaying a previously-rotated token triggers immediate family revocation and returns 401 REFRESH_REUSE_DETECTED. Rate-limited 30/15min per IP.

جوابات

200 — Rotated.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
refreshedenumyes

خرابیاں

post/auth/logoutLog out and revoke the refresh family

Revokes every refresh token in the current family with `revokeReason="logout"` and clears all three auth cookies. Idempotent.

جوابات

200 — Logged out.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription

خرابیاں

  • 403 — CSRF_FAILED
post/auth/request-password-resetRequest a password-reset email (enumeration-safe)

Always returns 200 regardless of whether the email matches a real user (email enumeration prevention). Rate-limited 5/15min per IP.

درخواست باڈی

FieldTypeRequiredDescription
emailstringyes

جوابات

200 — OK (silent for unknown emails).

FieldTypeRequiredDescription
successenumyes
dataobjectyes
post/auth/reset-passwordReset password + revoke all refresh families

Sets a new password (subject to strength + common-list validation) and revokes EVERY refresh family for the user — all devices are logged out.

درخواست باڈی

FieldTypeRequiredDescription
tokenstringyes
newPasswordstringyes

جوابات

200 — Password reset.

FieldTypeRequiredDescription
successenumyes

Collections

get/collectionsList published collections (public, cursor-paginated, filterable)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
categoryquery—
isFeaturedquery—
tagsquery—
sortquery—

جوابات

200 — A page of collections.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
titleobjectyes
FieldType

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
get/collections/{slug}Get a published collection by slug with its works hydrated (public)

پیرامیٹرز

NameInRequiredDescription
slugpathyes

جوابات

200 — The collection with hydrated works.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field

Engagement

get/works/{id}/commentsList approved comments on a work (public; cursor-paginated; no-store)

پیرامیٹرز

NameInRequiredDescription
idpathyes
limitquery—
cursorquery—

جوابات

200 — A page of approved comments with author displayName.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
languagestringyes
statusstringyes
createdAtstringyes
post/works/{id}/commentsPost a comment on a work (auth + verified email; rate limited; enters pending)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
textstringyes
languagestring—

جوابات

201 — The created (pending) comment.

patch/comments/{id}Edit your own still-pending comment (owner only)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
textstringyes

جوابات

200 — The updated comment.

FieldTypeRequiredDescription
delete/comments/{id}Soft-delete a comment (owner or admin)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Soft-deleted.

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not owner or admin)
  • 404 — NOT_FOUND
post/works/{id}/likeLike a work (auth + verified email; per-user rate limited)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Liked.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
delete/works/{id}/likeUnlike a work (idempotent; auth + verified email)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Unliked (idempotent — succeeds even if no like existed).

خرابیاں

  • 401 — UNAUTHORIZED
post/works/{id}/bookmarkBookmark a work (auth + verified email; per-user rate limited)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — Bookmarked.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
delete/works/{id}/bookmarkRemove a bookmark (idempotent; auth + verified email)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

204 — Un-bookmarked (idempotent — succeeds even if none existed).

خرابیاں

  • 401 — UNAUTHORIZED

Home

get/homeThe homepage's featured-today curation (today's pinned day, else the most recent).

جوابات

200 — The featured-today payload, or null when nothing has ever been pinned.

FieldTypeRequiredDescription
successenumyes
dataobjectnullyes
FieldTypeRequiredDescription
datestringyes
topSherarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
slugstringyes
bodyobject—
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
featuredPoetobject—
recommendedPoetsarray<object>yes
wordOfDayobjectyes
FieldTypeRequiredDescription
wordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
Field

Lughat

get/lughatList dictionary entries (public, cacheable, searchable by q)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
qquery—
sortquery—

جوابات

200 — A page of dictionary entries.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
headwordobjectyes
FieldTypeRequiredDescription
enstringyes
histring

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
get/lughat/{slug}Get a dictionary entry by slug (public, cacheable)

پیرامیٹرز

NameInRequiredDescription
slugpathyes

جوابات

200 — The dictionary entry.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field

Me

get/me/submissionsList your own submissions (auth; cursor-paginated; filterable by status)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
statusquery—

جوابات

200 — A page of your submissions.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes
reviewNotesstringnullyes

خرابیاں

  • 401 — UNAUTHORIZED
post/me/submissionsSave a new draft submission (poet role; 5/hour rate limit)

درخواست باڈی

FieldTypeRequiredDescription
entityTypestringyes
entityIdstring—
actionstringyes
payloadobjectyes
licenseTypestringyes
licenseAttestationstringyes
patch/me/submissions/{id}Edit your draft (owner only; requires If-Match version)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
payloadobjectyes

جوابات

200 — The updated draft.

FieldTypeRequiredDescription
delete/me/submissions/{id}Cancel your draft (soft-delete; owner only)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The cancelled (soft-deleted) submission.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
post/me/submissions/{id}/submitSubmit your draft for review (draft|needs_revision → pending)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The submission, now pending.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
get/me/bookmarksList your bookmarks with the embedded work + poet (auth; cursor-paginated)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—

جوابات

200 — A page of your bookmarks.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes

Poets

get/poetsList poets (public, cursor-paginated, filterable by era/isFeatured/languagesWrittenIn)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
eraquery—
isFeaturedquery—
languagesWrittenInquery—
sortquery—

جوابات

200 — A page of poets.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldType

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
get/poets/{slug}Get a poet by slug (public)

پیرامیٹرز

NameInRequiredDescription
slugpathyes

جوابات

200 — The poet.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldType
get/poets/{slug}/worksList a poet's works (public, cursor-paginated, filterable by type)

پیرامیٹرز

NameInRequiredDescription
slugpathyes
limitquery—
cursorquery—
typequery—
sortquery—

جوابات

200 — A page of the poet’s works.

Search

get/searchCross-script search over works (Atlas Search backed; optional auth; rate-limited)

پیرامیٹرز

NameInRequiredDescription
qqueryyes
typequery—
scriptquery—
limitquery—
cursorquery—

جوابات

200 — A page of matching works plus meta.search { query, totalHits, tookMs }.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—

خرابیاں

  • 422 — VALIDATION_FAILED (q missing or fewer than 2 chars)
  • 429 — RATE_LIMITED (per-IP search ceiling exceeded)

Super-admin

get/super-admin/usersList users with search + role filter (super-admin only)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
qquery—
rolequery—

جوابات

200 — Paginated user rows (includes email for the super-admin context).

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
emailstringyes
displayNamestringyes
roleenumyes
isEmailVerifiedbooleanyes
lastLoginAtstringnullyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (actor is not a super_admin)
  • 422 — VALIDATION_FAILED
post/super-admin/users/{id}/promoteChange a user’s role (super-admin only)

پیرامیٹرز

NameInRequiredDescription
idpathyes

درخواست باڈی

FieldTypeRequiredDescription
targetRoleenumyes
reasonstringyes

جوابات

200 — Role changed; returns the updated user.

get/super-admin/audit-logsList audit-log entries (super-admin only)

پیرامیٹرز

NameInRequiredDescription
pagequery—
pageSizequery—
actorIdquery—
actorRolequery—
entityTypequery—
entityIdquery—
action
get/super-admin/audit-logs/{id}Get a single audit-log entry (super-admin only)

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — A single redacted audit-log entry.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field

System

get/healthzLiveness probe

Returns 200 with process uptime and version. Used by orchestration platforms to confirm the process is running. Does not check downstream dependencies.

جوابات

200 — The process is alive.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
statusenumyes
uptimenumberyes
versionstringyes
get/readyzReadiness probe

Returns 200 once the process can serve traffic (Mongo connection healthy). Returns 503 SERVICE_UNAVAILABLE while the database is unreachable. Orchestration platforms route traffic based on this.

جوابات

200 — Ready to serve traffic.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
statusenumyes
uptime

Tags

get/tagsList tags (public, cacheable taxonomy, filterable by type)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
typequery—
sortquery—

جوابات

200 — A page of tags.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
get/tags/{slug}Get a tag by slug with a live works count (public, cacheable)

پیرامیٹرز

NameInRequiredDescription
slugpathyes

جوابات

200 — The tag plus recentWorksCount.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
get/tags/{slug}/worksList a tag's works (public, cursor-paginated, filterable by type)

پیرامیٹرز

NameInRequiredDescription
slugpathyes
limitquery—
cursorquery—
typequery—
sortquery—

جوابات

200 — A page of the tag's works.

Works

get/ghazalsList ghazals (public, cursor-paginated, newest-first, live poets only)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—

جوابات

200 — A page of ghazals.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
matlaCoupletIndexnumbernullyes
maqtaCoupletIndexnumbernullyes
languagestringyes

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or cursor)
get/ghazals/{id}Get a single ghazal by id (public), with embedded poet summary

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The ghazal.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
get/nazmsList nazms (public, cursor-paginated, newest-first, live poets only)

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—

جوابات

200 — A page of nazms.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
get/nazms/{id}Get a single nazm by id (public), with embedded poet summary

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The nazm.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
get/sherSher feed (public): recent (cursor-paginated) or random; filterable by tag slugs / poetId

پیرامیٹرز

NameInRequiredDescription
limitquery—
cursorquery—
modequery—
tagsquery—
poetIdquery—

جوابات

200 — A page of sher (live poets only).

get/sher/{id}Get a single sher by id (public), with embedded poet summary

پیرامیٹرز

NameInRequiredDescription
idpathyes

جوابات

200 — The sher.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
Field
get/works/{id}/relatedPublic: related works for a work, hydrated with poet, in display-priority order

پیرامیٹرز

NameInRequiredDescription
idpathyes
limitquery—

جوابات

200 — Related works (possibly empty).

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
flagCount
number
yes
createdAtstringyes
action
string
yes
statusstringyes
reviewerIdstringnullyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
resultingEntityIdstringnullyes
createdAtstringyes
yes
actionstringyes
statusstringyes
reviewerIdstringnullyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
resultingEntityIdstringnullyes
createdAtstringyes
entityobjectyes
reviewerId
stringnull
yes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
resultingEntityIdstringnullyes
createdAtstringyes
reviewerId
stringnull
yes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
resultingEntityIdstringnullyes
createdAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
eraenumyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
eraenumyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
version
number
yes
createdAtstringyes
updatedAtstringyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
typeenumyes
isFeaturedbooleanyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
typeenumyes
isFeaturedbooleanyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
submissionStatus
string
yes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnullyes
exampleSherIdstringnullyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnullyes
exampleSherIdstringnullyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Description
enstringyes
histringyes
urstringyes
partOfSpeechstringnullyes
exampleSherIdstringnullyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
occurrence
number
yes
dictionaryEntryIdstringnullyes
meaningobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
displayPrioritynumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
coupletIndexnumberyes
lineIndexnumberyes
occurrencenumberyes
dictionaryEntryIdstringnullyes
meaningobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
displayPrioritynumberyes
createdAtstringyes
updatedAtstringyes
updatedAtstringyes
urstringyes
exampleSherIdstringnull—
featuredCollectionIdstringnullyes
recommendedPoetIdsarray<string>yes
createdBystringyes
createdAtstringyes
updatedAtstringyes
Type
Required
Description
enstringyes
histringyes
urstringyes
exampleSherIdstringnull—
featuredCollectionIdstringnullyes
recommendedPoetIdsarray<string>yes
createdBystringyes
createdAtstringyes
updatedAtstringyes
urstringyes
categoryenumyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
isFeatured
boolean
yes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
isFeatured
boolean
yes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
enstringyes
histringyes
urstringyes
categoryenumyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
isPublishedbooleanyes
isFeaturedbooleanyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
yes
histringyes
urstringyes
bidirectionalbooleanyes
displayPrioritynumberyes
submissionStatusstringyes
createdAtstringyes
updatedAtstringyes
editorialNoteobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
bidirectionalbooleanyes
displayPrioritynumberyes
submissionStatusstringyes
createdAtstringyes
updatedAtstringyes
success
enum
yes
dataobjectyes
FieldTypeRequiredDescription
userIdstringyes
requiresEmailVerificationenumyes

خرابیاں

  • 403 — CSRF_FAILED
  • 409 — EMAIL_TAKEN
  • 422 — VALIDATION_FAILED / PASSWORD_TOO_WEAK
  • 429 — RATE_LIMITED
FieldTypeRequiredDescription
userobjectyes
FieldTypeRequiredDescription
_idstringyes
displayNamestringyes
roleenumyes
preferredScriptenumyes
preferredUiLanguageenumyes
poetProfileIdstringnullyes
isEmailVerifiedbooleanyes
lastLoginAtstringnullyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 401 — EMAIL_VERIFICATION_INVALID
  • 403 — CSRF_FAILED
  • 422 — VALIDATION_FAILED
FieldTypeRequiredDescription

خرابیاں

  • 403 — CSRF_FAILED
  • 422 — VALIDATION_FAILED
  • 429 — RATE_LIMITED
data
object
yes
FieldTypeRequiredDescription
userobjectyes
FieldTypeRequiredDescription
_idstringyes
displayNamestringyes
roleenumyes
preferredScriptenumyes
preferredUiLanguageenumyes
poetProfileIdstringnullyes
isEmailVerifiedbooleanyes
lastLoginAtstringnullyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 401 — INVALID_CREDENTIALS
  • 403 — EMAIL_NOT_VERIFIED / CSRF_FAILED
  • 422 — VALIDATION_FAILED
  • 429 — RATE_LIMITED
  • 401 — TOKEN_INVALID / TOKEN_EXPIRED / REFRESH_REUSE_DETECTED
  • 403 — CSRF_FAILED
  • 429 — RATE_LIMITED
FieldTypeRequiredDescription

خرابیاں

  • 403 — CSRF_FAILED
  • 422 — VALIDATION_FAILED
  • 429 — RATE_LIMITED
data
object
yes
FieldTypeRequiredDescription

خرابیاں

  • 401 — PASSWORD_RESET_INVALID
  • 403 — CSRF_FAILED
  • 422 — VALIDATION_FAILED / PASSWORD_TOO_WEAK
Required
Description
enstringyes
histringyes
urstringyes
descriptionobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coverImageUrlstringnullyes
coverColorstringnullyes
categoryenumyes
tagsarray<string>yes
displayPrioritynumberyes
isFeaturedbooleanyes
isPublishedbooleanyes
publishedAtstringnullyes
statsobjectyes
FieldTypeRequiredDescription
viewCountnumberyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Type
Required
Description
_idstringyes
slugstringyes
titleobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
descriptionobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
coverImageUrlstringnullyes
coverColorstringnullyes
categoryenumyes
tagsarray<string>yes
displayPrioritynumberyes
isFeaturedbooleanyes
isPublishedbooleanyes
publishedAtstringnullyes
statsobjectyes
FieldTypeRequiredDescription
viewCountnumberyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
worksarray<object>yes
FieldTypeRequiredDescription
workobject—
editorialNoteobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
ordernumberyes

خرابیاں

  • 404 — NOT_FOUND (missing, unpublished, or soft-deleted)
user
objectnull
yes
FieldTypeRequiredDescription
displayNamestringyes
FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
languagestringyes
statusstringyes
createdAtstringyes
userobjectnullyes
FieldTypeRequiredDescription
displayNamestringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 404 — NOT_FOUND (work missing or not approved)
  • 422 — VALIDATION_FAILED (empty / HTML) or COMMENT_TOO_LONG
  • 429 — RATE_LIMITED
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
userIdstringyes
workIdstringyes
textstringyes
languagestringyes
statusstringyes
createdAtstringyes
userobjectnullyes
FieldTypeRequiredDescription
displayNamestringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not the owner)
  • 404 — NOT_FOUND (missing or soft-deleted)
  • 409 — COMMENT_INVALID_TRANSITION (not pending)
  • 422 — VALIDATION_FAILED (empty / HTML)
Type
Required
Description
likedenumyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 404 — NOT_FOUND (work missing, soft-deleted, or not approved)
  • 409 — ALREADY_LIKED (already liked by this user)
  • 429 — RATE_LIMITED (per-user like ceiling exceeded)
Type
Required
Description
bookmarkedenumyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 404 — NOT_FOUND (work missing, soft-deleted, or not approved)
  • 409 — ALREADY_EXISTS (already bookmarked by this user)
  • 429 — RATE_LIMITED (per-user bookmark ceiling exceeded)
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
Type
Required
Description
enstringyes
histringyes
urstringyes
exampleSherobjectnullyes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
slugstringyes
bodyobject—
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
yes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnullyes
exampleSherIdstringnullyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes
Type
Required
Description
_idstringyes
slugstringyes
headwordobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
meaningobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
partOfSpeechstringnullyes
exampleSherIdstringnullyes
submissionStatusstringyes
versionnumberyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND
revisionNotes
stringnull
yes
submittedAtstringnullyes
versionnumberyes
createdAtstringyes

جوابات

201 — The created draft.

FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
versionnumberyes
createdAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — ATTRIBUTION_NOT_ALLOWED
  • 422 — VALIDATION_FAILED or SUBMISSION_INCOMPLETE
  • 429 — RATE_LIMITED
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
versionnumberyes
createdAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not the owner)
  • 409 — SUBMISSION_INVALID_TRANSITION or VERSION_MISMATCH
  • 422 — VALIDATION_FAILED (missing If-Match) or SUBMISSION_INCOMPLETE
Type
Required
Description
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
versionnumberyes
createdAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not the owner)
  • 409 — SUBMISSION_INVALID_TRANSITION
Type
Required
Description
_idstringyes
submitterIdstringyes
entityTypestringyes
entityIdstringnullyes
actionstringyes
statusstringyes
reviewNotesstringnullyes
revisionNotesstringnullyes
submittedAtstringnullyes
versionnumberyes
createdAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (not the owner) or ATTRIBUTION_NOT_ALLOWED
  • 409 — SUBMISSION_INVALID_TRANSITION
FieldTypeRequiredDescription
workIdstringyes
createdAtstringyes
workobjectyes

خرابیاں

  • 401 — UNAUTHORIZED
Required
Description
enstringyes
histringyes
urstringyes
eraenumyes
isFeaturedbooleanyes
sortPrioritynumberyes
createdAtstringyes
updatedAtstringyes
Required
Description
_idstringyes
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
eraenumyes
isFeaturedbooleanyes
sortPrioritynumberyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND
Field
Type
Required
Description
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND (poet slug not found)
  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
languagestringyes
createdAtstringyes
updatedAtstringyes
createdAtstringyes
FieldTypeRequiredDescription
successenumyes
dataobjectyes
FieldTypeRequiredDescription
_idstringyes
displayNamestringyes
roleenumyes
preferredScriptenumyes
preferredUiLanguageenumyes
poetProfileIdstringnullyes
isEmailVerifiedbooleanyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (actor is not a super_admin)
  • 404 — NOT_FOUND (target user does not exist)
  • 409 — LAST_SUPER_ADMIN (cannot demote the last super_admin)
  • 422 — VALIDATION_FAILED
  • 429 — RATE_LIMITED
query
—
startDatequery—
endDatequery—
sortquery—

جوابات

200 — Paginated, redacted audit-log entries.

FieldTypeRequiredDescription
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
actorIdstringyes
actorRoleenumyes
actionstringyes
entityTypestringyes
entityIdstringyes
beforeobject—
afterobject—
metadataobjectnullyes
createdAtstringyes
actorobjectnullyes
FieldTypeRequiredDescription
displayNamestringyes
entityLabelstringnullyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (actor is not a super_admin)
  • 422 — VALIDATION_FAILED
Type
Required
Description
_idstringyes
actorIdstringyes
actorRoleenumyes
actionstringyes
entityTypestringyes
entityIdstringyes
beforeobject—
afterobject—
metadataobjectnullyes
createdAtstringyes
actorobjectnullyes
FieldTypeRequiredDescription
displayNamestringyes
entityLabelstringnullyes

خرابیاں

  • 401 — UNAUTHORIZED
  • 403 — FORBIDDEN (actor is not a super_admin)
  • 404 — NOT_FOUND
number
yes
versionstringyes

خرابیاں

  • 503 — Not ready — a downstream dependency is unavailable.
urstringyes
descriptionobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
typeenumyes
coverImageUrlstringnullyes
sortPrioritynumberyes
isFeaturedbooleanyes
statsobjectyes
FieldTypeRequiredDescription
workCountnumberyes
poetCountnumberyes
createdAtstringyes
updatedAtstringyes
Type
Required
Description
_idstringyes
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
descriptionobjectnullyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
typeenumyes
coverImageUrlstringnullyes
sortPrioritynumberyes
isFeaturedbooleanyes
statsobjectyes
FieldTypeRequiredDescription
workCountnumberyes
poetCountnumberyes
createdAtstringyes
updatedAtstringyes
recentWorksCountnumberyes

خرابیاں

  • 404 — NOT_FOUND
Field
Type
Required
Description
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND (tag slug not found)
  • 422 — VALIDATION_FAILED (bad limit or unknown sort field)
submissionStatus
string
yes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes
Type
Required
Description
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
matlaCoupletIndexnumbernullyes
maqtaCoupletIndexnumbernullyes
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND (no such ghazal, wrong type, or soft-deleted poet)
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit or cursor)
Type
Required
Description
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND (no such nazm, wrong type, or soft-deleted poet)
Field
Type
Required
Description
successenumyes
dataarray<object>yes
FieldTypeRequiredDescription
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 422 — VALIDATION_FAILED (bad limit/mode/poetId)
Type
Required
Description
_idstringyes
typeenumyes
poetIdstringyes
slugstringyes
bodyobject—
languagestringyes
submissionStatusstringyes
isFeaturedbooleanyes
poetobjectyes
FieldTypeRequiredDescription
slugstringyes
nameobjectyes
FieldTypeRequiredDescription
enstringyes
histringyes
urstringyes
createdAtstringyes
updatedAtstringyes

خرابیاں

  • 404 — NOT_FOUND (no such sher, wrong type, or soft-deleted poet)
FieldTypeRequiredDescription
workobject—
relationshipTypeenumyes
editorialNoteobject—

خرابیاں

  • 404 — NOT_FOUND (work missing, soft-deleted, or not approved)