رفتن به محتوا

سری‌ها

همهٔ مسیرها نسبت به https://app.lobbe.ai/api/v1 هستند و هر درخواست Authorization: Bearer $LOBBE_TOKEN را می‌فرستد. مرجع API همهٔ مسیرها را فهرست می‌کند و فیلدهای x-lobbe-* را توضیح می‌دهد.

سری‌هایی که ساخته‌اید یا عضوشان هستید.

ویژگی مقدار
دسترسی‌ها series:read
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها read: ۶۰۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200

سری‌هایی که ساخته‌اید و سپس سری‌هایی که عضوشان هستید، هر گروه به ترتیب نام؛ تا وقتی سری‌ها خاموش باشند خالی است.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
items[] object[] بله سری‌ها
items[].id string بله شناسهٔ سری، همان‌که seriesId می‌گیرد
items[].name string بله نام سری
items[].role "owner" | "member" بله اگر سری را خودتان ساخته باشید owner؛ اگر عضوش باشید member
items[].meetingCount integer بله شمار جلسه‌های آماده‌ای که meetingsUrl همین حالا برای شما فهرست می‌کند
items[].url string (uri) بله صفحهٔ سری در برنامهٔ وب
items[].meetingsUrl string (uri) بله با درخواست GET و همین توکن، جلسه‌های آمادهٔ سری را بگیرید (listReadyRecordings با seriesId)

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

یک سری که ساخته‌اید یا عضو آن هستید: نام، پیش‌فرض‌ها و شمار جلسه‌های آمادهٔ آن.

ویژگی مقدار
دسترسی‌ها series:read
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها read: ۶۰۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری

یک سری.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
series object بله سری. defaultKind و defaultOutputLanguage همان چیزی است که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند؛ submitRecording آن‌ها را نمی‌خواند
series.id string بله شناسهٔ سری، همان‌که seriesId می‌گیرد
series.name string بله نام سری
series.access "owner" | "member" بله اگر سری را خودتان ساخته باشید owner؛ اگر عضوش باشید member
series.defaultKind "MEETING" | "LECTURE" | "INTERVIEW" | "VOICE_MEMO" | "CALL" بله نوع ضبط، که قالب لُب را تعیین می‌کند: MEETING، LECTURE، INTERVIEW، VOICE_MEMO یا CALL
series.defaultOutputLanguage "MATCH" | "FA" | "EN" بله زبان لُب: MATCH (مطابق جلسه)، FA یا EN
series.titleStyle "SESSION" | "TOPIC" بله شیوهٔ عنوان جلسه‌های سری: SESSION («نام سری + تاریخ»: نام سری و تاریخ جلسه، با عنوان خود جلسه زیر آن) یا TOPIC («موضوع هر جلسه»: عنوان خود جلسه)
series.dateCalendar "AUTO" | "JALALI" | "GREGORIAN" بله تقویم تاریخ در عنوان SESSION: AUTO (بر اساس زبان لُب: شمسی برای فارسی، میلادی برای انگلیسی)، JALALI (شمسی) یا GREGORIAN (میلادی)
series.meetingCount integer بله شمار جلسه‌های آماده‌ای از سری که می‌توانید بخوانید: همان‌هایی که listReadyRecordings با seriesId فهرست می‌کند
series.lastRecordedAt string | null بله زمان برگزاری تازه‌ترینِ همان جلسه‌ها (ISO 8601، به وقت UTC)؛ اگر جلسه‌ای نباشد null است

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

تغییر سری‌ای که ساخته‌اید: نام، نوع سری و زبان پیش‌فرض، شیوهٔ عنوان یا تقویم آن.

ویژگی مقدار
دسترسی‌ها series:write
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها settings: ۶۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری

بدنهٔ درخواست (application/json)

Section titled “بدنهٔ درخواست (application/json)”

