---
title: "Register a user to a classroom slot"
method: POST
path: "/api/v2/classroom-slots/{classroomSlotId}/registrations/{userId}"
tags: ["Classrooms"]
---

# Register a user to a classroom slot

`POST /api/v2/classroom-slots/{classroomSlotId}/registrations/{userId}`

> 🔑
>
> Required OAuth scope: `classrooms:write`.

Registers a user to a classroom slot based on the provided classroom slot ID and user ID.

## Path parameters

- `classroomSlotId` string, ObjectId, required
- `userId` string, ObjectId, required

## Headers

- `360-api-version` 'v2.0', required

## Response `201`

Returns the created slot registration.

- SlotRegistrationDTO
  - `_id` string, ObjectId, required — The unique ID of the classroom slot registration.
  - `archivedAt` string, date-time — The date and time when the slot registration was archived from the path session, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `userId` string, ObjectId, required — The unique ID of the registered user.
  - `attendanceDuration` number — If the classroom is setup through a webinar integration, contains the reported duration of the attendance in milliseconds.
  - `createdAt` string, date-time — The date and time when the slot registration has been created, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `hasAttended` boolean — The attendance status of the registration.
  - `modifiedAt` string, date-time — The date and time when the slot registration has been modified, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `pathId` string, ObjectId — The ID of the path in which this registration was made (if any).
  - `rsvp` RsvpDTO
    - `going` boolean, required — The rsvp response for this registration.
    - `lastUpdatedAt` string, date-time, required — The date of rsvp last update for this registration, in the `YYYY-MM-DDThh:mm:ss.sssZ` format (ISO 8601 in Coordinated Universal Time (UTC)).
  - `status` 'archived' | 'published', required — The status of the slot registration.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — The given access token is either missing, invalid, has expired, or has been revoked.
- `403` — The given access token does not have the required OAuth scope to execute the request.
- `404` — The server cannot find the requested resource.
- `429` — The client has sent too many requests in a short amount of time.

---

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