Meeras
PoetsSherGhazalsNazmsTagsCollections
Sign in
Meeras

उर्दू और हिन्दी शायरी का जीवंत संग्रह — मुफ़्त, खुला, तीन लिपियों में।

देखें
शायरशेरग़ज़लेंनज़्मेंमिज़ाज और विषयटॉप 20संग्रह
परिचय
मीरास के बारे मेंशब्दकोशएपीआई दस्तावेज़
क़ानूनी
संपर्कगोपनीयता नीतिउपयोग की शर्तें
© 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
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
dataobjectyes
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
dataobjectyes
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
Field
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)