Introduction
This documentation aims to provide all the information you need to work with our API.
<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
Approval
Display a listing of the resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approvals" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing of the resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approvals/riwayat" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals/riwayat"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show Approval Detail
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approvals/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Approve
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/approvals/architecto/approve" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"catatan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approvals/architecto/approve"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"catatan": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reject
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/approvals/architecto/reject" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"catatan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approvals/architecto/reject"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"catatan": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Revisi
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/approvals/architecto/revisi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals/architecto/revisi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Authentication
Login User
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/login" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"login\": \"user@email.com\",
\"password\": \"password123\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/login"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"login": "user@email.com",
"password": "password123"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"access_token": "1|abcdefg1234567890",
"token_type": "Bearer",
"user": {
"id": 1,
"name": "Budi",
"email": "user@email.com",
"nik": "123456789",
"role": {
"id": 1,
"name": "Admin"
}
}
}
Example response (401):
{
"message": "Email/NIK atau password salah"
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {
"login": [
"The login field is required."
],
"password": [
"The password field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Current User
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/me" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/me"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Success",
"data": {
"id": 1,
"nik": "123456789",
"email": "user@email.com",
"nama": "Budi",
"role": "Admin",
"peran": {
"id": 1,
"nama_peran": "Admin"
},
"karyawan": {
"id": 1,
"nama_lengkap": "Budi Santoso",
"email": "user@email.com",
"nik": "123456789",
"keluarga": [],
"gaji": {},
"riwayatPekerjaan": [],
"riwayatPendidikan": [],
"keahlian": [],
"ahliwaris": [],
"files": [],
"pelatihanSertifikasi": [],
"statusKaryawan": {},
"kontrak": [],
"riwayatOrganisasi": [],
"strukturOrganisasi": {}
}
}
}
Example response (401):
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Logout User
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/logout" \
--header "Authorization: string Required. Bearer token. Example: Bearer 1|abcdefg1234567890" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/logout"
);
const headers = {
"Authorization": "string Required. Bearer token. Example: Bearer 1|abcdefg1234567890",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Logged out"
}
Example response (401):
{
"message": "Unauthenticated."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Category Product Management
Get Product Categories
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/product-category" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
{
\"field\": \"title\",
\"operator\": \"contains\",
\"value\": \"Laptop\"
}
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-04T17:00:00.000Z\",
\"dateEnd\": \"2026-04-05T17:00:00.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product-category"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
{
"field": "title",
"operator": "contains",
"value": "Laptop"
}
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-04T17:00:00.000Z",
"dateEnd": "2026-04-05T17:00:00.000Z"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 100,
"lastPage": 10
},
"data": [
{
"id": 1,
"name": "Electronics",
"desc": "All kinds of electronic devices."
},
{
"id": 2,
"name": "Furniture",
"desc": "Home and office furniture."
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a new product category.
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/product-category" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Electronics\",
\"desc\": \"All kinds of electronic devices.\\nStore a newly created resource in storage.\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product-category"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Electronics",
"desc": "All kinds of electronic devices.\nStore a newly created resource in storage."
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the specified Product Category.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/product-category/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/product-category/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": 1,
"name": "Electronics",
"desc": "All kinds of electronic devices."
}
}
Example response (404):
{
"status": false,
"message": "Product category not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified Product Category in storage.
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/product-category/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"name\": \"Electronics Updated\",
\"desc\": \"Updated description here.\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product-category/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "Electronics Updated",
"desc": "Updated description here."
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated"
}
Example response (404):
{
"status": false,
"message": "Product category not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified Product Category from storage.
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/product-category/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/product-category/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted"
}
Example response (404):
{
"status": false,
"message": "Product category not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Email Management
Send test email
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/send-test/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/send-test/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send interview email
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/send-interview/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"datetime\": \"2026-06-06T10:08:28\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/send-interview/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"datetime": "2026-06-06T10:08:28"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send reject email
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/send-reject/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/send-reject/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send accepted email
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/send-accept/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"datetime\": \"2026-06-06T10:08:28\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/send-accept/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"datetime": "2026-06-06T10:08:28"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Employee Interview Management
GET api/interviews
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/interviews" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/interviews"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": [
{
"id": 3,
"interviewer": [
"019df0bc-1c98-703e-9d78-233ccb6c530e",
"019df0bc-1b76-713b-935f-2981396898f5"
],
"scheduled_at": "2026-05-21 09:30:00",
"location": "Zoom Meeting",
"notes": "Candidate rescheduled",
"status": "done",
"is_pic": 0,
"interviewer_detail": [
{
"id": "019df0bc-1c98-703e-9d78-233ccb6c530e",
"nama_jabatan": "HRD STAFF",
"is_pic": 1
},
{
"id": "019df0bc-1b76-713b-935f-2981396898f5",
"nama_jabatan": "SUPERVISOR IT",
"is_pic": 0
}
],
"applicant": {
"id": 23,
"user_id": 13,
"job_posting_id": "019dc249-fc21-70c1-81d6-241ab8aaf5bc",
"no_ktp": "1234567891234567",
"tempat_lahir": "Sukamakmur",
"tanggal_lahir": "2026-05-06",
"jenis_kelamin": "laki-laki",
"agama": "Kristen Protestan",
"alamat_ktp": "Alamat KTP",
"alamat": "Alamat KTP",
"telepon_rumah": "085668733336",
"no_hp": "085668733336",
"tahapan": "interview",
"is_use_trial": 0,
"status_perkembangan": "in_progress",
"status_revisi_hr": "",
"status_revisi": 0,
"catatan_revisi": null,
"deleted_at": null,
"created_at": "2026-05-07T08:18:54.000000Z",
"updated_at": "2026-05-07T08:18:54.000000Z",
"nama_jabatan": "STAF PROGRAMMER",
"user": {
"id": 13,
"name": "Ekin Adhi Guna",
"email": "ekinadhiguna@gmail.com",
"avatar": null,
"phone_number": "085668733336",
"created_at": "2026-04-25T09:15:20.000000Z",
"updated_at": "2026-04-25T09:15:20.000000Z"
}
}
}
]
}
Example response (404):
{
"status": false,
"message": "Struktur organisasi tidak ditemukan"
}
Example response (500):
{
"status": false,
"message": "Gagal mengambil data interview"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Employee Request Management
GET api/employee-requests
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/employee-requests" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"level\": \"staff\",
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-01T00:00:00.000Z\",
\"dateEnd\": \"2026-04-10T23:59:59.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"level": "staff",
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-01T00:00:00.000Z",
"dateEnd": "2026-04-10T23:59:59.000Z"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 100,
"lastPage": 10
},
"data": [
{
"id": 1,
"nomor_pengajuan": "REQ-20260410120000",
"pengaju": "Budi",
"request_level": "staff",
"departemen": "IT",
"posisi": "Programmer",
"jumlah_karyawan": 2,
"lokasi": "Jakarta",
"tanggal_dibutuhkan": "2026-04-15",
"status": "pending",
"status_lowongan": "closed",
"thumbnail": "http://example.com/storage/employee_requests/file.jpg",
"created_at": "2026-04-10 12:00:00"
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/employee-requests/{id}
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/employee-requests/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"nomor_pengajuan": "REQ-20260410120000",
"pengaju": "Budi",
"status": "pending",
"thumbnail": "http://example.com/storage/employee_requests/file.jpg"
}
}
Example response (404):
{
"message": "No query results for model."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/employee-requests
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee-requests" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_jabatan\": \"2c1d3e4f-5678-4abc-9999-abcdef123456\",
\"id_klasifikasi\": \"7a8b9c0d-1111-4abc-8888-abcdef123456\",
\"jumlah_karyawan\": 2,
\"request_level\": \"Jakarta\",
\"tanggal_dibutuhkan\": \"Untuk mendukung proyek baru\",
\"lokasi\": \"architecto\",
\"catatan_tambahan\": \"Diutamakan yang bisa join secepatnya.\\n* @bodyParam employment_type string Optional. Jenis pekerjaan (full_time, part_time, contract, internship, freelance). Default: full_time\",
\"employment_type\": \"contract\",
\"experience_level\": \"architecto\",
\"tanggal_mulai\": \"2026-06-06T10:08:28\",
\"tanggal_berakhir\": \"2026-06-06T10:08:28\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_jabatan": "2c1d3e4f-5678-4abc-9999-abcdef123456",
"id_klasifikasi": "7a8b9c0d-1111-4abc-8888-abcdef123456",
"jumlah_karyawan": 2,
"request_level": "Jakarta",
"tanggal_dibutuhkan": "Untuk mendukung proyek baru",
"lokasi": "architecto",
"catatan_tambahan": "Diutamakan yang bisa join secepatnya.\n* @bodyParam employment_type string Optional. Jenis pekerjaan (full_time, part_time, contract, internship, freelance). Default: full_time",
"employment_type": "contract",
"experience_level": "architecto",
"tanggal_mulai": "2026-06-06T10:08:28",
"tanggal_berakhir": "2026-06-06T10:08:28"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/employee-requests/{id}/update
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/employee-requests/1/update" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "pengaju_id=5"\
--form "id_jabatan=2"\
--form "id_klasifikasi=3"\
--form "jumlah_karyawan=2"\
--form "request_level=staff"\
--form "tanggal_dibutuhkan=2026-04-15"\
--form "lokasi=Jakarta"\
--form "alasan=Penambahan tim untuk proyek baru"\
--form "catatan_tambahan=Dibutuhkan segera"\
--form "employment_type=architecto"\
--form "experience_level=architecto"\
--form "tanggal_mulai=2026-05-01"\
--form "tanggal_berakhir=2026-12-31"\
--form "thumbnail=@C:\Users\DC03\AppData\Local\Temp\phpF4C5.tmp" const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/1/update"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('pengaju_id', '5');
body.append('id_jabatan', '2');
body.append('id_klasifikasi', '3');
body.append('jumlah_karyawan', '2');
body.append('request_level', 'staff');
body.append('tanggal_dibutuhkan', '2026-04-15');
body.append('lokasi', 'Jakarta');
body.append('alasan', 'Penambahan tim untuk proyek baru');
body.append('catatan_tambahan', 'Dibutuhkan segera');
body.append('employment_type', 'architecto');
body.append('experience_level', 'architecto');
body.append('tanggal_mulai', '2026-05-01');
body.append('tanggal_berakhir', '2026-12-31');
body.append('thumbnail', document.querySelector('input[name="thumbnail"]').files[0]);
fetch(url, {
method: "PUT",
headers,
body,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Pengajuan berhasil diupdate",
"data": {
"id": 1,
"pengaju_id": 5,
"id_jabatan": 2,
"id_klasifikasi": 3,
"jumlah_karyawan": 2,
"lokasi": "Jakarta",
"tanggal_dibutuhkan": "2026-04-15",
"tanggal_mulai": "2026-05-01",
"tanggal_berakhir": "2026-12-31",
"employment_type": "full_time",
"experience_level": "entry",
"request_level": "staff",
"thumbnail": "thumbnails/abc123.jpg"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Example response (409):
{
"status": false,
"message": "Data sudah diproses, tidak bisa diupdate"
}
Example response (422):
{
"status": false,
"message": "Validation error",
"errors": {
"id_jabatan": [
"The id jabatan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/employee-requests/{id}/approve
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee-requests/1/approve" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": \"approved\",
\"catatan_approval\": \"Disetujui\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/1/approve"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": "approved",
"catatan_approval": "Disetujui"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Pengajuan disetujui"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reject Employee Request
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee-requests/architecto/reject" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"catatan_approval\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/architecto/reject"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"catatan_approval": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Employee Request
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/employee-requests/architecto/delete" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/architecto/delete"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/employee-requests/{id}/publish
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee-requests/1/publish" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status_lowongan\": \"open\",
\"tanggal_mulai\": \"2026-04-10\",
\"tanggal_berakhir\": \"2026-05-10\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/1/publish"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status_lowongan": "open",
"tanggal_mulai": "2026-04-10",
"tanggal_berakhir": "2026-05-10"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Lowongan berhasil dipublish"
}
Example response (409):
{
"status": false,
"message": "Data belum disetujui, tidak bisa dipublish"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Endpoints
GET api/test
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/test" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/test"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"message": "API is working",
"timestamp": "2026-06-06T03:08:27.172523Z",
"data": {
"id": "019df0ba-66e1-7109-9943-7cc3235a91cf",
"nama_jabatan": "ADMIN & LOGISTIK WORKSHOP",
"deleted_at": null,
"created_at": "2026-05-04T09:04:01.000000Z",
"updated_at": "2026-05-04T09:04:01.000000Z",
"struktur_organisasi": [
{
"id": "019df0bc-1d92-7072-a07b-e09d63a1c85f",
"id_karyawan": "8201f226-710c-488f-ae49-466b49135897",
"id_perusahaan_lokasi": "50679c16-96de-4434-af51-8f7aa88d73a1",
"id_struktur_org_atasan": "019df0bc-1bdf-719e-8362-e66668c7f079",
"level_posisi": 8,
"level_manajerial": "S",
"id_jabatan": "019df0ba-66e1-7109-9943-7cc3235a91cf",
"id_struktur_org_penilai_1": "019df0bc-1bdf-719e-8362-e66668c7f079",
"id_struktur_org_penilai_2": null,
"id_struktur_org_penilai_3": null,
"deleted_at": null,
"created_at": "2026-05-04T09:05:53.000000Z",
"updated_at": "2026-05-04T09:05:53.000000Z"
},
{
"id": "019df0bc-1d97-73d0-a49d-6159a906cce3",
"id_karyawan": "7dcffa88-9bcb-4f55-8ce6-afbe11229870",
"id_perusahaan_lokasi": "91544d1e-7e9b-4ec9-ab41-92f025707f76",
"id_struktur_org_atasan": "019df0bc-1b98-72b1-8a57-f482dc76812b",
"level_posisi": 8,
"level_manajerial": "S",
"id_jabatan": "019df0ba-66e1-7109-9943-7cc3235a91cf",
"id_struktur_org_penilai_1": "019df0bc-1b98-72b1-8a57-f482dc76812b",
"id_struktur_org_penilai_2": null,
"id_struktur_org_penilai_3": null,
"deleted_at": null,
"created_at": "2026-05-04T09:05:53.000000Z",
"updated_at": "2026-05-04T09:05:53.000000Z"
},
{
"id": "019df0bc-1d9d-701b-901f-70e233b55c60",
"id_karyawan": "3420ed41-09dd-4f13-ab3f-0ef96091046a",
"id_perusahaan_lokasi": "f235f2ae-00b0-4c4d-97d1-2da48dc290a6",
"id_struktur_org_atasan": "019df0bc-1bda-7189-a8f4-9ae95aeda217",
"level_posisi": 8,
"level_manajerial": "S",
"id_jabatan": "019df0ba-66e1-7109-9943-7cc3235a91cf",
"id_struktur_org_penilai_1": "019df0bc-1bda-7189-a8f4-9ae95aeda217",
"id_struktur_org_penilai_2": null,
"id_struktur_org_penilai_3": null,
"deleted_at": null,
"created_at": "2026-05-04T09:05:53.000000Z",
"updated_at": "2026-05-04T09:05:53.000000Z"
},
{
"id": "019e865a-476e-70be-9a11-1c72fced3f98",
"id_karyawan": null,
"id_perusahaan_lokasi": "91544d1e-7e9b-4ec9-ab41-92f025707f76",
"id_struktur_org_atasan": "019df0bc-1b26-731f-9a26-e97968c77826",
"level_posisi": 1,
"level_manajerial": "M2",
"id_jabatan": "019df0ba-66e1-7109-9943-7cc3235a91cf",
"id_struktur_org_penilai_1": "019df0bc-1b20-72b3-981c-72127d10d3bf",
"id_struktur_org_penilai_2": null,
"id_struktur_org_penilai_3": null,
"deleted_at": null,
"created_at": "2026-06-02T03:22:04.000000Z",
"updated_at": "2026-06-02T03:22:04.000000Z"
}
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/me/hakAkses
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/me/hakAkses" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/me/hakAkses"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/user
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/user" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/user"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/work_load_analysis/realization/revision/{id}
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/realization/revision/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/realization/revision/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
FORM PENGAJUAN
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/change-request" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_master_wla\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",
\"nilai_target_baru\": \"g\",
\"alasan_perubahan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/change-request"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_master_wla": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
"nilai_target_baru": "g",
"alasan_perubahan": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Approval
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/work_load_analysis/change-request/architecto/approve" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/change-request/architecto/approve"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reject
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/work_load_analysis/change-request/architecto/reject" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/change-request/architecto/reject"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/approvals/pending
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approvals/pending" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals/pending"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/approvals/history
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approvals/history" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approvals/history"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show the form for creating a new resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/workload-realizations/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show the form for editing the specified resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/workload-realizations/architecto/edit" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations/architecto/edit"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show the form for creating a new resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-headers/create" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-headers/create"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show the form for editing the specified resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-headers/architecto/edit" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-headers/architecto/edit"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/employee-requests/pengajuan/import
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee-requests/pengajuan/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"file_lowongan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/employee-requests/pengajuan/import"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"file_lowongan": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competences/{id}/jabatan
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competences/architecto/jabatan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto/jabatan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/organisasi/tree
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/organisasi/tree" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/organisasi/tree"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/send-email
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/send-email" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"email\": \"gbailey@example.net\",
\"subject\": \"m\",
\"title\": \"i\",
\"message\": \"architecto\",
\"type\": \"n\",
\"schedule\": \"g\",
\"location\": \"z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/send-email"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"email": "gbailey@example.net",
"subject": "m",
"title": "i",
"message": "architecto",
"type": "n",
"schedule": "g",
"location": "z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/users/change-password
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/change-password" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"old_password\": \"architecto\",
\"new_password\": \"ngzmiyvdljnikhwaykcmyuwpwl\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/change-password"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"old_password": "architecto",
"new_password": "ngzmiyvdljnikhwaykcmyuwpwl"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/users/fiturWeb
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/fiturWeb" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"modul\": \"b\",
\"sub_modul\": \"n\",
\"fitur\": \"g\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/fiturWeb"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"modul": "b",
"sub_modul": "n",
"fitur": "g"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/users/fiturWeb/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/users/fiturWeb/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"modul\": \"b\",
\"sub_modul\": \"n\",
\"fitur\": \"g\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/fiturWeb/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"modul": "b",
"sub_modul": "n",
"fitur": "g"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/users/fiturWeb/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/users/fiturWeb/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/fiturWeb/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/users/hakAkses/list
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/hakAkses/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/list-jurusan
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/list-jurusan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/list-jurusan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
SHOW: Mendapatkan detail 1 meeting
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/meetings/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/meetings/{id}/peserta
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/meetings/architecto/peserta" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto/peserta"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/meetings/{id}/read
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/meetings/architecto/read" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto/read"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/peforma-karyawan/me
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/peforma-karyawan/me" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/peforma-karyawan/me"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
HRD Assignment Config
Display a listing of HRD Assignment Config.
requires authentication
Endpoint ini digunakan untuk mengambil seluruh data HRD Assignment Config beserta relasi Struktur Organisasi dan data Karyawan terkait.
Ketentuan:
- Jika tahapan = applied dan memiliki id_struktur_organisasi yang sama, maka hanya data pertama yang akan ditampilkan.
- Data selain tahapan applied akan tetap ditampilkan seluruhnya.
Relasi:
- strukturOrganisasi
- strukturOrganisasi.karyawan (hanya field id dan nama_lengkap)
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/hrd-assignment-config" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"message": "HRD Assignment Configs retrieved successfully",
"timestamp": "2026-05-09T10:00:00.000000Z",
"data": [
{
"id": "uuid",
"level_manajerial": "General",
"tahapan": "applied",
"id_struktur_organisasi": "uuid",
"created_at": "2026-05-09T10:00:00.000000Z",
"updated_at": "2026-05-09T10:00:00.000000Z",
"struktur_organisasi": {
"id": "uuid",
"id_karyawan": "uuid",
"karyawan": {
"id": "uuid",
"nama_lengkap": "John Doe"
}
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Tahapan Recruitment.
requires authentication
Endpoint ini digunakan untuk mengambil daftar tahapan recruitment berdasarkan data HRD Assignment Config beserta PIC HRD yang bertanggung jawab.
Ketentuan:
- Tahapan
appliedakan ditampilkan sebagaiScreening CV - Tahapan
testakan ditampilkan sebagaiTest - Tahapan
interviewakan ditampilkan sebagaiWawancara - Tahapan
job_trial,offered, danacceptedakan digabung menjadiFinalisasi
Pengelompokan Action:
- applied => applied
- test => test
- interview => interview
- job_trial/offered/accepted => finalisasi
Relasi Data:
- hrd_assignment_configs.id_struktur_organisasi = struktur_organisasi.id
- struktur_organisasi.id_karyawan = karyawan.id
Data yang ditampilkan:
- name
- action
- tahapan
- details
- id_struktur_organisasi
- nama_lengkap
- nik
- level_manajerial
Khusus:
- Tahapan
applieddanfinalisasihanya menampilkan 1 data denganlevel_manajerial = Semua - Tahapan
testdaninterviewmenampilkan detail berdasarkan level managerial masing-masing
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/hrd-assignment-config/list-tahapan/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/list-tahapan/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"message": "Tahapan retrieved successfully",
"timestamp": "2026-05-12T10:00:00.000000Z",
"data": [
{
"name": "Finalisasi",
"action": "finalisasi",
"tahapan": "finalisasi",
"details": [
{
"id_struktur_organisasi": "019df0bc-1bc6-7045-878e-726ac0288f27",
"nama_lengkap": "NADYA INGRIDA BRAHMANA",
"nik": "FRP - 4291",
"level_manajerial": "Semua"
}
]
},
{
"name": "Test",
"action": "test",
"tahapan": "test",
"details": [
{
"id": "0654372b-feb4-47a4-935a-909248b529ed",
"level_manajerial": "D",
"id_struktur_organisasi": "019df0bc-1af2-73bf-a1dd-fd0cd702ec91",
"nama_lengkap": "Nama HRD",
"nik": "FRP - 0001",
"updated_at": "2026-05-12T02:22:01.000000Z"
}
]
},
{
"name": "Wawancara",
"action": "interview",
"tahapan": "interview",
"details": [
{
"id": "1a77bffe-63da-4764-8dd4-53b094e55c34",
"level_manajerial": "M3",
"id_struktur_organisasi": "019df0bc-1b89-73f5-9a51-31099cf39c2f",
"nama_lengkap": "Nama HRD",
"nik": "FRP - 1294",
"updated_at": "2026-05-12T02:22:01.000000Z"
}
]
},
{
"name": "Screening CV",
"action": "applied",
"tahapan": "applied",
"details": [
{
"id_struktur_organisasi": "019df0bc-1bc6-7045-878e-726ac0288f27",
"nama_lengkap": "NADYA INGRIDA BRAHMANA",
"nik": "FRP - 4291",
"level_manajerial": "Semua"
}
]
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Level General berdasarkan Tahapan.
requires authentication
Endpoint ini digunakan untuk mengambil data HRD Assignment Config berdasarkan tahapan tertentu dengan level_manajerial = General.
Ketentuan:
-
Jika parameter tahapan = finalisasi, maka data yang diambil adalah gabungan dari:
- accepted
- offered
- job_trial
-
Ketiga tahapan tersebut akan digabung dan ditampilkan sebagai:
- finalisasi
-
Data finalisasi akan ditampilkan unik berdasarkan:
- id_struktur_organisasi
-
Jika id_struktur_organisasi sama, maka hanya akan ditampilkan 1 data.
-
Selain finalisasi, data akan difilter sesuai nilai tahapan yang dikirim.
Parameter:
- tahapan
Contoh:
- applied
- test
- interview
- finalisasi
Mapping Finalisasi:
- accepted => finalisasi
- offered => finalisasi
- job_trial => finalisasi
Relasi:
- strukturOrganisasi
- strukturOrganisasi.karyawan
Field Karyawan:
- id
- nama_lengkap
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/hrd-assignment-config/finalisasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/finalisasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"message": "HRD Assignment Configs retrieved successfully",
"timestamp": "2026-05-12T10:00:00.000000Z",
"data": [
{
"id": "uuid",
"level_manajerial": "General",
"tahapan": "finalisasi",
"id_struktur_organisasi": "uuid",
"created_at": "2026-05-12T10:00:00.000000Z",
"updated_at": "2026-05-12T10:00:00.000000Z",
"struktur_organisasi": {
"id": "uuid",
"id_karyawan": "uuid",
"karyawan": {
"id": "uuid",
"nama_lengkap": "John Doe"
}
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display a listing from filtered resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/hrd-assignment-config/architecto/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/architecto/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Display the specified resource.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/hrd-assignment-config/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store a newly created resource in storage.
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/hrd-assignment-config" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_struktur_organisasi\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",
\"level_manajerial\": \"architecto\",
\"tahapan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_struktur_organisasi": "6ff8f7f6-1eb3-3525-be4a-3932c805afed",
"level_manajerial": "architecto",
"tahapan": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified resource in storage.
requires authentication
Mengupdate HRD Assignment Config berdasarkan:
- level_manajerial
- tahapan
- id_struktur_organisasi
Sekaligus menyimpan histori perubahan ke tabel log.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/hrd-assignment-config/update" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"level_manajerial\": \"M2\",
\"tahapan\": \"test\",
\"id_struktur_organisasi\": \"550e8400-e29b-41d4-a716-446655440000\",
\"new_id_struktur_organisasi\": \"550e8400-e29b-41d4-a716-446655440001\",
\"keterangan\": \"Perubahan PIC approval\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/update"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"level_manajerial": "M2",
"tahapan": "test",
"id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440000",
"new_id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440001",
"keterangan": "Perubahan PIC approval"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"message": "HRD Assignment Config updated successfully",
"timestamp": "2026-05-13T10:00:00",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440010",
"id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440001",
"level_manajerial": "M2",
"tahapan": "test"
}
}
Example response (404):
{
"message": "Data not found",
"timestamp": "2026-05-13T10:00:00",
"data": null
}
Example response (409):
{
"message": "Update failed: Another config with the same criteria already exists",
"timestamp": "2026-05-13T10:00:00",
"data": null
}
Example response (500):
{
"message": "Failed to update data",
"error": "error message",
"timestamp": "2026-05-13T10:00:00",
"data": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified resource from storage.
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/hrd-assignment-config/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/hrd-assignment-config/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Karyawan
Menyimpan data pelamar yang lolos seleksi menjadi data karyawan, termasuk seluruh relasi seperti keluarga, pendidikan, pekerjaan, organisasi, keahlian, pelatihan, dan dokumen.
Data diambil dari External API berdasarkan employee_applicant_id, kemudian diproses dan disimpan ke dalam database internal.
Sistem juga akan:
- Generate NIK otomatis (format: FRP - 0001, dst)
- Generate UUID untuk setiap tabel
- Menyimpan data dalam transaction (rollback jika gagal)
Store Pelamar Lolos Menjadi Karyawan
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/employee" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "employee_applicant_id=1"\
--form "jenis_karyawan=staff"\
--form "tanggal_mulai=2026-06-06T10:08:28"\
--form "tanggal_akhir=2052-06-29"\
--form "lama_kontrak=16"\
--form "status=n"\
--form "penjamin=g"\
--form "pakta_integritas_pegawai="\
--form "peraturan_ketentuan_perusahaan="\
--form "surat_perjanjian_kerja=1"\
--form "foto_profil=@C:\Users\DC03\AppData\Local\Temp\phpF4E5.tmp" const url = new URL(
"http://10.10.1.109:8000/api/employee"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('employee_applicant_id', '1');
body.append('jenis_karyawan', 'staff');
body.append('tanggal_mulai', '2026-06-06T10:08:28');
body.append('tanggal_akhir', '2052-06-29');
body.append('lama_kontrak', '16');
body.append('status', 'n');
body.append('penjamin', 'g');
body.append('pakta_integritas_pegawai', '');
body.append('peraturan_ketentuan_perusahaan', '');
body.append('surat_perjanjian_kerja', '1');
body.append('foto_profil', document.querySelector('input[name="foto_profil"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (201):
{
"success": true,
"message": "Data berhasil disimpan"
}
Example response (404):
{
"success": false,
"message": "Data tidak ditemukan"
}
Example response (404):
{
"success": false,
"message": "Applicant tidak ditemukan"
}
Example response (422):
{
"success": false,
"errors": {
"employee_applicant_id": [
"The employee applicant id field is required."
],
"jenis_karyawan": [
"The jenis karyawan field is required."
]
}
}
Example response (500):
{
"success": false,
"message": "Response API tidak valid"
}
Example response (500):
{
"success": false,
"message": "Internal Server Error",
"error": "Error message detail"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Karyawan Management
Create New Karyawan
requires authentication
API untuk membuat data karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data karyawan:
- nik
- id_user
- nama_lengkap
- nama_inisial
- jenis_karyawan
- tempat_lahir
- tanggal_lahir
- no_ktp
- no_sim
- exp_sim
- no_sio
- exp_sio
- no_bpjs
- no_jamsostek
- no_npwp
- nama_faskes
- jenis_kelamin
- agama
- status_pernikahan
- kebangsaan
- suku
- alamat_ktp
- alamat
- telepon_rumah
- no_hp
- golongan
- jabatan
- nama_bank
- no_rek
- an_bank
- cita_cita
- hobi
- no_kk
- gaji_jamsostek
- nilai_jamsostek
- iuran_jaminan_kematian
- iuran_jaminan_keselamatan_kerja
- iuran_jaminan_kesejahteraan_sosial
- asuransi
Jika request dikirim dalam format array data, maka seluruh item akan divalidasi dan disimpan sekaligus.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nik\": \"3171010101010001\",
\"nama_lengkap\": \"Budi Santoso\",
\"nama_inisial\": \"Budi\",
\"jenis_karyawan\": \"staff\",
\"tempat_lahir\": \"Jakarta\",
\"tanggal_lahir\": \"1995-01-15\",
\"no_ktp\": \"3171010101010001\",
\"no_sim\": \"SIM123456\",
\"exp_sim\": \"2027-01-15\",
\"no_sio\": \"SIO123456\",
\"exp_sio\": \"2027-01-15\",
\"no_bpjs\": \"BPJS0001\",
\"no_jamsostek\": \"JSTK0001\",
\"no_npwp\": \"NPWP0001\",
\"nama_faskes\": \"RS Sejahtera\",
\"jenis_kelamin\": \"laki-laki\",
\"agama\": \"Islam\",
\"status_pernikahan\": \"Menikah\",
\"kebangsaan\": \"Indonesia\",
\"suku\": \"Jawa\",
\"alamat_ktp\": \"Jl. Melati No. 10, Jakarta\",
\"alamat\": \"Jl. Melati No. 10, Jakarta\",
\"telepon_rumah\": \"021555111\",
\"no_hp\": \"081234567890\",
\"email\": \"budi.santoso@mail.com\",
\"golongan\": \"G1\",
\"nama_bank\": \"BCA\",
\"no_rek\": \"1234567890\",
\"an_bank\": \"Budi Santoso\",
\"cita_cita\": \"Manager\",
\"hobi\": \"Membaca\",
\"no_kk\": \"1234567890123456\",
\"gaji_jamsostek\": \"5000000\",
\"nilai_jamsostek\": \"200000\",
\"iuran_jaminan_kematian\": \"50000\",
\"iuran_jaminan_keselamatan_kerja\": \"75000\",
\"iuran_jaminan_kesejahteraan_sosial\": \"100000\",
\"asuransi\": \"Asuransi XYZ\",
\"data\": [
{
\"nik\": \"3171010101010001\",
\"id_user\": 1,
\"nama_lengkap\": \"Budi Santoso\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nik": "3171010101010001",
"nama_lengkap": "Budi Santoso",
"nama_inisial": "Budi",
"jenis_karyawan": "staff",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1995-01-15",
"no_ktp": "3171010101010001",
"no_sim": "SIM123456",
"exp_sim": "2027-01-15",
"no_sio": "SIO123456",
"exp_sio": "2027-01-15",
"no_bpjs": "BPJS0001",
"no_jamsostek": "JSTK0001",
"no_npwp": "NPWP0001",
"nama_faskes": "RS Sejahtera",
"jenis_kelamin": "laki-laki",
"agama": "Islam",
"status_pernikahan": "Menikah",
"kebangsaan": "Indonesia",
"suku": "Jawa",
"alamat_ktp": "Jl. Melati No. 10, Jakarta",
"alamat": "Jl. Melati No. 10, Jakarta",
"telepon_rumah": "021555111",
"no_hp": "081234567890",
"email": "budi.santoso@mail.com",
"golongan": "G1",
"nama_bank": "BCA",
"no_rek": "1234567890",
"an_bank": "Budi Santoso",
"cita_cita": "Manager",
"hobi": "Membaca",
"no_kk": "1234567890123456",
"gaji_jamsostek": "5000000",
"nilai_jamsostek": "200000",
"iuran_jaminan_kematian": "50000",
"iuran_jaminan_keselamatan_kerja": "75000",
"iuran_jaminan_kesejahteraan_sosial": "100000",
"asuransi": "Asuransi XYZ",
"data": [
{
"nik": "3171010101010001",
"id_user": 1,
"nama_lengkap": "Budi Santoso"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan",
"data": {
"id": 1,
"nik": "3171010101010001",
"nama_lengkap": "Budi Santoso",
"created_at": "2026-04-09T10:00:00.000000Z",
"updated_at": "2026-04-09T10:00:00.000000Z"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan data",
"data": [
{
"id": 1,
"nik": "3171010101010001",
"nama_lengkap": "Budi Santoso"
},
{
"id": 2,
"nik": "3171010101010002",
"nama_lengkap": "Siti Aisyah"
}
]
}
Example response (422):
{
"status": false,
"errors": {
"nik": [
"The nik field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan (Enhanced)
requires authentication
API untuk menampilkan daftar data karyawan dengan pagination, filtering, sorting, dan date range.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-01T00:00:00.000Z\",
\"dateEnd\": \"2026-04-10T23:59:59.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-01T00:00:00.000Z",
"dateEnd": "2026-04-10T23:59:59.000Z"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 100,
"lastPage": 10
},
"data": [
{
"id": 1,
"nik": "3171010101010001",
"namaLengkap": "Budi Santoso",
"namaInisial": "Budi",
"jenisKaryawan": "staff",
"tempatLahir": "Jakarta",
"tanggalLahir": "1995-01-15",
"noKtp": "3171010101010001",
"noSim": "SIM123456",
"expSim": "2027-01-15",
"noSio": "SIO123456",
"expSio": "2027-01-15",
"noBpjs": "BPJS0001",
"noJamsostek": "JSTK0001",
"noNpwp": "NPWP0001",
"namaFaskes": "RS Sejahtera",
"jenisKelamin": "laki-laki",
"agama": "Islam",
"statusPernikahan": "Menikah",
"kebangsaan": "Indonesia",
"suku": "Jawa",
"alamatKtp": "Jl. Melati No. 10, Jakarta",
"alamat": "Jl. Melati No. 10, Jakarta",
"teleponRumah": "021555111",
"noHp": "081234567890",
"email": "budi.santoso@mail.com",
"noOdner": "ODN001",
"golongan": "G1",
"kelompok": "Karyawan Tetap",
"bagian": "Operasional",
"namaBank": "BCA",
"noRek": "1234567890",
"anBank": "Budi Santoso",
"citaCita": "Manager",
"hobi": "Membaca",
"noKk": "1234567890123456",
"nikP1": "3171010101010002",
"nikP2": "3171010101010003",
"nikP3": "3171010101010004",
"createdAt": "2026-04-10 12:00:00",
"updatedAt": "2026-04-10 12:00:00"
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan (Enhanced)
requires authentication
API untuk menampilkan daftar data karyawan dengan pagination, filtering, sorting, dan date range.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-01T00:00:00.000Z\",
\"dateEnd\": \"2026-04-10T23:59:59.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-01T00:00:00.000Z",
"dateEnd": "2026-04-10T23:59:59.000Z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 100,
"lastPage": 10
},
"data": [
{
"id": 1,
"nik": "3171010101010001",
"namaLengkap": "Budi Santoso",
"namaInisial": "Budi",
"jenisKaryawan": "staff",
"tempatLahir": "Jakarta",
"tanggalLahir": "1995-01-15",
"noKtp": "3171010101010001",
"noSim": "SIM123456",
"expSim": "2027-01-15",
"noSio": "SIO123456",
"expSio": "2027-01-15",
"noBpjs": "BPJS0001",
"noJamsostek": "JSTK0001",
"noNpwp": "NPWP0001",
"namaFaskes": "RS Sejahtera",
"jenisKelamin": "laki-laki",
"agama": "Islam",
"statusPernikahan": "Menikah",
"kebangsaan": "Indonesia",
"suku": "Jawa",
"alamatKtp": "Jl. Melati No. 10, Jakarta",
"alamat": "Jl. Melati No. 10, Jakarta",
"teleponRumah": "021555111",
"noHp": "081234567890",
"email": "budi.santoso@mail.com",
"noOdner": "ODN001",
"golongan": "G1",
"kelompok": "Karyawan Tetap",
"bagian": "Operasional",
"namaBank": "BCA",
"noRek": "1234567890",
"anBank": "Budi Santoso",
"citaCita": "Manager",
"hobi": "Membaca",
"noKk": "1234567890123456",
"nikP1": "3171010101010002",
"nikP2": "3171010101010003",
"nikP3": "3171010101010004",
"createdAt": "2026-04-10 12:00:00",
"updatedAt": "2026-04-10 12:00:00"
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan By ID
requires authentication
API untuk menampilkan detail data karyawan berdasarkan ID.
Endpoint ini mengembalikan data lengkap karyawan beserta seluruh relasi yang terkait.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"nik": "3171010101010001",
"namaLengkap": "Budi Santoso",
"namaInisial": "Budi",
"jenisKaryawan": "staff",
"tempatLahir": "Jakarta",
"tanggalLahir": "1995-01-15",
"noKtp": "3171010101010001",
"noSim": "SIM123456",
"expSim": "2027-01-15",
"noSio": "SIO123456",
"expSio": "2027-01-15",
"noBpjs": "BPJS0001",
"noJamsostek": "JSTK0001",
"noNpwp": "NPWP0001",
"namaFaskes": "RS Sejahtera",
"jenisKelamin": "laki-laki",
"agama": "Islam",
"status_pernikahan": "Menikah",
"kebangsaan": "Indonesia",
"suku": "Jawa",
"alamatKtp": "Jl. Melati No. 10, Jakarta",
"alamat": "Jl. Melati No. 10, Jakarta",
"teleponRumah": "021555111",
"noHp": "081234567890",
"email": "budi.santoso@mail.com",
"noOdner": "ODN001",
"golongan": "G1",
"kelompok": "Karyawan Tetap",
"bagian": "Operasional",
"namaBank": "BCA",
"noRek": "1234567890",
"anBank": "Budi Santoso",
"citaCita": "Manager",
"hobi": "Membaca",
"noKk": "1234567890123456",
"nikP1": "3171010101010002",
"nikP2": "3171010101010003",
"nikP3": "3171010101010004",
"ahliwaris": [
{
"id": 1,
"id_karyawan": 1,
"id_karyawan_keluarga": 2,
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"files": [
{
"id": 1,
"id_karyawan": 1,
"jenis": "ktp",
"file": "uploads/karyawan/ktp.pdf",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"gaji": [
{
"id": 1,
"id_karyawan": 1,
"gaji_bulanan": "5000000.00",
"gaji_harian": "200000.00",
"gaji_pokok_harian": "180000.00",
"tj_jabatan": "500000.00",
"tj_keahlian": "300000.00",
"tj_transport": "150000.00",
"tj_natura_harian": "25000.00",
"tj_pengganti_lembur": "100000.00",
"insentif_harian": "50000.00",
"bonus_produksi": "250000.00",
"uang_makan": "30000.00",
"status_pph": "PPh 21",
"tanggal_berlaku": "2026-01-01",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"keahlian": [
{
"id": 1,
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Advanced",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"keluarga": [
{
"id": 1,
"id_karyawan": 1,
"hubungan": "Istri",
"nama_lengkap": "Siti Aminah",
"tempat_lahir": "Bandung",
"tanggal_lahir": "1992-05-10",
"jenis_kelamin": "Perempuan",
"pendidikan_terakhir": "S1",
"pekerjaan": "Ibu Rumah Tangga",
"penghasilan": "0.00",
"no_hp": "081111111111",
"alamat": "Jl. Melati No. 10",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"kontrak": [
{
"id": 1,
"id_karyawan": 1,
"nomor_kontrak": "KTR-001",
"tanggal_mulai": "2026-01-01",
"tanggal_akhir": "2026-12-31",
"lama_kontrak": 12,
"status": "Aktif",
"penjamin": "PT Sejahtera",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"riwayatOrganisasi": [
{
"id": 1,
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua",
"tahun_mulai": 2015,
"tahun_akhir": 2018,
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"riwayatPekerjaan": [
{
"id": 1,
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Operator",
"deskripsi_pekerjaan": "Mengoperasikan mesin produksi",
"tanggal_mulai": "2018-01-01",
"tanggal_selesai": "2020-12-31",
"lokasi": "Jakarta",
"alasan_berhenti": "Kontrak selesai",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"riwayatPelatihanSertifikasi": [
{
"id": 1,
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Pelatihan K3",
"kategori": "Sertifikasi",
"tahun": 2024,
"file": "uploads/sertifikat/k3.pdf",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"riwayatPendidikan": [
{
"id": 1,
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": 2013,
"tingkat": "SMA",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"status": [
{
"id": 1,
"id_karyawan": 1,
"tanggal": "2026-04-11",
"keterangan": "Masuk kerja",
"status": "Aktif",
"created_at": "2026-04-11T10:00:00.000000Z",
"updated_at": "2026-04-11T10:00:00.000000Z",
"deleted_at": null
}
],
"strukturOrganisasi": {
"id": 1,
"id_karyawan": 1,
"id_struktur_org_atasan": null,
"level_posisi": "Staff",
"level_manajerial": "Non Manager",
"id_jabatan": 2,
"id_struktur_org_penilai_1": null,
"id_struktur_org_penilai_2": null,
"id_struktur_org_penilai_3": null,
"jabatan": {
"id": 2,
"nama_jabatan": "Staff Produksi"
},
"atasan": null,
"penilai1": null,
"penilai2": null,
"penilai3": null
}
}
}
Example response (404):
{
"status": false,
"message": "Karyawan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan
requires authentication
API untuk memperbarui data karyawan berdasarkan ID.
Semua field bersifat required kecuali no_odner.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nik\": \"3171010101010001\",
\"nama_lengkap\": \"Budi Santoso\",
\"nama_inisial\": \"Budi\",
\"jenis_karyawan\": \"staff\",
\"tempat_lahir\": \"Jakarta\",
\"tanggal_lahir\": \"1995-01-15\",
\"no_ktp\": \"3171010101010001\",
\"no_sim\": \"SIM123456\",
\"exp_sim\": \"2027-01-15\",
\"no_sio\": \"SIO123456\",
\"exp_sio\": \"2027-01-15\",
\"no_bpjs\": \"BPJS0001\",
\"no_jamsostek\": \"JSTK0001\",
\"no_npwp\": \"NPWP0001\",
\"nama_faskes\": \"RS Sejahtera\",
\"jenis_kelamin\": \"laki-laki\",
\"agama\": \"Islam\",
\"status_pernikahan\": \"Menikah\",
\"kebangsaan\": \"Indonesia\",
\"suku\": \"Jawa\",
\"alamat_ktp\": \"Jl. Melati No. 10, Jakarta\",
\"alamat\": \"Jl. Melati No. 10, Jakarta\",
\"telepon_rumah\": \"021555111\",
\"no_hp\": \"081234567890\",
\"email\": \"budi.santoso@mail.com\",
\"golongan\": \"G1\",
\"nama_bank\": \"BCA\",
\"no_rek\": \"1234567890\",
\"an_bank\": \"Budi Santoso\",
\"cita_cita\": \"Manager\",
\"hobi\": \"Membaca\",
\"no_kk\": \"1234567890123456\",
\"gaji_jamsostek\": \"5000000.00\",
\"nilai_jamsostek\": \"5000000.00\",
\"iuran_jaminan_kematian\": \"50000.00\",
\"iuran_jaminan_keselamatan_kerja\": \"50000.00\",
\"iuran_jaminan_kesejahteraan_sosial\": \"50000.00\",
\"asuransi\": \"AXA\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nik": "3171010101010001",
"nama_lengkap": "Budi Santoso",
"nama_inisial": "Budi",
"jenis_karyawan": "staff",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1995-01-15",
"no_ktp": "3171010101010001",
"no_sim": "SIM123456",
"exp_sim": "2027-01-15",
"no_sio": "SIO123456",
"exp_sio": "2027-01-15",
"no_bpjs": "BPJS0001",
"no_jamsostek": "JSTK0001",
"no_npwp": "NPWP0001",
"nama_faskes": "RS Sejahtera",
"jenis_kelamin": "laki-laki",
"agama": "Islam",
"status_pernikahan": "Menikah",
"kebangsaan": "Indonesia",
"suku": "Jawa",
"alamat_ktp": "Jl. Melati No. 10, Jakarta",
"alamat": "Jl. Melati No. 10, Jakarta",
"telepon_rumah": "021555111",
"no_hp": "081234567890",
"email": "budi.santoso@mail.com",
"golongan": "G1",
"nama_bank": "BCA",
"no_rek": "1234567890",
"an_bank": "Budi Santoso",
"cita_cita": "Manager",
"hobi": "Membaca",
"no_kk": "1234567890123456",
"gaji_jamsostek": "5000000.00",
"nilai_jamsostek": "5000000.00",
"iuran_jaminan_kematian": "50000.00",
"iuran_jaminan_keselamatan_kerja": "50000.00",
"iuran_jaminan_kesejahteraan_sosial": "50000.00",
"asuransi": "AXA"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan updated successfully",
"data": {
"id": 1,
"nik": "3171010101010001"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan not found"
}
Example response (422):
{
"status": false,
"errors": {
"nik": [
"The nik field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan
requires authentication
API untuk menghapus data karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Keluarga
requires authentication
API untuk membuat data keluarga karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data keluarga karyawan:
- id_karyawan
- hubungan
- nama_lengkap
- tempat_lahir
- tanggal_lahir
- jenis_kelamin
- pendidikan_terakhir
- pekerjaan
- penghasilan
- no_hp
- alamat
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/keluarga" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"hubungan\": \"ayah\",
\"nama_lengkap\": \"Budi Santoso\",
\"tempat_lahir\": \"Jakarta\",
\"tanggal_lahir\": \"1970-01-01\",
\"jenis_kelamin\": \"laki-laki\",
\"pendidikan_terakhir\": \"SMA\",
\"pekerjaan\": \"Wiraswasta\",
\"penghasilan\": \"5000000\",
\"no_hp\": \"081234567890\",
\"alamat\": \"Jl. Melati No. 10, Jakarta\",
\"data\": [
{
\"id_karyawan\": 1,
\"hubungan\": \"ayah\",
\"nama_lengkap\": \"Budi Santoso\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keluarga"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1970-01-01",
"jenis_kelamin": "laki-laki",
"pendidikan_terakhir": "SMA",
"pekerjaan": "Wiraswasta",
"penghasilan": "5000000",
"no_hp": "081234567890",
"alamat": "Jl. Melati No. 10, Jakarta",
"data": [
{
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan keluarga data",
"data": {
"id": 1,
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan keluarga data",
"data": [
{
"id": 1,
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso"
},
{
"id": 2,
"id_karyawan": 1,
"hubungan": "ibu",
"nama_lengkap": "Siti Aminah"
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Keluarga (Enhanced)
requires authentication
API untuk menampilkan daftar data keluarga karyawan dengan pagination, filtering, sorting, dan date range.
Endpoint ini mendukung filter dinamis via filters dan sorting via sorts.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/keluarga/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-01T00:00:00.000Z\",
\"dateEnd\": \"2026-04-10T23:59:59.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keluarga/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-01T00:00:00.000Z",
"dateEnd": "2026-04-10T23:59:59.000Z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": 1,
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1970-01-01",
"jenis_kelamin": "laki-laki",
"pendidikan_terakhir": "SMA",
"pekerjaan": "Wiraswasta",
"penghasilan": 5000000,
"no_hp": "081234567890",
"alamat": "Jl. Melati No. 10, Jakarta",
"nama_karyawan": "Budi Santoso"
}
]
}
Example response (422):
{
"status": false,
"errors": {
"filters.0.field": [
"The selected field is invalid."
]
}
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Keluarga By ID
requires authentication
API untuk menampilkan detail data keluarga karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/keluarga/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keluarga/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1970-01-01",
"jenis_kelamin": "laki-laki",
"pendidikan_terakhir": "SMA",
"pekerjaan": "Wiraswasta",
"penghasilan": 5000000,
"no_hp": "081234567890",
"alamat": "Jl. Melati No. 10, Jakarta",
"nama_karyawan": "Budi Santoso"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan keluarga not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Keluarga
requires authentication
API untuk memperbarui data keluarga karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/keluarga/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"hubungan\": \"ayah\",
\"nama_lengkap\": \"Budi Santoso\",
\"tempat_lahir\": \"Jakarta\",
\"tanggal_lahir\": \"1970-01-01\",
\"jenis_kelamin\": \"laki-laki\",
\"pendidikan_terakhir\": \"SMA\",
\"pekerjaan\": \"Wiraswasta\",
\"penghasilan\": \"5000000\",
\"no_hp\": \"081234567890\",
\"alamat\": \"Jl. Melati No. 10, Jakarta\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keluarga/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"hubungan": "ayah",
"nama_lengkap": "Budi Santoso",
"tempat_lahir": "Jakarta",
"tanggal_lahir": "1970-01-01",
"jenis_kelamin": "laki-laki",
"pendidikan_terakhir": "SMA",
"pekerjaan": "Wiraswasta",
"penghasilan": "5000000",
"no_hp": "081234567890",
"alamat": "Jl. Melati No. 10, Jakarta"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan keluarga updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan keluarga not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Keluarga
requires authentication
API untuk menghapus data keluarga karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/keluarga/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keluarga/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Keluarga deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Keluarga not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Gaji
requires authentication
API untuk membuat data gaji karyawan baru.
Endpoint ini mendukung:
- Single int
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data gaji karyawan:
- id_karyawan
- gaji_bulanan
- gaji_harian
- gaji_pokok_harian
- tj_jabatan
- tj_keahlian
- tj_transport
- tj_natura_harian
- tj_pengganti_lembur
- insentif_harian
- bonus_produksi
- uang_makan
- status_pph
- tanggal_berlaku
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/gaji" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"gaji_bulanan\": \"5000000\",
\"gaji_harian\": \"200000\",
\"gaji_pokok_harian\": \"150000\",
\"tj_jabatan\": \"500000\",
\"tj_keahlian\": \"250000\",
\"tj_transport\": \"100000\",
\"tj_natura_harian\": \"50000\",
\"tj_pengganti_lembur\": \"75000\",
\"insentif_harian\": \"60000\",
\"bonus_produksi\": \"300000\",
\"uang_makan\": \"40000\",
\"status_pph\": \"pph21\",
\"tanggal_berlaku\": \"2026-04-01\",
\"data\": [
{
\"id_karyawan\": 1,
\"gaji_bulanan\": 5000000
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/gaji"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"gaji_bulanan": "5000000",
"gaji_harian": "200000",
"gaji_pokok_harian": "150000",
"tj_jabatan": "500000",
"tj_keahlian": "250000",
"tj_transport": "100000",
"tj_natura_harian": "50000",
"tj_pengganti_lembur": "75000",
"insentif_harian": "60000",
"bonus_produksi": "300000",
"uang_makan": "40000",
"status_pph": "pph21",
"tanggal_berlaku": "2026-04-01",
"data": [
{
"id_karyawan": 1,
"gaji_bulanan": 5000000
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Gaji data",
"data": {
"id": 1,
"id_karyawan": 1,
"gaji_bulanan": 5000000,
"status_pph": "pph21"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Gaji data",
"data": [
{
"id": 1,
"id_karyawan": 1
},
{
"id": 2,
"id_karyawan": 2
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Gaji By ID
requires authentication
API untuk menampilkan detail data gaji karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/gaji/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/gaji/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"gaji_bulanan": 5000000,
"gaji_harian": 200000,
"gaji_pokok_harian": 150000,
"tj_jabatan": 500000,
"tj_keahlian": 250000,
"tj_transport": 100000,
"tj_natura_harian": 50000,
"tj_pengganti_lembur": 75000,
"insentif_harian": 60000,
"bonus_produksi": 300000,
"uang_makan": 40000,
"status_pph": "pph21",
"tanggal_berlaku": "2026-04-01"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Gaji not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Gaji
requires authentication
API untuk menampilkan daftar data gaji karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/gaji/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/gaji/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"gaji_bulanan": 5000000,
"gaji_harian": 200000,
"gaji_pokok_harian": 150000,
"tj_jabatan": 500000,
"tj_keahlian": 250000,
"tj_transport": 100000,
"tj_natura_harian": 50000,
"tj_pengganti_lembur": 75000,
"insentif_harian": 60000,
"bonus_produksi": 300000,
"uang_makan": 40000,
"status_pph": "pph21",
"tanggal_berlaku": "2026-04-01"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Gaji
requires authentication
API untuk memperbarui data gaji karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/gaji/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"gaji_bulanan\": \"5000000\",
\"gaji_harian\": \"200000\",
\"gaji_pokok_harian\": \"150000\",
\"tj_jabatan\": \"500000\",
\"tj_keahlian\": \"250000\",
\"tj_transport\": \"100000\",
\"tj_natura_harian\": \"50000\",
\"tj_pengganti_lembur\": \"75000\",
\"insentif_harian\": \"60000\",
\"bonus_produksi\": \"300000\",
\"uang_makan\": \"40000\",
\"status_pph\": \"ya\",
\"tanggal_berlaku\": \"2026-04-01\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/gaji/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"gaji_bulanan": "5000000",
"gaji_harian": "200000",
"gaji_pokok_harian": "150000",
"tj_jabatan": "500000",
"tj_keahlian": "250000",
"tj_transport": "100000",
"tj_natura_harian": "50000",
"tj_pengganti_lembur": "75000",
"insentif_harian": "60000",
"bonus_produksi": "300000",
"uang_makan": "40000",
"status_pph": "ya",
"tanggal_berlaku": "2026-04-01"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan gaji updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Gaji not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Gaji
requires authentication
API untuk menghapus data gaji karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/gaji/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/gaji/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Gaji deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Gaji not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Riwayat Pekerjaan
requires authentication
API untuk membuat data riwayat pekerjaan karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data riwayat pekerjaan:
- id_karyawan
- nama_perusahaan
- posisi
- deskripsi_pekerjaan
- tanggal_mulai
- tanggal_selesai
- lokasi
- alasan_berhenti
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_perusahaan\": \"PT Maju Jaya\",
\"posisi\": \"Staff Administrasi\",
\"deskripsi_pekerjaan\": \"Mengelola administrasi harian\",
\"tanggal_mulai\": \"2020-01-01\",
\"tanggal_selesai\": \"2023-12-31\",
\"lokasi\": \"Jakarta\",
\"alasan_berhenti\": \"Kontrak selesai\",
\"data\": [
{
\"id_karyawan\": 1,
\"nama_perusahaan\": \"PT Maju Jaya\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Staff Administrasi",
"deskripsi_pekerjaan": "Mengelola administrasi harian",
"tanggal_mulai": "2020-01-01",
"tanggal_selesai": "2023-12-31",
"lokasi": "Jakarta",
"alasan_berhenti": "Kontrak selesai",
"data": [
{
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Pekerjaan data",
"data": {
"id": 1,
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Staff Administrasi"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Pekerjaan data",
"data": [
{
"id": 1,
"id_karyawan": 1
},
{
"id": 2,
"id_karyawan": 1
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Riwayat Pekerjaan By ID
requires authentication
API untuk menampilkan detail riwayat pekerjaan karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Staff Administrasi",
"deskripsi_pekerjaan": "Mengelola administrasi harian",
"tanggal_mulai": "2020-01-01",
"tanggal_selesai": "2023-12-31",
"lokasi": "Jakarta",
"alasan_berhenti": "Kontrak selesai"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pekerjaan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Riwayat Pekerjaan
requires authentication
API untuk menampilkan daftar riwayat pekerjaan karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Staff Administrasi",
"deskripsi_pekerjaan": "Mengelola administrasi harian",
"tanggal_mulai": "2020-01-01",
"tanggal_selesai": "2023-12-31",
"lokasi": "Jakarta",
"alasan_berhenti": "Kontrak selesai"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Riwayat Pekerjaan
requires authentication
API untuk memperbarui data riwayat pekerjaan karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_perusahaan\": \"PT Maju Jaya\",
\"posisi\": \"Staff Administrasi\",
\"deskripsi_pekerjaan\": \"Mengelola administrasi harian\",
\"tanggal_mulai\": \"2020-01-01\",
\"tanggal_selesai\": \"2023-12-31\",
\"lokasi\": \"Jakarta\",
\"alasan_berhenti\": \"Kontrak selesai\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_perusahaan": "PT Maju Jaya",
"posisi": "Staff Administrasi",
"deskripsi_pekerjaan": "Mengelola administrasi harian",
"tanggal_mulai": "2020-01-01",
"tanggal_selesai": "2023-12-31",
"lokasi": "Jakarta",
"alasan_berhenti": "Kontrak selesai"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan riwayat pekerjaan updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pekerjaan not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Riwayat Pekerjaan
requires authentication
API untuk menghapus data riwayat pekerjaan karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpekerjaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Riwayat Pekerjaan deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pekerjaan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Riwayat Pendidikan
requires authentication
API untuk membuat data riwayat pendidikan karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data riwayat pendidikan:
- id_karyawan
- nama_sekolah
- lokasi
- tahun_lulus
- tingkat
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_sekolah\": \"SMA Negeri 1 Jakarta\",
\"lokasi\": \"Jakarta\",
\"tahun_lulus\": \"2012\",
\"tingkat\": \"SMA\",
\"data\": [
{
\"id_karyawan\": 1,
\"nama_sekolah\": \"SMA Negeri 1 Jakarta\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": "2012",
"tingkat": "SMA",
"data": [
{
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Pendidikan data",
"data": {
"id": 1,
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": "2012",
"tingkat": "SMA"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Pendidikan data",
"data": [
{
"id": 1,
"id_karyawan": 1
},
{
"id": 2,
"id_karyawan": 1
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Riwayat Pendidikan By ID
requires authentication
API untuk menampilkan detail riwayat pendidikan karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": "2012",
"tingkat": "SMA"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pendidikan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Riwayat Pendidikan
requires authentication
API untuk menampilkan daftar riwayat pendidikan karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": "2012",
"tingkat": "SMA"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Riwayat Pendidikan
requires authentication
API untuk memperbarui data riwayat pendidikan karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_sekolah\": \"SMA Negeri 1 Jakarta\",
\"lokasi\": \"Jakarta\",
\"tahun_lulus\": 2012,
\"tingkat\": \"SMA\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_sekolah": "SMA Negeri 1 Jakarta",
"lokasi": "Jakarta",
"tahun_lulus": 2012,
"tingkat": "SMA"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan riwayat pendidikan updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pendidikan not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Riwayat Pendidikan
requires authentication
API untuk menghapus data riwayat pendidikan karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpendidikan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Riwayat Pendidikan deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pendidikan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Keahlian
requires authentication
API untuk membuat data keahlian karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data keahlian:
- id_karyawan
- keahlian
- keterangan
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/keahlian" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"keahlian\": \"Microsoft Excel\",
\"keterangan\": \"Mahir menggunakan pivot table\",
\"data\": [
{
\"id_karyawan\": 1,
\"keahlian\": \"Microsoft Excel\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keahlian"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Mahir menggunakan pivot table",
"data": [
{
"id_karyawan": 1,
"keahlian": "Microsoft Excel"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Keahlian data",
"data": {
"id": 1,
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Mahir menggunakan pivot table"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Keahlian data",
"data": [
{
"id": 1,
"id_karyawan": 1
},
{
"id": 2,
"id_karyawan": 1
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Keahlian By ID
requires authentication
API untuk menampilkan detail data keahlian karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/keahlian/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keahlian/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Mahir menggunakan pivot table"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Keahlian not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Keahlian
requires authentication
API untuk menampilkan daftar data keahlian karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/keahlian/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keahlian/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Mahir menggunakan pivot table"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Keahlian
requires authentication
API untuk memperbarui data keahlian karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/keahlian/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"keahlian\": \"Microsoft Excel\",
\"keterangan\": \"Mahir menggunakan pivot table\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keahlian/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"keahlian": "Microsoft Excel",
"keterangan": "Mahir menggunakan pivot table"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan keahlian updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Keahlian not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Keahlian
requires authentication
API untuk menghapus data keahlian karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/keahlian/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/keahlian/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Keahlian deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Keahlian not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Ahliwaris
requires authentication
API untuk membuat data ahli waris karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data ahli waris:
- id_karyawan
- id_karyawan_keluarga
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/ahliwaris" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"id_karyawan_keluarga\": 1,
\"data\": [
{
\"id_karyawan\": 1,
\"id_karyawan_keluarga\": 1
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/ahliwaris"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"id_karyawan_keluarga": 1,
"data": [
{
"id_karyawan": 1,
"id_karyawan_keluarga": 1
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Ahliwaris data",
"data": {
"id": 1,
"id_karyawan": 1,
"id_karyawan_keluarga": 1
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Ahliwaris data",
"data": [
{
"id": 1,
"id_karyawan": 1,
"id_karyawan_keluarga": 1
},
{
"id": 2,
"id_karyawan": 1,
"id_karyawan_keluarga": 2
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Ahliwaris By ID
requires authentication
API untuk menampilkan detail data ahli waris karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/ahliwaris/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/ahliwaris/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nama_karyawan": "Budi Santoso",
"id_karyawan_keluarga": 2,
"hubungan": "anak",
"nama_keluarga": "Andi Santoso"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Ahliwaris not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Ahliwaris
requires authentication
API untuk menampilkan daftar ahli waris karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan:
- id_karyawan
- id_karyawan_keluarga
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/ahliwaris/search?id_karyawan=1&id_karyawan_keluarga=2" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/ahliwaris/search"
);
const params = {
"id_karyawan": "1",
"id_karyawan_keluarga": "2",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"nama_karyawan": "Budi Santoso",
"id_karyawan_keluarga": 2,
"hubungan": "anak",
"nama_keluarga": "Andi Santoso"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Ahliwaris
requires authentication
API untuk memperbarui data ahli waris karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/ahliwaris/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"id_karyawan_keluarga\": 2
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/ahliwaris/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"id_karyawan_keluarga": 2
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan ahliwaris updated successfully",
"data": {
"id": 1,
"id_karyawan": 1,
"id_karyawan_keluarga": 2
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Ahliwaris not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Ahliwaris
requires authentication
API untuk menghapus data ahli waris karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/ahliwaris/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/ahliwaris/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Ahliwaris deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Ahliwaris not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan File
requires authentication
API untuk membuat data file karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data file karyawan:
- id_karyawan
- jenis
- file
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/file" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"jenis\": \"ktp\",
\"file\": \"ktp_budi.pdf\",
\"data\": [
{
\"id_karyawan\": 1,
\"jenis\": \"ktp\",
\"file\": \"ktp_budi.pdf\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/file"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf",
"data": [
{
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan File data",
"data": {
"id": 1,
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan File data",
"data": [
{
"id": 1,
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf"
}
]
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan File By ID
requires authentication
API untuk menampilkan detail file karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/file/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/file/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan File not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan File
requires authentication
API untuk menampilkan daftar file karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/file/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/file/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"jenis": "ktp",
"file": "ktp_budi.pdf"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan File
requires authentication
API untuk memperbarui data file karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/file/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"jenis\": \"ktp\",
\"file\": \"ktp_budi.pdf\",
\"id_karyawan\": 1
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/file/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"jenis": "ktp",
"file": "ktp_budi.pdf",
"id_karyawan": 1
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan file updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan File not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan File
requires authentication
API untuk menghapus data file karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/file/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/file/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan File deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan File not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Riwayat Pelatihan Sertifikasi
requires authentication
API untuk membuat data riwayat pelatihan atau sertifikasi karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data riwayat pelatihan/sertifikasi:
- id_karyawan
- lembaga
- nama_kegiatan
- kategori
- tahun
- file
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"lembaga\": \"BNSP\",
\"nama_kegiatan\": \"Sertifikasi Operator\",
\"kategori\": \"pelatihan\",
\"tahun\": \"2026\",
\"file\": \"sertifikat_budi.pdf\",
\"data\": [
{
\"id_karyawan\": 1,
\"lembaga\": \"BNSP\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Sertifikasi Operator",
"kategori": "pelatihan",
"tahun": "2026",
"file": "sertifikat_budi.pdf",
"data": [
{
"id_karyawan": 1,
"lembaga": "BNSP"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Pelatihan Sertifikasi data",
"data": {
"id": 1,
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Sertifikasi Operator",
"kategori": "sertifikasi",
"tahun": "2026",
"file": "sertifikat_budi.pdf"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Riwayat Pelatihan Sertifikasi By ID
requires authentication
API untuk menampilkan detail riwayat pelatihan/sertifikasi karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Sertifikasi Operator",
"kategori": "sertifikasi",
"tahun": "2026",
"file": "sertifikat_budi.pdf"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pelatihan Sertifikasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Riwayat Pelatihan Sertifikasi
requires authentication
API untuk menampilkan daftar riwayat pelatihan/sertifikasi karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Sertifikasi Operator",
"kategori": "sertifikasi",
"tahun": "2026",
"file": "sertifikat_budi.pdf"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Riwayat Pelatihan Sertifikasi
requires authentication
API untuk memperbarui data riwayat pelatihan/sertifikasi karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"lembaga\": \"BNSP\",
\"nama_kegiatan\": \"Sertifikasi Operator\",
\"kategori\": \"sertifikasi\",
\"tahun\": \"2026\",
\"file\": \"sertifikat_budi.pdf\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"lembaga": "BNSP",
"nama_kegiatan": "Sertifikasi Operator",
"kategori": "sertifikasi",
"tahun": "2026",
"file": "sertifikat_budi.pdf"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan riwayat pelatihan sertifikasi updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pelatihan Sertifikasi not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Riwayat Pelatihan Sertifikasi
requires authentication
API untuk menghapus data riwayat pelatihan/sertifikasi karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatpelatihansertifikasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Riwayat Pelatihan Sertifikasi deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Pelatihan Sertifikasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Status
requires authentication
API untuk membuat data status karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data status karyawan:
- id_karyawan
- tanggal
- keterangan
- status
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/status" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"tanggal\": \"2026-04-09\",
\"keterangan\": \"Promosi jabatan\",
\"status\": \"Aktif\",
\"data\": [
{
\"id_karyawan\": 1,
\"tanggal\": \"2026-04-09\",
\"status\": \"Aktif\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/status"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"tanggal": "2026-04-09",
"keterangan": "Promosi jabatan",
"status": "Aktif",
"data": [
{
"id_karyawan": 1,
"tanggal": "2026-04-09",
"status": "Aktif"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Status data",
"data": {
"id": 1,
"id_karyawan": 1,
"tanggal": "2026-04-09",
"keterangan": "Promosi jabatan",
"status": "Aktif"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Status By ID
requires authentication
API untuk menampilkan detail status karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/status/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/status/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"tanggal": "2026-04-09",
"keterangan": "Promosi jabatan",
"status": "Aktif"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Status not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Status
requires authentication
API untuk menampilkan daftar status karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/status/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/status/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"tanggal": "2026-04-09",
"keterangan": "Promosi jabatan",
"status": "Aktif"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Status
requires authentication
API untuk memperbarui data status karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/status/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"tanggal\": \"2026-04-09\",
\"keterangan\": \"Promosi jabatan\",
\"status\": \"Aktif\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/status/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"tanggal": "2026-04-09",
"keterangan": "Promosi jabatan",
"status": "Aktif"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan status updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Status not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Status
requires authentication
API untuk menghapus data status karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/status/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/status/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Status deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Status not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Kontrak
requires authentication
API untuk membuat data kontrak karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data kontrak karyawan:
- id_karyawan
- nomor_kontrak
- tanggal_mulai
- tanggal_akhir
- lama_kontrak
- status
- penjamin
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/kontrak" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nomor_kontrak\": \"KON\\/001\\/2026\",
\"tanggal_mulai\": \"2026-04-01\",
\"tanggal_akhir\": \"2027-04-01\",
\"lama_kontrak\": 12,
\"status\": \"aktif\",
\"penjamin\": \"Budi Santoso\",
\"data\": [
{
\"id_karyawan\": 1,
\"nomor_kontrak\": \"KON\\/001\\/2026\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/kontrak"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nomor_kontrak": "KON\/001\/2026",
"tanggal_mulai": "2026-04-01",
"tanggal_akhir": "2027-04-01",
"lama_kontrak": 12,
"status": "aktif",
"penjamin": "Budi Santoso",
"data": [
{
"id_karyawan": 1,
"nomor_kontrak": "KON\/001\/2026"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Kontrak data",
"data": {
"id": 1,
"id_karyawan": 1,
"nomor_kontrak": "KON/001/2026",
"status": "aktif"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Kontrak By ID
requires authentication
API untuk menampilkan detail kontrak karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/kontrak/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/kontrak/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nomor_kontrak": "KON/001/2026",
"tanggal_mulai": "2026-04-01",
"tanggal_akhir": "2027-04-01",
"lama_kontrak": 12,
"status": "aktif",
"penjamin": "Budi Santoso"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Kontrak not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Kontrak
requires authentication
API untuk menampilkan daftar kontrak karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/kontrak/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/kontrak/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"nomor_kontrak": "KON/001/2026",
"tanggal_mulai": "2026-04-01",
"tanggal_akhir": "2027-04-01",
"lama_kontrak": 12,
"status": "aktif",
"penjamin": "Budi Santoso"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Kontrak
requires authentication
API untuk memperbarui data kontrak karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/kontrak/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"tanggal_mulai\": \"2026-04-01\",
\"tanggal_akhir\": \"2027-04-01\",
\"lama_kontrak\": 12,
\"status\": \"aktif\",
\"penjamin\": \"Budi Santoso\",
\"pakta_integritas_pegawai\": false,
\"peraturan_ketentuan_perusahaan\": false,
\"surat_perjanjian_kerja\": true,
\"nomor_kontrak\": \"KON\\/001\\/2026\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/kontrak/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"tanggal_mulai": "2026-04-01",
"tanggal_akhir": "2027-04-01",
"lama_kontrak": 12,
"status": "aktif",
"penjamin": "Budi Santoso",
"pakta_integritas_pegawai": false,
"peraturan_ketentuan_perusahaan": false,
"surat_perjanjian_kerja": true,
"nomor_kontrak": "KON\/001\/2026"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan kontrak updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Kontrak not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Kontrak
requires authentication
API untuk menghapus data kontrak karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/kontrak/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/kontrak/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Kontrak deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Kontrak not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Karyawan Riwayat Organisasi
requires authentication
API untuk membuat data riwayat organisasi karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data riwayat organisasi:
- id_karyawan
- nama_organisasi
- jabatan
- tahun_mulai
- tahun_akhir
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_organisasi\": \"Karang Taruna\",
\"jabatan\": \"Ketua\",
\"tahun_mulai\": \"2020\",
\"tahun_akhir\": \"2023\",
\"data\": [
{
\"id_karyawan\": 1,
\"nama_organisasi\": \"Karang Taruna\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua",
"tahun_mulai": "2020",
"tahun_akhir": "2023",
"data": [
{
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Karyawan Riwayat Organisasi data",
"data": {
"id": 1,
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Karyawan Riwayat Organisasi By ID
requires authentication
API untuk menampilkan detail riwayat organisasi karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua",
"tahun_mulai": "2020-01-01",
"tahun_akhir": "2023-12-31"
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Organisasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Karyawan Riwayat Organisasi
requires authentication
API untuk menampilkan daftar riwayat organisasi karyawan dengan pagination.
Endpoint ini mendukung filter berdasarkan id_karyawan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/search?id_karyawan=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/search"
);
const params = {
"id_karyawan": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua",
"tahun_mulai": "2020-01-01",
"tahun_akhir": "2023-12-31"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Karyawan Riwayat Organisasi
requires authentication
API untuk memperbarui data riwayat organisasi karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"nama_organisasi\": \"Karang Taruna\",
\"jabatan\": \"Ketua\",
\"tahun_mulai\": \"2020-01-01\",
\"tahun_akhir\": \"2023-12-31\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"nama_organisasi": "Karang Taruna",
"jabatan": "Ketua",
"tahun_mulai": "2020-01-01",
"tahun_akhir": "2023-12-31"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan riwayat organisasi updated successfully",
"data": {
"id": 1,
"id_karyawan": 1
}
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Organisasi not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Karyawan Riwayat Organisasi
requires authentication
API untuk menghapus data riwayat organisasi karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/karyawan/riwayatorganisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Karyawan Riwayat Organisasi deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Karyawan Riwayat Organisasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Klasifikasi Jabatan
Get List Klasifikasi Jabatan
requires authentication
Mengambil daftar data klasifikasi per jabatan dengan fitur filter, sorting, dan pagination.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/list-klasifikasi-pelamar" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
{
\"field\": \"jabatan_id\",
\"operator\": \"eq\",
\"value\": 1
}
],
\"sorts\": [
{
\"field\": \"id\",
\"direction\": \"desc\"
}
],
\"dateStart\": \"2026-04-01\",
\"dateEnd\": \"2026-04-30\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/list-klasifikasi-pelamar"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
{
"field": "jabatan_id",
"operator": "eq",
"value": 1
}
],
"sorts": [
{
"field": "id",
"direction": "desc"
}
],
"dateStart": "2026-04-01",
"dateEnd": "2026-04-30"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": 1,
"jabatan_id": 1,
"usia": 30,
"min_pendidikan": "S1",
"jurusan": "Teknik Informatika",
"pengalaman": "2 tahun",
"min_wpt": 80,
"hitungan": 90,
"hitungan_supir": null,
"disc": "D",
"papikostik": "Baik",
"kraepelin": "Cukup",
"wartegg": "Baik",
"dam": "Stabil"
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Klasifikasi Jabatan by Jabatan ID
requires authentication
Mengambil data klasifikasi jabatan berdasarkan jabatan_id
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/klasifikasi-jabatan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/klasifikasi-jabatan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": [
{
"id": 1,
"jabatan_id": 1,
"usia": 30,
"min_pendidikan": "S1",
"jurusan": "Teknik Informatika",
"pengalaman": "2 tahun",
"min_wpt": 80,
"hitungan": 90,
"hitungan_supir": null,
"disc": "D",
"papikostik": "Baik",
"kraepelin": "Cukup",
"wartegg": "Baik",
"dam": "Stabil"
}
]
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Klasifikasi Jabatan
requires authentication
Menambahkan data klasifikasi per jabatan baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/klasifikasi-jabatan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"jabatan_id\": 1,
\"usia\": 30,
\"min_pendidikan\": \"S1\",
\"jurusan\": \"Teknik Informatika\",
\"pengalaman\": \"2 tahun\",
\"min_wpt\": 80,
\"hitungan\": 90,
\"hitungan_supir\": 85,
\"disc\": \"D\",
\"papikostik\": \"Baik\",
\"kraepelin\": \"Cukup\",
\"wartegg\": \"Baik\",
\"dam\": \"Stabil\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/klasifikasi-jabatan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"jabatan_id": 1,
"usia": 30,
"min_pendidikan": "S1",
"jurusan": "Teknik Informatika",
"pengalaman": "2 tahun",
"min_wpt": 80,
"hitungan": 90,
"hitungan_supir": 85,
"disc": "D",
"papikostik": "Baik",
"kraepelin": "Cukup",
"wartegg": "Baik",
"dam": "Stabil"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Data berhasil disimpan",
"data": {
"id": 1,
"jabatan_id": 1,
"usia": 30,
"min_pendidikan": "S1",
"jurusan": "Teknik Informatika",
"pengalaman": "2 tahun",
"min_wpt": 80,
"hitungan": 90,
"hitungan_supir": 85,
"disc": "D",
"papikostik": "Baik",
"kraepelin": "Cukup",
"wartegg": "Baik",
"dam": "Stabil",
"created_at": "2026-04-17 10:00:00"
}
}
Example response (422):
{
"message": "The given data was invalid.",
"errors": {}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Letter Management
Create New Letter
requires authentication
API untuk membuat surat baru berdasarkan type surat.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Base input untuk semua type:
- sender_id
- recipient_id
- approver_id
- subject
- description
Input tambahan per type:
- SP: level, penalty_amount, reason
- ST: level, penalty_amount, reason
- SPT: tidak ada input tambahan
- SPK: start_date, end_date, job_title, job_description, work_location
- Mutasi/Promosi/Demosi: effective_date, new_position, new_department, salary_change, reason
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/letters/SPK" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"sender_id\": 1,
\"recipient_id\": 2,
\"approver_id\": 3,
\"subject\": \"Surat Peringatan Pertama\",
\"description\": \"Pelanggaran disiplin kerja\",
\"level\": \"SP1\",
\"penalty_amount\": \"100000\",
\"reason\": \"Pelanggaran disiplin kerja\",
\"start_date\": \"2026-04-01\",
\"end_date\": \"2026-04-30\",
\"job_title\": \"Staff Lapangan\",
\"job_description\": \"Melaksanakan inspeksi lapangan\",
\"work_location\": \"Jakarta\",
\"effective_date\": \"2026-04-15\",
\"new_position\": \"Supervisor Operasional\",
\"new_department\": \"Operasional\",
\"salary_change\": 500000
}"
const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"sender_id": 1,
"recipient_id": 2,
"approver_id": 3,
"subject": "Surat Peringatan Pertama",
"description": "Pelanggaran disiplin kerja",
"level": "SP1",
"penalty_amount": "100000",
"reason": "Pelanggaran disiplin kerja",
"start_date": "2026-04-01",
"end_date": "2026-04-30",
"job_title": "Staff Lapangan",
"job_description": "Melaksanakan inspeksi lapangan",
"work_location": "Jakarta",
"effective_date": "2026-04-15",
"new_position": "Supervisor Operasional",
"new_department": "Operasional",
"salary_change": 500000
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Letter",
"data": {
"id": 1,
"number": "0001/SP/HRD/IV/2026",
"type": "SP",
"subject": "Surat Peringatan Pertama",
"description": "Pelanggaran disiplin kerja",
"status": "draft",
"created_at": "2026-04-01T10:00:00.000000Z",
"updated_at": "2026-04-01T10:00:00.000000Z"
}
}
Example response (422):
{
"status": false,
"errors": {
"sender_id": [
"The sender id field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Letters
requires authentication
API untuk mengambil daftar surat berdasarkan type.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Response akan menyesuaikan field masing-masing type.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/letters/SPK" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"type": "SP",
"data": [
{
"id": 1,
"number": "0001/SP/HRD/IV/2026",
"type": "SP",
"subject": "Surat Peringatan Pertama",
"status": "draft",
"level": "SP1",
"penaltyAmount": 100000,
"reason": "Terlambat masuk kerja",
"senderName": "Andi",
"recipientName": "Budi",
"approverName": "Siti"
}
]
}
Example response (404):
{
"status": false,
"message": "Letter type not found."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show Letter by ID
requires authentication
API untuk mengambil detail surat berdasarkan type dan id.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/letters/SPK/32" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK/32"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"number": "0001/SPK/HRD/IV/2026",
"type": "SPK",
"subject": "Surat Perintah Kerja",
"description": "Penugasan kerja lapangan",
"status": "draft",
"startDate": "2026-04-01",
"endDate": "2026-04-30",
"senderId": 1,
"senderName": "Andi",
"recipientId": 2,
"recipientName": "Budi",
"approverId": 3,
"approverName": "Siti"
}
}
Example response (404):
{
"status": false,
"message": "Letter not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Letter
requires authentication
API untuk memperbarui data surat berdasarkan type dan id.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Base input untuk update:
- sender_id
- recipient_id
- approver_id
- subject
- description
Input tambahan per type mengikuti aturan create letter.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/letters/SPK/32" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"sender_id\": 3,
\"recipient_id\": 4,
\"approver_id\": 5,
\"subject\": \"Surat Perintah Kerja Revisi\",
\"description\": \"Revisi penugasan kerja lapangan\",
\"level\": \"SP1\",
\"penalty_amount\": \"150000\",
\"reason\": \"Pelanggaran ulang\",
\"start_date\": \"2026-04-01\",
\"end_date\": \"2026-04-30\",
\"job_title\": \"Supervisor Lapangan\",
\"job_description\": \"Mengawasi pekerjaan lapangan\",
\"work_location\": \"Jakarta\",
\"effective_date\": \"2026-04-15\",
\"new_position\": \"Manager Operasional\",
\"new_department\": \"Operasional\",
\"salary_change\": 500000
}"
const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK/32"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"sender_id": 3,
"recipient_id": 4,
"approver_id": 5,
"subject": "Surat Perintah Kerja Revisi",
"description": "Revisi penugasan kerja lapangan",
"level": "SP1",
"penalty_amount": "150000",
"reason": "Pelanggaran ulang",
"start_date": "2026-04-01",
"end_date": "2026-04-30",
"job_title": "Supervisor Lapangan",
"job_description": "Mengawasi pekerjaan lapangan",
"work_location": "Jakarta",
"effective_date": "2026-04-15",
"new_position": "Manager Operasional",
"new_department": "Operasional",
"salary_change": 500000
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Letter updated successfully",
"data": {
"id": 1,
"number": "0001/SPK/HRD/IV/2026",
"type": "SPK",
"subject": "Surat Perintah Kerja Revisi",
"status": "draft"
}
}
Example response (404):
{
"status": false,
"message": "Letter not found"
}
Example response (422):
{
"status": false,
"errors": {
"start_date": [
"The start date field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Letter
requires authentication
API untuk memperbarui data surat berdasarkan type dan id.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Base input untuk update:
- sender_id
- recipient_id
- approver_id
- subject
- description
Input tambahan per type mengikuti aturan create letter.
Example request:
curl --request PATCH \
"http://10.10.1.109:8000/api/letters/SPK/32" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"sender_id\": 3,
\"recipient_id\": 4,
\"approver_id\": 5,
\"subject\": \"Surat Perintah Kerja Revisi\",
\"description\": \"Revisi penugasan kerja lapangan\",
\"level\": \"SP1\",
\"penalty_amount\": \"150000\",
\"reason\": \"Pelanggaran ulang\",
\"start_date\": \"2026-04-01\",
\"end_date\": \"2026-04-30\",
\"job_title\": \"Supervisor Lapangan\",
\"job_description\": \"Mengawasi pekerjaan lapangan\",
\"work_location\": \"Jakarta\",
\"effective_date\": \"2026-04-15\",
\"new_position\": \"Manager Operasional\",
\"new_department\": \"Operasional\",
\"salary_change\": 500000
}"
const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK/32"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"sender_id": 3,
"recipient_id": 4,
"approver_id": 5,
"subject": "Surat Perintah Kerja Revisi",
"description": "Revisi penugasan kerja lapangan",
"level": "SP1",
"penalty_amount": "150000",
"reason": "Pelanggaran ulang",
"start_date": "2026-04-01",
"end_date": "2026-04-30",
"job_title": "Supervisor Lapangan",
"job_description": "Mengawasi pekerjaan lapangan",
"work_location": "Jakarta",
"effective_date": "2026-04-15",
"new_position": "Manager Operasional",
"new_department": "Operasional",
"salary_change": 500000
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Letter updated successfully",
"data": {
"id": 1,
"number": "0001/SPK/HRD/IV/2026",
"type": "SPK",
"subject": "Surat Perintah Kerja Revisi",
"status": "draft"
}
}
Example response (404):
{
"status": false,
"message": "Letter not found"
}
Example response (422):
{
"status": false,
"errors": {
"start_date": [
"The start date field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Letter
requires authentication
API untuk menghapus surat berdasarkan type dan id.
Type yang didukung:
- SP
- ST
- SPT
- SPK
- Mutasi
- Promosi
- Demosi
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/letters/SPK/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Letter deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Letter not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Approval Letter
requires authentication
API untuk mengubah status approval surat menjadi pending, approved, atau rejected.
Status yang didukung:
- pending
- approved
- rejected
Jika status approved, maka:
- status surat berubah menjadi accepted/approved sesuai logic controller
- approved_at akan terisi
- untuk SPK akan dibuat approver_signature
- untuk Mutasi/Promosi/Demosi akan update data employee jika diperlukan
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/letters/SPK/1/approval" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"action\": \"approved\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/letters/SPK/1/approval"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"action": "approved"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "SPK letter is accepted",
"data": {
"id": 1,
"type": "SPK",
"status": "approved",
"approvedAt": "2026-04-01T10:00:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Letter not found"
}
Example response (422):
{
"status": false,
"errors": {
"action": [
"The action field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Lokasi Management
Store Lokasi Absensi
requires authentication
API untuk membuat data lokasi absensi baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/absensi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_perusahaan\": 1,
\"nama_lokasi\": \"Kantor Pusat\",
\"alamat\": \"Jl. Merdeka No. 10\",
\"latitude\": \"-6.200000\",
\"longitude\": \"106.816666\",
\"kode_lokasi\": \"LOC001\",
\"akun_lkpm\": \"LKPM001\",
\"kota\": \"Jakarta\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/absensi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"alamat": "Jl. Merdeka No. 10",
"latitude": "-6.200000",
"longitude": "106.816666",
"kode_lokasi": "LOC001",
"akun_lkpm": "LKPM001",
"kota": "Jakarta"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"data": {
"id": 1,
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"alamat": "Jl. Merdeka No. 10",
"latitude": "-6.200000",
"longitude": "106.816666",
"kode_lokasi": "LOC001",
"akun_lkpm": "LKPM001",
"kota": "Jakarta"
}
}
Example response (422):
{
"status": false,
"message": {
"id_perusahaan": [
"The id perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Lokasi Absensi
requires authentication
API untuk menampilkan daftar lokasi absensi dengan pagination.
Endpoint ini menampilkan data lokasi absensi beserta relasi perusahaan.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/absensi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/absensi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"nama_lokasi": "Kantor Pusat",
"alamat": "Jl. Merdeka No. 10",
"latitude": "-6.200000",
"longitude": "106.816666",
"kode_lokasi": "LOC001",
"akun_lkpm": "LKPM001",
"kota": "Jakarta"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Lokasi Absensi By ID
requires authentication
API untuk menampilkan detail lokasi absensi berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/absensi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/absensi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"nama_lokasi": "Kantor Pusat",
"alamat": "Jl. Merdeka No. 10",
"latitude": "-6.200000",
"longitude": "106.816666",
"kode_lokasi": "LOC001",
"akun_lkpm": "LKPM001",
"kota": "Jakarta"
}
}
Example response (404):
{
"status": false,
"message": "Lokasi absensi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Lokasi Absensi
requires authentication
API untuk memperbarui data lokasi absensi berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/absensi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_perusahaan\": 1,
\"nama_lokasi\": \"Kantor Pusat\",
\"alamat\": \"Jl. Merdeka No. 10\",
\"latitude\": \"-6.200000\",
\"longitude\": \"106.816666\",
\"kode_lokasi\": \"LOC001\",
\"akun_lkpm\": \"LKPM001\",
\"kota\": \"Jakarta\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/absensi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"alamat": "Jl. Merdeka No. 10",
"latitude": "-6.200000",
"longitude": "106.816666",
"kode_lokasi": "LOC001",
"akun_lkpm": "LKPM001",
"kota": "Jakarta"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Lokasi absensi updated successfully",
"data": {
"id": 1,
"id_perusahaan": 1
}
}
Example response (404):
{
"status": false,
"message": "Lokasi absensi not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_perusahaan": [
"The id perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Lokasi Absensi
requires authentication
API untuk menghapus data lokasi absensi berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/absensi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/absensi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Lokasi absensi deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Lokasi absensi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Manage Jabatan
List Master Jabatan
requires authentication
API untuk menampilkan daftar master jabatan dengan pagination.
Endpoint ini menampilkan data master jabatan.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/jabatan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"sorts\": [
{
\"field\": \"id\",
\"direction\": \"asc\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/jabatan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"sorts": [
{
"field": "id",
"direction": "asc"
}
]
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"nama_jabatan": "Staff Operasional"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"sortField": "id",
"sortDir": "asc",
"paginationOrder": "asc"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Master Jabatan
requires authentication
API untuk menampilkan daftar master jabatan dengan pagination.
Endpoint ini menampilkan data master jabatan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/jabatan/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"sorts\": [
{
\"field\": \"id\",
\"direction\": \"asc\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/jabatan/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"sorts": [
{
"field": "id",
"direction": "asc"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"nama_jabatan": "Staff Operasional"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"sortField": "id",
"sortDir": "asc",
"paginationOrder": "asc"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Master Jabatan By ID
requires authentication
API untuk menampilkan detail master jabatan berdasarkan ID.
Endpoint ini menampilkan data master jabatan.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/jabatan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/jabatan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"nama_jabatan": "Staff Operasional",
"nama_perusahaan": "PT Maju Jaya",
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
}
}
Example response (404):
{
"status": false,
"message": "Perusahaan Lokasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create New Master Jabatan
requires authentication
API untuk membuat data master jabatan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data master jabatan:
- nama_jabatan
Jika request dikirim dalam format array data, maka seluruh item akan divalidasi dan disimpan sekaligus.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/jabatan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_jabatan\": \"Staff Operasional\",
\"data\": [
{
\"nama_jabatan\": \"Staff Operasional\"
},
{
\"nama_jabatan\": \"Supervisor Produksi\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/jabatan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_jabatan": "Staff Operasional",
"data": [
{
"nama_jabatan": "Staff Operasional"
},
{
"nama_jabatan": "Supervisor Produksi"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Master Jabatan",
"data": {
"id": 1,
"nama_jabatan": "Staff Operasional",
"created_at": "2026-04-09T10:00:00.000000Z",
"updated_at": "2026-04-09T10:00:00.000000Z"
}
}
Example response (201):
{
"status": true,
"message": "Successfully created new Master Jabatan data",
"data": [
{
"id": 1,
"nama_jabatan": "Staff Operasional"
},
{
"id": 2,
"nama_jabatan": "Supervisor Produksi"
}
]
}
Example response (422):
{
"status": false,
"errors": {
"nama_jabatan": [
"The nama jabatan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Master Jabatan
requires authentication
API untuk memperbarui data master jabatan berdasarkan ID.
Endpoint ini hanya memperbarui field:
- nama_jabatan
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/jabatan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_jabatan\": \"Supervisor Produksi\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/jabatan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_jabatan": "Supervisor Produksi"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Master Jabatan updated successfully",
"data": {
"id": 1,
"nama_jabatan": "Supervisor Produksi",
"created_at": "2026-04-09T10:00:00.000000Z",
"updated_at": "2026-04-09T10:05:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "No query results for model [App\\Models\\MasterJabatan] 1"
}
Example response (422):
{
"status": false,
"errors": {
"nama_jabatan": [
"The nama jabatan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Master Jabatan
requires authentication
API untuk menghapus data master jabatan berdasarkan ID.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/jabatan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/jabatan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Master Jabatan deleted successfully"
}
Example response (404):
{
"status": false,
"message": "No query results for model [App\\Models\\MasterJabatan] 1"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Approval
Endpoint untuk mengambil data Master Approval Header dengan fitur filter, sorting, dan pagination.
Get list Master Approval Header
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-headers" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"architecto\",
\"dateEnd\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-headers"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "architecto",
"dateEnd": "architecto"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true,
"created_at": "2026-04-20T10:00:00.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Master Approval Header
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/approval-headers" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"modul\": \"WLA_ITEM\",
\"nama_aturan\": \"Approval WLA Harian\",
\"priority\": 1,
\"kondisi_json\": {
\"id_master_wla\": \"97f653ce-85f2-412e-935c-abb83c4a0959\"
},
\"is_active\": true
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-headers"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian",
"priority": 1,
"kondisi_json": {
"id_master_wla": "97f653ce-85f2-412e-935c-abb83c4a0959"
},
"is_active": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data master approval berhasil dibuat",
"data": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true,
"created_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (422):
{
"status": false,
"message": "Validation error",
"errors": {
"modul": [
"The selected modul is invalid."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Detail Master Approval Header
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true,
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Master Approval Header
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"modul\": \"WLA_ITEM\",
\"nama_aturan\": \"Approval WLA Harian\",
\"priority\": 1,
\"kondisi_json\": {
\"id_master_wla\": \"uuid\"
},
\"is_active\": true
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data master approval berhasil diupdate",
"data": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian Updated",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true,
"updated_at": "2026-04-20T10:10:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Example response (422):
{
"status": false,
"message": "Validation error",
"errors": {
"priority": [
"The priority must be at least 1."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Master Approval Header
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-headers/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data master approval berhasil dihapus"
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Approval Detail
Endpoint untuk mengambil data Master Approval Detail dengan fitur filter, sorting, dan pagination.
Get list Master Approval Detail
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-details" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"architecto\",
\"dateEnd\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-details"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "architecto",
"dateEnd": "architecto"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": "uuid",
"step_ke": 1,
"jenis_action": "approve",
"master_approval_header": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA",
"priority": 1,
"is_active": true
},
"struktur_organisasi": {
"id": "uuid"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Master Approval Detail
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/approval-details" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"header_id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",
\"id_so_approver\": \"3fa85f64-5717-4562-b3fc-2c963f66afb1\",
\"step_ke\": 1,
\"jenis_action\": \"approve\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-details"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"header_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"id_so_approver": "3fa85f64-5717-4562-b3fc-2c963f66afb1",
"step_ke": 1,
"jenis_action": "approve"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Product created successfully",
"data": {
"id": "uuid",
"step_ke": 1,
"jenis_action": "approve",
"master_approval_header": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA",
"priority": 1,
"kondisi_json": {
"id_master_wla": "uuid"
},
"is_active": true
},
"struktur_organisasi": {
"id": "uuid",
"id_karyawan": "uuid",
"id_jabatan": "uuid"
}
}
}
Example response (422):
{
"status": false,
"message": "Validation Error",
"errors": {
"header_id": [
"The header id field is required."
],
"id_so_approver": [
"The id so approver field is required."
]
}
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Detail Master Approval Detail
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": "uuid",
"step_ke": 1,
"jenis_action": "Approve",
"master_approval_header": {
"id": "uuid",
"modul": "WLA_ITEM",
"nama_aturan": "Approval WLA Harian"
},
"struktur_organisasi": {
"id": "uuid"
},
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Master Approval Detail
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"header_id\": \"uuid\",
\"id_so_approver\": \"uuid\",
\"step_ke\": 1,
\"jenis_action\": \"approve\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"header_id": "uuid",
"id_so_approver": "uuid",
"step_ke": 1,
"jenis_action": "approve"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data berhasil diupdate",
"data": {
"id": "uuid",
"step_ke": 1,
"jenis_action": "approve",
"master_approval_header": {
"id": "uuid",
"nama_aturan": "Approval WLA"
},
"struktur_organisasi": {
"id": "uuid"
}
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Example response (422):
{
"status": false,
"message": "Validation Error",
"errors": {
"step_ke": [
"The step ke must be a number."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Master Approval Header
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/approval-details/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data detail master approval berhasil dihapus"
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Bank
List Master Bank
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/masterbank" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/masterbank"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 1,
"total": 1,
"lastPage": 1
},
"data": [
{
"id": 1,
"kode_kliring": "KL001",
"rtgs": "RT001",
"nama_bank": "Bank Maju Jaya",
"kode_cabang": "CB001",
"nama_cabang": "Kantor Pusat",
"kota": "Jakarta",
"createdAt": "2026-04-14T00:00:00.000000Z",
"updatedAt": "2026-04-14T00:00:00.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Kompetensi Management
GET api/competences
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competences" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/competences
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/competences" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competences/{id}
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competences/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/competences/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/competences/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/competences/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/competences/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competences/{id}/parameters
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competences/architecto/parameters" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto/parameters"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/competences/{id}/parameters
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/competences/architecto/parameters" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"parameters\": [
{
\"jenis\": \"architecto\",
\"nama_parameter\": \"architecto\",
\"deskripsi_kompetensi\": \"architecto\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/competences/architecto/parameters"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"parameters": [
{
"jenis": "architecto",
"nama_parameter": "architecto",
"deskripsi_kompetensi": "architecto"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/parameters/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/parameters/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"jenis\": \"architecto\",
\"nama_parameter\": \"architecto\",
\"deskripsi_kompetensi\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/parameters/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"jenis": "architecto",
"nama_parameter": "architecto",
"deskripsi_kompetensi": "architecto"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/parameters/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/parameters/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/parameters/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/competences/parameters/bulk-update
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/competences/parameters/bulk-update" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"parameters\": [
{
\"id\": \"architecto\",
\"jenis\": \"architecto\",
\"nama_parameter\": \"architecto\",
\"deskripsi_kompetensi\": \"architecto\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/competences/parameters/bulk-update"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"parameters": [
{
"id": "architecto",
"jenis": "architecto",
"nama_parameter": "architecto",
"deskripsi_kompetensi": "architecto"
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/assessment-periods
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/assessment-periods" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/assessment-periods"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/assessment-periods
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/assessment-periods" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/assessment-periods"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/assessment-periods/{id}
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/assessment-periods/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/assessment-periods/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/assessment-periods/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/assessment-periods/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/assessment-periods/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/assessment-periods/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/assessment-periods/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/assessment-periods/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competency-assessments
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competency-assessments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/competency-assessments
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/competency-assessments" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": \"architecto\",
\"id_penilai\": \"architecto\",
\"id_master_kompetensi\": \"architecto\",
\"total_score\": 39,
\"status\": \"approved\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/competency-assessments"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": "architecto",
"id_penilai": "architecto",
"id_master_kompetensi": "architecto",
"total_score": 39,
"status": "approved"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competency-assessments/{id}
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competency-assessments/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessments/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/competency-assessments/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/competency-assessments/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"total_score\": 27,
\"status\": \"approved\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/competency-assessments/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"total_score": 27,
"status": "approved"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/competency-assessments/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/competency-assessments/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessments/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competency-assessment/penilai
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competency-assessment/penilai" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment/penilai"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/competency-assessment/penilaian
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/competency-assessment/penilaian" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment/penilaian"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competency-assessment/{id}/details
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competency-assessment/architecto/details" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment/architecto/details"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/competency-assessment/{id}/details
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/competency-assessment/architecto/details" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"details\": [
{
\"id_master_kompetensi_parameter\": \"architecto\",
\"nilai\": 39,
\"catatan\": \"architecto\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment/architecto/details"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"details": [
{
"id_master_kompetensi_parameter": "architecto",
"nilai": 39,
"catatan": "architecto"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PUT api/competency-assessment-details/{id}
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/competency-assessment-details/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nilai\": 27,
\"catatan\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment-details/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nilai": 27,
"catatan": "architecto"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/competency-assessment-details/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/competency-assessment-details/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-assessment-details/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/competency-periods/details
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/competency-periods/details" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/competency-periods/details"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Penomoran
Tampilkan Semua Format Penomoran
requires authentication
Endpoint ini digunakan untuk mengambil daftar semua pengaturan master penomoran dokumen/modul. Mendukung fitur pencarian dan pagination.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/master-penomoran?per_page=10" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/master-penomoran"
);
const params = {
"per_page": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buat Pengaturan Penomoran Baru
requires authentication
Endpoint ini digunakan untuk membuat format penomoran dokumen/modul baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/master-penomoran" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"kode_modul\": \"b\",
\"format\": \"{KODE}\\/HRD\\/{BLN}\\/{THN}\\/{NO}\",
\"digit_urutan\": 4,
\"periode_reset\": \"tahunan\\n* @response 201 {\\n\\\"status\\\": \\\"success\\\",\\n\\\"message\\\": \\\"Format penomoran berhasil disimpan\\\",\\n\\\"data\\\": {\\n\\\"id\\\": 1,\\n\\\"kode_modul\\\": \\\"SURAT_LEMBUR\\\",\\n\\\"format\\\": \\\"{KODE}\\/HRD\\/{BLN}\\/{THN}\\/{NO}\\\",\\n\\\"digit_urutan\\\": 4,\\n\\\"angka_terakhir_surat\\\": 0,\\n\\\"angka_terakhir_revisi\\\": 0,\\n\\\"periode_reset\\\": \\\"tahunan\\\",\\n\\\"created_at\\\": \\\"2026-06-02T02:26:00.000000Z\\\",\\n\\\"updated_at\\\": \\\"2026-06-02T02:26:00.000000Z\\\"\\n}\\n}\\n* @response 422 {\\n\\\"message\\\": \\\"The given data was invalid.\\\",\\n\\\"errors\\\": {\\n\\\"kode_modul\\\": [\\\"Kode modul ini sudah digunakan.\\\"]\\n}\\n}\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/master-penomoran"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"kode_modul": "b",
"format": "{KODE}\/HRD\/{BLN}\/{THN}\/{NO}",
"digit_urutan": 4,
"periode_reset": "tahunan\n* @response 201 {\n\"status\": \"success\",\n\"message\": \"Format penomoran berhasil disimpan\",\n\"data\": {\n\"id\": 1,\n\"kode_modul\": \"SURAT_LEMBUR\",\n\"format\": \"{KODE}\/HRD\/{BLN}\/{THN}\/{NO}\",\n\"digit_urutan\": 4,\n\"angka_terakhir_surat\": 0,\n\"angka_terakhir_revisi\": 0,\n\"periode_reset\": \"tahunan\",\n\"created_at\": \"2026-06-02T02:26:00.000000Z\",\n\"updated_at\": \"2026-06-02T02:26:00.000000Z\"\n}\n}\n* @response 422 {\n\"message\": \"The given data was invalid.\",\n\"errors\": {\n\"kode_modul\": [\"Kode modul ini sudah digunakan.\"]\n}\n}"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Pengaturan Penomoran
requires authentication
Endpoint ini digunakan untuk memperbarui format penomoran dokumen/modul yang sudah ada.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/master-penomoran/0" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"format\": \"{KODE}\\/HRD-REV\\/{BLN}\\/{THN}\\/{NO}\",
\"digit_urutan\": 5,
\"periode_reset\": \"bulanan\\n* @response 200 {\\n\\\"status\\\": \\\"success\\\",\\n\\\"message\\\": \\\"Format penomoran berhasil diperbarui\\\",\\n\\\"data\\\": {\\n\\\"id\\\": 1,\\n\\\"kode_modul\\\": \\\"SURAT_LEMBUR\\\",\\n\\\"format\\\": \\\"{KODE}\\/HRD-REV\\/{BLN}\\/{THN}\\/{NO}\\\",\\n\\\"digit_urutan\\\": 5,\\n\\\"angka_terakhir_surat\\\": 0,\\n\\\"angka_terakhir_revisi\\\": 0,\\n\\\"periode_reset\\\": \\\"bulanan\\\",\\n\\\"created_at\\\": \\\"2026-06-02T02:26:00.000000Z\\\",\\n\\\"updated_at\\\": \\\"2026-06-02T02:30:00.000000Z\\\"\\n}\\n}\\n* @response 404 {\\n\\\"status\\\": \\\"error\\\",\\n\\\"message\\\": \\\"Data penomoran tidak ditemukan\\\"\\n}\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/master-penomoran/0"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"format": "{KODE}\/HRD-REV\/{BLN}\/{THN}\/{NO}",
"digit_urutan": 5,
"periode_reset": "bulanan\n* @response 200 {\n\"status\": \"success\",\n\"message\": \"Format penomoran berhasil diperbarui\",\n\"data\": {\n\"id\": 1,\n\"kode_modul\": \"SURAT_LEMBUR\",\n\"format\": \"{KODE}\/HRD-REV\/{BLN}\/{THN}\/{NO}\",\n\"digit_urutan\": 5,\n\"angka_terakhir_surat\": 0,\n\"angka_terakhir_revisi\": 0,\n\"periode_reset\": \"bulanan\",\n\"created_at\": \"2026-06-02T02:26:00.000000Z\",\n\"updated_at\": \"2026-06-02T02:30:00.000000Z\"\n}\n}\n* @response 404 {\n\"status\": \"error\",\n\"message\": \"Data penomoran tidak ditemukan\"\n}"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Hapus Pengaturan Penomoran
requires authentication
Endpoint ini digunakan untuk menghapus data master penomoran dari database.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/master-penomoran/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/master-penomoran/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master Surat
Endpoint ini digunakan untuk membuat surat baru beserta detail surat, alur approval, dan approval log berdasarkan jenis surat yang dipilih.
Supported Jenis Surat:
- perintah kerja
- peringatan
- teguran
- mutasi
- demosi
- promosi
- pemberitahuan
- berita acara
- memo
Request Body (Base):
Store a newly created Letter (Surat).
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/surat" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_so_pengirim\": \"019df0bc-1b4e-7221-b69d-b022e225b9de\",
\"id_so_penerimas\": [
\"019df0bc-1c9c-71d0-a3ca-434aaae73316\",
\"019df0bc-1c98-703e-9d78-233ccb6c530e\"
],
\"jenis_surat\": \"perintah kerja\",
\"approval_steps\": [
\"architecto\"
],
\"id_perusahaan_lokasi_awal\": \"architecto\",
\"id_perusahaan_lokasi_pindah\": \"architecto\",
\"id_jabatan_awal\": \"architecto\",
\"id_jabatan_pindah\": \"architecto\",
\"jenis\": \"architecto\",
\"perihal\": \"architecto\",
\"deskripsi\": \"architecto\",
\"tanggal_mulai\": \"2026-06-10\",
\"tanggal_selesai\": \"2026-07-10\",
\"jenis_tugas\": \"Tambahan\",
\"jenis_target\": \"Tanggal\",
\"nilai_target\": \"2026-07-10\\n\\nKHUSUS JENIS SURAT : TEGURAN\",
\"level\": 16,
\"denda\": \"500000\\n\\nKHUSUS JENIS SURAT : PEMBERITAHUAN\",
\"tanggal_berlaku\": \"2026-06-01\",
\"perubahan_gaji\": \"1000000\\n\\nKHUSUS JENIS SURAT : BERITA ACARA\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/surat"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_so_pengirim": "019df0bc-1b4e-7221-b69d-b022e225b9de",
"id_so_penerimas": [
"019df0bc-1c9c-71d0-a3ca-434aaae73316",
"019df0bc-1c98-703e-9d78-233ccb6c530e"
],
"jenis_surat": "perintah kerja",
"approval_steps": [
"architecto"
],
"id_perusahaan_lokasi_awal": "architecto",
"id_perusahaan_lokasi_pindah": "architecto",
"id_jabatan_awal": "architecto",
"id_jabatan_pindah": "architecto",
"jenis": "architecto",
"perihal": "architecto",
"deskripsi": "architecto",
"tanggal_mulai": "2026-06-10",
"tanggal_selesai": "2026-07-10",
"jenis_tugas": "Tambahan",
"jenis_target": "Tanggal",
"nilai_target": "2026-07-10\n\nKHUSUS JENIS SURAT : TEGURAN",
"level": 16,
"denda": "500000\n\nKHUSUS JENIS SURAT : PEMBERITAHUAN",
"tanggal_berlaku": "2026-06-01",
"perubahan_gaji": "1000000\n\nKHUSUS JENIS SURAT : BERITA ACARA"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created new Letter",
"data": {
"id": "uuid",
"nomor_surat": "0001/SPK/HRD/VI/2026",
"jenis_surat": "perintah kerja",
"status": "pending"
}
}
Example response (422):
{
"status": false,
"errors": {
"field": [
"Validation message"
]
}
}
Example response (500):
{
"status": false,
"message": "Internal server error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Menampilkan daftar surat berdasarkan jenis surat. Mendukung: - Pagination - Sorting - Filter status - Filter penerima - Filter rentang tanggal
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/surat?jenis_surat=perintah+kerja&id_so_penerima=5&status=approved&dateStart=2025-01-01&dateEnd=2025-01-31&pageNumber=1&pageSize=10&sorts%5B%5D%5Bfield%5D=created_at&sorts%5B%5D%5Bdirection%5D=desc" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/surat"
);
const params = {
"jenis_surat": "perintah kerja",
"id_so_penerima": "5",
"status": "approved",
"dateStart": "2025-01-01",
"dateEnd": "2025-01-31",
"pageNumber": "1",
"pageSize": "10",
"sorts[][field]": "created_at",
"sorts[][direction]": "desc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully fetched Surat Perintah Kerja list"
}
Example response (400):
{
"status": false,
"message": "Parameter jenis_surat wajib disertakan."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Menampilkan detail surat berdasarkan ID dan jenis surat. Data yang dikembalikan mencakup: - Detail master surat - Detail surat sesuai jenis surat - Data pengirim - Data penerima - Riwayat approval
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/surat/1?jenis_surat=perintah+kerja" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/surat/1"
);
const params = {
"jenis_surat": "perintah kerja",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully fetched Surat Perintah Kerja detail",
"data": {
"id": 1,
"nomor_surat": "SPK/001/2025",
"jenis_surat": "perintah kerja",
"status": "approved"
}
}
Example response (400):
{
"status": false,
"message": "Parameter jenis_surat wajib disertakan."
}
Example response (404):
{
"status": false,
"message": "Data Surat Perintah Kerja tidak ditemukan."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Menghapus surat berdasarkan ID dan jenis surat. Endpoint ini akan menghapus: - Data master surat - Detail surat sesuai jenis surat - Approval Header terkait - Approval Detail terkait - Approval Log terkait Proses penghapusan dilakukan dalam database transaction sehingga seluruh data akan di-rollback jika terjadi error.
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/surat/1?jenis_surat=perintah+kerja" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/surat/1"
);
const params = {
"jenis_surat": "perintah kerja",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted Surat Perintah Kerja and all related approval data."
}
Example response (400):
{
"status": false,
"message": "Parameter jenis_surat wajib disertakan."
}
Example response (404):
{
"status": false,
"message": "Data Surat Perintah Kerja tidak ditemukan."
}
Example response (500):
{
"status": false,
"message": "Internal Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified Letter. Endpoint ini digunakan untuk mengubah data surat yang masih berstatus pending. Jika surat sudah diproses maka data tidak dapat diubah. URL Parameter:
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/surat/019df0bc-1c9c-71d0-a3ca-434aaae73316
REQUEST BODY (BASE)" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_so_pengirim\": \"019df0bc-1b4e-7221-b69d-b022e225b9de\",
\"id_so_penerimas\": [
\"019df0bc-1c9c-71d0-a3ca-434aaae73316\"
],
\"jenis_surat\": \"architecto\",
\"approval_steps\": [
\"architecto\"
],
\"id_perusahaan_lokasi_awal\": \"architecto\",
\"id_perusahaan_lokasi_pindah\": \"architecto\",
\"id_jabatan_awal\": \"architecto\",
\"id_jabatan_pindah\": \"architecto\",
\"jenis\": \"architecto\",
\"perihal\": \"architecto\",
\"deskripsi\": \"architecto\",
\"tanggal_mulai\": \"2026-06-10\",
\"tanggal_selesai\": \"2026-07-10\",
\"jenis_tugas\": \"architecto\",
\"jenis_target\": \"architecto\",
\"nilai_target\": \"architecto\",
\"level\": 16,
\"denda\": \"500000\\n\\nKHUSUS JENIS SURAT : PEMBERITAHUAN\",
\"tanggal_berlaku\": \"architecto\",
\"perubahan_gaji\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/surat/019df0bc-1c9c-71d0-a3ca-434aaae73316
REQUEST BODY (BASE)"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_so_pengirim": "019df0bc-1b4e-7221-b69d-b022e225b9de",
"id_so_penerimas": [
"019df0bc-1c9c-71d0-a3ca-434aaae73316"
],
"jenis_surat": "architecto",
"approval_steps": [
"architecto"
],
"id_perusahaan_lokasi_awal": "architecto",
"id_perusahaan_lokasi_pindah": "architecto",
"id_jabatan_awal": "architecto",
"id_jabatan_pindah": "architecto",
"jenis": "architecto",
"perihal": "architecto",
"deskripsi": "architecto",
"tanggal_mulai": "2026-06-10",
"tanggal_selesai": "2026-07-10",
"jenis_tugas": "architecto",
"jenis_target": "architecto",
"nilai_target": "architecto",
"level": 16,
"denda": "500000\n\nKHUSUS JENIS SURAT : PEMBERITAHUAN",
"tanggal_berlaku": "architecto",
"perubahan_gaji": "architecto"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated the Letter",
"data": {
"id": "019df0bc-1c9c-71d0-a3ca-434aaae73316",
"nomor_surat": "0001/SPK/HRD/VI/2026",
"jenis_surat": "perintah kerja",
"status": "pending"
}
}
RESPONSE NOT FOUND
Example response (404):
{
"status": false,
"message": "Data surat tidak ditemukan."
}
RESPONSE VALIDATION ERROR
Example response (422):
{
"status": false,
"message": "Surat yang sudah diproses tidak dapat diubah."
}
RESPONSE SERVER ERROR
Example response (500):
{
"status": false,
"message": "Internal Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Master WLA
Endpoint untuk menambahkan data Master WLA baru beserta konfigurasi approval (opsional).
Get List Master WLA (Grouped by Struktur Organisasi)
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis?pageNumber=1&pageSize=10&nama_karyawan=admin&jabatan=programmer&level_posisi=2&jenis_wla=H&jenis_target=Waktu&tipe_pelaporan=rincian&is_active=1&is_required=1&is_score=1&sortBy=architecto&sortDir=asc" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis"
);
const params = {
"pageNumber": "1",
"pageSize": "10",
"nama_karyawan": "admin",
"jabatan": "programmer",
"level_posisi": "2",
"jenis_wla": "H",
"jenis_target": "Waktu",
"tipe_pelaporan": "rincian",
"is_active": "1",
"is_required": "1",
"is_score": "1",
"sortBy": "architecto",
"sortDir": "asc",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 5,
"from": 1,
"to": 5,
"total": 20,
"lastPage": 4
},
"data": [
{
"id": "019dd2c7-3a1a-72ec-aa73-f2eab6a6f505",
"nama_karyawan": "Admin",
"jabatan": "STAF PROGRAMMER",
"level_posisi": 1,
"total_wla": 3,
"wla_list": [
{
"id": "uuid",
"nama_wla": "Absensi Pagi",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"durasi_menit": 10,
"frekuensi": 1,
"denda": 5000,
"tipe_pelaporan": "tunggal",
"created_at": "2026-04-20T10:00:00.000000Z"
},
{
"id": "uuid",
"nama_wla": "Briefing",
"jenis_wla": "H",
"jenis_target": "Durasi",
"nilai_target": "30",
"durasi_menit": 30,
"frekuensi": 1,
"denda": null,
"tipe_pelaporan": "rincian",
"created_at": "2026-04-20T11:00:00.000000Z"
}
]
}
]
}
---
## ❌ Error Response
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Something went wrong"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Master WLA
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_struktur_organisasi\": \"550e8400-e29b-41d4-a716-446655440000\",
\"nama_wla\": \"Absensi Pagi\",
\"jenis_wla\": \"H\",
\"jenis_target\": \"Waktu\",
\"nilai_target\": \"08:00\",
\"standar_durasi_menit\": 10,
\"standar_frekuensi\": 1,
\"bobot_tugas\": \"10\",
\"tipe_penilaian\": \"min\",
\"tipe_pelaporan\": \"tunggal\",
\"denda\": 5000,
\"is_score\": true,
\"is_active\": true,
\"is_required\": true,
\"approval_steps\": [
{
\"id_so_approver\": \"550e8400-e29b-41d4-a716-446655440001\",
\"jenis_action\": \"check\"
},
{
\"id_so_approver\": \"550e8400-e29b-41d4-a716-446655440002\",
\"jenis_action\": \"approve\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440000",
"nama_wla": "Absensi Pagi",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"standar_durasi_menit": 10,
"standar_frekuensi": 1,
"bobot_tugas": "10",
"tipe_penilaian": "min",
"tipe_pelaporan": "tunggal",
"denda": 5000,
"is_score": true,
"is_active": true,
"is_required": true,
"approval_steps": [
{
"id_so_approver": "550e8400-e29b-41d4-a716-446655440001",
"jenis_action": "check"
},
{
"id_so_approver": "550e8400-e29b-41d4-a716-446655440002",
"jenis_action": "approve"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"success": true,
"message": "Data master WLA berhasil dibuat",
"data": {
"id": "uuid",
"id_struktur_organisasi": "uuid",
"nama_wla": "Absensi Pagi",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"standar_durasi_menit": 10,
"standar_frekuensi": 1,
"bobot_tugas": "10",
"tipe_penilaian": "min",
"tipe_pelaporan": "tunggal",
"denda": 5000,
"is_score": true,
"is_active": true,
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (422):
{
"success": false,
"message": "Validation error",
"errors": {
"nama_wla": [
"The nama wla field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Master WLA
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_struktur_organisasi\": \"architecto\",
\"nama_wla\": \"architecto\",
\"jenis_wla\": \"architecto\",
\"jenis_target\": \"architecto\",
\"nilai_target\": \"architecto\",
\"standar_durasi_menit\": 16,
\"standar_frekuensi\": 16,
\"bobot_tugas\": \"architecto\",
\"tipe_penilaian\": \"architecto\",
\"tipe_pelaporan\": \"architecto\",
\"denda\": 16,
\"is_score\": false,
\"is_active\": false,
\"is_required\": false,
\"approval_steps\": null
}"
const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_struktur_organisasi": "architecto",
"nama_wla": "architecto",
"jenis_wla": "architecto",
"jenis_target": "architecto",
"nilai_target": "architecto",
"standar_durasi_menit": 16,
"standar_frekuensi": 16,
"bobot_tugas": "architecto",
"tipe_penilaian": "architecto",
"tipe_pelaporan": "architecto",
"denda": 16,
"is_score": false,
"is_active": false,
"is_required": false,
"approval_steps": null
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data master WLA berhasil diupdate",
"data": {
"id": "uuid",
"nama_wla": "Updated WLA"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Master WLA
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data master WLA berhasil dihapus"
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Detail Master WLA
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/550e8400-e29b-41d4-a716-446655440000"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": "uuid",
"nama_wla": "Absensi Pagi",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"standar_durasi_menit": 10,
"standar_frekuensi": 1,
"denda": 5000,
"is_active": true,
"struktur_organisasi": {
"id": "uuid"
},
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Master WLA Self & Bawahan
requires authentication
API untuk mengambil daftar Master WLA milik user login beserta seluruh bawahan berdasarkan struktur organisasi.
Data bawahan diambil secara recursive menggunakan:
id_struktur_org_atasan
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/my/team?pageNumber=1&pageSize=10&nama_karyawan=admin&jabatan=programmer&level_posisi=2&jenis_wla=H&jenis_target=Waktu&tipe_pelaporan=rincian&is_active=1&sortBy=architecto&sortDir=asc%0A%0ANote%3A%0A-+Filter+WLA+digunakan+untuk+menentukan+data+struktur+organisasi+yang+tampil.%0A-+Relasi+%60wla_list%60+tetap+menampilkan+seluruh+data+WLA+yang+dimiliki+struktur+organisasi+tersebut.%0A-+%60total_wla%60+menampilkan+total+seluruh+WLA+tanpa+mengikuti+filter+query+WLA." \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/my/team"
);
const params = {
"pageNumber": "1",
"pageSize": "10",
"nama_karyawan": "admin",
"jabatan": "programmer",
"level_posisi": "2",
"jenis_wla": "H",
"jenis_target": "Waktu",
"tipe_pelaporan": "rincian",
"is_active": "1",
"sortBy": "architecto",
"sortDir": "asc
Note:
- Filter WLA digunakan untuk menentukan data struktur organisasi yang tampil.
- Relasi `wla_list` tetap menampilkan seluruh data WLA yang dimiliki struktur organisasi tersebut.
- `total_wla` menampilkan total seluruh WLA tanpa mengikuti filter query WLA.",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 2,
"total": 2,
"lastPage": 1
},
"data": [
{
"id": "019df0bc-1b57-73b7-afdb-5bc165142d8f",
"nama_karyawan": "Kamin",
"jabatan": "Manager IT",
"level_posisi": 1,
"total_wla": 2,
"is_self": true,
"wla_list": [
{
"id": "019df0bc-1af2-73bf-a1dd-fd0cd702ec91",
"nama_wla": "Absensi Pagi",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"durasi_menit": 10,
"frekuensi": 1,
"denda": 5000,
"tipe_pelaporan": "tunggal",
"created_at": "2026-05-20T06:28:43.000000Z"
},
{
"id": "019df0bc-1af2-73bf-a1dd-fd0cd702ec92",
"nama_wla": "Briefing Tim",
"jenis_wla": "H",
"jenis_target": "Durasi",
"nilai_target": "30",
"durasi_menit": 30,
"frekuensi": 1,
"denda": null,
"tipe_pelaporan": "rincian",
"created_at": "2026-05-20T07:00:00.000000Z"
}
]
},
{
"id": "019df0bc-1b57-73b7-afdb-5bc165142d9a",
"nama_karyawan": "Budi",
"jabatan": "Staff Backend",
"level_posisi": 2,
"total_wla": 1,
"is_self": false,
"wla_list": [
{
"id": "019df0bc-1af2-73bf-a1dd-fd0cd702ec99",
"nama_wla": "Daily Report",
"jenis_wla": "H",
"jenis_target": "Jumlah",
"nilai_target": "1",
"durasi_menit": 15,
"frekuensi": 1,
"denda": 10000,
"tipe_pelaporan": "tunggal",
"created_at": "2026-05-20T08:00:00.000000Z"
}
]
}
]
}
---
Example response (404):
{
"status": false,
"message": "Struktur organisasi tidak ditemukan untuk karyawan ini",
"debug": {
"user_id": 1,
"id_karyawan": "EMP001"
}
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Something went wrong"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get WLA Result Calculation
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/result/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/result/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Meeting Management
Tampilkan Daftar Meeting (Beserta Peserta)
requires authentication
Endpoint ini digunakan untuk mengambil daftar meeting berdasarkan user yang sedang login. Endpoint ini mendukung pencarian, pagination, dan filter berdasarkan status baca (read/unread) atau draft. Hasil pencarian sudah mencakup detail masing-masing peserta di dalam setiap meeting.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/meetings?search=Evaluasi&per_page=10&page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/meetings"
);
const params = {
"search": "Evaluasi",
"per_page": "10",
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buat Meeting Baru
requires authentication
Endpoint ini digunakan untuk membuat jadwal meeting baru beserta daftar peserta dan topik pembahasan (task) yang dihasilkan dari rapat tersebut.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/meetings" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id\": \"architecto\",
\"tanggal\": \"2026-06-06T10:08:29\",
\"jam_mulai\": \"09:00\",
\"jam_selesai\": \"11:00\",
\"tempat\": \"Ruang Rapat Direksi Lt. 3\",
\"mode_meeting\": \"hybrid (online\\/offline)\",
\"perihal_meeting\": \"Review Sprint Backlog One Dashboard\",
\"jenis_meeting\": \"reguler meeting\",
\"catatan_tambahan\": \"Harap menyiapkan laporan progress masing-masing.\",
\"status\": \"selesai\\n* @bodyParam peserta object[] required Array daftar peserta meeting. Minimal 1 peserta.\",
\"peserta\": [
{
\"id\": \"architecto\",
\"nik_karyawan\": \"FRP - 4611\",
\"status_kehadiran\": \"offline\\n* @bodyParam pembahasan object[] Array daftar topik pembahasan atau task tambahan yang dihasilkan.\"
}
],
\"pembahasan\": [
{
\"id\": \"architecto\",
\"pembahasan\": \"Sinkronisasi skema 24\",
\"nik_pengajuan\": \"FRP - 4544\",
\"nik_pic\": [
\"FRP - 4563\",
\"FRP - 4611\"
],
\"target_waktu\": \"2026-06-16 17:00:00\",
\"personil\": \"Butuh 2 backend engineer\",
\"budget\": \"0\",
\"denda\": \"150000\",
\"keterangan\": \"Sangat mendesak\\n* @response 201 {\\n\\\"status\\\": \\\"success\\\",\\n\\\"message\\\": \\\"Meeting berhasil disimpan. Pelaporan tugas dilakukan secara terpisah.\\\",\\n\\\"data\\\": {\\n\\\"id\\\": \\\"52172594-3638-4b52-a672-6789ebc95f01\\\",\\n\\\"no_meeting\\\": \\\"MTG-20260615-001\\\",\\n\\\"tanggal\\\": \\\"2026-06-15\\\",\\n\\\"jam_mulai\\\": \\\"09:00:00\\\",\\n\\\"jam_selesai\\\": \\\"11:00:00\\\",\\n\\\"tempat\\\": \\\"Ruang Rapat Direksi Lt. 3\\\",\\n\\\"mode_meeting\\\": \\\"hybrid (online\\/offline)\\\",\\n\\\"perihal_meeting\\\": \\\"Review Sprint Backlog One Dashboard\\\",\\n\\\"jenis_meeting\\\": \\\"reguler meeting\\\",\\n\\\"judul_rapat\\\": null,\\n\\\"status\\\": \\\"selesai\\\",\\n\\\"peserta\\\": [\\n{\\n\\\"id\\\": \\\"abc123xx-...\\\",\\n\\\"nik\\\": \\\"FRP - 4611\\\",\\n\\\"nama_lengkap\\\": \\\"Nama Karyawan\\\",\\n\\\"status_kehadiran\\\": \\\"offline\\\",\\n\\\"is_read\\\": false\\n}\\n],\\n\\\"pembahasan\\\": [\\n{\\n\\\"id\\\": \\\"def456yy-...\\\",\\n\\\"pembahasan\\\": \\\"Sinkronisasi skema 24\\\",\\n\\\"jenis_tugas\\\": \\\"tambahan\\\",\\n\\\"target_waktu\\\": \\\"2026-06-16 17:00:00\\\",\\n\\\"status_tugas\\\": \\\"tambahan\\\",\\n\\\"denda\\\": \\\"150000\\\",\\n\\\"pic_details\\\": [\\n\\\"FRP - 4563\\\",\\n\\\"FRP - 4611\\\"\\n],\\n\\\"pengaju\\\": {\\n\\\"nik\\\": \\\"FRP - 4544\\\",\\n\\\"nama_lengkap\\\": \\\"Nama Karyawan Pengaju\\\"\\n}\\n}\\n]\\n}\\n}\\n* @response 422 {\\n\\\"message\\\": \\\"The given data was invalid.\\\",\\n\\\"errors\\\": {\\n\\\"peserta.0.nik_karyawan\\\": [\\n\\\"The selected peserta.0.nik_karyawan is invalid.\\\"\\n]\\n}\\n}\\n* @response 500 {\\n\\\"status\\\": \\\"error\\\",\\n\\\"message\\\": \\\"Gagal menyimpan meeting: Pesan error internal server\\\"\\n}\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/meetings"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id": "architecto",
"tanggal": "2026-06-06T10:08:29",
"jam_mulai": "09:00",
"jam_selesai": "11:00",
"tempat": "Ruang Rapat Direksi Lt. 3",
"mode_meeting": "hybrid (online\/offline)",
"perihal_meeting": "Review Sprint Backlog One Dashboard",
"jenis_meeting": "reguler meeting",
"catatan_tambahan": "Harap menyiapkan laporan progress masing-masing.",
"status": "selesai\n* @bodyParam peserta object[] required Array daftar peserta meeting. Minimal 1 peserta.",
"peserta": [
{
"id": "architecto",
"nik_karyawan": "FRP - 4611",
"status_kehadiran": "offline\n* @bodyParam pembahasan object[] Array daftar topik pembahasan atau task tambahan yang dihasilkan."
}
],
"pembahasan": [
{
"id": "architecto",
"pembahasan": "Sinkronisasi skema 24",
"nik_pengajuan": "FRP - 4544",
"nik_pic": [
"FRP - 4563",
"FRP - 4611"
],
"target_waktu": "2026-06-16 17:00:00",
"personil": "Butuh 2 backend engineer",
"budget": "0",
"denda": "150000",
"keterangan": "Sangat mendesak\n* @response 201 {\n\"status\": \"success\",\n\"message\": \"Meeting berhasil disimpan. Pelaporan tugas dilakukan secara terpisah.\",\n\"data\": {\n\"id\": \"52172594-3638-4b52-a672-6789ebc95f01\",\n\"no_meeting\": \"MTG-20260615-001\",\n\"tanggal\": \"2026-06-15\",\n\"jam_mulai\": \"09:00:00\",\n\"jam_selesai\": \"11:00:00\",\n\"tempat\": \"Ruang Rapat Direksi Lt. 3\",\n\"mode_meeting\": \"hybrid (online\/offline)\",\n\"perihal_meeting\": \"Review Sprint Backlog One Dashboard\",\n\"jenis_meeting\": \"reguler meeting\",\n\"judul_rapat\": null,\n\"status\": \"selesai\",\n\"peserta\": [\n{\n\"id\": \"abc123xx-...\",\n\"nik\": \"FRP - 4611\",\n\"nama_lengkap\": \"Nama Karyawan\",\n\"status_kehadiran\": \"offline\",\n\"is_read\": false\n}\n],\n\"pembahasan\": [\n{\n\"id\": \"def456yy-...\",\n\"pembahasan\": \"Sinkronisasi skema 24\",\n\"jenis_tugas\": \"tambahan\",\n\"target_waktu\": \"2026-06-16 17:00:00\",\n\"status_tugas\": \"tambahan\",\n\"denda\": \"150000\",\n\"pic_details\": [\n\"FRP - 4563\",\n\"FRP - 4611\"\n],\n\"pengaju\": {\n\"nik\": \"FRP - 4544\",\n\"nama_lengkap\": \"Nama Karyawan Pengaju\"\n}\n}\n]\n}\n}\n* @response 422 {\n\"message\": \"The given data was invalid.\",\n\"errors\": {\n\"peserta.0.nik_karyawan\": [\n\"The selected peserta.0.nik_karyawan is invalid.\"\n]\n}\n}\n* @response 500 {\n\"status\": \"error\",\n\"message\": \"Gagal menyimpan meeting: Pesan error internal server\"\n}"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Buat Meeting Baru
requires authentication
Endpoint ini digunakan untuk membuat jadwal meeting baru beserta daftar peserta dan topik pembahasan (task) yang dihasilkan dari rapat tersebut.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/meetings/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"tanggal\": \"2026-06-06T10:08:29\",
\"jam_mulai\": \"09:00\",
\"jam_selesai\": \"11:00\",
\"tempat\": \"Ruang Rapat Direksi Lt. 3\",
\"mode_meeting\": \"hybrid (online\\/offline)\",
\"perihal_meeting\": \"Review Sprint Backlog One Dashboard\",
\"jenis_meeting\": \"reguler meeting\",
\"catatan_tambahan\": \"Harap menyiapkan laporan progress masing-masing.\",
\"status\": \"selesai\\n* @bodyParam peserta object[] required Array daftar peserta meeting. Minimal 1 peserta.\",
\"peserta\": [
{
\"id\": \"architecto\",
\"nik_karyawan\": \"FRP - 4611\",
\"status_kehadiran\": \"offline\\n* @bodyParam pembahasan object[] Array daftar topik pembahasan atau task tambahan yang dihasilkan.\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"tanggal": "2026-06-06T10:08:29",
"jam_mulai": "09:00",
"jam_selesai": "11:00",
"tempat": "Ruang Rapat Direksi Lt. 3",
"mode_meeting": "hybrid (online\/offline)",
"perihal_meeting": "Review Sprint Backlog One Dashboard",
"jenis_meeting": "reguler meeting",
"catatan_tambahan": "Harap menyiapkan laporan progress masing-masing.",
"status": "selesai\n* @bodyParam peserta object[] required Array daftar peserta meeting. Minimal 1 peserta.",
"peserta": [
{
"id": "architecto",
"nik_karyawan": "FRP - 4611",
"status_kehadiran": "offline\n* @bodyParam pembahasan object[] Array daftar topik pembahasan atau task tambahan yang dihasilkan."
}
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/meetings/{id}
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/meetings/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": "success",
"message": "Data meeting berhasil dihapus"
}
Example response (404):
{
"message": "Data meeting tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/meetings/{id}/pembahasan
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/meetings/architecto/pembahasan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"data_pembahasan\": [
\"architecto\"
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/meetings/architecto/pembahasan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"data_pembahasan": [
"architecto"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
[
{
"id": "9394309f-b8fa-466e-8c57-29571f9df7d2",
"pembahasan": "Optimasi query database modul laporan backend",
"jenis_tugas": "mingguan",
"target_waktu": "2026-05-25 17:00:00",
"status_tugas": "Berjalan",
"lampiran_urls": [
"http://localhost:8000/storage/meeting/bukti_kerja.pdf"
],
"pic_details": [
{
"nik": "FRP - 4632",
"nama_lengkap": "EKIN ADHI GUNA"
}
],
"pengaju": {
"nik": "FRP - 4291",
"nama_lengkap": "NADYA INGRIDA BRAHMANA"
}
}
]
Example response (404):
{
"message": "Data meeting tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/meetings/karyawan/list
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/meetings/karyawan/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"search\": \"Doni\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/meetings/karyawan/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"search": "Doni"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": "success",
"data": [
{
"nik": "FRP - 0798",
"nama_lengkap": "JAY ZENHAR"
},
{
"nik": "FRP - 1381",
"nama_lengkap": "DONI"
},
{
"nik": "FRP - 3565",
"nama_lengkap": "ARZA CAR WASH"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Peforma Karyawan
Request Parameters:
Peforma Karyawan
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/peforma-karyawan?pageNumber=16&pageSize=16&dateStart=architecto&dateEnd=architecto&sorts[]=architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/peforma-karyawan"
);
const params = {
"pageNumber": "16",
"pageSize": "16",
"dateStart": "architecto",
"dateEnd": "architecto",
"sorts[0]": "architecto",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 100,
"lastPage": 10,
"periode_aktif": {
"start": "2025-01-01 00:00:00",
"end": "2025-01-31 23:59:59"
}
},
"data": [
{
"id_struktur_organisasi": 1,
"id_karyawan": 10,
"nama_lengkap": "John Doe",
"nik": "EMP001",
"nama_jabatan": "Supervisor",
"nama_lokasi": "Head Office",
"total_durasi_karyawan": 1200,
"total_durasi_per_bulan": 600,
"total_durasi_per_hari": 30,
"nilai_tugas": 85.5,
"nilai_kompetensi": 88.3,
"wla": [],
"rekap_harian_tabel": {},
"kompetensi": []
}
]
}
Example response (500):
{
"status": false,
"message": "Internal Server Error",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
PerusahaanLokasi Management
List Perusahaan Lokasi
requires authentication
API untuk menampilkan daftar perusahaan lokasi dengan pagination.
Body Params:
- pageNumber (int, optional) : default 1
- pageSize (int, optional) : default 10
- filters (array, optional) [ { "field": "nama_lokasi|kota|id_perusahaan|created_at|updated_at", "operator": "eq|neq|like|gt|gte|lt|lte|in|between", "value": "..." "logic": "and|or" } ]
- sorts (array, optional) [ { "field": "nama_lokasi|kota|id_perusahaan|created_at|updated_at", "direction": "asc|desc" } ]
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/perusahaan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 1,
"total": 1,
"lastPage": 1
},
"data": [
{
"id": 1,
"idPerusahaan": 1,
"namaPerusahaan": "PT Maju Jaya",
"namaLokasi": "Kantor Pusat",
"kota": "Jakarta",
"createdAt": "2026-04-14T00:00:00.000000Z",
"updatedAt": "2026-04-14T00:00:00.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Perusahaan Lokasi
requires authentication
API untuk menampilkan daftar perusahaan lokasi dengan pagination.
Body Params:
- pageNumber (int, optional) : default 1
- pageSize (int, optional) : default 10
- filters (array, optional) [ { "field": "nama_lokasi|kota|id_perusahaan|created_at|updated_at", "operator": "eq|neq|like|gt|gte|lt|lte|in|between", "value": "..." "logic": "and|or" } ]
- sorts (array, optional) [ { "field": "nama_lokasi|kota|id_perusahaan|created_at|updated_at", "direction": "asc|desc" } ]
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/perusahaan/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 1,
"total": 1,
"lastPage": 1
},
"data": [
{
"id": 1,
"idPerusahaan": 1,
"namaPerusahaan": "PT Maju Jaya",
"namaLokasi": "Kantor Pusat",
"kota": "Jakarta",
"createdAt": "2026-04-14T00:00:00.000000Z",
"updatedAt": "2026-04-14T00:00:00.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Perusahaan Management
List Perusahaan Lokasi
requires authentication
API untuk menampilkan daftar lokasi perusahaan dengan pagination.
Endpoint ini menampilkan relasi perusahaan.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/perusahaan/lokasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"nama_perusahaan": "PT Maju Jaya",
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Perusahaan
requires authentication
API untuk membuat data perusahaan baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/perusahaan" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_perusahaan\": \"PT Maju Jaya\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/perusahaan"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_perusahaan": "PT Maju Jaya"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"data": {
"id": 1,
"nama_perusahaan": "PT Maju Jaya"
}
}
Example response (422):
{
"status": false,
"message": {
"nama_perusahaan": [
"The nama perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Perusahaan By ID
requires authentication
API untuk menampilkan detail perusahaan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/perusahaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"nama_perusahaan": "PT Maju Jaya"
}
}
Example response (404):
{
"status": false,
"message": "Perusahaan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Perusahaan
requires authentication
API untuk memperbarui data perusahaan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/perusahaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_perusahaan\": \"PT Maju Jaya\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_perusahaan": "PT Maju Jaya"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Perusahaan updated successfully",
"data": {
"id": 1,
"nama_perusahaan": "PT Maju Jaya"
}
}
Example response (404):
{
"status": false,
"message": "Perusahaan not found"
}
Example response (422):
{
"status": false,
"errors": {
"nama_perusahaan": [
"The nama perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Perusahaan
requires authentication
API untuk menghapus data perusahaan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/perusahaan/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Perusahaan deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Perusahaan not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Perusahaan Lokasi
requires authentication
API untuk membuat data lokasi perusahaan baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/perusahaan/lokasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_perusahaan\": 1,
\"nama_lokasi\": \"Kantor Pusat\",
\"kota\": \"Jakarta\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"data": {
"id": 1,
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
}
}
Example response (422):
{
"status": false,
"message": {
"id_perusahaan": [
"The id perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Perusahaan Lokasi By ID
requires authentication
API untuk menampilkan detail lokasi perusahaan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/perusahaan/lokasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"nama_perusahaan": "PT Maju Jaya",
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
}
}
Example response (404):
{
"status": false,
"message": "Perusahaan Lokasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Perusahaan Lokasi
requires authentication
API untuk menampilkan daftar lokasi perusahaan dengan pagination.
Endpoint ini menampilkan relasi perusahaan.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/perusahaan/lokasi/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"id": 1,
"nama_perusahaan": "PT Maju Jaya",
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Perusahaan Lokasi
requires authentication
API untuk memperbarui data lokasi perusahaan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/perusahaan/lokasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_perusahaan\": 1,
\"nama_lokasi\": \"Kantor Pusat\",
\"kota\": \"Jakarta\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_perusahaan": 1,
"nama_lokasi": "Kantor Pusat",
"kota": "Jakarta"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Perusahaan lokasi updated successfully",
"data": {
"id": 1,
"id_perusahaan": 1
}
}
Example response (404):
{
"status": false,
"message": "Perusahaan Lokasi not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_perusahaan": [
"The id perusahaan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Perusahaan Lokasi
requires authentication
API untuk menghapus data lokasi perusahaan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/perusahaan/lokasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/perusahaan/lokasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Perusahaan lokasi deleted successfully"
}
Example response (404):
{
"status": false,
"message": "Perusahaan lokasi not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Product Management
Get a list of products.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/product" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
{
\"field\": \"title\",
\"operator\": \"contains\",
\"value\": \"Laptop\"
}
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"2026-04-04T17:00:00.000Z\",
\"dateEnd\": \"2026-04-05T17:00:00.000Z\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
{
"field": "title",
"operator": "contains",
"value": "Laptop"
}
],
"sorts": [
"architecto"
],
"dateStart": "2026-04-04T17:00:00.000Z",
"dateEnd": "2026-04-05T17:00:00.000Z"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": 1,
"title": "Laptop Gaming",
"category": "Elektronik",
"price": 15000000,
"img": "https://example.com/laptop.jpg",
"desc": "Laptop gaming dengan spesifikasi tinggi."
},
{
"id": 2,
"title": "Smartphone",
"category": "Elektronik",
"price": 5000000,
"img": "https://example.com/smartphone.jpg",
"desc": "Smartphone terbaru dengan fitur canggih."
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create a new Product in storage.
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/product" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Laptop Gaming\",
\"categoryId\": 1,
\"price\": 15000000,
\"img\": \"https:\\/\\/example.com\\/laptop.jpg\",
\"desc\": \"Laptop gaming dengan spesifikasi tinggi.\\nStore a newly created resource in storage.\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "Laptop Gaming",
"categoryId": 1,
"price": 15000000,
"img": "https:\/\/example.com\/laptop.jpg",
"desc": "Laptop gaming dengan spesifikasi tinggi.\nStore a newly created resource in storage."
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get the specified Product.
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/product/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/product/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": 1,
"title": "Laptop Gaming",
"categoryId": "Elektronik",
"price": 15000000,
"img": "https://example.com/laptop.jpg",
"desc": "Laptop gaming dengan spesifikasi tinggi."
}
}
Example response (404):
{
"status": false,
"message": "Product not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified Product in storage.
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/product/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"title\": \"Laptop Gaming Updated\",
\"categoryId\": 2,
\"price\": 14000000,
\"img\": \"https:\\/\\/example.com\\/laptop-updated.jpg\",
\"desc\": \"Updated description here.\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/product/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"title": "Laptop Gaming Updated",
"categoryId": 2,
"price": 14000000,
"img": "https:\/\/example.com\/laptop-updated.jpg",
"desc": "Updated description here."
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated"
}
Example response (404):
{
"status": false,
"message": "Product not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove the specified Product from storage.
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/product/1" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/product/1"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted"
}
Example response (404):
{
"status": false,
"message": "Product not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Realisasi WLA
Menyimpan data realisasi WLA berdasarkan master WLA yang dipilih. Field yang wajib dikirim (required) akan berubah dinamis tergantung pada jenis_target dari master_wla tersebut (Waktu, Hari Deadline, Jumlah, Durasi, dsb).
Index History Realisasi WLA
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/my/history" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/my/history"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Rata-rata score per WLA (untuk grafik di dashboard)
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/my/score" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/my/score"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Task by User ID
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/1/tasks?date=2026-05-01&mode=next" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/1/tasks"
);
const params = {
"date": "2026-05-01",
"mode": "next",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data Task berhasil diambil",
"filter_date": "2026-05-01",
"next_date": "2026-05-02",
"prev_date": "2026-04-30",
"total_task": 5,
"total_completed_tasks": 3,
"data": [
{
"id": "uuid-master-wla",
"nama_wla": "Input Data Harian",
"realisasi_wla": [
{
"id": "uuid-realisasi",
"tanggal_kegiatan": "2026-05-01",
"status_item": "rejected",
"is_rejected": true,
"total_durasi": 120,
"aktual_capaian": 5,
"lampiran": [],
"detail": []
}
]
}
]
}
Example response (404):
{
"status": false,
"message": "Data user tidak lengkap"
}
Example response (500):
{
"status": false,
"message": "Terjadi kesalahan pada server"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Detail WLA by ID
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/architecto/user" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/architecto/user"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Revision List (tugas yang butuh revisi)
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/realization/revision" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/realization/revision"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Simpan Realisasi Task (WLA)
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/realization" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "id_karyawan=16"\
--form "id_master_wla=16"\
--form "action=architecto"\
--form "total_durasi=16"\
--form "aktual_capaian=architecto"\
--form "realisasi_mulai=architecto"\
--form "realisasi_selesai=architecto"\
--form "details[]=architecto"\
--form "files[]=@C:\Users\DC03\AppData\Local\Temp\phpF2FC.tmp" const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/realization"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('id_karyawan', '16');
body.append('id_master_wla', '16');
body.append('action', 'architecto');
body.append('total_durasi', '16');
body.append('aktual_capaian', 'architecto');
body.append('realisasi_mulai', 'architecto');
body.append('realisasi_selesai', 'architecto');
body.append('details[]', 'architecto');
body.append('files[]', document.querySelector('input[name="files[]"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data Task berhasil disimpan",
"data": { ... }
}
Example response (404):
{
"status": false,
"message": "WLA tidak ditemukan"
}
Example response (422):
{
"status": false,
"message": "Masih ada task yang belum diselesaikan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update the specified resource in storage.
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/realization/architecto" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/realization/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get list Realisasi WLA
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/workload-realizations" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
\"architecto\"
],
\"sorts\": [
\"architecto\"
],
\"dateStart\": \"architecto\",
\"dateEnd\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
"architecto"
],
"sorts": [
"architecto"
],
"dateStart": "architecto",
"dateEnd": "architecto"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": "uuid",
"tanggal_kegiatan": "2026-04-20",
"realisasi_mulai": "2026-04-20 08:00:00",
"realisasi_selesai": "2026-04-20 09:30:00",
"aktual_durasi": 90,
"realiasi_target": "95",
"status_dokumen": "Draf",
"current_step": 1,
"master_wla": {
"id": "uuid",
"nama_wla": "Absensi Pagi"
},
"karyawan": {
"id": "uuid",
"nik": "EMP001",
"nama_karyawan": "Budi Santoso",
"jabatan": {
"id": "uuid",
"nama_jabatan": "Manager"
}
},
"created_at": "2026-04-20T10:00:00.000000Z"
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Realisasi WLA
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/workload-realizations" \
--header "Authorization: Bearer {access_token}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_master_wla\": \"architecto\",
\"id_karyawan\": \"architecto\",
\"tanggal_kegiatan\": \"architecto\",
\"realisasi_mulai\": \"architecto\",
\"realisasi_selesai\": \"architecto\",
\"realiasi_target\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations"
);
const headers = {
"Authorization": "Bearer {access_token}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_master_wla": "architecto",
"id_karyawan": "architecto",
"tanggal_kegiatan": "architecto",
"realisasi_mulai": "architecto",
"realisasi_selesai": "architecto",
"realiasi_target": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Data realisasi WLA berhasil dibuat",
"data": {
"id": "uuid",
"id_master_wla": "uuid",
"id_karyawan": "uuid",
"tanggal_kegiatan": "2026-04-20",
"realisasi_mulai": "2026-04-20T08:00:00",
"realisasi_selesai": "2026-04-20T09:00:00",
"aktual_durasi": 60,
"realiasi_target": "90",
"status_dokumen": "Draf",
"current_step": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get detail Realisasi WLA
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"data": {
"id": "uuid",
"tanggal_kegiatan": "2026-04-20",
"realisasi_mulai": "2026-04-20 08:00:00",
"realisasi_selesai": "2026-04-20 09:30:00",
"aktual_durasi": 90,
"realiasi_target": "95",
"status_dokumen": "Draf",
"current_step": 1,
"master_wla": {
"id": "uuid",
"nama_wla": "Absensi Pagi"
},
"karyawan": {
"id": "uuid",
"nik": "EMP001",
"nama_karyawan": "Budi Santoso",
"jabatan": {
"id": "uuid",
"nama_jabatan": "Manager"
}
},
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-20T10:00:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Realisasi WLA
requires authentication
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_master_wla\": \"architecto\",
\"id_karyawan\": \"architecto\",
\"tanggal_kegiatan\": \"2026-04-20\",
\"realisasi_mulai\": \"2026-04-20 08:00:00\",
\"realisasi_selesai\": \"2026-04-20 09:30:00\",
\"realiasi_target\": \"95\",
\"status_dokumen\": \"architecto\",
\"current_step\": 2
}"
const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_master_wla": "architecto",
"id_karyawan": "architecto",
"tanggal_kegiatan": "2026-04-20",
"realisasi_mulai": "2026-04-20 08:00:00",
"realisasi_selesai": "2026-04-20 09:30:00",
"realiasi_target": "95",
"status_dokumen": "architecto",
"current_step": 2
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data realisasi WLA berhasil diupdate",
"data": {
"id": "uuid",
"tanggal_kegiatan": "2026-04-20",
"realisasi_mulai": "2026-04-20 08:00:00",
"realisasi_selesai": "2026-04-20 10:00:00",
"aktual_durasi": 120,
"realiasi_target": "100",
"status_dokumen": "Review",
"current_step": 2,
"master_wla": {
"id": "uuid",
"nama_wla": "Absensi Pagi"
},
"karyawan": {
"id": "uuid",
"nik": "EMP001",
"nama_karyawan": "Budi Santoso",
"jabatan": {
"id": "uuid",
"nama_jabatan": "Manager"
}
},
"updated_at": "2026-04-20T10:30:00.000000Z"
}
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Example response (422):
{
"status": false,
"message": "Validation error",
"errors": {
"realisasi_selesai": [
"The realisasi selesai must be a date after or equal to realisasi mulai."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Realisasi WLA
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/workload-realizations/97f653ce-85f2-412e-935c-abb83c4a0959"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Data realisasi WLA berhasil dihapus"
}
Example response (404):
{
"status": false,
"message": "Data tidak ditemukan"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Report
Endpoint ini digunakan untuk mendapatkan laporan gabungan antara:
- Realisasi aktivitas WLA (Work Load Activity)
- Hasil penilaian kompetensi karyawan
Data akan digabung dan diringkas per karyawan dalam periode bulan tertentu.
Report WLA & Kompetensi (Per Karyawan)
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/report?bulan=5&tahun=2026&nik=FRP-1001&nama=Ahmad&status=Tetap&bagian=Supervisor%0A%0A---" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/report"
);
const params = {
"bulan": "5",
"tahun": "2026",
"nik": "FRP-1001",
"nama": "Ahmad",
"status": "Tetap",
"bagian": "Supervisor
---",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"summary": {
"total_karyawan": 2,
"rata_rata_score": 85.25
},
"data": [
{
"id_karyawan": "uuid",
"nik": "FRP-1001",
"nama_lengkap": "Ahmad Rifai",
"status": "Tetap",
"bagian": "Supervisor",
"wla_summary": {
"total_durasi": 480,
"rata_rata_durasi": 60,
"total_kegiatan": 8
},
"wla_detail": [
{
"nama_tugas": "Input Data",
"total_durasi": 240,
"jumlah_kegiatan": 4
},
{
"nama_tugas": "Verifikasi",
"total_durasi": 240,
"jumlah_kegiatan": 4
}
],
"kompetensi": {
"score": 88.5,
"status": "final",
"periode": "Mei 2026"
},
"nilai_akhir": 88.5
}
]
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 2,
"from": 1,
"to": 2
}
}
---
Example response (422):
{
"status": false,
"message": "Validation error",
"errors": {
"bulan": [
"The bulan field is required."
],
"tahun": [
"The tahun field is required."
]
}
}
Example response (500):
{
"status": false,
"message": "Internal server error",
"error": "Error message detail"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Struktur Organisasi
Endpoint ini digunakan untuk mengimpor data struktur organisasi secara massal melalui file Excel.
- @bodyParam file file required File Excel (.xlsx, .xls) yang berisi data struktur organisasi.
- @response 200 { "status": true, "message": "Import struktur organisasi berhasil" }
Store Struktur Organisasi
requires authentication
API untuk membuat data struktur organisasi karyawan baru.
Endpoint ini mendukung:
- Single insert
- Bulk insert melalui parameter
datadalam bentuk array
Base input untuk setiap data struktur organisasi:
- id_karyawan
- id_perusahaan_lokasi
- id_struktur_org_atasan
- level_posisi
- level_manajerial
- id_jabatan
- id_struktur_org_penilai_1
- id_struktur_org_penilai_2
- id_struktur_org_penilai_3
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/organisasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"id_perusahaan_lokasi\": 1,
\"id_struktur_org_atasan\": 2,
\"level_posisi\": 1,
\"level_manajerial\": \"M1\",
\"id_jabatan\": 3,
\"id_struktur_org_penilai_1\": 4,
\"id_struktur_org_penilai_2\": 5,
\"id_struktur_org_penilai_3\": 6,
\"data\": [
{
\"id_karyawan\": 1,
\"id_jabatan\": 3
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/organisasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"id_perusahaan_lokasi": 1,
"id_struktur_org_atasan": 2,
"level_posisi": 1,
"level_manajerial": "M1",
"id_jabatan": 3,
"id_struktur_org_penilai_1": 4,
"id_struktur_org_penilai_2": 5,
"id_struktur_org_penilai_3": 6,
"data": [
{
"id_karyawan": 1,
"id_jabatan": 3
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (202):
{
"status": true,
"message": "Successfully created new Struktur Organisasi data",
"data": {
"id": 1,
"id_karyawan": 1,
"nama_karyawan": "Budi Santoso",
"id_perusahaan_lokasi": 1,
"nama_perusahaan": "PT. Contoh Perusahaan",
"nama_lokasi": "Kantor Pusat",
"id_struktur_org_atasan": 2,
"nama_karyawan_atasan": "Siti Aminah",
"level_posisi": 1,
"level_manajerial": "M1",
"id_jabatan": 3,
"jabatan": "Manager",
"id_struktur_org_penilai_1": 4,
"nama_karyawan_penilai_1": "Andi Wijaya",
"id_struktur_org_penilai_2": 5,
"nama_karyawan_penilai_2": "Rina Sari",
"id_struktur_org_penilai_3": 6
"nama_karyawan_penilai_3": "Dewi Lestari"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Import Excel Struktur Organisasi
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/organisasi/import" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "file=@C:\Users\DC03\AppData\Local\Temp\phpF7D6.tmp" const url = new URL(
"http://10.10.1.109:8000/api/organisasi/import"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('file', document.querySelector('input[name="file"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (422):
{
"status": false,
"message": "File tidak valid",
"errors": {
"file": [
"The file field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/organisasi
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/organisasi" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
{
\"field\": \"nama_karyawan\",
\"operator\": \"like\",
\"value\": \"Budi\",
\"isOr\": false
}
],
\"sorts\": [
{
\"field\": \"nama_perusahaan\",
\"direction\": \"asc\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/organisasi"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
{
"field": "nama_karyawan",
"operator": "like",
"value": "Budi",
"isOr": false
}
],
"sorts": [
{
"field": "nama_perusahaan",
"direction": "asc"
}
]
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": 1,
"id_karyawan": 101,
"nama_karyawan": "John Doe",
"id_perusahaan_lokasi": 5,
"nama_perusahaan": "PT Teknologi Maju",
"nama_lokasi": "Head Office",
"kota": "Jakarta",
"id_struktur_org_atasan": 2,
"nama_karyawan_atasan": "Jane Smith",
"level_posisi": "Senior",
"level_manajerial": "Manager",
"id_jabatan": 10,
"nama_jabatan": "IT Manager",
"id_struktur_org_penilai_1": 3,
"nama_karyawan_penilai_1": "Robert Brown",
"id_struktur_org_penilai_2": null,
"nama_karyawan_penilai_2": null,
"id_struktur_org_penilai_3": null,
"nama_karyawan_penilai_3": null,
"created_at": "2023-10-25T08:00:00.000000Z",
"updated_at": "2023-10-25T08:00:00.000000Z"
}
]
}
Example response (500, Internal Server Error):
{
"status": false,
"message": "Internal Server Error",
"error": "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'xyz' in 'where clause'..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/organisasi/search
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/organisasi/search" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"pageNumber\": 1,
\"pageSize\": 10,
\"filters\": [
{
\"field\": \"nama_karyawan\",
\"operator\": \"like\",
\"value\": \"Budi\",
\"isOr\": false
}
],
\"sorts\": [
{
\"field\": \"nama_perusahaan\",
\"direction\": \"asc\"
}
]
}"
const url = new URL(
"http://10.10.1.109:8000/api/organisasi/search"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"pageNumber": 1,
"pageSize": 10,
"filters": [
{
"field": "nama_karyawan",
"operator": "like",
"value": "Budi",
"isOr": false
}
],
"sorts": [
{
"field": "nama_perusahaan",
"direction": "asc"
}
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully",
"meta": {
"pageNumber": 1,
"pageSize": 10,
"from": 1,
"to": 10,
"total": 50,
"lastPage": 5
},
"data": [
{
"id": 1,
"id_karyawan": 101,
"nama_karyawan": "John Doe",
"id_perusahaan_lokasi": 5,
"nama_perusahaan": "PT Teknologi Maju",
"nama_lokasi": "Head Office",
"kota": "Jakarta",
"id_struktur_org_atasan": 2,
"nama_karyawan_atasan": "Jane Smith",
"level_posisi": "Senior",
"level_manajerial": "Manager",
"id_jabatan": 10,
"nama_jabatan": "IT Manager",
"id_struktur_org_penilai_1": 3,
"nama_karyawan_penilai_1": "Robert Brown",
"id_struktur_org_penilai_2": null,
"nama_karyawan_penilai_2": null,
"id_struktur_org_penilai_3": null,
"nama_karyawan_penilai_3": null,
"created_at": "2023-10-25T08:00:00.000000Z",
"updated_at": "2023-10-25T08:00:00.000000Z"
}
]
}
Example response (500, Internal Server Error):
{
"status": false,
"message": "Internal Server Error",
"error": "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'xyz' in 'where clause'..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Struktur Organisasi By ID
requires authentication
API untuk menampilkan detail struktur organisasi karyawan berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/organisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/organisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"id": 1,
"id_karyawan": 1,
"nama_karyawan": "Budi Santoso",
"id_perusahaan_lokasi": 1,
"nama_perusahaan": "PT. Contoh Perusahaan",
"nama_lokasi": "Kantor Pusat",
"id_struktur_org_atasan": 2,
"nama_karyawan_atasan": "Siti Aminah",
"level_posisi": 1,
"level_manajerial": "M1",
"id_jabatan": 3,
"jabatan": "Manager",
"id_struktur_org_penilai_1": 4,
"nama_karyawan_penilai_1": "Andi Wijaya",
"id_struktur_org_penilai_2": 5,
"nama_karyawan_penilai_2": "Rina Sari",
"id_struktur_org_penilai_3": 6
"nama_karyawan_penilai_3": "Dewi Lestari" *
},
}
Example response (404):
{
"status": false,
"message": "Struktur Organisasi data not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Struktur Organisasi
requires authentication
API untuk memperbarui data struktur organisasi karyawan berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/organisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_karyawan\": 1,
\"id_perusahaan_lokasi\": 1,
\"id_struktur_org_atasan\": 2,
\"level_posisi\": 1,
\"level_manajerial\": \"M1\",
\"id_jabatan\": 3,
\"id_struktur_org_penilai_1\": 4,
\"id_struktur_org_penilai_2\": 5,
\"id_struktur_org_penilai_3\": 6
}"
const url = new URL(
"http://10.10.1.109:8000/api/organisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_karyawan": 1,
"id_perusahaan_lokasi": 1,
"id_struktur_org_atasan": 2,
"level_posisi": 1,
"level_manajerial": "M1",
"id_jabatan": 3,
"id_struktur_org_penilai_1": 4,
"id_struktur_org_penilai_2": 5,
"id_struktur_org_penilai_3": 6
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated Struktur Organisasi data",
"data": {
"id": 1,
"id_karyawan": 1,
"nama_karyawan": "Budi Santoso",
"id_perusahaan_lokasi": 1,
"nama_perusahaan": "PT. Contoh Perusahaan",
"nama_lokasi": "Kantor Pusat",
"id_struktur_org_atasan": 2,
"nama_karyawan_atasan": "Siti Aminah",
"level_posisi": 1,
"level_manajerial": "M1",
"id_jabatan": 3,
"jabatan": "Manager",
"id_struktur_org_penilai_1": 4,
"nama_karyawan_penilai_1": "Andi Wijaya",
"id_struktur_org_penilai_2": 5,
"nama_karyawan_penilai_2": "Rina Sari",
"id_struktur_org_penilai_3": 6
"nama_karyawan_penilai_3": "Dewi Lestari" *
},
}
Example response (404):
{
"status": false,
"message": "Struktur Organisasi data not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_karyawan": [
"The id karyawan field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Struktur Organisasi
requires authentication
API untuk menghapus data struktur organisasi karyawan berdasarkan ID.
Jika model menggunakan softDeletes(), maka data tidak benar-benar terhapus,
melainkan hanya mengisi kolom deleted_at.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/organisasi/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/organisasi/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted Struktur Organisasi data"
}
Example response (404):
{
"status": false,
"message": "Struktur Organisasi data not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sync Data
Sync data karyawan
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/syncDB" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/syncDB"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Management
API untuk membuat user baru sekaligus membuat data karyawan terkait.
Endpoint ini akan:
- membuat data user
- otomatis meneruskan request ke endpoint storeKaryawan untuk membuat data karyawan
GET api/users
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (401):
Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
{
"status": false,
"message": "Unauthenticated"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store User
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"password\": \"secret123\",
\"status\": true,
\"id_peran\": 1
}"
const url = new URL(
"http://10.10.1.109:8000/api/users"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"password": "secret123",
"status": true,
"id_peran": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created New User",
"user": {
"id": 1,
"status": true,
"id_peran": 1
},
"karyawan_response": {
"status": true,
"message": "Successfully created new Karyawan"
}
}
Example response (422):
{
"status": false,
"errors": {
"id_peran": [
"The id peran field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset Password
requires authentication
API untuk mereset password user ke password default.
Endpoint ini digunakan oleh super admin.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/reset" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_user\": 1
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/reset"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_user": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Password berhasil direset ke default.",
"data": {
"id": 1
}
}
Example response (422):
{
"status": false,
"errors": {
"id_user": [
"The id user field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/users/list
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update User
requires authentication
API untuk memperbarui data peran (nama_peran) pada user tertentu berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/users/Manager" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_peran\": \"architecto\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/Manager"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_peran": "architecto"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated User",
"data": {
"id": "9a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"nama_peran": "Manager",
"created_at": "2026-04-20T10:00:00.000000Z",
"updated_at": "2026-04-28T14:40:00.000000Z",
"peran": {
"id": 2,
"nama_peran": "Manager",
"keterangan": "Akses level manager"
}
}
}
Example response (404):
{
"status": false,
"message": "User not found"
}
Example response (422):
{
"status": false,
"errors": {
"nama_peran": [
"The nama peran field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store User Peran
requires authentication
API untuk membuat role/peran user baru.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/peran" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_peran\": \"Admin\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/peran"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_peran": "Admin"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (201):
{
"status": true,
"message": "Successfully created New Role",
"data": {
"id": 1,
"nama_peran": "Admin"
}
}
Example response (422):
{
"status": false,
"errors": {
"nama_peran": [
"The nama peran field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List User Peran
requires authentication
API untuk menampilkan daftar role/peran user dengan pagination.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/peran" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/peran"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": [
{
"nama_peran": "Admin"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 10,
"total": 1,
"from": 1,
"to": 1
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Peran By ID
requires authentication
API untuk menampilkan detail role/peran berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/peran/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/peran/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"nama_peran": "Admin"
}
}
Example response (404):
{
"status": false,
"message": "Web feature not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update User Peran
requires authentication
API untuk memperbarui role/peran user berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/users/peran/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"nama_peran\": \"Admin\"
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/peran/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"nama_peran": "Admin"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated Role",
"data": {
"id": 1,
"nama_peran": "Admin"
}
}
Example response (404):
{
"status": false,
"message": "Role not found"
}
Example response (422):
{
"status": false,
"errors": {
"nama_peran": [
"The nama peran field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete User Peran
requires authentication
API untuk menghapus role/peran user berdasarkan ID.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/users/peran/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/peran/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted Role"
}
Example response (404):
{
"status": false,
"message": "Role not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Fitur Web By ID
requires authentication
API untuk menampilkan detail fitur web berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/fiturWeb/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/fiturWeb/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"modul": "User Management",
"sub_modul": "Role",
"fitur": "Create Role"
}
}
Example response (404):
{
"status": false,
"message": "Web feature not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Fitur Web
requires authentication
API untuk menampilkan detail fitur web.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/fiturWeb" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/fiturWeb"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"modul": "User Management",
"sub_modul": "Role",
"fitur": "Create Role"
}
}
Example response (404):
{
"status": false,
"message": "Web feature not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List User Hak Akses
requires authentication
API untuk menampilkan daftar hak akses user.
Endpoint ini menampilkan relasi peran dan fitur web.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/hakAkses" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"nama_peran": "Admin",
"modul": "User Management",
"sub_modul": "Role",
"fitur": "Create Role",
"is_view": true,
"is_create": true,
"is_update": true,
"is_delete": false,
"is_verify": false,
"is_download": true
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Hak Akses By ID
requires authentication
API untuk menampilkan detail hak akses berdasarkan ID.
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/users/hakAkses/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"data": {
"nama_peran": "Admin",
"modul": "User Management",
"sub_modul": "Role",
"fitur": "Create Role",
"is_view": true,
"is_create": true,
"is_update": true,
"is_delete": false,
"is_verify": false,
"is_download": true
}
}
Example response (404):
{
"status": false,
"message": "No access rights found for this role"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update User Hak Akses
requires authentication
API untuk memperbarui data hak akses berdasarkan ID.
Example request:
curl --request PUT \
"http://10.10.1.109:8000/api/users/hakAkses/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_peran\": 1,
\"id_fitur_web\": 1,
\"is_view\": true,
\"is_create\": true,
\"is_update\": true,
\"is_delete\": false,
\"is_verify\": false,
\"is_download\": true
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_peran": 1,
"id_fitur_web": 1,
"is_view": true,
"is_create": true,
"is_update": true,
"is_delete": false,
"is_verify": false,
"is_download": true
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully updated Access Right",
"data": {
"id": 1,
"id_peran": 1
}
}
Example response (404):
{
"status": false,
"message": "Access right not found"
}
Example response (422):
{
"status": false,
"errors": {
"id_peran": [
"The id peran field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete User Hak Akses
requires authentication
API untuk menghapus data hak akses berdasarkan ID.
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/users/hakAkses/1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses/1"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"status": true,
"message": "Successfully deleted Access Right"
}
Example response (404):
{
"status": false,
"message": "Access right not found"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Manage User Hak Akses
requires authentication
API untuk menambahkan (create) atau memperbarui (update) data hak akses berdasarkan ID Peran (Role) dan ID Fitur Web.
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/users/hakAkses/manage" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"id_peran\": \"019353-55-712842278e02\",
\"id_fitur_web\": \"017578-091-406998014622\",
\"is_view\": true,
\"is_create\": false,
\"is_update\": true,
\"is_delete\": false,
\"is_verify\": false,
\"is_download\": true
}"
const url = new URL(
"http://10.10.1.109:8000/api/users/hakAkses/manage"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"id_peran": "019353-55-712842278e02",
"id_fitur_web": "017578-091-406998014622",
"is_view": true,
"is_create": false,
"is_update": true,
"is_delete": false,
"is_verify": false,
"is_download": true
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (200):
{
"status": "success",
"message": "Hak akses berhasil diperbarui untuk peran (role) ini.",
"data": {
"id": 10,
"id_peran": 1,
"id_fitur_web": 5,
"is_view": true,
"is_create": false,
"is_update": true,
"is_delete": false,
"is_verify": false,
"is_download": true,
"created_at": "2026-04-28T06:00:00.000000Z",
"updated_at": "2026-04-28T06:00:00.000000Z"
}
}
Example response (422):
{
"status": "error",
"message": "Validasi gagal",
"errors": {
"id_peran": [
"The id peran field is required."
],
"id_fitur_web": [
"The selected id fitur web is invalid."
]
}
}
Example response (500):
{
"status": "error",
"message": "Terjadi kesalahan: Internal Server Error message..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
WLA Harian
Request menggunakan format multipart/form-data.
Get Data WLA Harian
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/harian/index" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/index"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"success": true,
"message": "Data WLA Harian berhasil diambil",
"data": [
{
"id": "uuid",
"nama_wla": "Input Data Harian",
"jenis_wla": "H",
"tanggal_kegiatan": "2026-05-21",
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T08:00:00.000000Z",
"realisasi": {
"id": "uuid-realisasi",
"id_wla": {
"id_wla_harian": "uuid"
},
"created_at": "2026-05-21T09:00:00.000000Z",
"updated_at": "2026-05-21T09:00:00.000000Z"
},
"lampiran": [
{
"id": "uuid-lampiran",
"document_type": "realisasi_wla",
"document_id": "uuid-realisasi",
"file_name": "dokumentasi.jpg",
"file_path": "lampiran/dokumentasi.jpg",
"full_url": "http://your-domain.com/storage/lampiran/dokumentasi.jpg",
"created_at": "2026-05-21T09:10:00.000000Z",
"updated_at": "2026-05-21T09:10:00.000000Z"
}
]
}
]
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan saat mengambil data",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Store Data WLA Harian
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/harian/store" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "nama_wla=Input Data Harian"\
--form "jenis_wla=H"\
--form "jenis_target=Durasi"\
--form "nilai_target=120"\
--form "standar_durasi_menit=60"\
--form "standar_frekuensi=2"\
--form "bobot_tugas=20"\
--form "tipe_penilaian=max"\
--form "denda=5000"\
--form "tanggal_kegiatan=2026-05-21"\
--form "realisasi_mulai=2026-05-21 08:00:00"\
--form "realisasi_selesai=2026-05-21 10:00:00"\
--form "total_durasi=120"\
--form "aktual_capaian=100"\
--form "files[]=@C:\Users\DC03\AppData\Local\Temp\phpF31D.tmp" const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/store"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('nama_wla', 'Input Data Harian');
body.append('jenis_wla', 'H');
body.append('jenis_target', 'Durasi');
body.append('nilai_target', '120');
body.append('standar_durasi_menit', '60');
body.append('standar_frekuensi', '2');
body.append('bobot_tugas', '20');
body.append('tipe_penilaian', 'max');
body.append('denda', '5000');
body.append('tanggal_kegiatan', '2026-05-21');
body.append('realisasi_mulai', '2026-05-21 08:00:00');
body.append('realisasi_selesai', '2026-05-21 10:00:00');
body.append('total_durasi', '120');
body.append('aktual_capaian', '100');
body.append('files[]', document.querySelector('input[name="files[]"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (201):
{
"success": true,
"message": "Data WLA Harian, Realisasi, dan Lampiran berhasil dibuat via Form-Data",
"data": {
"wla": {
"id": "uuid-wla",
"id_struktur_organisasi": "uuid-struktur",
"nama_wla": "Input Data Harian",
"jenis_wla": "H",
"jenis_target": "Durasi",
"nilai_target": "120",
"standar_durasi_menit": 60,
"standar_frekuensi": 2,
"bobot_tugas": "20%",
"tipe_penilaian": "max",
"denda": 5000,
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T08:00:00.000000Z"
},
"realisasi": {
"id": "uuid-realisasi",
"id_wla": {
"id_wla_harian": "uuid-wla"
},
"id_karyawan": "uuid-karyawan",
"tanggal_kegiatan": "2026-05-21",
"realisasi_mulai": "2026-05-21 08:00:00",
"realisasi_selesai": "2026-05-21 10:00:00",
"total_durasi": "120",
"aktual_capaian": "100",
"status_submit": "selesai",
"status_item": "review",
"current_step": 1,
"score": null,
"revisi_count": 0,
"created_at": "2026-05-21T10:00:00.000000Z",
"updated_at": "2026-05-21T10:00:00.000000Z"
}
}
}
Example response (404):
{
"success": false,
"message": "Approval tidak ditemukan"
}
Example response (422):
{
"success": false,
"message": "Validation error",
"errors": {
"nama_wla": [
"The nama wla field is required."
],
"realisasi_selesai": [
"The realisasi selesai must be a date after realisasi mulai."
]
}
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Data WLA Harian by Id
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000/detail" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000/detail"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"success": true,
"message": "Data WLA Harian berhasil diambil",
"data": {
"id": "uuid-wla",
"id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440000",
"nama_wla": "Input Data Harian",
"jenis_wla": "H",
"jenis_target": "Durasi",
"nilai_target": "120",
"standar_durasi_menit": 60,
"standar_frekuensi": 2,
"bobot_tugas": "20%",
"tipe_penilaian": "max",
"denda": 5000,
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T08:00:00.000000Z",
"realisasi": {
"id": "uuid-realisasi",
"id_wla": {
"id_wla_harian": "uuid-wla"
},
"id_karyawan": "uuid-karyawan",
"tanggal_kegiatan": "2026-05-21",
"realisasi_mulai": "2026-05-21 08:00:00",
"realisasi_selesai": "2026-05-21 10:00:00",
"total_durasi": "120",
"aktual_capaian": "100",
"status_submit": "selesai",
"status_item": "review",
"current_step": 1,
"score": null,
"revisi_count": 0,
"created_at": "2026-05-21T10:00:00.000000Z",
"updated_at": "2026-05-21T10:00:00.000000Z"
},
"lampiran": [
{
"id": "uuid-lampiran",
"document_type": "realisasi_wla",
"document_id": "uuid-realisasi",
"file_name": "dokumentasi.jpg",
"file_path": "lampiran/dokumentasi.jpg",
"full_url": "http://your-domain.com/storage/lampiran/dokumentasi.jpg",
"created_at": "2026-05-21T10:05:00.000000Z",
"updated_at": "2026-05-21T10:05:00.000000Z"
}
]
}
}
Example response (404):
{
"success": false,
"message": "Data tidak ditemukan",
"data": null
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan saat mengambil data",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Data WLA Harian by Struktur Organisasi
requires authentication
Example request:
curl --request GET \
--get "http://10.10.1.109:8000/api/work_load_analysis/harian/struktur-organisasi/550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/struktur-organisasi/550e8400-e29b-41d4-a716-446655440000"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
{
"success": true,
"message": "Data WLA Harian berhasil diambil",
"data": [
{
"id": "uuid-wla",
"id_struktur_organisasi": "550e8400-e29b-41d4-a716-446655440000",
"nama_wla": "Input Data Harian",
"jenis_wla": "H",
"jenis_target": "Durasi",
"nilai_target": "120",
"standar_durasi_menit": 60,
"standar_frekuensi": 2,
"bobot_tugas": "20%",
"tipe_penilaian": "max",
"denda": 5000,
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T08:00:00.000000Z",
"realisasi": {
"id": "uuid-realisasi",
"id_wla": {
"id_wla_harian": "uuid-wla"
},
"id_karyawan": "uuid-karyawan",
"tanggal_kegiatan": "2026-05-21",
"realisasi_mulai": "2026-05-21 08:00:00",
"realisasi_selesai": "2026-05-21 10:00:00",
"total_durasi": "120",
"aktual_capaian": "100",
"status_submit": "selesai",
"status_item": "review",
"current_step": 1,
"score": null,
"revisi_count": 0,
"created_at": "2026-05-21T10:00:00.000000Z",
"updated_at": "2026-05-21T10:00:00.000000Z"
},
"lampiran": [
{
"id": "uuid-lampiran",
"document_type": "realisasi_wla",
"document_id": "uuid-realisasi",
"file_name": "dokumentasi.jpg",
"file_path": "lampiran/dokumentasi.jpg",
"full_url": "http://your-domain.com/storage/lampiran/dokumentasi.jpg",
"created_at": "2026-05-21T10:05:00.000000Z",
"updated_at": "2026-05-21T10:05:00.000000Z"
}
]
}
]
}
Example response (404):
{
"success": false,
"message": "Data tidak ditemukan",
"data": []
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan saat mengambil data",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Data WLA Harian
requires authentication
Example request:
curl --request POST \
"http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000/update" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "nama_wla=Input Data Harian"\
--form "jenis_wla=H"\
--form "jenis_target=Waktu"\
--form "nilai_target=08:00"\
--form "standar_durasi_menit=60"\
--form "standar_frekuensi=1"\
--form "bobot_tugas=20"\
--form "tipe_penilaian=min"\
--form "denda=10"\
--form "tanggal_kegiatan=2026-05-21"\
--form "realisasi_mulai=2026-05-21 08:00:00"\
--form "realisasi_selesai=2026-05-21 09:00:00"\
--form "total_durasi=60"\
--form "aktual_capaian=Selesai"\
--form "files[]=@C:\Users\DC03\AppData\Local\Temp\phpF31E.tmp" const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000/update"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('nama_wla', 'Input Data Harian');
body.append('jenis_wla', 'H');
body.append('jenis_target', 'Waktu');
body.append('nilai_target', '08:00');
body.append('standar_durasi_menit', '60');
body.append('standar_frekuensi', '1');
body.append('bobot_tugas', '20');
body.append('tipe_penilaian', 'min');
body.append('denda', '10');
body.append('tanggal_kegiatan', '2026-05-21');
body.append('realisasi_mulai', '2026-05-21 08:00:00');
body.append('realisasi_selesai', '2026-05-21 09:00:00');
body.append('total_durasi', '60');
body.append('aktual_capaian', 'Selesai');
body.append('files[]', document.querySelector('input[name="files[]"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Example response (200):
{
"success": true,
"message": "Data WLA Harian, Realisasi, dan Lampiran berhasil diperbarui",
"data": {
"wla": {
"id": "uuid-wla",
"id_struktur_organisasi": "uuid-struktur",
"nama_wla": "Input Data Harian",
"jenis_wla": "H",
"jenis_target": "Waktu",
"nilai_target": "08:00",
"standar_durasi_menit": 60,
"standar_frekuensi": 1,
"bobot_tugas": "20%",
"tipe_penilaian": "min",
"denda": 10,
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T09:00:00.000000Z"
},
"realisasi": {
"id": "uuid-realisasi",
"id_wla": {
"id_wla_harian": "uuid-wla"
},
"id_karyawan": "uuid-karyawan",
"tanggal_kegiatan": "2026-05-21",
"realisasi_mulai": "2026-05-21 08:00:00",
"realisasi_selesai": "2026-05-21 09:00:00",
"total_durasi": "60",
"aktual_capaian": "Selesai",
"status_submit": "selesai",
"status_item": "review",
"current_step": 1,
"score": null,
"revisi_count": 0,
"created_at": "2026-05-21T08:00:00.000000Z",
"updated_at": "2026-05-21T09:00:00.000000Z"
}
}
}
Example response (404):
{
"success": false,
"message": "Data tidak ditemukan"
}
Example response (422):
{
"success": false,
"message": "Validation error",
"errors": {
"realisasi_selesai": [
"The realisasi selesai must be a date after realisasi mulai."
]
}
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Data WLA Harian
requires authentication
Example request:
curl --request DELETE \
"http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://10.10.1.109:8000/api/work_load_analysis/harian/550e8400-e29b-41d4-a716-446655440000"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Example response (200):
{
"success": true,
"message": "Data WLA Harian, Realisasi, beserta seluruh Berkas Lampiran berhasil dihapus secara permanen"
}
Example response (404):
{
"success": false,
"message": "Data tidak ditemukan"
}
Example response (500):
{
"success": false,
"message": "Terjadi kesalahan saat menghapus data",
"error": "Error message"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.