Skip to main content

Competencies and Certifications through the API

Export, create, update and delete Competencies and Certifications with the Mobaro API, including an expiry report recipe and what Process Certifications block.

Written by Logan Bowlby

Overview

The Mobaro API gives your systems the same Competencies and Certifications you see under Competencies in the Backend. Use it to export who is qualified for what to a compliance report or HR system, to record training done elsewhere as Certifications, and to keep your list of Competencies in step with a training catalogue.

This article covers the Competencies and Certifications endpoints and a recipe for an expiry report. For how Competencies and Certifications work, see Utilizing Competencies.

At a glance

Who can do this

An integration with an API key. Exports work with a Read-only key; creating, updating and deleting need a key that isn't Read-only.

Where

/api/customers/competencies and /api/customers/certifications. Keys: Configuration › API › API Keys

Works on

Public API. Changes apply in the Backend (web), Mobile app and RideOps.

Availability

API access, enabled per organization by Mobaro — ask your CSM

💡 Why this matters: A Certification decides whether someone may take a RideOps position or start a Checklist that requires the Competency. An integration that creates, changes or deletes Certifications changes who is allowed to operate, straight away.


Competencies endpoints

Request

What it does

GET /competencies

Lists Competencies with id, name and description. Sort with OrderBy=name or -name.

GET /competencies/{id}

Gets one Competency.

POST /competencies

name (required) and description. Returns the new ID.

PUT /competencies/{id}

Changes name or description.

DELETE /competencies/{id}

Deletes the Competency and everything that depends on it (see below).

🛑 Critical: Deleting a Competency through the API does exactly what it does in the Backend, and can't be undone: every Certification for it is deleted, including ones from Certification Processes; every Certification Process that awards it is deleted; and it's removed as a requirement from other Processes, Schedules, Ad Hoc Slot triggers in Checklists and RideOps Locations. See How to create a Competency.


Read Certifications

GET /api/customers/certifications lists Certifications, expired ones included, one page at a time (Limit up to 128, Offset). Each item has:

Field

Meaning

user, competency

ID and name of the User and the Competency.

awarded

When the Certification was created in Mobaro.

expiration

When it expires. null means Never expires.

renewal

The Mark as due for renewal date, or null.

type

"Manual" (created in the Backend or API) or "Process" (awarded by a Certification Process).

notes, attachments

The Notes and attached file IDs.

Filters: Competencies (one or more Competency IDs; repeat the parameter), and AwardedAfter / AwardedBefore. Sort with OrderBy: created, expiration or renewal, with a - prefix for newest first. There's no filter by User or by expiry date, so filter those in your own system. Certifications of deleted Users are deleted with them and never appear. See Visibility and retention of certifications.


Build an expiry report

1. Page through the Certifications

GET https://app.mobaro.com/api/customers/certifications?OrderBy=expiration&Limit=128&Offset=0
x-api-key: YOUR_API_KEY

Increase Offset by 128 until you have total items. Add Competencies=competencies/… to report on one Competency.

2. Work out each status

Use the same rules as the Backend:

  • Expired: expiration is in the past. The User no longer holds the Competency.

  • Due for renewal: renewal is in the past but expiration isn't.

  • Valid: everything else, including expiration null.

3. Find who is missing a Competency

Compare the Certifications with your Users from GET /api/customers/users. A User with no valid Certification for a Competency doesn't hold it. For ready-made views in the Backend, see Certification reporting and compliance dashboards.


Create and change Certifications

POST /api/customers/certifications records a manual Certification. The User holds the Competency as soon as it's created.

{
"user": "users/123456-A",
"competency": "competencies/987-A",
"notes": "External course, completed 2026-03-02",
"expiration": "2027-03-02T00:00:00Z",
"renewal": "2027-02-01T00:00:00Z"
}
  • user and competency are required. Leave out expiration for Never expires.

  • renewal is kept only when expiration is set.

  • attachments takes file IDs (files/…) from POST /api/customers/files/create. Anything else is dropped.

  • awarded is always the time of the request: you can't backdate a Certification. Put the original date in notes if you need it.

PUT /api/customers/certifications/{id} changes notes, expiration, renewal and attachments; only the fields you send change. The User and Competency can't be changed: delete and create instead. DELETE /api/customers/certifications/{id} deletes a manual Certification.

⚠️ Heads-up: Certifications with type Process can't be changed or deleted through the API: an update returns 405 Method Not Allowed and a delete is refused. Remove them by disapproving or invalidating the Result that awarded them. See Deleting Certifications.


Best practices

  • Use a Read-only key for compliance exports.

  • Page with a fixed OrderBy so no Certification is skipped or repeated between pages.

  • Before recording training from another system, check that the User doesn't already hold a valid Certification for that Competency.

  • Never delete Competencies from an integration unless someone has confirmed it: the cascade removes every Certification for it.


Frequently asked questions

How can I export all certifications for every team member?

Page through GET /api/customers/certifications: it returns every Certification, expired ones included, with the User, Competency and dates. For views in the Backend, see Certification reporting and compliance dashboards.

Can I import our existing training records?

Yes, as manual Certifications with POST /api/customers/certifications, one per User and Competency. Set expiration so they expire on time. The awarded date will be the import date.

Why does updating a certification return 405?

It was awarded by a Certification Process, so it can't be edited. Only manual Certifications can be updated or deleted through the API.

Can I get one User's certifications?

Not with a filter. List the Certifications and keep the items whose user.id matches. The Competencies filter narrows the list first.

Did this answer your question?