Court Types & Levels
Above a court branch sits a three-level hierarchy: a court type (e.g. Regional Trial Court), a court level (e.g. First Level, Second Level), and a court station (a province-scoped grouping of branches for a given court type, e.g. "Quezon City RTC").
Court types
Properties
- Name
id- Type
- string
- Description
Unique identifier for the court type.
- Name
name- Type
- string
- Description
The court type's name, e.g.
"Regional Trial Court". 2–100 characters.
- Name
code- Type
- string
- Description
A unique short code, e.g.
RTC.
- Name
description- Type
- string | null
- Description
Free-text description.
- Name
court_level- Type
- string
- Description
The
codeof the parent court level.
- Name
status- Type
- string
- Description
One of
active,inactive.
- Name
order_column- Type
- integer
- Description
Display/sort order.
List all court types
Retrieve all court types, ordered by order_column.
Request
curl https://your-domain.com/api/court-types \
-H "Accept: application/json" \
-H "X-XSRF-TOKEN: {token}" \
--cookie "cms_admin_session={session}"
Response
{
"data": [
{
"id": "6d5c4b3a-2918-0f7e-6d5c-4b3a29180f7e",
"name": "Regional Trial Court",
"code": "RTC",
"description": null,
"status": "active",
"court_level": {"id": "4b3a2918-0f7e-6d5c-4b3a-29180f7e6d5c", "name": "Second Level", "code": "2L"},
"order_column": 3
}
]
}
Create a court type
Required attributes
- Name
name- Type
- string
- Description
2–100 characters.
- Name
code- Type
- string
- Description
Must be unique.
- Name
court_level- Type
- string
- Description
Must reference the
codeof an existing court level.
- Name
status- Type
- string
- Description
Either
activeorinactive.
Optional attributes
- Name
description- Type
- string
- Description
Free-text description.
Request
curl -X POST https://your-domain.com/api/court-types \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-XSRF-TOKEN: {token}" \
--cookie "cms_admin_session={session}" \
-d '{"name": "Metropolitan Trial Court", "code": "MeTC", "court_level": "1L", "status": "active"}'
Response
{
"data": {
"id": "3a291807-6f5e-4d3c-3a29-18076f5e4d3c",
"name": "Metropolitan Trial Court",
"code": "MeTC",
"status": "active",
"created_at": "2026-02-20T10:30:00+00:00"
}
}
Court levels
Properties
- Name
id- Type
- string
- Description
Unique identifier for the court level.
- Name
name- Type
- string
- Description
The level's name, e.g.
"First Level","Second Level". 2–100 characters.
- Name
code- Type
- string
- Description
A unique short code, e.g.
1L.
- Name
description- Type
- string | null
- Description
Free-text description.
- Name
status- Type
- string
- Description
One of
active,inactive.
List all court levels
Retrieve all court levels.
Request
curl https://your-domain.com/api/court-levels \
-H "Accept: application/json" \
-H "X-XSRF-TOKEN: {token}" \
--cookie "cms_admin_session={session}"
Response
{
"data": [
{"id": "4b3a2918-0f7e-6d5c-4b3a-29180f7e6d5c", "name": "Second Level", "code": "2L", "status": "active"},
{"id": "2918-0f7e-6d5c-4b3a-29180f7e6d5c-4b3a", "name": "First Level", "code": "1L", "status": "active"}
]
}
Create a court level
Required attributes
- Name
name- Type
- string
- Description
2–100 characters.
- Name
code- Type
- string
- Description
Must be unique.
- Name
status- Type
- string
- Description
Either
activeorinactive.
Optional attributes
- Name
description- Type
- string
- Description
Free-text description.
Request
curl -X POST https://your-domain.com/api/court-levels \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-XSRF-TOKEN: {token}" \
--cookie "cms_admin_session={session}" \
-d '{"name": "First Level", "code": "1L", "status": "active"}'
Response
{
"data": {
"id": "0f7e6d5c-4b3a-2918-0f7e-6d5c4b3a2918",
"name": "First Level",
"code": "1L",
"status": "active",
"created_at": "2026-02-20T10:30:00+00:00"
}
}
Court stations
A court station groups branches of a given court type within a province — e.g. all RTC branches in Quezon City.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the court station.
- Name
name- Type
- string
- Description
The station's name, e.g.
"Quezon City". 2–100 characters.
- Name
code- Type
- string
- Description
A unique short code, e.g.
QC-RTC.
- Name
court_type_id- Type
- string
- Description
The parent court type.
- Name
province_code- Type
- string
- Description
The PSGC code of the province this station is located in — see Locations.
Create a court station
Required attributes
- Name
name- Type
- string
- Description
2–100 characters.
- Name
code- Type
- string
- Description
Must be unique.
- Name
court_type_id- Type
- string
- Description
Must reference an existing court type.
- Name
province_code- Type
- string
- Description
Must reference an existing province.
Request
curl -X POST https://your-domain.com/api/court-type-stations \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-XSRF-TOKEN: {token}" \
--cookie "cms_admin_session={session}" \
-d '{
"name": "Quezon City",
"code": "QC-RTC",
"court_type_id": "6d5c4b3a-2918-0f7e-6d5c-4b3a29180f7e",
"province_code": "1374"
}'
Response
{
"data": {
"id": "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
"name": "Quezon City",
"code": "QC-RTC",
"province_code": "1374",
"court_type_id": "6d5c4b3a-2918-0f7e-6d5c-4b3a29180f7e",
"created_at": "2026-02-20T10:30:00+00:00"
}
}
Case categories & types
Every case record also references a case category (e.g. Civil, Criminal) and a case type (e.g. Collection of Sum of Money), managed via /api/case-categories and /api/case-types with the same create/update shape as above (name, code, description, status). A case type additionally has case_category_id, classification (drives Individual/Juridical/Government Agency party labels), and has_counsels (whether counsel fields apply to this case type).