Docs

Get Started

Let's get you ready to ship a basic Coassemble integration: authenticate, request a signed embed URL, and render it in an iframe. We recommend starting with a learner-facing course embed, then expanding to other embeddables as needed.

Before you begin

  • Your workspace has the API enabled and you have a workspace API key. You can generate or regenerate the key from your workspace API settings.
  • You have at least one course in Coassemble that you can embed.
  • You have a stable identifier from your app (for example, a user ID from your database). This is used to identify your learner within Coassemble.

Entitlements

The API and embeddables are gated behind a paid plan with API access enabled. Authoring, analytics, advanced, and SCORM features each require their own entitlement on top of base API access — endpoints that need these will return a 403 FORBIDDEN if your plan does not include them. See the plan matrix on the Coassemble pricing page.

1. Set your Authorization header

Every request to the Coassemble API uses this format. The key encodes your workspace ID, so it is the entire header value.

Authorization: COASSEMBLE:<YOUR_WORKSPACE_ID>:<YOUR_API_KEY>

2. Fetch a course ID to embed

If you do not already have a course ID, fetch your courses and select one.

GET/v1/headless/courses

Query parameters

FieldTypeRequiredDefaultDescriptionOptions
identifierstringNo
clientIdentifierstringNo
lengthnumberNo100
pagenumberNo0
titlestringNo
deletedbooleanNofalse

3. Request a signed embed URL

Request a signed URL for the course player. For a learner integration, the minimum body you will need is action, courseId, and identifier.

POST/v1/headless/embed/course

Body parameters

FieldTypeRequiredDescOptions
actionstringYesview (learner) or edit (authoring)viewedit
courseIdnumberNoCourse ID (required when action is view)
identifierstringYesYour stable user identifier
clientIdentifierstringNoThe client this user belongs to
themeIdnumberNoTheme ID to render the embed with
namestringNoDisplay name for the learner
avatarstringNoAvatar URL for the learner
optionsobjectNo

4. Render the signed URL in an iframe

Put the signed URL returned by the embed endpoint into your iframe src.

<iframe src="SIGNED_EMBED_URL"></iframe>
info

Security requirements: The workspace API key must be stored exclusively on your server — the browser never holds it. Generate a fresh signed URL per user per page load; do not cache or reuse signed URLs across different users or sessions. Direct browser-to-API calls are not supported.

Next steps

  • Handle learner events via window.postMessage (progress, completion, quiz events) from the Course Player embeddable.
  • Embed authoring with action: edit if you want to allow your users to create courses in your platform.
  • Use other embeddables (collections, analytics, lists, cards) from the Embeddables section.