Skip to content

Pearl of the Orient API Docs (1.0.0)

Quick Overview

  • API Version: 1.0.0
  • Developer: Kyle Andre Lim
  • Base Path: /api/v1

Comprehensive API documentation for authentication, users, members, branch services, and offices endpoints.

Download OpenAPI description
Languages
Servers
Mock server
https://api-docs.pearlchaplaincy.org/_mock/openapi
Version 1 API base path
https://api-docs.pearlchaplaincy.org/api/v1

System

Health and root metadata endpoints

Operations

Auth

Authentication and account recovery

Operations

Register an admin/member user

Request

Bodyapplication/jsonrequired
namestring[ 1 .. 100 ] charactersrequired
emailstring(email)<= 255 charactersrequired
passwordstring[ 8 .. 255 ] charactersrequired

Must include at least 1 uppercase letter, 1 number, and 1 special character

rolestring(UserType)required
Enum"MEMBER""OFFICER""ADMIN"
curl -i -X POST \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/register \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "string",
    "email": "user@example.com",
    "password": "stringst",
    "role": "MEMBER"
  }'

Responses

User registered

Headers
Set-Cookiestring

Sets the refreshToken HTTP-only cookie

Bodyapplication/json
codestringrequired
Example: "OK"
messagestringrequired
userobject(UserPublic)required
user.​idstring(uuid)required
user.​namestringrequired
user.​emailstring(email)required
user.​avatarstring or null
user.​rolestring(UserType)required
Enum"MEMBER""OFFICER""ADMIN"
user.​createdAtstring(date-time)required
user.​updatedAtstring(date-time)
user.​isEmailVerifiedboolean
accessTokenstringrequired
mfaRequiredboolean
Response
application/json
{ "code": "OK", "message": "string", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "email": "user@example.com", "avatar": "string", "role": "MEMBER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "isEmailVerified": true }, "accessToken": "string", "mfaRequired": true }

Login (admin-only)

Request

Bodyapplication/jsonrequired
emailstring(email)required
passwordstring[ 8 .. 255 ] charactersrequired
userAgentstring
curl -i -X POST \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/login \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "user@example.com",
    "password": "stringst",
    "userAgent": "string"
  }'

Responses

Login successful

Headers
Set-Cookiestring

Sets the refreshToken HTTP-only cookie

Bodyapplication/json
codestringrequired
Example: "OK"
messagestringrequired
userobject(UserPublic)required
user.​idstring(uuid)required
user.​namestringrequired
user.​emailstring(email)required
user.​avatarstring or null
user.​rolestring(UserType)required
Enum"MEMBER""OFFICER""ADMIN"
user.​createdAtstring(date-time)required
user.​updatedAtstring(date-time)
user.​isEmailVerifiedboolean
accessTokenstringrequired
mfaRequiredboolean
Response
application/json
{ "code": "OK", "message": "string", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "email": "user@example.com", "avatar": "string", "role": "MEMBER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "isEmailVerified": true }, "accessToken": "string", "mfaRequired": true }

Logout current user

Request

Security
BearerAuth
curl -i -X DELETE \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/logout \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Logged out

Response
No content

Refresh access token using refreshToken cookie

Request

Security
RefreshTokenCookie
curl -i -X GET \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/refresh-token \
  -b refreshToken=YOUR_API_KEY_HERE

Responses

New access token issued

Bodyapplication/json
accessTokenstringrequired
Response
application/json
{ "accessToken": "string" }

Send password reset email (admin-only account)

Request

Bodyapplication/jsonrequired
emailstring(email)required
curl -i -X POST \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/forgot-password \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "user@example.com"
  }'

Responses

Password reset email sent

Response
No content

Reset password using email token

Request

Query
tokenstringrequired

Password reset token sent to email

Bodyapplication/jsonrequired
passwordstring[ 8 .. 255 ] charactersrequired
confirmPasswordstring[ 8 .. 255 ] charactersrequired
curl -i -X POST \
  'https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/reset-password?token=string' \
  -H 'Content-Type: application/json' \
  -d '{
    "password": "stringst",
    "confirmPassword": "stringst"
  }'

Responses

Password reset successfully

Response
No content

Verify email by code

Request

Bodyapplication/jsonrequired
codestringnon-emptyrequired
curl -i -X POST \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/verify-email \
  -H 'Content-Type: application/json' \
  -d '{
    "code": "string"
  }'

Responses

Email verified

Bodyapplication/json
codestringrequired
Example: "OK"
messagestringrequired
userobject(UserPublic)required
user.​idstring(uuid)required
user.​namestringrequired
user.​emailstring(email)required
user.​avatarstring or null
user.​rolestring(UserType)required
Enum"MEMBER""OFFICER""ADMIN"
user.​createdAtstring(date-time)required
user.​updatedAtstring(date-time)
user.​isEmailVerifiedboolean
Response
application/json
{ "code": "OK", "message": "string", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "email": "user@example.com", "avatar": "string", "role": "MEMBER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "isEmailVerified": true } }

Resend email verification code

Request

Bodyapplication/jsonrequired
emailstring(email)required
curl -i -X POST \
  https://api-docs.pearlchaplaincy.org/_mock/openapi/auth/resend-email-verification \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "user@example.com"
  }'

Responses

Verification code resent

Headers
Set-Cookiestring

Sets the refreshToken HTTP-only cookie

Bodyapplication/json
codestringrequired
Example: "OK"
messagestringrequired
userobject(UserPublic)required
user.​idstring(uuid)required
user.​namestringrequired
user.​emailstring(email)required
user.​avatarstring or null
user.​rolestring(UserType)required
Enum"MEMBER""OFFICER""ADMIN"
user.​createdAtstring(date-time)required
user.​updatedAtstring(date-time)
user.​isEmailVerifiedboolean
accessTokenstringrequired
mfaRequiredboolean
Response
application/json
{ "code": "OK", "message": "string", "user": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "email": "user@example.com", "avatar": "string", "role": "MEMBER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "isEmailVerified": true }, "accessToken": "string", "mfaRequired": true }

Users

User profile and admin user management

Operations

Members

Member application and management

Operations

Branch Service

Branch of service management

Operations

Offices

Office title management

Operations