---
title: "Submit Lessons"
method: POST
path: "/datamates/{datamate_id}/lessons/batch"
tags: ["LEARNED_LESSONS"]
---

# Submit Lessons

`POST /datamates/{datamate_id}/lessons/batch`

## Request

- Base URL: `https://api.myaltimate.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.myaltimate.com/datamates/{datamate_id}/lessons/batch`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Push proposals. Each item gets its own result; one failing item never
aborts the rest. A retried push is answered from the original row
(``duplicate``), whatever has happened to it since.

## Path parameters

- `datamate_id` integer, required

## Request body

- SubmitLessonsRequest
  - `repo_remote` string, required
  - `store` string
  - `items` BatchLessonItem[], required
    - `lesson_key` string, required
    - `change_type` string, required
    - `text` string, required
    - `tags` string[]
    - `trigger_paths` string[]
    - `coexists` CoexistsRef[]
      - `lesson_key` string, required
      - `source_text_hash` string, required
      - `target_text_hash` string, required
    - `pinned` boolean
    - `provenance` string, nullable
    - `origin` string, required
    - `replaces` TargetRef[]
      - `public_id` string, required
      - `version` integer, required
    - `revises_public_id` string, nullable
    - `revises_version` integer, nullable

## Response `200`

Successful Response

- SubmitLessonsResponse
  - `results` BatchItemResult[], required
    - `lesson_key` string, required
    - `submission_hash` string, nullable
    - `public_id` string, nullable
    - `version` integer, nullable
    - `status` string, nullable
    - `duplicate` boolean
    - `error_code` string, nullable
    - `error_detail` string, nullable
    - `existing` ExistingRef
      - `public_id` string, required
      - `version` integer, required

## Other responses

- `403`: Not the workspace's owner
- `404`: Workspace or lesson not found
- `409`: Changed since read, or refused
- `422`: Validation Error

## Changes

- **2026-10-14** `1b2d675195d7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/myaltimate/apis/myaltimate-api/changes/datamates/:datamate_id/lessons/batch/post.md)

---

[API](https://skmtc.dev/myaltimate/apis/myaltimate-api.md) - [All operations](https://skmtc.dev/myaltimate/apis/myaltimate-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myaltimate/apis/myaltimate-api/revisions/727657ce54e9?raw)
