Certificate Types
A certificate type is a lightweight category that certificates can be grouped under (e.g. "Compliance", "Safety"). These endpoints manage the types themselves.
Required scope: read:certificatetypes for the GET endpoints, write:certificatetypes for the rest.
Endpoints
/api/open/v1/certificatetypesList certificate types (paginated)
/api/open/v1/certificatetypes/{id}Get a single certificate type
/api/open/v1/certificatetypesCreate a certificate type (draft by default)
/api/open/v1/certificatetypes/{id}Update a certificate type (PUT works the same)
/api/open/v1/certificatetypes/{id}Soft delete a certificate type (returns 204)
List
curl "https://customer.monotree.com/api/open/v1/certificatetypes" \
-H "Authorization: Bearer mono_your_token_here"| Query param | Notes |
|---|---|
is_published | true returns published types only, false returns drafts only. Omit for all. |
since | ISO 8601 — filter by created_at. |
page, per_page | Standard pagination — per_page max 50. |
Newest first, by created_at.
Create
curl -X POST https://customer.monotree.com/api/open/v1/certificatetypes \
-H "Authorization: Bearer mono_your_token_here" \
-H "Content-Type: application/json" \
-d '{ "title": "Compliance", "is_published": true }'Request body
| Field | Type | Notes |
|---|---|---|
title | string | Required. Max 255 characters. |
is_published | boolean | Optional. true publishes immediately. Defaults to false (draft). |
Returns 201 with the type object.
PUT and PATCH accept the same fields — all optional — and only change what you send. Setting is_published toggles the published state. Returns 200 with the type object.
DELETE /certificatetypes/{id} soft-deletes the type and returns 204. Certificates that were grouped under it then show certificate_type: null.
Response
{
"data": {
"id": 3,
"title": "Compliance",
"is_published": true,
"published_at": "2026-06-01T10:00:00+02:00",
"created_at": "2026-06-01T10:00:00+02:00",
"updated_at": "2026-06-01T10:00:00+02:00"
}
}