---
title: "Gets audio narrations, user must have recitation::moderate permission to be able to see all users narrations (Auth)"
method: GET
path: "/api/audio"
tags: ["Recitation"]
---

# Gets audio narrations, user must have recitation::moderate permission to be able to see all users narrations (Auth)

`GET /api/audio`

additional headers: paging-headers, audio-upload-enabled

## Query parameters

- `PageNumber` integer
- `PageSize` integer
- `allUsers` boolean
- `status` 0 | 1 | 2 | 3 | 4 | -1 — Audio Review Status
- `searchTerm` string
- `mistakes` boolean
- `recitationType` 0 | 1 | 1000 — recitation type

## Response `200`

OK

- RecitationViewModel[]
  - `id` integer — Id
  - `owner` PublicRAppUser — user informtaion
    - `id` string, uuid, nullable — Id
    - `username` string, nullable — User Name
    - `email` string, email, nullable — User Email
    - `phoneNumber` string, tel, nullable — User Mobile Phone Number
    - `firstName` string, nullable — First Name
    - `surName` string, nullable — SurName
    - `status` 0 | 1, required — User Status
    - `rImageId` string, uuid, nullable — user image
    - `nickName` string, nullable — nick name
    - `bio` string, nullable — biography
    - `website` string, nullable — web site
    - `emailConfirmed` boolean — email verified
    - `createDate` string, date-time — create date
  - `ganjoorAudioId` integer — Final data is actually exported to a MySQL database which this auto increment field is its key
  - `ganjoorPostId` integer — Ganjoor Post Id
  - `poemFullTitle` string, nullable — Poem Full Title
  - `poemFullUrl` string, nullable — Poem Full Url (without domain name)
  - `audioOrder` integer — This determines where an audio is displayed between a list of sounds related to a specfic poem
  - `fileNameWithoutExtension` string, nullable — Using this field content you would determine xml, mp3 and ogg file names
  - `soundFilesFolder` string, nullable — combining this with RMuseum.Models.GanjoorAudio.ViewModels.RecitationViewModel.FileNameWithoutExtension + .ext would preduce relative path of sound files on our file server the full path would become [HOMEPath] + '/i/' + this value
  - `remoteMp3FilePath` string, nullable — MP3 File Path
  - `mp3Url` string, nullable — MP3 url
  - `remoteOggFilePath` string, nullable — OGG File Path
  - `oggUrl` string, nullable — OGG url
  - `remoteXMLFilePath` string, nullable — This is also a legacy field
  - `xmlUrl` string, nullable — XML url
  - `audioTitle` string, nullable — Audio Title
  - `audioArtist` string, nullable — Audio Artist
  - `audioArtistUrl` string, nullable — Audio Artist Url
  - `audioSrc` string, nullable — Audio Source
  - `audioSrcUrl` string, nullable — Audio Src Url
  - `legacyAudioGuid` string, uuid — Legacy Audio Guid
  - `mp3FileCheckSum` string, nullable — Audio File CheckSum
  - `mp3SizeInBytes` integer — mp3 size in bytes
  - `oggSizeInBytes` integer — ogg size in bytes
  - `uploadDate` string, date-time — Upload Date
  - `fileLastUpdated` string, date-time — File Last Updated
  - `reviewDate` string, date-time — Review Date (Approve or Reject)
  - `localMp3FilePath` string, nullable — MP3 File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
  - `localXmlFilePath` string, nullable — XML File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
  - `audioSyncStatus` 0 | 1 | 2 | 4 | 16 — Audio Synchronization Status (binary combination is acceptable)
  - `reviewStatus` 0 | 1 | 2 | 3 | 4 | -1 — Audio Review Status
  - `reviewMsg` string, nullable — Review Message
  - `recitationType` 0 | 1 | 1000 — recitation type
  - `inSyncWithText` boolean — in sync with text

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden

---

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