> ## Documentation Index
> Fetch the complete documentation index at: https://pocketmusala.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Read the current mosque sync snapshot



## OpenAPI

````yaml /openapi/pocketmusala-developer-api-v1.yaml get /v1/mosques/{mosqueId}/sync
openapi: 3.1.0
info:
  title: PocketMusala Developer API
  version: 1.0.0
  summary: Mosque sync API for trusted external servers.
  license:
    name: Proprietary
    identifier: LicenseRef-PocketMusala-Proprietary
  description: >
    The PocketMusala Developer API lets trusted external servers sync approved
    mosque profile, prayer, announcement, and event data. API key creation,
    scope selection, rotation, and revocation stay inside the authenticated
    PocketMusala Developer API portal.
servers:
  - url: https://api.pocketmusala.com
    description: Official API
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Service availability endpoints.
  - name: Capabilities
    description: Supported resources, fields, scopes, and prayer keys.
  - name: Snapshot
    description: Combined read endpoints for weekly sync verification.
  - name: Profile
    description: Approved public mosque profile fields.
  - name: Announcements
    description: Mosque announcement sync endpoints.
  - name: Prayers
    description: Manual prayer-time row sync endpoints.
  - name: Events
    description: Mosque event sync endpoints.
paths:
  /v1/mosques/{mosqueId}/sync:
    get:
      tags:
        - Snapshot
      summary: Read the current mosque sync snapshot
      operationId: getMosqueSyncSnapshot
      parameters:
        - $ref: '#/components/parameters/MosqueId'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/RequestId'
      responses:
        '200':
          description: Current profile, announcements, prayer rows, and events.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncSnapshotResponse'
        4XX:
          $ref: '#/components/responses/Error'
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    MosqueId:
      name: mosqueId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 100
      description: Maximum rows to return. Defaults to 50 where supported.
    RequestId:
      name: X-Request-Id
      in: header
      required: false
      schema:
        type: string
        minLength: 1
      description: Partner-generated request id used for logs and support.
  schemas:
    SyncSnapshotResponse:
      type: object
      required:
        - version
        - profile
        - announcements
        - prayers
        - events
      properties:
        version:
          type: string
          example: v1
        profile:
          $ref: '#/components/schemas/MosqueProfile'
        announcements:
          type: array
          items:
            $ref: '#/components/schemas/Announcement'
        prayers:
          type: array
          items:
            $ref: '#/components/schemas/PrayerRow'
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
    MosqueProfile:
      type: object
      required:
        - id
        - communityName
        - type
        - isOnlineOnly
        - verificationStatus
        - entitlement
        - createdAt
      additionalProperties: true
      properties:
        id:
          type: string
          format: uuid
        communityName:
          type: string
        type:
          type: string
          example: Mosque
        address:
          type:
            - string
            - 'null'
        latitude:
          type:
            - number
            - 'null'
        longitude:
          type:
            - number
            - 'null'
        timeZoneId:
          type:
            - string
            - 'null'
          example: America/New_York
        isOnlineOnly:
          type: boolean
        verificationStatus:
          type:
            - string
            - 'null'
          readOnly: true
        entitlement:
          type:
            - string
            - 'null'
          readOnly: true
        status:
          type:
            - string
            - 'null'
        message:
          type:
            - string
            - 'null'
        donationLink:
          type:
            - string
            - 'null'
          format: uri
        prayerCalculationParameters:
          type:
            - string
            - 'null'
        thumbnail:
          type:
            - string
            - 'null'
          readOnly: true
        coverPhotos:
          type: array
          readOnly: true
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          readOnly: true
    Announcement:
      type: object
      required:
        - id
        - title
        - body
        - createdAt
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
        body:
          type: string
        flairType:
          type:
            - string
            - 'null'
        latitude:
          type:
            - number
            - 'null'
        longitude:
          type:
            - number
            - 'null'
        createdAt:
          type: string
          format: date-time
    PrayerRow:
      type: object
      required:
        - id
        - prayerKey
        - adhanTime
        - createdAt
      properties:
        id:
          type: string
          format: uuid
        prayerKey:
          $ref: '#/components/schemas/PrayerKey'
        adhanTime:
          $ref: '#/components/schemas/PrayerTime'
        iqamahTime:
          anyOf:
            - $ref: '#/components/schemas/PrayerTime'
            - type: 'null'
        createdAt:
          type: string
          format: date-time
    Event:
      type: object
      required:
        - id
        - visibility
        - createdAt
      additionalProperties: true
      properties:
        id:
          type: string
          format: uuid
        title:
          type:
            - string
            - 'null'
        body:
          type:
            - string
            - 'null'
        visibility:
          type: string
        allowComments:
          type:
            - boolean
            - 'null'
        showLikes:
          type:
            - boolean
            - 'null'
        allowSharing:
          type:
            - boolean
            - 'null'
        latitude:
          type:
            - number
            - 'null'
        longitude:
          type:
            - number
            - 'null'
        likeCount:
          type:
            - integer
            - 'null'
          readOnly: true
        commentCount:
          type:
            - integer
            - 'null'
          readOnly: true
        createdAt:
          type: string
          format: date-time
          readOnly: true
        eventDetails:
          anyOf:
            - $ref: '#/components/schemas/EventDetails'
            - type: 'null'
    ErrorEnvelope:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
            - troubleshooting
          properties:
            code:
              type: string
              examples:
                - missing_api_key
                - malformed
                - revoked
                - wrong_community
                - missing_scope
                - invalid_argument
                - invalid_prayer_time
                - not_found
            message:
              type: string
            requestId:
              type: string
            troubleshooting:
              $ref: '#/components/schemas/TroubleshootingState'
    PrayerKey:
      type: string
      enum:
        - fajr
        - sunrise
        - dhuhr
        - asr
        - maghrib
        - isha
        - midnight
        - tahajjud
        - duha
        - jummah
        - eid
    PrayerTime:
      type: string
      description: Accepts HH:mm or h:mm am/pm.
      pattern: ^((0?[1-9]|1[0-2]):[0-5][0-9]\s*(am|pm)|([01]?[0-9]|2[0-3]):[0-5][0-9])$
      examples:
        - '04:21'
        - 4:21 am
        - '13:15'
        - 1:15 pm
    EventDetails:
      type: object
      required:
        - dateInstant
      properties:
        flairType:
          type:
            - string
            - 'null'
        dateInstant:
          type: string
          format: date-time
        endTimeInstant:
          type:
            - string
            - 'null'
          format: date-time
        timeZoneId:
          type:
            - string
            - 'null'
        repeatOption:
          type:
            - string
            - 'null'
        address:
          type:
            - string
            - 'null'
    TroubleshootingState:
      type: object
      required:
        - code
        - severity
        - adminSummary
        - developerSummary
      properties:
        code:
          type: string
        severity:
          type: string
          enum:
            - success
            - warning
            - error
        adminSummary:
          type: string
        developerSummary:
          type: string
  responses:
    Error:
      description: Stable JSON error envelope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: PocketMusala Developer API key from the authenticated portal.

````