---
title: "xAPI Course Started"
method: POST
path: "xapi.started"
tags: ["Xapi"]
---

# xAPI Course Started

`POST xapi.started` (webhook)

Sent to your endpoint when a learner starts a course on the platform. This event is a statement following the xAPI specification.

## Headers

- `webhook-signature` string, required
- `webhook-id` string, required
- `webhook-timestamp` string, required

## Payload

- XapiStartedDTO
  - `id` string, uuid, required — The unique ID of the statement.
  - `actor` union, required — The agent or group who performed the action. The email schema is used by default and the username schema is only used if the company allow the usage of a username to log in.
    - XapiAgentEmail
      - `objectType` 'Agent', required — The type of actor.
      - `mbox` string, required — The email address of the user. The format is 'mailto:{{email_address}}'.
    - XapiAgentUsername
      - `objectType` 'Agent', required — The type of actor.
      - `account` XapiAccount, required
        - `name` string, required — The username of the user.
        - `homePage` string, url, required — The canonical home page the account is on.
  - `verb` XapiInitializedVerb, required
    - `id` 'http://adlnet.gov/expapi/verbs/initialized', required — The type of actor.
    - `display` object, required — The human readable representation of the verb in one or more languages. The key is the language code (ISO 639 language code plus an optional ISO 3166-1 country code), and the value is the verb in that language.
  - `object` XapiCourseObject, required
    - `objectType` 'Activity', required — The type of object.
    - `id` string, required — The unique ID of the course activity. The format is 'urn:360learning:course:{{unique_ID}}'.
    - `definition` XapiObjectDefinition, required
      - `name` object, required — The title of the course in one or more languages. The key is the language code (ISO 639 language code plus an optional ISO 3166-1 country code), and the value is the course title in that language.
      - `description` object, required — The description of the course in one or more languages. The key is the language code (ISO 639 language code plus an optional ISO 3166-1 country code), and the value is the course description in that language.
      - `type` 'http://adlnet.gov/expapi/activities/module', required — The type of the activity.
  - `context` XapiCourseContext, required
    - `contextActivities` XapiContextActivitiesForCourse
      - `parent` XapiPathContextActivity[], required — The path context of this activity.
        - `id` string, required — The unique ID of the path activity. The format is 'urn:360learning:path:{{unique_ID}}'.
        - `objectType` 'Activity', required — The type of object.
      - `other` XapiSessionContextActivity[], required — The session context of this activity.
        - `id` string, required — The unique ID of the session activity. The format is 'urn:360learning:session:{{unique_ID}}'.
        - `objectType` 'Activity', required — The type of object.
    - `language` 'bg' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fi' | 'fr' | 'hr' | 'ht-HT' | 'hu' | 'id' | 'it' | 'ja' | 'kar-MM' | 'ko' | 'lt' | 'mh-MH' | 'nl' | 'nl-BE' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'rw-RW' | 'sk' | 'sl' | 'so-SO' | 'sv' | 'sw-KE' | 'th' | 'ti-ET' | 'tr' | 'uk' | 'zh' | 'am-ET' | 'bn' | 'bs' | 'ca' | 'cy' | 'en-CA' | 'en-GB' | 'es-AR' | 'es-MX' | 'et' | 'fr-CA' | 'gu' | 'he-IL' | 'hy' | 'kk' | 'km' | 'lo' | 'lv' | 'mi' | 'mn-MN' | 'mr' | 'ms' | 'my-MM' | 'nn-NO' | 'or' | 'pa' | 'pt-BR' | 'pt-MZ' | 'rn-BI' | 'si' | 'ta' | 'te' | 'tl-PH' | 'ur' | 'uz' | 'yo-NG' | 'zh-tw' | 'el' | 'hi' | 'sr' | 'ar' | 'vi' | 'zh-HANT', required — The language of the activity.
    - `extensions` XapiContextExtensions, required
      - `https://app.360learning.com/api/xapi/extensions/offline` boolean, required — If true, the statement was done in an offline context (mobile specificity); false otherwise.
  - `timestamp` string, date-time, required — The date and time when the activity was started, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).

## Acknowledgement `2XX`

The event is considered as accepted for any 2xx response code.

## Other responses

- `default` — The event is considered as rejected for any other response code. The event emission will be retried later.

---

[API](https://skmtc.dev/360learning/apis/webhook-api.md) · [All operations](https://skmtc.dev/360learning/apis/webhook-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/360learning/webhook-api/revisions/18374878903d/schema)
