REST API Changelog
Notable changes to the Acorn REST API, with upgrade notes to help you decide whether and how to move to the latest version.
REST API v1.2 — 2026-08-05
Migrated the API documentation to this new website. The docs were previously distributed as a Postman collection; they are now published here, with a downloadable Postman collection available from each version page.
Upgrading from v1.1
The Completions API is now a synchronous, cursor-paginated change feed: consumers sync once, then keep polling a cursor to receive only what changed. See the Completions endpoint docs for the full consumer lifecycle.
- All endpoints are now addressed under
api/1.2(previously a mix ofapi/1andapi/1.1). The older path segments continue to work, and only the completions endpoint has behavioural changes — for everything else the new segment is a rename only. - Breaking:
GET …/completionsno longer queues requests — therequestidpolling flow and thepaginate,page,perPageanddisablePollingWithPaginationparameters are removed. Responses are always synchronous and always cursor-paginated. Replace any polling loop with the cursor loop: follownext_page_urluntilnext_cursorisnull, then keep polling the last non-null cursor. - Breaking: completions are ordered by change time ascending, no longer by title.
- No authentication changes.
- Typical integration effort: replacing the
requestidpolling loop with the cursor loop — a small, self-contained change for most integrations.
Added
- New endpoint:
POST …/tenancies/{tenancy_id}/logindeeplink— exchange a username for a short-lived, single-use login URL for portal and intranet integrations. Newly documented; it behaves identically on all supported API versions. - New Forms endpoints:
GET …/forms,GET …/form/{formId},GET …/submissionsandGET …/submission/{submissionId}— read access to forms and their submissions. New in v1.2; not available on v1.1. - New endpoint:
GET …/generate_certificate_external/…(Completion Certificate) — download the PDF certificate for a completion. New in v1.2; not available on v1.1. - Completions:
updatedSince,cursorandlimit(default 50, max 500) request parameters. - Completions: records now carry
completionid(a stable identity to upsert on) andlastupdated(when the record last changed, directly reusable asupdatedSince).
Changed
- Completions results reflect changes with up to ~60 seconds of delay — a fixed settling window that guarantees a cursor position never skips rows.
- Course Enrolment and Onboarding Users now document their inputs as a JSON request body instead of query parameters. Existing query-parameter integrations continue to work; the body form is the documented way and keeps personal data out of URL logs.
- The API now sends CORS headers, so browser-based clients — including the try-it client on these docs pages — can call it directly. Applies to all supported API versions. Your API key remains a server-side credential: don't embed it in end-user-facing web apps.
- Docs: every asynchronous (
requestid-polling) endpoint now explains the polling flow and includes aProcessingresponse example — previously only a few endpoints documented the initial{"status": "Processing"}response. No API behaviour change.