> ## Documentation Index
> Fetch the complete documentation index at: https://developers.lucca.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a realized-training (v2)

> Create a new realized training. It must refer to a training that is in the 'ready' state, and the sessionEndsOn date must be in the past. It is also not possible to create two realized trainings for the same employee with the same trainingId and sessionEndsOn.



## OpenAPI

````yaml /openapi-specs/poplee-training.yaml post /talent-training/api/v2/realized-trainings
openapi: 3.1.0
info:
  title: Lucca Training
  version: '1.0'
  description: |
    Welcome on the documentation for the Lucca Training API.
  contact:
    name: API Support
    url: https://support.lucca.fr
    email: contact@luccasoftware.com
  license:
    name: Unlicensed
    url: https://www.luccasoftware.com
servers:
  - url: https://{host}
    description: Your Lucca account URL.
    variables:
      host:
        default: example.ilucca.net
        description: >-
          The URL of your dedicated Lucca account: `{account}.{env}.{region}`.


          Account reflects your company name. Env indicates the environment.
          Region depends on your server location.


          **Please, use your test or sandbox environments (and not your
          production env.) for testing purposes.**


          Environments:

          - `ilucca`: production environment for customers.

          - `ilucca-test`: test environment for customers.

          - `ilucca-demo`: demo environment for prospects.


          Regions:

          - `.ch` for Swiss located accounts.

          - `.net` for the others.


          Regarding sandboxes, the pattern differs:
          `https://{account}-{sandboxName}.sandbox.{server}.luccasoftware.com`,
          where:

          - `{sandboxName}` is automatically generated upon creation.

          - `{server}` may be "eu1", "eu2" or "ch1".
security: []
tags:
  - name: Trainings
    description: Trainings in catalog
  - name: Training-demands
    description: Requests for a training session for an employee.
  - name: Realized-trainings
    description: Past realized training sessions.
paths:
  /talent-training/api/v2/realized-trainings:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    post:
      tags:
        - Realized-trainings
      summary: Create a realized-training (v2)
      description: >-
        Create a new realized training. It must refer to a training that is in
        the 'ready' state, and the sessionEndsOn date must be in the past. It is
        also not possible to create two realized trainings for the same employee
        with the same trainingId and sessionEndsOn.
      operationId: v2.post-realized-training
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v2.RealizedTraining'
            examples:
              realized:
                $ref: '#/components/examples/v2.post.realized-trainings.req'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2.RealizedTraining'
              examples:
                realized:
                  $ref: '#/components/examples/v2.get.realized-training.res'
components:
  parameters:
    Authorization:
      name: Authorization
      required: true
      description: 'API key. Value must be formatted like so: `lucca application={api_key}`.'
      in: header
      schema:
        type: string
  schemas:
    v2.RealizedTraining:
      title: >-
        A new realized-training must refer to a training that is at ready state.
        Please note that you cannot create two realized-trainings for the same
        employee with the same trainingId and sessionEndOn
      type: object
      description: >-
        A realized-training represents a completed training process for a given
        employee.
      required:
        - ownerId
        - sessionStartsOn
        - sessionEndsOn
        - durationInHours
      properties:
        id:
          minimum: 1
          readOnly: true
        ownerId:
          description: ID of the employee who realized said training.
          type: integer
          format: int32
          minimum: 1
        training:
          type: object
          readOnly: true
          properties:
            id:
              type: integer
              format: int32
              readOnly: true
            title:
              type: string
              readOnly: true
            categoryId:
              type: integer
              readOnly: true
            providerUrl:
              type: string
              format: uri
              readOnly: true
            level:
              type: string
              enum:
                - Beginner
                - Middle
                - Expert
              readOnly: true
        trainingDemandId:
          type: integer
          description: >-
            Reference of the training-demand that led to the registration to
            this training session.
          format: int32
          minimum: 1
          readOnly: true
        sessionId:
          type: integer
          description: Reference of the training session the employee was registered on.
          format: int32
          minimum: 1
          readOnly: true
        sessionStartsOn:
          description: |
            Date of the first day of the training session.
          type: string
          format: date
        sessionEndsOn:
          description: |
            Date of the last day (included) of the training session.
          type: string
          format: date
        hasAttended:
          description: >
            Whether the employee actually attended the training or not. You may
            not create a new realized-training with `hasAttended: false`, but
            you may retrieve existing ones in a GET request.
          type: boolean
          default: true
          readOnly: true
        durationInHours:
          description: >-
            Duration of the training in hours (e.g. "2.5" means two and a half
            hours).
          type: number
          format: decimal
          multipleOf: 0.01
      example:
        id: 235
        ownerId: 416
        training:
          id: 45
          title: 'Mastering French: From Basics to Fluency'
          categoryId: 1
          providerUrl: https://elan-francais.fr
          level: Beginner
        trainingDemandId: 4356
        sessionId: 12
        sessionStartsOn: '2025-01-04'
        sessionEndsOn: '2025-01-04'
        hasAttended: true
        durationInHours: 14
  examples:
    v2.post.realized-trainings.req:
      summary: POST realized-training request example (v2)
      value:
        ownerId: 416
        trainingId: 45
        sessionStartsOn: '2025-01-04'
        sessionEndsOn: '2025-01-04'
        hasAttended: true
        durationInHours: 14
    v2.get.realized-training.res:
      summary: GET realized-training response example (v2)
      value:
        id: 235
        ownerId: 416
        trainingId: 45
        sessionStartsOn: '2025-01-04'
        sessionEndsOn: '2025-01-04'
        hasAttended: true
        durationInHours: 14

````