فیلدهایی که تغییر می‌کنند، دست‌کم یکی؛ فیلدی که نفرستید مقدارش را نگه می‌دارد. فقط برای سازندهٔ سری: سری‌ای که مال شما نیست پاسخ 404 می‌گیرد. نامی که یکی از سری‌های شما از قبل دارد (بدون توجه به بزرگی و کوچکی حروف) پاسخ 409 SERIES_NAME_TAKEN می‌گیرد. دست‌کم یک فیلد بفرستید؛ بدنهٔ خالی پاسخ 400 می‌گیرد. فیلدی که این‌جا نیامده پاسخ 400 می‌گیرد.

فیلد نوع الزامی توضیح
name string خیر یک خط: هر رشته از فاصله‌ها (از جمله شکست خط و تب) به یک فاصله تبدیل و دو سر آن پیراسته می‌شود، سپس ۱ تا ۶۰ نویسه؛ هر نویسهٔ کنترلی دیگری پذیرفته نمی‌شود
defaultKind "MEETING" | "LECTURE" | "INTERVIEW" | "VOICE_MEMO" | "CALL" خیر نوعی که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند: MEETING، LECTURE، INTERVIEW، VOICE_MEMO یا CALL
defaultOutputLanguage "MATCH" | "FA" | "EN" خیر زبان لُب که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند: MATCH (مطابق جلسه)، FA یا EN
titleStyle "SESSION" | "TOPIC" خیر شیوهٔ عنوان جلسه‌های سری: SESSION («نام سری + تاریخ»: نام سری و تاریخ جلسه، با عنوان خود جلسه زیر آن) یا TOPIC («موضوع هر جلسه»: عنوان خود جلسه)
dateCalendar "AUTO" | "JALALI" | "GREGORIAN" خیر تقویم تاریخ در عنوان SESSION: AUTO (بر اساس زبان لُب: شمسی برای فارسی، میلادی برای انگلیسی)، JALALI (شمسی) یا GREGORIAN (میلادی)

یک سری.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
series object بله سری. defaultKind و defaultOutputLanguage همان چیزی است که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند؛ submitRecording آن‌ها را نمی‌خواند
series.id string بله شناسهٔ سری، همان‌که seriesId می‌گیرد
series.name string بله نام سری
series.access "owner" | "member" بله اگر سری را خودتان ساخته باشید owner؛ اگر عضوش باشید member
series.defaultKind "MEETING" | "LECTURE" | "INTERVIEW" | "VOICE_MEMO" | "CALL" بله نوع ضبط، که قالب لُب را تعیین می‌کند: MEETING، LECTURE، INTERVIEW، VOICE_MEMO یا CALL
series.defaultOutputLanguage "MATCH" | "FA" | "EN" بله زبان لُب: MATCH (مطابق جلسه)، FA یا EN
series.titleStyle "SESSION" | "TOPIC" بله شیوهٔ عنوان جلسه‌های سری: SESSION («نام سری + تاریخ»: نام سری و تاریخ جلسه، با عنوان خود جلسه زیر آن) یا TOPIC («موضوع هر جلسه»: عنوان خود جلسه)
series.dateCalendar "AUTO" | "JALALI" | "GREGORIAN" بله تقویم تاریخ در عنوان SESSION: AUTO (بر اساس زبان لُب: شمسی برای فارسی، میلادی برای انگلیسی)، JALALI (شمسی) یا GREGORIAN (میلادی)
series.meetingCount integer بله شمار جلسه‌های آماده‌ای از سری که می‌توانید بخوانید: همان‌هایی که listReadyRecordings با seriesId فهرست می‌کند
series.lastRecordedAt string | null بله زمان برگزاری تازه‌ترینِ همان جلسه‌ها (ISO 8601، به وقت UTC)؛ اگر جلسه‌ای نباشد null است

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

ساختن یک سری: نام، نوع سری و زبان پیش‌فرض، شیوهٔ عنوان و تقویم آن.

ویژگی مقدار
دسترسی‌ها series:write
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها settings: ۶۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 201

بدنهٔ درخواست (application/json)

Section titled “بدنهٔ درخواست (application/json)”

