import { WhopClient } from "@whop/sdk";
const client = new WhopClient({ token: "YOUR_TOKEN", apiVersionDate: "2026-08-21-1", idempotencyKey: "YOUR_IDEMPOTENCY_KEY" });
await client.courseLessonInteractions.retrieve({
id: "crsli_xxxxxxxxxxxx"
});curl --request GET \
--url https://api.whop.com/api/v1/course_lesson_interactions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/course_lesson_interactions/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.whop.com/api/v1/course_lesson_interactions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.whop.com/api/v1/course_lesson_interactions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.whop.com/api/v1/course_lesson_interactions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.whop.com/api/v1/course_lesson_interactions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/course_lesson_interactions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"completed": true,
"course": {
"experience": {
"id": "exp_xxxxxxxxxxxxxx"
},
"id": "cors_xxxxxxxxxxxxx",
"title": "Introduction to Technical Analysis"
},
"created_at": "2023-12-01T05:00:00.401Z",
"id": "crsli_xxxxxxxxxxxx",
"lesson": {
"chapter": {
"id": "chap_xxxxxxxxxxxxx"
},
"id": "lesn_xxxxxxxxxxxxx",
"title": "Understanding Candlestick Patterns"
},
"user": {
"id": "user_xxxxxxxxxxxxx",
"name": "John Doe",
"username": "johndoe42"
}
}{
"error": {
"code": "parameter_missing",
"message": "Missing required parameter: amount.",
"param": "amount",
"type": "invalid_request_error"
}
}{
"error": {
"message": "Invalid or missing API key",
"type": "unauthorized"
}
}{
"error": {
"message": "You do not have permission to access this resource",
"type": "forbidden"
}
}{
"error": {
"message": "Resource not found",
"type": "not_found"
}
}{
"error": null
}{
"error": null
}{
"error": {
"message": "An unexpected error occurred",
"type": "internal_server_error"
}
}Retrieve course lesson interaction
Retrieves the details of an existing course lesson interaction.
Required permissions:
courses:readcourse_analytics:read
import { WhopClient } from "@whop/sdk";
const client = new WhopClient({ token: "YOUR_TOKEN", apiVersionDate: "2026-08-21-1", idempotencyKey: "YOUR_IDEMPOTENCY_KEY" });
await client.courseLessonInteractions.retrieve({
id: "crsli_xxxxxxxxxxxx"
});curl --request GET \
--url https://api.whop.com/api/v1/course_lesson_interactions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/course_lesson_interactions/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.whop.com/api/v1/course_lesson_interactions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.whop.com/api/v1/course_lesson_interactions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.whop.com/api/v1/course_lesson_interactions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.whop.com/api/v1/course_lesson_interactions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/course_lesson_interactions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"completed": true,
"course": {
"experience": {
"id": "exp_xxxxxxxxxxxxxx"
},
"id": "cors_xxxxxxxxxxxxx",
"title": "Introduction to Technical Analysis"
},
"created_at": "2023-12-01T05:00:00.401Z",
"id": "crsli_xxxxxxxxxxxx",
"lesson": {
"chapter": {
"id": "chap_xxxxxxxxxxxxx"
},
"id": "lesn_xxxxxxxxxxxxx",
"title": "Understanding Candlestick Patterns"
},
"user": {
"id": "user_xxxxxxxxxxxxx",
"name": "John Doe",
"username": "johndoe42"
}
}{
"error": {
"code": "parameter_missing",
"message": "Missing required parameter: amount.",
"param": "amount",
"type": "invalid_request_error"
}
}{
"error": {
"message": "Invalid or missing API key",
"type": "unauthorized"
}
}{
"error": {
"message": "You do not have permission to access this resource",
"type": "forbidden"
}
}{
"error": {
"message": "Resource not found",
"type": "not_found"
}
}{
"error": null
}{
"error": null
}{
"error": {
"message": "An unexpected error occurred",
"type": "internal_server_error"
}
}Authorizations
An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************.
Path Parameters
The unique identifier of the lesson interaction to retrieve.
"crsli_xxxxxxxxxxxx"
Response
A successful response
A record of a user's progress on a specific lesson, tracking whether they have completed it.
Whether the user has finished this lesson.
The course that contains the tracked lesson.
Show child attributes
Show child attributes
The datetime the lesson interaction was created.
"2023-12-01T05:00:00.401Z"
The unique identifier for the lesson interaction.
"crsli_xxxxxxxxxxxx"
The lesson that this progress record belongs to.
Show child attributes
Show child attributes
The user whose progress is being tracked.
Show child attributes
Show child attributes

