مقدمه
یک API ساده و قدرتمند برای ساخت، مدیریت و اتصال به کلاسهای آنلاین.
به مستندات API سیروم خوش آمدید.
با استفاده از این اندپوینتها میتوانید اتاقهای جلسه و کلاس آنلاین را مستقیما در پلتفرم خود ایجاد، مدیریت و به آنها متصل شوید.
احراز هویت درخواستها
برای احراز هویت درخواستها، هدر Authorization را با مقدار "Bearer {YOUR_AUTH_KEY}" ارسال کنید.
تمام اندپوینتهایی که نیاز به احراز هویت دارند، در مستندات زیر با نشان نیازمند احراز هویت مشخص شدهاند.
توکن API را به صورت Bearer در هدر درخواست ارسال کنید. مثال: Authorization: Bearer {YOUR_API_TOKEN}
مدیریت اتاقها
پایان دادن به جلسه کلاس
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/panel/user/room/end" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"uid\": \"physics-class-101\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/end"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"uid": "physics-class-101"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/end'
payload = {
"uid": "physics-class-101"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/end';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'uid' => 'physics-class-101',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, پایان موفقیتآمیز):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": []
}
نمونه پاسخ (403, عدم دسترسی):
{
"success": false,
"message": "دسترسی غیرمجاز",
"data": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null
}
نمونه پاسخ (422, خطای اعتبارسنجی):
{
"message": "اطلاعات وارد شده نامعتبر است.",
"errors": {
"uid": [
"شناسه اتاق (uid) نامعتبر است."
]
}
}
نمونه پاسخ (500, خطای سرور):
{
"success": false,
"message": "خطا در برقراری ارتباط با سرور",
"data": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
دریافت لیست اتاقها
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/panel/user/room/list?sort=desc&per_page=15&page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"sort\": \"asc\",
\"per_page\": 1,
\"page\": 22
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/list"
);
const params = {
"sort": "desc",
"per_page": "15",
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"sort": "asc",
"per_page": 1,
"page": 22
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/list'
payload = {
"sort": "asc",
"per_page": 1,
"page": 22
}
params = {
'sort': 'desc',
'per_page': '15',
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sort' => 'desc',
'per_page' => '15',
'page' => '1',
],
'json' => [
'sort' => 'asc',
'per_page' => 1,
'page' => 22,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, دریافت موفق):
{
"data": [
{
"id": 1,
"uid": "math-class-101",
"room_name": "Mathematics 101",
"sessions": 5,
"created_at": "2026-05-10T10:00:00.000000Z"
}
],
"success": true,
"message": "عملیات با موفقیت انجام شد",
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
ایجاد اتاق جدید
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/panel/user/room/store" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"room_name\": \"Physics 101\",
\"uid\": \"physics-class-101\",
\"access_code\": \"guest123\",
\"admin_code\": \"admin123\",
\"mute_on_join\": true,
\"require_moderator_approval\": false,
\"anyone_can_start\": false,
\"all_join_moderator\": false,
\"registered_users_only\": false,
\"enable_whitelist\": false,
\"enable_blacklist\": false,
\"whitelist_numbers\": \"09123456789,09129876543\",
\"blacklist_numbers\": \"09351234567\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/store"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"room_name": "Physics 101",
"uid": "physics-class-101",
"access_code": "guest123",
"admin_code": "admin123",
"mute_on_join": true,
"require_moderator_approval": false,
"anyone_can_start": false,
"all_join_moderator": false,
"registered_users_only": false,
"enable_whitelist": false,
"enable_blacklist": false,
"whitelist_numbers": "09123456789,09129876543",
"blacklist_numbers": "09351234567"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/store'
payload = {
"room_name": "Physics 101",
"uid": "physics-class-101",
"access_code": "guest123",
"admin_code": "admin123",
"mute_on_join": true,
"require_moderator_approval": false,
"anyone_can_start": false,
"all_join_moderator": false,
"registered_users_only": false,
"enable_whitelist": false,
"enable_blacklist": false,
"whitelist_numbers": "09123456789,09129876543",
"blacklist_numbers": "09351234567"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/store';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'room_name' => 'Physics 101',
'uid' => 'physics-class-101',
'access_code' => 'guest123',
'admin_code' => 'admin123',
'mute_on_join' => true,
'require_moderator_approval' => false,
'anyone_can_start' => false,
'all_join_moderator' => false,
'registered_users_only' => false,
'enable_whitelist' => false,
'enable_blacklist' => false,
'whitelist_numbers' => '09123456789,09129876543',
'blacklist_numbers' => '09351234567',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (201, ایجاد موفقیتآمیز):
{
"success": true,
"message": "اتاق با موفقیت ایجاد شد",
"data": {
"id": 1,
"cuid": "physics-class-101",
"name": "Physics 101",
"created_at": "2026-05-10T10:00:00.000000Z"
}
}
* @response 422 scenario="خطای اعتبارسنجی" {
"message": "اطلاعات وارد شده نامعتبر است.",
"errors": {
"uid": [
"این شناسه (uid) قبلاً انتخاب شده است."
]
}
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
دریافت جزئیات اتاق
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/panel/user/room/index/4" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/index/4"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/index/4'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/index/4';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, دریافت موفقیتآمیز):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"room": {
"id": 1,
"uid": "physics-class-101",
"room_name": "Advanced Physics 101",
"sessions": 12,
"created_at": "2026-05-10T10:00:00.000000Z"
},
"settings": {
"mute_on_join": true,
"require_moderator_approval": false,
"anyone_can_start": false,
"enable_whitelist": false
}
}
}
نمونه پاسخ (404, اتاق یافت نشد (یا عدم دسترسی)):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
بهروزرسانی اتاق
requires authentication
نمونه درخواست:
curl --request PUT \
"http://api.croom.ir/api/v1/panel/user/room/update/4" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"uid\": \"physics-class-102\",
\"room_name\": \"Advanced Physics 102\",
\"access_code\": \"newGuestPass123\",
\"admin_code\": \"newAdminPass123\",
\"mute_on_join\": true,
\"require_moderator_approval\": false,
\"anyone_can_start\": false,
\"all_join_moderator\": false,
\"registered_users_only\": false,
\"enable_whitelist\": false,
\"enable_blacklist\": false,
\"whitelist_numbers\": \"09123456789,09129876543\",
\"blacklist_numbers\": \"09351234567\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/update/4"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"uid": "physics-class-102",
"room_name": "Advanced Physics 102",
"access_code": "newGuestPass123",
"admin_code": "newAdminPass123",
"mute_on_join": true,
"require_moderator_approval": false,
"anyone_can_start": false,
"all_join_moderator": false,
"registered_users_only": false,
"enable_whitelist": false,
"enable_blacklist": false,
"whitelist_numbers": "09123456789,09129876543",
"blacklist_numbers": "09351234567"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/update/4'
payload = {
"uid": "physics-class-102",
"room_name": "Advanced Physics 102",
"access_code": "newGuestPass123",
"admin_code": "newAdminPass123",
"mute_on_join": true,
"require_moderator_approval": false,
"anyone_can_start": false,
"all_join_moderator": false,
"registered_users_only": false,
"enable_whitelist": false,
"enable_blacklist": false,
"whitelist_numbers": "09123456789,09129876543",
"blacklist_numbers": "09351234567"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/update/4';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'uid' => 'physics-class-102',
'room_name' => 'Advanced Physics 102',
'access_code' => 'newGuestPass123',
'admin_code' => 'newAdminPass123',
'mute_on_join' => true,
'require_moderator_approval' => false,
'anyone_can_start' => false,
'all_join_moderator' => false,
'registered_users_only' => false,
'enable_whitelist' => false,
'enable_blacklist' => false,
'whitelist_numbers' => '09123456789,09129876543',
'blacklist_numbers' => '09351234567',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (201, بهروزرسانی موفقیتآمیز):
{
"success": true,
"message": "اتاق با موفقیت بهروزرسانی شد",
"data": null
}
نمونه پاسخ (403, عدم دسترسی):
{
"success": false,
"message": "دسترسی غیرمجاز",
"data": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null
}
نمونه پاسخ (422, خطای اعتبارسنجی):
{
"message": "اطلاعات وارد شده نامعتبر است.",
"errors": {
"uid": [
"این شناسه (uid) قبلاً انتخاب شده است."
]
}
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
حذف اتاق
requires authentication
نمونه درخواست:
curl --request DELETE \
"http://api.croom.ir/api/v1/panel/user/room/delete/4" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/delete/4"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/delete/4'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('DELETE', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/delete/4';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, حذف موفقیتآمیز):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": []
}
نمونه پاسخ (403, عدم دسترسی):
{
"success": false,
"message": "دسترسی غیرمجاز",
"data": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
مدیریت جلسات ضبط شده
دریافت لینک پخش جلسه ضبط شده(مهمان)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/recording/460/show" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/recording/460/show"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/recording/460/show'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/recording/460/show';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, دریافت موفق):
{
"data": {
"playback_url": "https://bbb.example.com/playback/presentation/2.3/..."
},
"success": true,
"message": "عملیات با موفقیت انجام شد",
"error": null
}
نمونه پاسخ (404, جلسه یافت نشد):
{
"data": null,
"success": false,
"message": "فایل ضبط شده مورد نظر یافت نشد",
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
لیست جلسات ضبط شده اتاق (مهمان)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/recording/room/4/list?sort=desc&per_page=10&page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/recording/room/4/list"
);
const params = {
"sort": "desc",
"per_page": "10",
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/recording/room/4/list'
params = {
'sort': 'desc',
'per_page': '10',
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/recording/room/4/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sort' => 'desc',
'per_page' => '10',
'page' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
تغییر وضعیت انتشار ویدیوی ضبط شده
requires authentication
نمونه درخواست:
curl --request PATCH \
"http://api.croom.ir/api/v1/panel/user/recording/460/published" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": true
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/recording/460/published"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/recording/460/published'
payload = {
"status": true
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/recording/460/published';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
تغییر وضعیت انتشار متن جلسه ضبط شده
requires authentication
نمونه درخواست:
curl --request PATCH \
"http://api.croom.ir/api/v1/panel/user/recording/460/text-published" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"status\": true
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/recording/460/text-published"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"status": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/recording/460/text-published'
payload = {
"status": true
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/recording/460/text-published';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'status' => true,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
تغییر نام جلسه ضبط شده
requires authentication
نمونه درخواست:
curl --request PATCH \
"http://api.croom.ir/api/v1/panel/user/recording/460/name" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"recording_name\": \"کلاس فیزیک\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/recording/460/name"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"recording_name": "کلاس فیزیک"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/recording/460/name'
payload = {
"recording_name": "کلاس فیزیک"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/recording/460/name';
$response = $client->patch(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'recording_name' => 'کلاس فیزیک',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
دریافت لینک پخش جلسه ضبط شده(مدیر)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/panel/user/recording/460/show" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/panel/user/recording/460/show"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/recording/460/show'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/recording/460/show';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
لیست جلسات ضبط شده اتاق (مدیر)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/panel/user/room/4/recordings?sort=desc&per_page=10&page=1" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/panel/user/room/4/recordings"
);
const params = {
"sort": "desc",
"per_page": "10",
"page": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/room/4/recordings'
params = {
'sort': 'desc',
'per_page': '10',
'page': '1',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/room/4/recordings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'sort' => 'desc',
'per_page' => '10',
'page' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, دریافت موفق):
{
"data": {
"room_info": {
"name": "کلاس فیزیک پایه دوازدهم",
"organizer": "Admin",
"cuid": "physics-class"
},
"recordings": {
"data": [
{
"id": 460,
"name": "کلاس فیزیک پایه دوازدهم",
"recording_id": "d9ee72a602d5b3ad6cd0e52e1941307ba2b90301-1780537866645",
"duration": "00:00:33",
"published": false,
"text_published": true,
"converted_to_text_at": "2026-06-04 05:24:10",
"text_is_empty": false,
"locked": false,
"start_time": "2026-06-04 05:21:06",
"created_at": "2026-06-04 05:25:30"
}
],
"links": {
"first": "http://api.croom.ir/api/v1/...",
"last": "http://api.croom.ir/api/v1/...",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"per_page": 10,
"to": 1,
"total": 1
}
}
},
"success": true,
"message": "عملیات با موفقیت انجام شد",
"error": null
}
نمونه پاسخ (403, عدم دسترسی):
{
"data": null,
"success": false,
"message": "دسترسی غیرمجاز",
"error": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"data": null,
"success": false,
"message": "اتاق یافت نشد",
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
هوش مصنوعی
لیست قالبهای AI (مهمان)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/ai/template/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/ai/template/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/ai/template/list'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/ai/template/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, موفق):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": [
{
"id": 1,
"title": "خلاصهسازی جلسه"
}
],
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
ثبت درخواست AI (مهمان)
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/client/ai/request/send" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"recording_info_id\": 460,
\"template_id\": 2
}"
const url = new URL(
"http://api.croom.ir/api/v1/client/ai/request/send"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"recording_info_id": 460,
"template_id": 2
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/ai/request/send'
payload = {
"recording_info_id": 460,
"template_id": 2
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/ai/request/send';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'recording_info_id' => 460,
'template_id' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, درخواست جدید):
{
"success": true,
"message": "با موفقیت انجام شد",
"data": {
"id": 14
},
"error": null
}
نمونه پاسخ (200, درخواست از قبل موجود):
{
"success": true,
"message": "این درخواست قبلا ثبت شده است",
"data": {
"id": 14,
"status": "pending"
},
"error": null
}
نمونه پاسخ (403, اشتراک ناکافی):
{
"success": false,
"message": "اشتراک CRoom AI شما کافی نیست",
"data": null,
"error": null
}
نمونه پاسخ (404, جلسه قابل استفاده نیست):
{
"success": false,
"message": "جلسه ضبط شده یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (404, قالب قابل استفاده نیست):
{
"success": false,
"message": "قالب مورد نظر یافت نشد یا غیرفعال است",
"data": null,
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
لیست درخواستهای AI
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/ai/request/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/ai/request/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/ai/request/list'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/ai/request/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, موفق):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"items": [],
"total": 0,
"per_page": 10,
"current_page": 1
},
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
نمایش خروجی AI
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/ai/request/1/show" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/ai/request/1/show"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/ai/request/1/show'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/ai/request/1/show';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, آماده):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"id": 14,
"output": "متن خلاصهشده..."
},
"error": null
}
نمونه پاسخ (404, یافت نشد):
{
"success": false,
"message": "درخواست مورد نظر یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (422, هنوز در حال پردازش):
{
"success": false,
"message": "خروجی هنوز آماده نشده است",
"data": {
"status": "pending"
},
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
دانلود خروجی AI
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/client/ai/request/1/download/pdf" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/client/ai/request/1/download/pdf"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/ai/request/1/download/pdf'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/ai/request/1/download/pdf';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (401):
Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
{
"message": "Unauthenticated."
}
نمونه پاسخ (404, یافت نشد):
{
"success": false,
"message": "درخواست مورد نظر یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (422, هنوز در حال پردازش):
{
"success": false,
"message": "خروجی هنوز آماده نشده است",
"data": {
"status": "pending"
},
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
لیست قالبهای AI (مدیر)
requires authentication
نمونه درخواست:
curl --request GET \
--get "http://api.croom.ir/api/v1/panel/user/ai/template/list" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://api.croom.ir/api/v1/panel/user/ai/template/list"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/ai/template/list'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/ai/template/list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, موفق):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": [
{
"id": 1,
"title": "خلاصهسازی جلسه"
}
],
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
ثبت درخواست AI (مدیر)
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/panel/user/ai/request/send" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"recording_info_id\": 460,
\"template_id\": 2
}"
const url = new URL(
"http://api.croom.ir/api/v1/panel/user/ai/request/send"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"recording_info_id": 460,
"template_id": 2
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/panel/user/ai/request/send'
payload = {
"recording_info_id": 460,
"template_id": 2
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/panel/user/ai/request/send';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'recording_info_id' => 460,
'template_id' => 2,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, درخواست جدید):
{
"success": true,
"message": "با موفقیت انجام شد",
"data": {
"id": 14
},
"error": null
}
نمونه پاسخ (200, درخواست از قبل موجود):
{
"success": true,
"message": "این درخواست قبلا ثبت شده است",
"data": {
"id": 14,
"status": "done"
},
"error": null
}
نمونه پاسخ (403, اشتراک ناکافی):
{
"success": false,
"message": "اشتراک CRoom AI شما کافی نیست",
"data": null,
"error": null
}
نمونه پاسخ (404, جلسه قابل استفاده نیست):
{
"success": false,
"message": "جلسه ضبط شده یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (404, قالب قابل استفاده نیست):
{
"success": false,
"message": "قالب مورد نظر یافت نشد یا غیرفعال است",
"data": null,
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
ورود به اتاق
ورود به کلاس به عنوان مهمان
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/client/join/room/guest" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"uid\": \"physics-class-101\",
\"name\": \"Jane Smith\",
\"password\": \"guest123\",
\"callback_url\": \"https:\\/\\/your-website.com\\/thank-you\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/client/join/room/guest"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"uid": "physics-class-101",
"name": "Jane Smith",
"password": "guest123",
"callback_url": "https:\/\/your-website.com\/thank-you"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/join/room/guest'
payload = {
"uid": "physics-class-101",
"name": "Jane Smith",
"password": "guest123",
"callback_url": "https:\/\/your-website.com\/thank-you"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/join/room/guest';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'uid' => 'physics-class-101',
'name' => 'Jane Smith',
'password' => 'guest123',
'callback_url' => 'https://your-website.com/thank-you',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, ورود موفق):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"join_url": "https://lb.croom.ir/bigbluebutton/api/join?..."
},
"error": null
}
نمونه پاسخ (403, عدم دسترسی (لیست سیاه)):
{
"success": false,
"message": "دسترسی غیرمجاز",
"data": null,
"error": null
}
نمونه پاسخ (403, اشتراک غیرفعال):
{
"success": false,
"message": "اشتراک شما غیرفعال است",
"data": null,
"error": null
}
نمونه پاسخ (403, محدودیت ساعات پیک):
{
"success": false,
"message": "محدودیت ورود در ساعات اوج مصرف",
"data": null,
"error": null
}
نمونه پاسخ (403, جلوگیری از شروع کلاس):
{
"success": false,
"message": "شروع جلسه موقتاً غیرفعال شده است",
"data": null,
"error": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (422, عدم وجود جلسه فعال):
{
"success": false,
"message": "جلسه هنوز شروع نشده است",
"data": null,
"error": null
}
نمونه پاسخ (422, رمز عبور اشتباه):
{
"success": false,
"message": "رمز عبور اشتباه است",
"data": null,
"error": null
}
نمونه پاسخ (422, ظرفیت تکمیل):
{
"success": false,
"message": "ظرفیت اتاق تکمیل است",
"data": null,
"error": null
}
نمونه پاسخ (500, خطای سرور):
{
"success": false,
"message": "شروع جلسه با خطا مواجه شد",
"data": null,
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.
ورود به کلاس به عنوان مدیر (Moderator)
requires authentication
نمونه درخواست:
curl --request POST \
"http://api.croom.ir/api/v1/client/join/room/moderator" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"uid\": \"abc-def-ghi-jkl\",
\"name\": \"Admin\",
\"password\": \"secret123\",
\"callback_url\": \"https:\\/\\/croom.ir\\/dashboard\",
\"presentation_url\": \"https:\\/\\/example.com\\/presentation.pdf\"
}"
const url = new URL(
"http://api.croom.ir/api/v1/client/join/room/moderator"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"uid": "abc-def-ghi-jkl",
"name": "Admin",
"password": "secret123",
"callback_url": "https:\/\/croom.ir\/dashboard",
"presentation_url": "https:\/\/example.com\/presentation.pdf"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://api.croom.ir/api/v1/client/join/room/moderator'
payload = {
"uid": "abc-def-ghi-jkl",
"name": "Admin",
"password": "secret123",
"callback_url": "https:\/\/croom.ir\/dashboard",
"presentation_url": "https:\/\/example.com\/presentation.pdf"
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()$client = new \GuzzleHttp\Client();
$url = 'http://api.croom.ir/api/v1/client/join/room/moderator';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'uid' => 'abc-def-ghi-jkl',
'name' => 'Admin',
'password' => 'secret123',
'callback_url' => 'https://croom.ir/dashboard',
'presentation_url' => 'https://example.com/presentation.pdf',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));نمونه پاسخ (200, ورود موفق):
{
"success": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"join_url": "https://lb.croom.ir/bigbluebutton/api/join?..."
},
"error": null
}
نمونه پاسخ (403, عدم دسترسی):
{
"success": false,
"message": "اشتراک شما غیرفعال است یا محدودیت ورود دارید",
"data": null,
"error": null
}
نمونه پاسخ (404, اتاق یافت نشد):
{
"success": false,
"message": "اتاق یافت نشد",
"data": null,
"error": null
}
نمونه پاسخ (422, خطای اعتبارسنجی):
{
"success": false,
"message": "اطلاعات نامعتبر است یا ظرفیت اتاق تکمیل شده است",
"data": null,
"error": null
}
نمونه پاسخ (500, خطای سرور):
{
"success": false,
"message": "شروع جلسه با خطا مواجه شد",
"data": null,
"error": null
}
پاسخ دریافت شد:
درخواست با خطا مواجه شد:
بررسی کنید که اتصال شبکه برقرار باشد.
اگر نگهدارنده این API هستید، مطمئن شوید API در حال اجراست و CORS فعال شده است.
برای اطلاعات بیشتر میتوانید کنسول DevTools مرورگر را بررسی کنید.