Profile Fields
The profile endpoint accepts only approved public mosque fields:communityNameaddresslatitudelongitudetimeZoneIdisOnlineOnlystatusmessagedonationLinkprayerCalculationParameters
Prayer Rows
Prayer times use manual rows. Each row has:idprayerKeyadhanTimeiqamahTimecreatedAt
HH:mm or h:mm am/pm. PocketMusala normalizes spacing
and casing. Examples:
prayerKey are allowed. Use this for multiple
Jummah times.
Weekly Replacement Strategy
There is no public destructive bulk-replace endpoint. To replace weekly prayer times safely:GET /v1/mosques/{mosqueId}/prayers.- Match rows by
prayerKey,adhanTime, andiqamahTime. POSTmissing desired rows.PATCHrows that should keep the same id but change time values.DELETErows that should no longer appear.
Retries And Request Ids
Send a uniqueX-Request-Id for every request. Store it with your integration
logs.
The current API does not guarantee server-side de-duplication by
Idempotency-Key. Make your sync job retry-safe by retrying the same request
body, reading current state before replacement-style work, and avoiding
concurrent weekly jobs for the same mosque.
Recommended retry pattern:
- Retry transient network errors and
500responses with exponential backoff. - Do not blindly retry
400,401,403, or404; fix the payload, key, or mosque id first. - If a request may have succeeded but the client timed out, read the current resource before sending another write.
Rate Limits
The MVP is intended for low-frequency partner sync. Treat60 requests per
minute per integration as the default planning budget unless PocketMusala
provides a different limit for your key.
If a future response returns 429 Too Many Requests, pause the sync and retry
after the next minute boundary.