API meet.koderra.ru

REST API для создания видеовстреч программным способом. Базовый URL: https://meet.koderra.ru

Авторизация

Все запросы к API должны содержать API ключ в заголовке Authorization:

Authorization: Bearer mk_ваш_api_ключ

Получить ключ можно в личном кабинете после входа через email.

Создать встречу

POST /v1/meetings

Параметры запроса (JSON)

ПолеТипОбязательноОписание
titlestringНетНазвание встречи (до 255 символов)
commentstringНетКомментарий видимый гостю до начала
duration_minintegerНетДлительность в минутах (5–480, по умолч. 60)
scheduled_atstringНетДата и время начала: 2026-06-01T14:00
notification_emailstringНетEmail для уведомления о подключении гостя

Пример запроса

curl -X POST https://meet.koderra.ru/v1/meetings \
  -H "Authorization: Bearer mk_ваш_api_ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Консультация с клиентом",
    "duration_min": 30,
    "notification_email": "you@example.com"
  }'

Пример ответа

{
  "ok": true,
  "meeting": {
    "id": 42,
    "admin_url": "https://meet.koderra.ru/a/abc123...",
    "guest_url":  "https://meet.koderra.ru/r/def456...",
    "management_url": "https://meet.koderra.ru/m/ghi789...",
    "title": "Консультация с клиентом",
    "status": "waiting",
    "charged_rub": 0.00
  },
  "balance_rub": 100.00
}
Ссылки постоянные — URL встречи не изменятся. Сохраните admin_url для организатора и guest_url для гостя.

Получить встречу

GET /v1/meetings/{id}

Пример запроса

curl https://meet.koderra.ru/v1/meetings/42 \
  -H "Authorization: Bearer mk_ваш_api_ключ"

Пример ответа

{
  "ok": true,
  "meeting": {
    "id": 42,
    "title": "Консультация с клиентом",
    "status": "active",
    "comment": null,
    "scheduled_at": null,
    "created_at": "2026-05-22T10:00:00",
    "started_at": "2026-05-22T10:05:00",
    "ended_at": null,
    "admin_url": "https://meet.koderra.ru/a/abc123...",
    "guest_url":  "https://meet.koderra.ru/r/def456...",
    "management_url": "https://meet.koderra.ru/m/ghi789..."
  }
}

Статусы встречи

СтатусОписание
waitingОжидает — создана, гость ещё не подключился
activeИдёт — организатор открыл видеозвонок
endedЗавершена
cancelledОтменена

Ошибки

HTTPerrorПричина
401API key requiredНе передан заголовок Authorization
401Invalid API keyКлюч не найден или недействителен
402Insufficient balanceНедостаточно баланса для создания встречи
404Meeting not found or not yoursВстреча не найдена или создана другим ключом

Формат ошибки

{
  "ok": false,
  "error": "Invalid API key"
}

Примеры на разных языках

Python

import requests

resp = requests.post(
    "https://meet.koderra.ru/v1/meetings",
    headers={"Authorization": "Bearer mk_ваш_ключ"},
    json={"title": "Встреча", "duration_min": 60}
)
data = resp.json()
print(data["meeting"]["guest_url"])

JavaScript / Node.js

const resp = await fetch("https://meet.koderra.ru/v1/meetings", {
  method: "POST",
  headers: {
    "Authorization": "Bearer mk_ваш_ключ",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ title: "Встреча", duration_min: 60 })
});
const data = await resp.json();
console.log(data.meeting.guest_url);

PHP

$ch = curl_init("https://meet.koderra.ru/v1/meetings");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer mk_ваш_ключ",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "title" => "Встреча",
        "duration_min" => 60
    ])
]);
$data = json_decode(curl_exec($ch), true);
echo $data["meeting"]["guest_url"];