یک سری تازه؛ فقط name لازم است. نامی که یکی از سری‌های شما از قبل دارد (بدون توجه به بزرگی و کوچکی حروف) پاسخ 409 SERIES_NAME_TAKEN می‌گیرد، و حسابی که از قبل ۵۰ سری ساخته است پاسخ 409 SERIES_LIMIT می‌گیرد. فیلدی که این‌جا نیامده پاسخ 400 می‌گیرد.

فیلد نوع الزامی توضیح
name string بله یک خط: هر رشته از فاصله‌ها (از جمله شکست خط و تب) به یک فاصله تبدیل و دو سر آن پیراسته می‌شود، سپس ۱ تا ۶۰ نویسه؛ هر نویسهٔ کنترلی دیگری پذیرفته نمی‌شود
defaultKind "MEETING" | "LECTURE" | "INTERVIEW" | "VOICE_MEMO" | "CALL" خیر نوعی که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند: MEETING، LECTURE، INTERVIEW، VOICE_MEMO یا CALL (پیش‌فرض MEETING)
defaultOutputLanguage "MATCH" | "FA" | "EN" خیر زبان لُب که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند: MATCH (مطابق جلسه)، FA یا EN (پیش‌فرض MATCH)
titleStyle "SESSION" | "TOPIC" خیر شیوهٔ عنوان جلسه‌های سری: SESSION («نام سری + تاریخ»: نام سری و تاریخ جلسه، با عنوان خود جلسه زیر آن) یا TOPIC («موضوع هر جلسه»: عنوان خود جلسه) (پیش‌فرض SESSION)
dateCalendar "AUTO" | "JALALI" | "GREGORIAN" خیر تقویم تاریخ در عنوان SESSION: AUTO (بر اساس زبان لُب: شمسی برای فارسی، میلادی برای انگلیسی)، JALALI (شمسی) یا GREGORIAN (میلادی) (پیش‌فرض AUTO)

یک سری.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
series object بله سری. defaultKind و defaultOutputLanguage همان چیزی است که «تنظیمات لُب» در برنامه برای جلسه‌ای در این سری با آن شروع می‌کند؛ submitRecording آن‌ها را نمی‌خواند
series.id string بله شناسهٔ سری، همان‌که seriesId می‌گیرد
series.name string بله نام سری
series.access "owner" | "member" بله اگر سری را خودتان ساخته باشید owner؛ اگر عضوش باشید member
series.defaultKind "MEETING" | "LECTURE" | "INTERVIEW" | "VOICE_MEMO" | "CALL" بله نوع ضبط، که قالب لُب را تعیین می‌کند: MEETING، LECTURE، INTERVIEW، VOICE_MEMO یا CALL
series.defaultOutputLanguage "MATCH" | "FA" | "EN" بله زبان لُب: MATCH (مطابق جلسه)، FA یا EN
series.titleStyle "SESSION" | "TOPIC" بله شیوهٔ عنوان جلسه‌های سری: SESSION («نام سری + تاریخ»: نام سری و تاریخ جلسه، با عنوان خود جلسه زیر آن) یا TOPIC («موضوع هر جلسه»: عنوان خود جلسه)
series.dateCalendar "AUTO" | "JALALI" | "GREGORIAN" بله تقویم تاریخ در عنوان SESSION: AUTO (بر اساس زبان لُب: شمسی برای فارسی، میلادی برای انگلیسی)، JALALI (شمسی) یا GREGORIAN (میلادی)
series.meetingCount integer بله شمار جلسه‌های آماده‌ای از سری که می‌توانید بخوانید: همان‌هایی که listReadyRecordings با seriesId فهرست می‌کند
series.lastRecordedAt string | null بله زمان برگزاری تازه‌ترینِ همان جلسه‌ها (ISO 8601، به وقت UTC)؛ اگر جلسه‌ای نباشد null است

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

واژگان یک سری (فقط برای سازندهٔ آن) و این‌که واژگان حساب هم به کار می‌رود یا نه.

ویژگی مقدار
دسترسی‌ها series:read
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها read: ۶۰۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری

