Coassemble is a headless learning management and course-authoring platform that lets you build, deliver, and track online training. Its headless API exposes courses, learner tracking, and client/user identity provisioning, and supports embedding courses directly into your own application via signed URLs.
Power end-to-end data operations for your Coassemble API with Nexla. Our bi-directional Coassemble connector is purpose-built for Coassemble, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Coassemble or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Coassemble workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Coassemble credential in Nexla, you must enable the headless API in your Coassemble workspace and obtain your API credentials. The Coassemble headless API authenticates each request using two values issued together: a User ID and an API key (also called the User Token). Both values are combined into a COASSEMBLE-V1-SHA256 Authorization header, which Nexla constructs automatically once you supply the two values.
Open the Settings menu, and navigate to the Add-ons section.
Locate the API add-on, and click it to open the API configuration page.
Complete the short entry survey, and enable the API for your workspace.
After enabling the API, your workspace will initially be in test mode, allowing you to configure and validate your integration before purchasing and going live. The same credentials are used in test mode and live mode.
Once the API is enabled, your User ID and API key are displayed on the API add-on page. Copy both values and store them securely, as the API key authenticates Nexla with your account on every request.
Treat your Coassemble API key like a password. Anyone with the User ID and API key can read and modify courses, learners, and identities in your workspace. If a key is exposed, regenerate it from the API add-on page and update the credential in Nexla.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Coassemble workspace User ID in the User ID field. This value is found on the API add-on page in your workspace settings, alongside the API key.
Enter your Coassemble API key in the API Key field. This is the User Token displayed on the same API add-on page. Nexla combines the User ID and API key into the COASSEMBLE-V1-SHA256 Authorization header that the headless API requires.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Coassemble connector tile, then select the credential that will be used to connect to the Coassemble instance, and click Next; or, create a new Coassemble credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Coassemble endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
List Courses
This endpoint returns a paginated list of all courses in your Coassemble account. Use it to ingest your full course catalog, including course metadata, for reporting or to drive downstream flows that reference course IDs.
This endpoint requires no additional configuration. Select the template, and Nexla automatically retrieves all courses accessible to your workspace.
The endpoint is paginated and steps through pages automatically, fetching additional pages of results until all courses have been ingested.
The response is a JSON array of course objects. Each element is treated as an individual record. Course IDs returned here can be used as input for the Get Course By ID, Export Course As SCORM, and List Course Translations endpoints.
Get Course By ID
This endpoint fetches a single course by its numeric ID, returning the full course detail. Use it when you need the complete structure and metadata for one specific course rather than the summary list.
Enter the numeric ID of the course to retrieve in the Course ID field. You can obtain course IDs by first running the List Courses endpoint.
The endpoint returns a single course object, which is treated as one record.
This endpoint is not paginated because it returns a single course. Ensure the Course ID corresponds to a course in your workspace.
List Screen Types
This endpoint is a reference-data lookup that returns the list of available screen component types used when building courses. It is not a live learner-data endpoint, but is useful for understanding or validating the screen types supported when authoring courses programmatically.
This endpoint requires no additional configuration. Select the template, and Nexla retrieves the full list of available screen types.
The response is a JSON array, with each screen type treated as an individual record.
Screen types are static reference data and change infrequently. This endpoint is most useful as a one-time or low-frequency ingestion.
List Trackings
This endpoint returns a paginated list of tracking objects, which store learner progress and completion records. Use it to ingest learning analytics for reporting on course engagement and completions across your learners.
This endpoint requires no additional configuration. Select the template, and Nexla automatically retrieves all tracking objects accessible to your workspace.
The endpoint is paginated and steps through pages automatically until all tracking records have been ingested.
Tracking objects link learners and courses with progress and completion data. For details on the structure of tracking records, refer to the Coassemble Tracking API documentation.
Get Tracking By ID
This endpoint fetches a single tracking object by its ID, returning the full progress and completion detail for that record. Use it when you need detailed tracking data for one specific learner-course record.
Enter the unique identifier of the tracking object to retrieve in the Tracking ID field. Tracking IDs can be obtained by first running the List Trackings endpoint.
The endpoint returns a single tracking object, which is treated as one record.
This endpoint requires headless authoring access. Ensure your workspace has the appropriate access level enabled for the headless API.
List Clients
This endpoint returns a paginated list of client identifiers, which represent tenant or organization-level learner groups in Coassemble. Use it to ingest your client identity directory for multi-tenant reporting or identity synchronization.
This endpoint requires no additional configuration. Select the template, and Nexla automatically retrieves all client identifiers accessible to your workspace.
The endpoint is paginated and steps through pages automatically until all clients have been ingested.
This endpoint returns a paginated list of learner user identifiers, optionally filtered by client identifier. Use it to ingest your learner directory for reporting or to keep learner identities in sync with downstream systems.
This endpoint requires no additional configuration to return all users. To filter users by a specific client, the response can be narrowed using the clientIdentifier query parameter via manual configuration.
The endpoint is paginated and steps through pages automatically until all users have been ingested.
This endpoint exports a course as a SCORM package for use in external learning management systems. Use it when you need to deliver a Coassemble course through a third-party LMS that supports SCORM.
Enter the unique identifier of the course to export in the Course ID field. Course IDs can be obtained by first running the List Courses endpoint.
The endpoint returns the SCORM export detail for the specified course as a single record.
SCORM is a widely supported standard for packaging e-learning content so it can be imported into external LMS platforms. Verify that your target LMS supports the SCORM version produced by Coassemble.
List Course Translations
This endpoint lists all translations for a parent course. Use it to ingest the set of available language versions for a course, for example to report on localization coverage.
Enter the numeric ID of the parent course whose translations should be listed in the Course ID field. Course IDs can be obtained by first running the List Courses endpoint.
The response is a JSON array of translation objects, with each translation treated as an individual record.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Coassemble data sources can also be manually configured to ingest data from any valid Coassemble API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters — such as filtering the user list by a specific client identifier. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
The Coassemble headless read endpoints use the GET method and share the base URL https://api.coassemble.com/api/v1/headless/—for example, https://api.coassemble.com/api/v1/headless/courses retrieves all courses. Coassemble list endpoints (such as courses, trackings, clients, and users) return a top-level JSON array of records, so the path to data should be entered as $[*] to treat each element as a record.
To filter the user list by a specific client, add the clientIdentifier query parameter to the endpoint URL. The COASSEMBLE-V1-SHA256 Authorization header is constructed automatically by Nexla based on your credential configuration and does not need to be added as a request header.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Coassemble data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Coassemble destination, and select the Send to Destination option from the menu. Select the Coassemble connector from the list of available destination connectors, then select the credential that will be used to connect to the Coassemble organization, and click Next; or, create a new Coassemble credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Coassemble endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Course Signed URL
This endpoint generates a signed URL used to embed a course for a learner. This is the recommended way to launch courses programmatically in a headless integration, as it supports all current and future Coassemble features and enables rich tracking.
This endpoint requires no path parameters. Each Nexset record is sent as the JSON request body, which should contain the course and learner details required to generate the signed URL.
The Coassemble API returns the generated signed URL in its response, which can be captured using the Response Webhook option.
For details on the fields required to generate a signed URL and how to embed the resulting course, refer to the Coassemble Developers documentation.
Generate Course (AI)
This endpoint programmatically creates a course using Coassemble's AI generator from a text prompt. Use it to automate course creation from structured content in your Nexsets.
This endpoint requires no path parameters. Each Nexset record is sent as the JSON request body and should include the generation parameters, such as the text prompt, audience, tone, familiarity, and screen count.
The API returns the generated course detail, which can be captured using the Response Webhook option.
This endpoint creates a copy of an existing course, preserving its screens and structure under a new course ID. Use it to create reusable course templates or per-client variants.
Enter the numeric ID of the course to duplicate in the Course ID field.
Each Nexset record is sent as the JSON request body for the duplicate operation.
The duplicated course is created as a new draft course with its own ID. Use the Publish Course endpoint to make the copy live to learners.
Publish Course
This endpoint publishes a draft or edited course, making it live to learners. Use it to promote course changes into production as part of an automated authoring workflow.
Enter the numeric ID of the course to publish in the Course ID field.
Each Nexset record is sent as the JSON request body for the publish operation.
Publishing makes the current version of the course visible to learners. To undo a publish, use the Revert Course endpoint.
Revert Course
This endpoint reverts a published course back to its last draft state, undoing the current published version. Use it to roll back a published course to its previous draft.
Enter the numeric ID of the course to revert in the Course ID field.
Each Nexset record is sent as the JSON request body for the revert operation.
Reverting returns the course to its last draft state. Learners will no longer see the previously published version until the course is published again.
Delete Course
This endpoint soft-deletes a course by ID. The course is removed from active use but can be restored later. Use it to retire courses while preserving the ability to recover them.
Enter the numeric ID of the course to soft-delete in the Course ID field.
Each Nexset record is sent as the JSON request body for the delete operation.
Because this is a soft delete, the course can be recovered using the Restore Course endpoint.
Restore Course
This endpoint restores a previously soft-deleted course. Use it to recover a course that was retired with the Delete Course endpoint.
Enter the numeric ID of the soft-deleted course to restore in the Course ID field.
Each Nexset record is sent as the JSON request body for the restore operation.
Only courses that were soft-deleted (not permanently removed) can be restored with this endpoint.
Update Client (Upsert)
This endpoint upserts a client identifier: it creates the client if it does not exist, or updates its arbitrary metadata key-value pairs. Use it to provision and maintain tenant or organization-level learner groups from your source data.
Enter the client identifier whose metadata is being updated in the Client Identifier field.
Each Nexset record is sent as the JSON request body and should contain the metadata key-value pairs to set on the client.
Because this operation is an upsert, the same flow can be used to both create new clients and update existing ones. For details on client metadata, refer to the Coassemble Identities API documentation.
Delete Client
This endpoint deletes all objects associated with a client identifier. Use it for off-boarding or GDPR-style data removal when a client should be fully removed from your workspace.
Enter the client identifier whose objects should be deleted in the Client Identifier field.
Each Nexset record is sent as the JSON request body for the delete operation.
This operation removes all data associated with the client and cannot be undone. Confirm the client identifier before activating the destination.
Update User (Upsert)
This endpoint upserts a user identifier: it creates the user if it does not exist, or updates the user's client identifier and/or metadata key-value pairs. Use it to provision and maintain learner identities from your source data.
Enter the user identifier whose client identifier or metadata is being updated in the User Identifier field.
Each Nexset record is sent as the JSON request body and should contain the client identifier and/or metadata to set on the user.
Because this operation is an upsert, the same flow can be used to both create new users and update existing ones. For details on user metadata, refer to the Coassemble Identities API documentation.
Delete User
This endpoint deletes all objects associated with an individual user identifier. Use it for learner de-provisioning or GDPR-style data removal.
Enter the user identifier whose objects should be deleted in the User Identifier field.
Each Nexset record is sent as the JSON request body for the delete operation.
This operation removes all data associated with the user and cannot be undone. Confirm the user identifier before activating the destination.
Delete Tracking
This endpoint deletes a tracking object by course ID and learner identifier, resetting a learner's progress for a course. Use it to clear progress records when a learner should restart a course.
This endpoint requires no path parameters. Each Nexset record is sent as the JSON request body and should identify the course and learner whose tracking should be deleted.
Deleting a tracking object resets the associated learner's progress and completion data for that course and cannot be undone.
Create Course Translation
This endpoint creates a new translation for a course. Use it to add localized language versions of a course as part of an automated localization workflow.
Enter the numeric ID of the course to create a translation for in the Course ID field.
Each Nexset record is sent as the JSON request body and should include the translation details, such as the target language.
This endpoint makes a translation the default version for a parent course and language. Use it to control which localized version learners see by default.
Enter the numeric ID of the parent course in the Course ID field.
Enter the language code of the translation to set as default in the Language Code field.
Each Nexset record is sent as the JSON request body for the operation.
The language code must match an existing translation for the parent course. Use the List Course Translations source endpoint to confirm available translations.
Sync Translation
This endpoint syncs a translation with the latest source-course screen changes. Use it to keep localized versions up to date after the parent course is edited.
Enter the numeric ID of the parent course in the Course ID field.
Enter the language code of the translation to sync in the Language Code field.
Each Nexset record is sent as the JSON request body for the sync operation.
Syncing applies the latest screen changes from the parent course to the specified translation, helping keep localized content consistent.
Delete Translation
This endpoint deletes a translation for a parent course and language. Use it to remove a localized version that is no longer needed.
Enter the numeric ID of the parent course in the Course ID field.
Enter the language code of the translation to delete in the Language Code field.
Each Nexset record is sent as the JSON request body for the delete operation.
Deleting a translation removes that localized version of the course and cannot be undone.
Coassemble destinations can also be manually configured to send data to any valid Coassemble API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Coassemble headless write endpoints use POST for creating, generating, duplicating, publishing, restoring, and reverting courses, generating signed URLs, and creating, syncing, or setting default translations; PUT for upserting clients and users; and DELETE for deleting courses, clients, users, tracking objects, and translations. Coassemble headless endpoints accept JSON, so select the JSON content format.
Coassemble headless endpoints share the base URL https://api.coassemble.com/api/v1/headless/. For operations that target a specific object, include the ID at the appropriate position in the URL—for example, https://api.coassemble.com/api/v1/headless/course/12345/publish publishes the course with ID 12345. The COASSEMBLE-V1-SHA256 Authorization header is constructed automatically by Nexla based on your credential configuration and does not need to be added as a request header. Enabling the response webhook option lets you capture the response from each call—for example, a generated signed URL or a newly created course ID.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Coassemble, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Coassemble until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.