Skip to content

Content Participations API

Updated 20 Sept 2026

Content Participations API is the primary integration entry point for study reporting. It returns users’ study records, their state, and links to content.

Study records are created in Knowspread, but the systems around it need to read them too: HR, the data warehouse, the qualification register. This endpoint is where they collect them without anyone retyping spreadsheets.

  • A nightly sync takes only what changed. The HR system needs to know who completed mandatory training. Each night the integration requests the listing filtered by updated_at since the last run and transfers only new and changed records. It never downloads the whole history again.
  • The BI system gets completion state, not copied counts. Management wants to see how many people completed the training and how many did not. The integration filters the listing by state and completed_at and feeds the data warehouse. Nobody copies numbers off a screen.
  • A certificate lands in the personnel file. An employee finishes training and the HR system requests the certificate. When the endpoint answers 202 Accepted, the integration repeats the request a little later; once it redirects to the PDF, it stores the file with the record. Manual downloading and attaching goes away.

When you need one specific record, you reach for the detail. It requires the relation through the user and their membership in the company space; the participation ID alone is not enough.

The listing supports filtering by:

  • state,
  • completed_at,
  • updated_at,
  • pagination,
  • sorting.

A typical use case is incremental synchronization into an external HR or BI system.

Detail verifies that the study record belongs to a user in the given company space. Knowing the participation ID is not enough; the relation through the user and membership must exist.

The certificate endpoint can:

  • redirect to a ready PDF,
  • return 202 Accepted while the PDF is still being generated.

Integrators must account for polling or asynchronous processing.