واژگان سری. فقط برای سازندهٔ سری: سری‌ای که مال شما نیست پاسخ 404 می‌گیرد.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
keyterms[] string[] بله واژه‌های خود سری، به ترتیبی که ذخیره شده‌اند (حداکثر ۱۰۰)؛ رونوشت جلسه‌ای که در این سری باشد پیش از همه با این واژه‌ها ساخته می‌شود
inheritAccountKeyterms boolean بله این‌که واژگان حساب هم پس از واژه‌های سری به کار برود یا نه، تا سقف ۱۰۰ واژه در مجموع؛ واژه‌هایی از حساب که جا نشوند از انتهای فهرست آن کنار می‌مانند («واژگان من هم به کار برود» در برنامه)

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

جایگزینی واژگان یک سری (فقط برای سازندهٔ آن)؛ جلسه‌ای که از واژگان استفاده کند هزینهٔ افزودهٔ آن را دارد.

ویژگی مقدار
دسترسی‌ها series:write
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها settings: ۶۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری

بدنهٔ درخواست (application/json)

Section titled “بدنهٔ درخواست (application/json)”

کل واژگان سری، به‌جای فهرست قبلی. هر جلسه همان واژه‌هایی را نگه می‌دارد که با آن فرستاده شد، و جلسه‌ای که از واژه‌ای استفاده کند ۲۰٪ هزینهٔ بیشتر دارد. فیلدی که این‌جا نیامده پاسخ 400 می‌گیرد.

فیلد نوع الزامی توضیح
keyterms[] string[] بله کل فهرست تازه. دو سر هر واژه پیراسته و هر رشته از فاصله‌هایش به یک فاصله تبدیل می‌شود؛ سپس حداکثر ۱۰۰ واژه، هر کدام ۱ تا ۴۹ نویسه و حداکثر ۵ کلمه که شامل هیچ‌یک از نویسه‌های <، >، {، }، [، ] یا \ نباشد، و بدون واژهٔ تکراری. فهرستی که یکی از این قاعده‌ها را رعایت نکند پاسخ 400 می‌گیرد و پیام آن نخستین مشکل را نام می‌برد
inheritAccountKeyterms boolean بله این‌که واژگان حساب هم پس از واژه‌های سری به کار برود یا نه، تا سقف ۱۰۰ واژه در مجموع؛ واژه‌هایی از حساب که جا نشوند از انتهای فهرست آن کنار می‌مانند («واژگان من هم به کار برود» در برنامه)

واژگان سری. فقط برای سازندهٔ سری: سری‌ای که مال شما نیست پاسخ 404 می‌گیرد.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
keyterms[] string[] بله واژه‌های خود سری، به ترتیبی که ذخیره شده‌اند (حداکثر ۱۰۰)؛ رونوشت جلسه‌ای که در این سری باشد پیش از همه با این واژه‌ها ساخته می‌شود
inheritAccountKeyterms boolean بله این‌که واژگان حساب هم پس از واژه‌های سری به کار برود یا نه، تا سقف ۱۰۰ واژه در مجموع؛ واژه‌هایی از حساب که جا نشوند از انتهای فهرست آن کنار می‌مانند («واژگان من هم به کار برود» در برنامه)

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

هزینهٔ پرسیدن یک سؤال از این سری، به دقیقه، و این‌که چند جلسه را در بر می‌گیرد.

ویژگی مقدار
دسترسی‌ها series:query
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها search: ۱۲۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری

هزینهٔ یک پرسش از این سری؛ خواندن این برآورد رایگان است.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
minutes integer بله قیمت به دقیقه: همان هزینه‌ای که askSeries می‌گیرد و به همان شیوه حساب می‌شود، پس تا وقتی جلسه‌های سری تغییر نکنند این دو یکی‌اند
meetingCount integer بله شمار جلسه‌های آماده‌ای از سری که پرسش از آن‌ها خوانده می‌شود: لُب همهٔ آن‌ها، سپس هر چند رونوشت کامل که جا شود، از تازه‌ترین. اگر کمتر از ۲ جلسه باشد، این برآورد پاسخ 409 SERIES_ASK_TOO_FEW می‌گیرد

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.

