Overview
MangoSpot REST API is an application processing interface that connects a web server with a web browser, Helps accelerate application development and allows different applications to integrate with each other without the need to access the backend or database, Our API is designed to be very easy to use and accessible to everyone, regardless of the programming language or framework you use.
To use this API, you need an Website-Token and Website-Domain:
https://client.mangospot.net
Please
contact us at mangospot.net@gmail.com to get your own
API
key.
HTTP Headers
| Header | Type | Description |
|---|---|---|
Timezone |
String | Asia/Jakarta |
Content-Type |
String | application/json |
Website-Token |
String | Your Token |
Website-Domain |
String | Your Domain |
Identity
This endpoint is used to retrieve a list of all identity registered in the system.
Specific Identity
This endpoint is used to retrieve the specific identity registered in the system.
| Type | Url |
|---|---|
| List Maps |
GET /identity/maps
|
| List Image |
GET /identity/images
|
| List Cover |
GET /identity/image/cover
|
| Icon |
GET /identity/image/icon
|
| Logo |
GET /identity/image/logo
|
| Theme |
GET /identity/theme
|
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"code": "MGS",
"name": "MangoSpot",
"title": "Management Radius Server & Software House Development",
"website": "mangospot.net",
"email": "mangospot.net@gmail.com",
"phone": "6285642311781",
........
}
}
Config
This endpoint is used to retrieve a list of all config registered in the system.
Specific Config
This endpoint is used to retrieve the specific config registered in the system.
| Type | Url |
|---|---|
| Info |
GET /config/info
|
| Other |
GET /config/other
|
| Script |
GET /config/script
|
| Setting |
GET /config/setting
|
| Payment |
GET /config/payment
|
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"info": "",
"other": "",
"script": "",
"setting": "",
"payment": ""
}
}
This endpoint is used to retrieve a list of SMTP Email registered in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"host": "smtp.gmail.com",
"name": "MangoSpot",
"port": "587",
"smtp": "tls",
"email": "mangospot.net@gmail.com",
"paswd": "xxxx-xxxx-xxxx-xxxx"
}
}
Email Theme
This endpoint is used to retrieve the email theme registered in the system.
Specific Theme
This endpoint is used to retrieve the specific theme registered in the system.
| Type | Url |
|---|---|
| OTP |
GET /mail/theme/otp
|
| Forgot |
GET /mail/theme/forgot
|
| Social |
GET /mail/theme/social
|
| Register |
GET /mail/theme/register
|
{
"status": true,
"message": "success",
"data": [{
"name": "Register",
"type": "register",
"content": "HTML Code",
"message": "Text Message"
}, {
"name": "Forgot",
"type": "forgot",
"content": "HTML Code",
"message": "Text Message"
}, {
"name": "OTP",
"type": "otp",
"content": "HTML Code",
"message": "Text Message"
}]
}
Captcha
This endpoint is used to retrieve captcha in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"session": "2188226ce9f2ba40b384780818307871",
"image": "data:image/png;base64,xxxxx"
}
}
Demo Captcha
Country
This endpoint is used to retrieve a list of country registered in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": 1,
"code": "AF",
"name": "Afghanistan",
"phone": 93
}, {
"id": 2,
"code": "AL",
"name": "Albania",
"phone": 355
}, {
"id": 3,
"code": "DZ",
"name": "Algeria",
"phone": 213
},
..........
]
}
Detail Country
This endpoint is used to display country details in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": 100,
"code": "ID",
"name": "Indonesia",
"phone": 62
}
}
Location
This endpoint is used to retrieve a list of location registered in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"region": false,
"data": [{
"id": "11",
"slug": "0",
"name": "Aceh",
"type": "province",
"lat": null,
"lng": null,
"radius": 0
}, {
"id": "51",
"slug": "0",
"name": "Bali",
"type": "province",
"lat": null,
"lng": null,
"radius": 0
},
..........
]
}
Detail Location
This endpoint is used to display location details in the system.
Response (200 OK)
{
"status": true,
"region": {
"id": "33",
"slug": "0",
"name": "Jawa Tengah",
"type": "province",
"lat": null,
"lng": null,
"radius": 0
},
"data": [{
"id": "3304",
"slug": "33",
"name": "Kab. Banjarnegara",
"type": "city",
"lat": null,
"lng": null,
"radius": 0
}, {
"id": "3302",
"slug": "33",
"name": "Kab. Banyumas",
"type": "city",
"lat": null,
"lng": null,
"radius": 0
},
............
]
}
1. Theme
This endpoint is used to retrieve a list of theme registered in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"title": "Slider",
"type": "slider",
"content": "24,25,26,27",
"other": {
"item": "4",
"play": "true",
"limit": "6",
"order": "asc",
"speed": "300",
"amount": "1",
"sumary": "100",
"infinite": "true",
"pagination": "true"
}
}, {
"title": "Related Products",
"type": "product",
"content": null,
"other": {
"item": "3",
"play": "true",
"limit": "6",
"order": "asc",
"speed": "300",
"amount": "1",
"sumary": "100",
"navigation": "true"
}
}]
}
2. Specific Theme
This endpoint is used to retrieve a list of specific theme registered in the system.
| Type | Url |
|---|---|
| Home |
GET /theme/home
|
| Page |
GET /theme/page
|
| Blog |
GET /theme/blog
|
| Product |
GET /theme/product
|
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"title": "Slider",
"type": "slider",
"content": "24,25,26,27",
"other": {
"item": "4",
"play": "true",
"limit": "6",
"order": "asc",
"speed": "300",
"amount": "1",
"sumary": "100",
"infinite": "true",
"pagination": "true"
}
}, {
"title": "Patter",
"type": "code",
"content": "HTML Code",
"other": null
},
................
]
}
1. Widget
This endpoint is used to retrieve a list of widget registered in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"title": "Search Content",
"type": "code",
"content": "HTML Code",
"other": null
}, {
"title": "Recent Shop",
"type": "shop",
"content": "",
"other": {
"show": "4",
"order": "desc"
}
}]
}
2. Specific Widget
This endpoint is used to retrieve a list of specific Widget registered in the system.
| Type | Url |
|---|---|
| Page |
GET /widget/page
|
| Post |
GET /widget/post
|
| Blog |
GET /widget/blog
|
| Shop |
GET /widget/shop
|
| Product |
GET /widget/product
|
| Footer |
GET /widget/footer
|
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"title": "Search Content",
"type": "code",
"content": "HTML Code",
"other": null
}, {
"title": "Calendar",
"type": "calendar",
"content": null,
"other": null
},
................
]
}
1. Content
This endpoint is used to retrieve a list of content registered in the system.
To get image directory, you need to make following url :
https://api.mangospot.net/media/upload/{content_image}
Query Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | Get ID In Array (exp: id=1,2,3) |
type |
String | Get Type In Array (exp: type=page,post,blog) |
sort |
String | Sort Field (id, title, sort) |
order |
String | Order Type (asc, desc, random) |
limit |
Integer | Limit Display Data |
page |
Integer | Display Page Number |
search |
String | Seacrh Data |
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": "10",
"type": "blog",
"code": "42089610402",
"name": "Admin",
"title": "Install Webserver on Debian or Ubuntu",
"value": "install-webserver-on-debian-or-ubuntu",
"sidebar": "right",
"image": "28c8edde3d61a0411511d3b1866f0636/page/banner.jpg",
"content": "HTML Code",
"comments": "0",
"children": "0",
"other": {
"tags": ["Webserver", "Apache", "PHP", "Linux", "Debian", "Ubuntu"],
"recent": ["19", "20", "21", "22", "23"],
"category": ["2"]
},
"created": "2020-04-20T22:06:36.031Z",
"updated": "2025-01-06T19:36:56.115Z",
"comment": true
}, {
"id": "11",
"type": "gallery",
"code": "78620712624",
"name": "Admin",
"title": "Brand",
"value": "brand",
"sidebar": "right",
"image": "",
"content": "",
"comments": "0",
"children": "14",
"other": {
"item": "4",
"show": "list",
"sort": "id",
"order": "desc",
"sumary": "100"
},
"created": "2025-07-20T21:33:16.838Z",
"updated": "2025-07-21T19:56:33.132Z",
"comment": false
}]
}
2. List Content
This endpoint is used to retrieve a list of content registered in the system.
| Type | Url |
|---|---|
| Tags |
GET /contents/tags
|
| Page |
GET /contents/page
|
| Post |
GET /contents/post
|
| Blog |
GET /contents/blog
|
| Shop |
GET /contents/shop
|
| Product |
GET /contents/product
|
| Contact |
GET /contents/contact
|
| Gallery |
GET /contents/gallery
|
3. Detail Content
This endpoint is used to retrieve detail content registered in the system.
Example List Category
Query Parameter
| Field | Type | Description |
|---|---|---|
sort |
String | Sort Field (id, title, sort) |
order |
String | Order Type (asc, desc, random) |
limit |
Integer | Limit Display Data |
page |
Integer | Display Page Number |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": "1",
"type": "post",
"title": "Tutorial",
"value": "tutorial",
"image": "image-category.jpg",
"sidebar": "right",
"other": {
"item": "6",
"show": "grid",
"sort": "id",
"order": "asc",
"sumary": "100"
},
"created": "2024-11-04T23:50:18.796Z",
"updated": "2024-11-04T23:50:44.953Z",
"comment": false,
"content": "",
"children": [{
"id": "2",
"type": "blog",
"name": "Admin",
"title": "Install Software",
"value": "install-software",
"image": "image-install-software.jpg",
"created": "2024-11-20T20:45:39.132Z",
"updated": "2024-11-23T21:24:41.856Z",
"content": "Tutorial Install Software..."
}, {
"id": "3",
"type": "blog",
"name": "Admin",
"title": "Uninstall Software",
"value": "uninstall-software",
"image": "image-uninstall-software.jpg",
"created": "2024-11-23T16:12:21.147Z",
"updated": "2024-11-23T21:24:43.089Z",
"content": "Tutorial Uninstall Software..."
}],
"total": "2"
}
}
Contact
This endpoint is used to send contact message in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
name |
String | Full Name |
email |
String | Email Address |
captcha |
String | Code Captcha |
comment |
String | Comment Message |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Send email success to mangospot.net@gmail.com"
}
1. Comment
This endpoint is used to retrieve a list of comment registered in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | Get ID In Array (exp: id=1,2,3) |
sort |
String | Sort Field (id, title) |
order |
String | Order Type (asc, desc, random) |
limit |
Integer | Limit Display Data |
page |
Integer | Display Page Number |
search |
String | Seacrh Data |
2. Specific Comment
This endpoint is used to retrieve a list of specific comment registered in the system.
| Type | Url |
|---|---|
| Page |
GET /comment/page
|
| Blog |
GET /comment/blog
|
| Product |
GET /comment/product
|
| Contact |
GET /comment/contact
|
3. Detail Comment
This endpoint is used to retrieve detail comment registered in the system.
Example Detail Comment Blog
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": "2",
"slug": "0",
"post": "2",
"type": "blog",
"name": "Full Name",
"email": "email@domain.com",
"title": "Tutorial One",
"value": "tutorial-one",
"content": "This comment on page",
"children": [{
"id": "9",
"slug": "2",
"post": "2",
"type": "blog",
"name": "Full Name",
"email": "email@domain.com",
"title": "Tutorial One",
"value": "tutorial-one",
"content": "This comment reply on page",
"children": []
}]
}, {
"id": "4",
"slug": "0",
"post": "2",
"type": "blog",
"name": "Full Name",
"email": "email@domain.com",
"title": "Tutorial One",
"value": "tutorial-one",
"content": "This comment on page",
"children": []
}]
}
4. Input Comment
This endpoint is used to send comments in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
post |
Integer | ID Page, Blog, Or Product |
name |
String | Full Name |
email |
String | Email Address |
captcha |
String | Code Captcha |
comment |
String | Comment Message |
4. Reply Comment
This endpoint is used to send reply comments in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | ID Comment |
post |
Integer | ID Page, Blog, Or Product |
name |
String | Full Name |
email |
String | Email Address |
captcha |
String | Code Captcha |
comment |
String | Comment Message |
Authentication
Don't forget add the header parameter, so you can get access after successfully logging in.
HTTP Headers
| Header | Type | Description |
|---|---|---|
Auth-Api |
String | Your Auth Api |
Auth-Key |
String | Your Auth Key |
Auth-Token |
String | Your Auth Token |
Login Account
This endpoint is used for account login authentication in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
username |
String | Auth Username (email or phone) |
password |
String | Auth Password |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"name": "MangoSpot",
"Auth-Api": "U2FsdGVkX18bXldvwUc8OyVHxW7RAOwK0rOD/lYwrv8=",
"Auth-Key": "U2FsdGVkX1/0nkXaZDfUVvTpsKugkR0PhelilEZ+gYs==",
"Auth-Token": "c97ef3cb25225f9878d506d5dv01d51f"
}
}
1. Forgot Password
This endpoint is used for forgot password in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
email |
String | Email Address |
captcha |
String | Code Captcha |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"otp": "161036",
"code": "U2FsdGVkX18rr9suLmURCVhFvCXr8m90ccBxLRDFORY=",
"token": "ec1248c1b6c413dd2745f4b5c9e0a71c"
}
}
2. Update Password
This endpoint is used for update password with activation code in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Auth Code |
token |
String | Auth Token |
password |
String | New Password |
This endpoint is used for update password with OTP activation in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
otp |
String | OTP Code (expired 1 minute) |
token |
String | Auth Token |
password |
String | New Password |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update password success"
}
1. Register Account
This endpoint is used for register account in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
name |
String | Full Name |
email |
String | Email Address |
phone |
Integer | Phone Number |
captcha |
String | Code Captcha |
password |
String | Password |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"otp": "607225",
"code": "U2FsdGVkX18Fby05RVGtzwtSdEyuXh7PCBedUMBQSCw=",
"token": "ec1248c1b6c4133d2745f4b5c9e0a71c",
"expired": "2024-12-27T17:59:06.000Z"
}
}
2. Request Activation Code
You can request activation code, you need to make a GET call to the following url:
3. Activation Account
This endpoint is used for activation account with activation code in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Activation Code |
token |
String | Activation Token |
This endpoint is used for activation account with OTP activation in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
otp |
String | OTP Code (expired 1 minute) |
token |
String | Auth Token |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Activation account success"
}
1. Detail Account
This endpoint is used for detail account in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"country": 100,
"code": "10000",
"name": "MangoSpot",
"email": "mangospot.net@gmail.com",
"phone": 85642311781,
"gender": "male",
"place": null,
"birthday": null,
"address": "Full Address",
"images" "Image Base64"
}
}
2. Update Account
This endpoint is used for update account in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
name |
String | Full Name |
email |
String | Email Address |
phone |
Integer | Phone Number 81234xxx |
place |
String | Birthplace |
gender |
Boolean | male or female |
country |
Integer | ID Country GET /country |
birthday |
Date | YYYY-MM-DD |
address |
String | Full Address |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update account success"
}
3. Update Avatar
This endpoint is used for update avatar in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
image |
String | Base64 |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update avatar success"
}
4. Update Password
This endpoint is used for update password in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
password |
String | Old Password |
npassword |
String | New Password |
rpassword |
String | Reply Password |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update password success"
}
1. Detail Biodata
This endpoint is used for detail biodata in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": "JSON Data"
}
2. Update Biodata
This endpoint is used for update biodata in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
data |
JSON | JSON Data |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update biodata success"
}
1. Detail Document
This endpoint is used for detail document in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": "JSON Data"
}
2. Update Document
This endpoint is used for update document in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
data |
JSON | JSON Data |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update document success"
}
Admin Overview
This endpoint is used for administrative processing, ensure you use an administrator account.
1. Detail Account
This endpoint is used for get account in the system.
Query Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | Yes | Code Account |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": 1,
"code": "10000",
"name": "MangoSpot",
"email": "mangospot.net@gmail.com",
"phone": 85642311781,
"gender": "male",
"place": null,
"birthday": null,
"country": 100,
"address": "Full Address",
"images" "Image Base64"
}
}
2. Push Account
This endpoint is used for insert or update account in the system.
Body Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | Yes | Code Account |
name |
String | Yes | Full Name |
users |
String | No | If users is empty, account code is used. |
email |
No | Email Address (name@domain.id) | |
phone |
Integer | No | 81234xxxx |
place |
String | No | Place of birth |
gender |
Boolean | No | male or female |
country |
Integer | No | ID Country GET /country |
birthday |
Date | No | YYYY-MM-DD |
address |
String | No | Full Address |
images |
Base64 | No | data:image/png;base64,xxxxx |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Isert or Update account success"
}
1. Detail Biodata
This endpoint is used for get biodata in the system.
Query Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | No | Code Account |
level |
Unique | Yes | Code or ID Level |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Data JSON"
}
2. Push Biodata
This endpoint is used for insert or update biodata in the system.
Body Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | Yes | Code Account |
data |
JSON | Yes | Data JSON |
JSON Example
[{
"id": 1,
"code": "1001",
"name": "Full Name",
"type": "text",
"title": "Title Name",
"value": "My Name"
}, {
"id": 2,
"code": "1002",
"name": "Gender",
"type": "select",
"title": "Gender",
"value": "Male"
}, {
"id": 3,
"code": "1003",
"name": "Province",
"type": "province",
"title": "Provinsi",
"value": "Jawa Tengah"
}]
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Isert or Update biodata success"
}
1. Detail Document
This endpoint is used for get document in the system.
Query Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | No | Code Account |
level |
Unique | Yes | Code or ID Level |
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": null,
"docs": 1,
"code": "2001",
"name": "Attachment File",
"title": null,
"type": "file",
"info": "",
"value": null,
"data": {
"accept": ["jpg", "png", "jpeg", "pdf"]
},
"option": null,
"required": true
}, {
"id": 2,
"docs": 2,
"code": "2002",
"name": "Avatar",
"title": "images.jpg",
"type": "image",
"info": "",
"value": "data:image/jpg;base64,xxxxxxx",
"data": {
"width": "",
"height": ""
},
"option": null,
"required": true
}, {
"id": null,
"docs": 3,
"code": "2003",
"name": "Signature",
"title": null,
"type": "signature",
"info": "",
"value": null,
"sign": null,
"data": {
"width": "",
"height": ""
},
"option": null,
"required": false
}]
}
2. Push Document
This endpoint is used for insert or update document in the system.
Body Parameter
| Field | Type | Required | Description |
|---|---|---|---|
code |
Unique | Yes | Code Account |
docs |
Integer | Yes | ID Document |
name |
String | No | File Name |
type |
String | No | File Type (file, image, signature) |
value |
Base64 | No | data:image/png;base64,xxxxxx |
sign |
JSON | No | If signature type |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Isert or Update document success"
}
1. Quiz Info
Quiz Management System (QMS) is a software application that automates the creation, distribution, grading, and analysis of assessments. It eliminates paper-based testing by allowing administrators (teachers or HR) to design interactive questions and participants to take tests remotely via computers or mobile devices.
This endpoint is used for quiz info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"quiz": 2,
"study": 3,
"class": "I-Level 1",
"period": "2025/2026/GANJIL"
}
}
2. Period
This endpoint is used to retrieve a list of period in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
page |
Integer | Number of pagination |
search |
String | Search by period name |
Response (200 OK)
{
"status": true,
"message": "success",
"total": 2,
"data": [{
"id": "10",
"text": "2025/2026/GANJIL"
}, {
"id": "11",
"text": "2025/2026/GENAP"
}]
}
3. Teacher
This endpoint is used to retrieve a list of teacher in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
page |
Integer | Number of pagination |
period |
Integer | ID Period (Default last active period) |
search |
String | Search by period name |
Response (200 OK)
{
"status": true,
"message": "success",
"total": 3,
"data": [{
"id": "1",
"text": "Teacher 1"
}, {
"id": "2",
"text": "Teacher 2"
}, {
"id": "3",
"text": "Teacher 3"
}]
}
4. Study
This endpoint is used to retrieve a list of study in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
page |
Integer | Number of pagination |
period |
Integer | ID Period (Default last active period) |
teacher |
Integer | ID Teacher |
search |
String | Search by period name |
Response (200 OK)
{
"status": true,
"message": "success",
"total": 3,
"data": [{
"id": "1",
"text": "Study 1"
}, {
"id": "2",
"text": "Study 2"
}, {
"id": "3",
"text": "Study 3"
}]
}
List Quiz
This endpoint is used to retrieve a list of quiz in the system. Recommended for DataTable
Query Parameter
| Field | Type | Description |
|---|---|---|
period |
Integer | ID Period (Default last active period) |
teacher |
Integer | ID Teacher (optional) |
study |
Integer | ID Study (optional) |
| DataTable Documentation | ||
Response (200 OK)
{
"draw": 0,
"recordsTotal": 2,
"recordsFiltered": 2,
"data": [{
"id": "2",
"code": "3407787",
"title": "Linux Fundamental",
"teacher": "Teacher 2",
"subject": "Linux Fundamental",
"quiz": "9 Item",
"duration": "60 Min",
"expired": null,
"random": "question, answer"
}, {
"id": "1",
"code": "8032497",
"title": "Cyber Security",
"teacher": "Teacher 1",
"subject": "Cyber Security Fundamental",
"quiz": "35 Item",
"duration": "30 Min",
"expired": null,
"random": "question, answer"
}]
}
Log Quiz
This endpoint is used to retrieve a list of log quiz in the system. Recommended for DataTable
Query Parameter
| Field | Type | Description |
|---|---|---|
period |
Integer | ID Period (Default last active period) |
teacher |
Integer | ID Teacher (optional) |
study |
Integer | ID Study (optional) |
| DataTable Documentation | ||
Response (200 OK)
{
"draw": 0,
"recordsTotal": 3,
"recordsFiltered": 3,
"data": [{
"date": "2026-05-31 05:15:39",
"title": "Cyber Security",
"subject": "Cyber Security Fundamental",
"teacher": "Teacher 1",
"class": "I-Level 1",
"type": "Finish",
"info": "Finish Quiz"
}, {
"date": "2026-05-31 04:57:33",
"title": "Cyber Security",
"subject": "Cyber Security Fundamental",
"teacher": "Teacher 1",
"class": "I-Level 1",
"type": "Violation",
"info": "Violation Detected!"
}, {
"date": "2026-05-31 04:54:53",
"title": "Cyber Security",
"subject": "Cyber Security Fundamental",
"teacher": "Teacher 1",
"class": "I-Level 1",
"type": "Start",
"info": "Start Quiz"
}]
}
Check Quiz
This endpoint is used to check or detail quiz in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Code Quiz (if id is null) |
period |
Integer | ID Period (Default last active period) |
Response (200 OK) Question is not completed
{
"status": true,
"message": "question",
"info": "Are you ready?",
"text": "Do you want to work on this quiz?",
"data": {
"id": "1",
"code": "8032497",
"title": "Cyber Security",
"identity": "MangoSpot",
"teacher": "Teacher 1",
"subject": "Cyber Security Fundamental",
"type": "one",
"duration": 30,
"random": ["question", "answer"],
"close": "reset",
"show": false,
"start": false,
"finish": false,
"expired": false,
"position": null,
"question": false,
"audio": true,
"status": false,
"password": false,
"period": "10",
"serial": "10000",
"student": "MangoSpot",
"username": "10000",
"range": false
}
}
Response (200 OK) Question is completed
{
"status": true,
"message": "question",
"info": "Quiz is finished",
"text": "Quiz has been completed",
"data": {
"id": "1",
"code": "8032497",
"title": "Cyber Security",
"identity": "MangoSpot",
"teacher": "Teacher 1",
"subject": "Cyber Security Fundamental",
"type": "one",
"duration": 30,
"random": ["question", "answer"],
"close": "reset",
"show": false,
"start": "2026-05-23 08:06:30",
"finish": "2026-05-23 08:15:49",
"expired": false,
"position": "finish",
"question": [{
"id": 1,
"code": 1001,
"data": [{
"value": false,
"answer": "Answer 1 for Question 1"
}, {
"value": false,
"answer": "Answer 3 for Question 1"
}, {
"value": true,
"answer": "Answer 4 for Question 1"
}, {
"value": false,
"answer": "Answer 2 for Question 1"
}],
"info": "Question Description 1?",
"name": "Name Question 1",
"slug": 0,
"type": "radio",
"score": 100,
"story": "",
"total": 100,
"parent": ""
}, {
"id": 2,
"code": 4002,
"data": [{
"value": true,
"answer": "Answer 4 for Question 2"
}, {
"value": false,
"answer": "Answer 2 for Question 2"
}, {
"value": false,
"answer": "Answer 1 for Question 2"
}, {
"value": true,
"answer": "Answer 3 for Question 2"
}],
"info": "Question Description 2?",
"name": "Name Question 2",
"slug": 0,
"type": "checkbox",
"score": 100,
"story": "",
"total": 100,
"parent": ""
}],
"audio": true,
"status": false,
"password": false,
"period": "10",
"serial": "10000",
"student": "MangoSpot",
"username": "10000",
"range": false
}
}
Start Quiz
This endpoint is used to start quiz in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Code Quiz (if id is null) |
period |
Integer | ID Period (Default last active period) |
password |
String | If password is true |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "JSON Data"
}
Finish Quiz
This endpoint is used to finish quiz in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Code Quiz (if id is null) |
data |
JSON | JSON Array |
period |
Integer | ID Period (Default last active period) |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Quiz completed"
}
History Quiz
This endpoint is used to retrieve a list of history quiz in the system. Recommended for DataTable
Query Parameter
| Field | Type | Description |
|---|---|---|
period |
Integer | ID Period (Default last active period) |
teacher |
Integer | ID Teacher (optional) |
study |
Integer | ID Study (optional) |
| DataTable Documentation | ||
Response (200 OK)
{
"draw": 0,
"recordsTotal": 3,
"recordsFiltered": 3,
"data": [{
"id": "2",
"code": "68864207818",
"title": "Linux Fundamental",
"teacher": "Teacher 2",
"subject": "Linux Fundamental",
"class": "I-Level 1",
"start": "2026-05-25T00:42:02.000Z",
"finish": "2026-05-25T00:44:11.000Z",
"score": "",
"total": "",
"active": true
}, {
"id": "1",
"code": "33974130690",
"title": "Cyber Security",
"teacher": "Teacher 1",
"subject": "Cyber Security Fundamental",
"class": "I-Level 1",
"start": "2026-05-23T08:06:30.000Z",
"finish": "2026-05-23T08:15:49.000Z",
"score": "",
"total": "",
"active": true
}]
}
1. Input Violation
This endpoint is used to add violation quiz in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
code |
String | Code Quiz (if id is null) |
period |
Integer | ID Period (Default last active period) |
| DataTable Documentation | ||
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Violation Detected!"
}
2. Unlock Violation
This endpoint is used to unlock violation quiz in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
username |
String | Username Teacher |
password |
String | Password Teacher |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Login teacher success"
}
Absent Info
Attendance Management System is a digital attendance recording system that utilizes cloud and smartphone technology to record real-time clock-in and clock-out times.
This endpoint is used for absent info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": 1,
"level": 2,
"absent": 1,
"shift": "10001",
"code": "100011",
"name": "ADMS Server",
"position": "Staff",
"info": "",
"api": "",
"map": [{
"lat": "-7.560090082333086",
"lng": "110.87097239256677",
"radius": "10"
}, {
"lat": "-7.022846889525094",
"lng": "110.387202501297",
"radius": "5"
}],
"image": {
"icon": "Image Base64",
"logo": "Image Base64"
},
"face": false,
"location": true,
"data": {
"name": "Shift One",
"input": "07:10:00",
"output": "15:00:00"
}
}
}
Absent Check
This endpoint is used for absent check in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"days": "Tuesday",
"date": "2026-06-09",
"time": "01:52:18",
"datetime": "2026-06-09 01:52:18",
"absent": {
"code": "CM",
"data": "<=",
"name": "Quick Login",
"type": "IN",
"value": "4"
},
"double": {
"info": false,
"icon": "question",
"name": "Quick Login",
"status": true
},
"location": {
"info": false,
"icon": "question",
"name": "Quick Login",
"status": true
},
"presence": {
"name": "Default",
"days": "Tuesday",
"onstart": "06:45:00",
"ofstart": "07:10:00",
"endstart": "12:00:00",
"onfinish": "15:00:00",
"offinish": "15:00:00",
"endfinish": "23:00:00",
"info": "",
"locked": false
}
}
}
Insert Absent
This endpoint is used for insert absent in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
lat |
Decimal | Latitude Code |
lng |
Decimal | Longitude Code |
image |
String | Image Base64 |
active |
Boolean | TRUE (on location) FALSE (off location) |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Insert absent success"
}
Holiday
This endpoint is used to retrieve a list of holiday in the system.
Query Parameter
| Field | Type | Required | Description |
|---|---|---|---|
start |
Date | No | YYYY-MM-DD (Default value if empty 2026-01-01) |
finish |
Date | No | YYYY-MM-DD (Default value if empty 2026-12-31) |
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"day": "Thursday",
"code": "20260101_t8rmfdtsfkthvl1ar3bqagnh7s",
"title": "Hari Tahun Baru",
"start": "2026-01-01",
"finish": "2026-01-02",
"info": "Hari libur nasional"
}, {
"day": "Friday",
"code": "20260116_4j4a97o8l269jtig1nlaibqtj4",
"title": "Isra Mikraj Nabi Muhammad",
"start": "2026-01-16",
"finish": "2026-01-17",
"info": "Hari libur nasional"
}]
}
1. History Absent
This endpoint is used to retrieve a list of history absent in the system.
Query Parameter
Recommended for DataTable Documentation
Response (200 OK)
{
"draw": 0,
"recordsTotal": 2,
"recordsFiltered": 2,
"data": [{
"id": "2",
"device": "Android",
"type": "OUT",
"lat": "-7.022846889525094",
"lng": "110.387202501297",
"date": "2026-06-08T15:17:31.000Z",
"score": "3",
"info": null,
"valid": true,
"image": "Image Base64"
}, {
"id": "1",
"device": "Fingerprint 1",
"type": "IN",
"lat": "-7.022846889525094",
"lng": "110.387202501297",
"date": "2026-06-08T07:03:04.000Z",
"score": "3",
"info": null,
"valid": true,
"image": null
}]
}
2. Detail Absent
This endpoint is used for detail history on absent in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": "2",
"device": "Android",
"type": "OUT",
"lat": "-7.022846889525094",
"lng": "110.387202501297",
"date": "2026-06-08T15:17:31.000Z",
"score": {
"code": "P",
"data": "==",
"name": "Get Home Right",
"type": "OUT",
"value": "3"
},
"info": null,
"valid": true,
"image": "Image Base64"
}
}
Report Absent
This endpoint is used for report absent in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
start |
Date | YYYY-MM-DD |
finish |
Date | YYYY-MM-DD |
Response (200 OK)
{
"status": true,
"message": "success",
"data":[{
"date": "2026-08-15",
"score": 8,
"start": "06:37",
"finish": "16:20",
"status": "CM/PT",
"holiday": false
}, {
"date": "2026-08-16",
"score": 5,
"start": "07:05",
"finish": "13:48",
"status": "T/PC",
"holiday": false
}, {
"date": "2026-08-17",
"score": 0,
"start": "00:00",
"finish": "00:00",
"status": "Holiday",
"holiday": "Hari Proklamasi Kemerdekaan R.I."
}]
}
Permit Info
Permit Management System (PMS) is a software solution that streamlines the lifecycle of permits, licenses, and authorizations from application and compliance tracking to automated renewals.
This endpoint is used for permit info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": "1",
"code": "1001",
"name": "Hour",
"mode": "hour",
"attachment": false
}, {
"id": "2",
"code": "1002",
"name": "Day",
"mode": "day",
"attachment": false
}, {
"id": "3",
"code": "1003",
"name": "Sick",
"mode": "day",
"attachment": true
}, {
"id": "4",
"code": "1004",
"name": "Picket",
"mode": "other",
"attachment": false
}]
}
Insert Permit
This endpoint is used for insert permit in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
permit |
Integer | ID Permit |
starts |
Datetime | YYYY-MM-DD HH:MM |
finish |
Datetime | YYYY-MM-DD HH:MM |
info |
String | Text Message |
file |
String | URL or JSON |
File type JSON
JSON.stringify({"name": "File Name", "type": "application/pdf", "size": "123", "data": "123454QAYRXh....."})
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Insert permit success"
}
Update Permit
This endpoint is used for update permit in the system. (if not yet confirmed by admin)
You can use ID on boby parameter
Body Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | ID Permittance (ID is null) |
permit |
Integer | ID Permit |
starts |
Datetime | YYYY-MM-DD HH:MM |
finish |
Datetime | YYYY-MM-DD HH:MM |
info |
String | Text Message |
file |
String | URL or JSON |
File type JSON
JSON.stringify({"name": "File Name", "type": "application/pdf", "size": "123", "data": "123454QAYRXh....."})
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update permit success"
}
Delete Permit
This endpoint is used for delete permit in the system. (if not yet confirmed by admin)
You can use query parameter
Query Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | ID Permit |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Delete permit success"
}
1. Permit Absent
This endpoint is used to retrieve a list of history permit in the system.
Query Parameter
Recommended for DataTable Documentation
Response (200 OK)
{
"draw": 0,
"recordsTotal": 2,
"recordsFiltered": 2,
"data": [{
"id": "2",
"code": "1779794069",
"position": "Staff",
"permittance": "Hour",
"starts": "2026-05-11 14:30",
"finish": "2026-05-11 15:00",
"action": "Waiting",
"duration": "00:30:00",
"info": "Description",
"attachment": false,
"status": true
}, {
"id": "1",
"code": "1798794069",
"position": "Staff",
"permittance": "Sick",
"starts": "2026-05-10 00:00",
"finish": "2026-05-10 23:59",
"action": "Waiting",
"duration": "1 Days",
"info": "Sick",
"attachment": true,
"status": true
}]
}
2. Detail Permit
This endpoint is used for detail history on permit in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": "2",
"permit": "1",
"code": "1779794069",
"mode": "hour",
"permittance": "Hour",
"starts": "2026-05-11 14:30",
"finish": "2026-05-11 15:00",
"action": "Waiting",
"duration": "00:30:00",
"info": "Description",
"file": {
"type": "url",
"data": ""
},
"attachment": false
}
}
Report Permit
This endpoint is used for report permit in the system.
Query Parameter
| Field | Type | Description |
|---|---|---|
start |
Date | YYYY-MM-DD |
finish |
Date | YYYY-MM-DD |
Response (200 OK)
{
"status": true,
"message": "success",
"data":[{
"date": "2026-08-14",
"permit": "Hour",
"start": "06:37",
"finish": "16:20",
"holiday": false
}, {
"date": "2026-08-15",
"permit": "Day",
"start": "07:05",
"finish": "13:48",
"holiday": false
}, {
"date": "2026-08-16",
"permit": "Other",
"start": "06:54",
"finish": "15:22",
"holiday": false
}, {
"date": "2026-08-17",
"permit": "Other",
"start": "",
"finish": "",
"holiday": "Hari Proklamasi Kemerdekaan R.I."
}]
}
Finance Info
Financial Management System (FMS) is a systematic process of planning, executing, recording, reporting, and accountability of financial funds within a institution.
This endpoint is used for finance info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"debit": [{
"id": "1",
"code": "1001",
"name": "Saving Name",
............
}, {
"id": "2",
"code": "1002",
"name": "Saving Name 1",
............
}],
"credit": [{
"id": "3",
"code": "2001",
"name": "Credit Name",
............
}, {
"id": "4",
"code": "2002",
"name": "Credit Name 1",
............
}]
}
}
Type Finance
This endpoint is used for finance type (debit or credit) info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": [{
"id": "1",
"code": "1001",
"name": "Saving Name",
............
}, {
"id": "2",
"code": "1002",
"name": "Saving Name",
............
}]
}
Detail Finance
This endpoint is used for finance type (debit or credit) info in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": "1",
"code": "1001",
"name": "Saving Name",
............
}
}
Insert Transaction
This endpoint is used for insert transaction in the system.
Body Parameter
| Field | Type | Description |
|---|---|---|
finance |
Integer | ID finance |
nominal |
Decimal | Nominal Transaction |
payment |
ENUM | Payment Method |
withdraw |
Boolean | true or false |
info |
Text | Text Message |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Insert transaction success"
}
Update Transaction
This endpoint is used for update transaction in the system. (if not yet confirmed by admin)
You can use ID on boby parameter
Body Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | ID Transaction (ID is null) |
finance |
Integer | ID finance |
nominal |
Decimal | Nominal Transaction |
payment |
ENUM | Payment Method |
withdraw |
Boolean | true or false |
file |
String | URL or JSON |
info |
Text | Text Message |
File type JSON
JSON.stringify({"name": "File Name", "type": "application/pdf", "size": "123", "data": "123454QAYRXh....."})
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Update transaction success"
}
Delete Transaction
This endpoint is used for delete transaction in the system. (if not yet confirmed by admin)
You can use query parameter
Query Parameter
| Field | Type | Description |
|---|---|---|
id |
Integer | ID Transaction |
Response (200 OK)
{
"status": true,
"message": "success",
"data": "Delete finance success"
}
1. Transaction History
This endpoint is used to retrieve a list of history finance in the system.
This endpoint is used to retrieve financial history types (debit or credit) in the system.
Query Parameter (Filter Data)
| Field | Type | Description |
|---|---|---|
finance |
Integer | ID Finance |
starts |
Date | Start Date |
finish |
Date | Finish Date |
Query Parameter
Recommended for DataTable Documentation
Response (200 OK)
{
"draw": 0,
"recordsTotal": 2,
"recordsFiltered": 2,
"data": [{
"id": "7",
"code": "1785310703",
"admin": "Admin Finance",
"finance": "Saving Name",
"type": "credit",
"mode": "Withdraw",
"payment": "admin",
"cost": "0.00",
"interest": "0.50",
"nominal": "300000.00",
"info": "",
"date": "2026-07-29T00:38:23.053Z",
"status": true
}]
}
2. Detail Transaction
This endpoint is used for detail history on transaction in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"id": "1",
"code": "1785299374",
"admin": "Admin Finance",
"serial": "1234567890",
"name": "Full Name",
"position": "Level Position",
"email": "",
"finance": "Saving Name",
"mode": "Deposit",
"cost": "0.00",
"interest": "0.00",
"nominal": "50000.00",
"payment": "admin",
"info": "",
"date": "2026-07-28T21:29:34.065Z",
"status": true,
"file": null
}
}
1. Balance
This endpoint is used to retrieve a financial balance in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"code": "1234567890",
"name": "Full Name",
"level": "Level Position",
"email": "",
"phone": "",
"address": null,
"balance": "450000.00",
"debit": "750000.00",
"credit": "-300000.00"
}
}
2. List Balance
This endpoint is used to retrieve financial balance types (debit or credit) in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"code": "1234567890",
"name": "Full Name",
"level": "Level Position",
"email": "",
"phone": "",
"address": null,
"balance": "450000.00",
"finance": [{
"id": "1",
"code": "1001",
"name": "Saving Name",
"input": "1",
"output": "0",
"deposit": "500000.00",
"withdraw": "0",
"balance": "500000.00"
}, {
"id": "2",
"code": "1002",
"name": "Saving Name 1",
"input": "1",
"output": "0",
"deposit": "50000.00",
"withdraw": "0",
"balance": "50000.00"
}]
}
}
3. Detail Balance
This endpoint is used for detail financial balance in the system.
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"code": "1234567890",
"name": "Full Name",
"level": "Level Position",
"email": "",
"phone": "",
"address": null,
"balance": "450000.00",
"finance": {
"id": "1",
"code": "1001",
"name": "Saving Name",
"input": "1",
"output": "0",
"deposit": "500000.00",
"withdraw": "0",
"balance": "500000.00"
}
}
}
Mutation
This endpoint is used to retrieve a list of mutation finance in the system.
Query Parameter (Filter Data)
| Field | Type | Description |
|---|---|---|
finance |
Integer | ID Finance |
starts |
Date | Start Date |
finish |
Date | Finish Date |
Response (200 OK)
{
"status": true,
"message": "success",
"data": {
"code": "1234567890",
"name": "Full Name",
"level": "Level Position",
"email": "",
"phone": "",
"address": "",
"debit": "750000.00",
"credit": "-300000.00",
"balance": "450000.00",
"period": {
"starts": "2026-07-01",
"finish": "2026-07-31"
},
"mutation": [{
"code": "1785299365",
"admin": "Admin Finance",
"finance": "Saving Name",
"type": "debit",
"cost": "5000.00",
"interest": "0.10",
"subtotal": "505000.00",
"deposit": "500000.00",
"withdraw": 0,
"balance": "500000.00",
"payment": "admin",
"info": "",
"date": "2026-07-28T21:29:24.848Z"
}]
}
}