Changelog¶
What changed in the Partner API, newest first. Action required tells you whether your integration needs to do anything.
Why some changes need a full re-sync
Adding a field does not bump updatedAt on existing records, so a delta cursor
(updatedAt[after]=…) will never fetch it — the records look unchanged. Where that
applies, the table below says so.
| Date | Change | Action required |
|---|---|---|
| 2026-10-13 | Courses gain publishedAt, the moment a course was first released, and GET /courses accepts publishedAt[after], [before], [strictly_after] and [strictly_before] to fetch newly released courses rather than merely edited ones. See New releases. Courses released before this change omit the field |
None. Optional: use publishedAt[after] to surface new courses |
| 2026-10-08 | Course images can be resized and converted on request: append ?width=, ?format= and ?quality= to thumbnailUrl or heroImageUrl. See Course Imagery. No API field changed. smallThumbnailUrl is now documented as always absent |
None. Recommended: request a sized image (for example ?width=400&format=auto) instead of the full resolution master |
| 2026-09-22 | POST /users/register now reports validation failures the way every other validated route does: 422 (was 400), with a single violations[] array whose entries are keyed propertyPath (was field). The unknown or inactive organizationId case moved out of its own errors[] array and into violations[] as propertyPath: "organizationId" |
None if you only check the status class. If you parse the body, read violations[].propertyPath; drop any handling of errors[], field or the validation_failed code on this endpoint. Malformed JSON is still a 400 |
| 2026-09-18 | GET /users added: list the users you registered, with the updatedAt delta filter. Recording a marketing consent decision now moves updatedAt on the learner's records, so an opt-out you did not collect yourself shows up on your cursor |
None to keep working. To start picking up consent changes, poll /users the way you already poll the other collections |
| 2026-08-05 | Course artwork added: thumbnailUrl (card), smallThumbnailUrl (list), heroImageUrl (banner) |
One full re-sync of /courses with no updatedAt filter, if you cached the catalog before this date |
| 2026-08-05 | applicableStandards added to courses — the Applicable NFPA Standards panel, as authored HTML, display only |
One full re-sync, same reason |
Reporting a discrepancy¶
If the API behaves differently from what these pages describe, tell your FSRI contact — the API is the source of truth and the documentation is corrected to match it.