Watershed
Learning record store for tracking and analyzing learning experiences
| API | Protocol | Base URL | Docs | Reference | OpenAPI | SDKs |
|---|---|---|---|---|---|---|
| XAPI LRS API | rest | https://watershedlrs.com/api/organizations/%7Borg-id%7D/lrs | link | — | — | — |
| Aggregation API | rest | https://watershedlrs.com/api/organizations/%7Borg-id%7D/aggregation | link | — | — | — |
| Data Export API | rest | https://watershedlrs.com/api/organizations/%7Borg-id%7D/query/export | link | — | — | — |
| Administration APIs | rest | https://watershedlrs.com/api | link | — | — | — |
| Dashboard API | rest | https://watershedlrs.com/api | link | — | — | — |
Actions (62)
Groups · 10
- Create GroupPOST /api/organizations/{org_id}/groups
Create a new group in the organization.
documented - Create GroupPOST /api/organizations/{org_id}/groups
Create a new group in the organization.
documented - Delete GroupDELETE /api/organizations/{org_id}/groups/{group_id}
Delete a group.
documented - Get Group by Custom IdGET /api/organizations/{org_id}/groups?customId={custom_id}
Retrieve a group by its customId.
documented - Get Group by IdGET /api/organizations/{org_id}/groups/{group_id}
Retrieve a group by its id.
documented - Get Members by Group IdGET /api/organizations/{org_id}/groups/{group_id}/members
Get direct members of a group (and indirect ones via childDepth).
documented - Get Multiple Groups by IdGET /api/organizations/{org_id}/groups/multi
Retrieve multiple groups by their IDs.
documented - List GroupsGET /api/organizations/{org_id}/groups
Get a list of groups in the organization.
documented - Update GroupPUT /api/organizations/{org_id}/groups/{group_id}
Update a group (metadata, not membership).
documented - Update Multiple GroupsPUT /api/organizations/{org_id}/groups/multi
Update multiple groups in a batch.
documented
Credentials · 9
- Create Activity ProviderPOST /api/organizations/{org_id}/activity-providers
Create a new activity provider (credentials set).
documented - Create SessionPOST /api/organizations/{org_id}/activity-providers/{activity_provider_id}/sessions
Create a new session (short-lived credentials) under an activity provider.
documented - Delete Activity ProviderDELETE /api/organizations/{org_id}/activity-providers/{activity_provider_id}
Delete an activity provider.
documented - Delete SessionDELETE /api/organizations/{org_id}/activity-providers/{activity_provider_id}/sessions/{session_key}
Delete/expire a session.
documented - Extend SessionPUT /api/organizations/{org_id}/activity-providers/{activity_provider_id}/sessions/{session_key}
Extend an existing session expiration.
documented - Get Activity ProvidersGET /api/organizations/{org_id}/activity-providers
List activity providers for the organization.
documented - Get SessionGET /api/organizations/{org_id}/activity-providers/{activity_provider_id}/sessions/{session_key}
Retrieve a session by key.
documented - List Self SessionsGET /api/organizations/{org_id}/activity-providers/self/sessions
List sessions for the current activity provider (self).
documented - Update Activity ProviderPUT /api/organizations/{org_id}/activity-providers/{activity_provider_id}
Update an existing activity provider.
documented
Permissions · 9
- Create a PermissionPOST /api/organizations/{org_id}/group-permissions/
Create a new permission (linking a person or a group to a target group).
documented - Delete a PermissionDELETE /api/organizations/{org_id}/group-permissions/{permission_id}
Delete a permission.
documented - Edit a PermissionPUT /api/organizations/{org_id}/group-permissions/{permission_id}
Update an existing permission.
documented - Get a Permission by IdGET /api/organizations/{org_id}/group-permissions/{permission_id}
Retrieve a specific permission by its id.
documented - Get all permissionsGET /api/organizations/{org_id}/group-permissions
List all group permissions.
documented - Read Permissions Targeting a GroupGET /api/organizations/{org_id}/groups/{group_id}/targeting-permissions
List permissions directly targeting the group.
documented - Read Permissions Targeting a PersonGET /api/organizations/{org_id}/people/{person_id}/targeting-permissions
List permissions directly targeting the person.
documented - Read Permissions for a GroupGET /api/organizations/{org_id}/groups/{group_id}/permissions
List permissions affecting the group.
documented - Read Permissions for a PersonGET /api/organizations/{org_id}/people/{person_id}/permissions
List permissions affecting the person (direct and via groups).
documented
People · 8
- Add PersonPOST /api/organizations/{org_id}/people/
Create a new person in the organization.
documented - Delete PersonDELETE /api/organizations/{org_id}/people/{person_id}
Delete a person.
documented - Get Person by Custom IdGET /api/organizations/{org_id}/people/?customId={custom_id}
Retrieve a person by their customId.
documented - Get Person by IdGET /api/organizations/{org_id}/people/{person_id}
Retrieve a person by their Watershed ID.
documented - Get Person by Id (duplicate check)GET /api/organizations/{org_id}/people/{person_id}
Retrieve a person by their Watershed ID (duplicate entry for clarity).
documented - Get Person by PersonaGET /api/organizations/{org_id}/people/with-persona
Retrieve a person by a matching persona.
documented - List PeopleGET /api/organizations/{org_id}/people
Retrieve a list of people in the organization.
documented - Update PersonPUT /api/organizations/{org_id}/people/{person_id}
Update an existing person.
documented
Cards · 7
- Create CardPOST /api/cards
Create a new hidden card to be added to a dashboard or card group.
documented - Delete CardDELETE /api/cards/{card_id}
Delete a card by id.
documented - Get Card by IdGET /api/cards/{card_id}
Retrieve a card by its id.
documented - Group CardsPOST /api/cards/{source_card_id}/group-with/{target_card_id}
Group one card with another (creates a group if needed).
documented - List CardsGET /api/organizations/{org_id}/cards
Retrieve all cards for the organization.
documented - Move Card to GroupPOST /api/cards/{card_id}/move-to-group/{target_group_id}
Move a card into a target group (removing from other groups).
documented - Update CardPUT /api/cards/{card_id}
Update an existing card.
documented
CSV Import · 5
- List CSV ImportsGET /api/organizations/{org_id}/csv-import
List CSV imports for the organization.
documented - List CSV Imports by TemplateGET /api/organizations/{org_id}/csv-import?template={template_name}
Filter CSV imports by template name.
documented - Preview CSV UploadPOST /api/organizations/{org_id}/statement-import/preview
Preview a CSV upload (shows generated statements and errors) before full import.
documented - Upload CSV ImportPOST /api/organizations/{org_id}/csv-import
Upload a CSV file to import into Watershed (creates an import job).
documented - Void CSV ImportDELETE /api/organizations/{org_id}/csv-import/{import_id}
Void a CSV import (and its generated statements).
documented
Group Types · 5
- Create Group TypePOST /api/organizations/{org_id}/group-types
Create a new group type.
documented - Delete Group TypeDELETE /api/organizations/{org_id}/group-types/{group_type_id}
Delete a group type.
documented - Get Group Type by IdGET /api/organizations/{org_id}/group-types/{group_type_id}
Return a group type by id.
documented - List Group TypesGET /api/organizations/{org_id}/group-types
Retrieve all group types for the organization.
documented - Update Group TypePUT /api/organizations/{org_id}/group-types/{group_type_id}
Update a group type.
documented
Card Groups · 4
- Create Card GroupPOST /api/card-groups
Create a card group containing specified card ids.
documented - List Card GroupsGET /api/organizations/{org_id}/card-groups
Get card groups for the organization.
documented - List Card Groups (with filters)GET /api/organizations/{org_id}/card-groups
Return card groups filtered by name, customId, or user.id.
documented - Update Card GroupPUT /api/card-groups/{card_group_id}
Update a card group (e.g., its card membership).
documented