پرسیدن یک سؤال از کل یک سری، با پاسخ از همهٔ جلسه‌های آمادهٔ آن؛ هر پاسخ هزینه دارد.

ویژگی مقدار
دسترسی‌ها series:query
دقیقه مصرف می‌کند بله
سقف درخواست‌ها ask: ۳۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200

این مسیر می‌تواند دقیقه مصرف کند: هدر Idempotency-Key را بفرستید تا تکرار درخواست با همان کلید، به‌جای هزینهٔ دوباره، همان نتیجهٔ اول را برگرداند. تکرارپذیری و تلاش دوباره را ببینید.

نام محل نوع الزامی توضیح
id path string بله شناسهٔ سری
Idempotency-Key header string خیر پیشنهاد می‌شود. برای هر جلسه یا سؤال تازه یک بار کلیدی بسازید (۸ تا ۶۴ نویسه، مثلاً یک UUID تصادفی) و همان کلید را بی‌تغییر در هر تلاش دوبارهٔ همان درخواست بفرستید؛ هرگز آن را برای درخواست دیگری به کار نبرید. تکرار یک درخواست همان نتیجهٔ اول را برمی‌گرداند و هرگز دو بار هزینه نمی‌گیرد. کلید برای همیشه از آنِ صاحب حساب می‌ماند و هرگز منقضی نمی‌شود.

بدنهٔ درخواست (application/json)

Section titled “بدنهٔ درخواست (application/json)”

سؤال، و در صورت نیاز سقفی برای قیمت آن. فیلدی که این‌جا نیامده پاسخ 400 می‌گیرد.

فیلد نوع الزامی توضیح
question string بله سؤال، پس از پیراستن دو سر آن، ۱ تا ۵۰۰ نویسه
maxMinutes integer خیر بیشترین هزینه‌ای که می‌پذیرید، به دقیقه (دست‌کم ۱): اگر قیمت بیشتر باشد، سؤال با 409 PRICE_ABOVE_MAX رد می‌شود (details آن minutes و maxMinutes را دارد) و هزینه‌ای گرفته نمی‌شود؛ اگر نباشد، سقفی در کار نیست
idempotencyKey string خیر کلید تکرار درخواست در بدنه، به‌جای هدر Idempotency-Key (۸ تا ۶۴ نویسه)؛ اگر هر دو فرستاده شوند هدر ملاک است

پاسخ از روی جلسه‌های سری، که هزینه‌اش گرفته شده است؛ تکرار درخواست با همان کلید همین پاسخ را برمی‌گرداند و هرگز دو بار هزینه نمی‌گیرد.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
answer string بله پاسخ. [n] ادعایی را نشان می‌دهد که citations[n - 1] پشتیبان آن است، و این نشانه‌ها به ترتیب خواندن ۱، ۲، … شماره می‌خورند
citations[] object[] بله جایی از سری که این را می‌گوید: حداکثر ۵ نوبت از هر کدام از جلسه‌هایش، به ترتیبی که پاسخ نخستین بار به آن‌ها ارجاع می‌دهد
citations[].startMs number بله زمان شروع نوبتِ ارجاع‌شده، به میلی‌ثانیه از ابتدای صدای جلسه
citations[].speaker string | null بله گویندهٔ آن: برچسب گویندهٔ نوبت همان‌طور که در رونوشت آمد (مثلاً speaker_0)، هرگز نامی که به صدا داده شده؛ اگر نوبت گوینده‌ای نداشته باشد null است
citations[].recordingId string بله جلسه‌ای که این نوبت از آن است، یکی از جلسه‌های سری
minutes integer بله هزینه‌ای که این پاسخ گرفت، به دقیقه؛ پاسخ ردشده هم هزینه دارد
refused boolean بله اگر لُب از روی آنچه گفته شده پاسخی ندهد true است: answer دلیلش را می‌گوید و هزینه همچنان گرفته می‌شود

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.