Быстрый старт
Сделайте первый запрос к Nexara API за пару минут.
За пару минут вы получите API-ключ и сделаете первый запрос на транскрибацию.
Получите API-ключ
Создайте ключ в личном кабинете — app.nexara.ru. Ключ выглядит как nx-XXXXXXXXXXXXXXXXXXXXXXXX и передаётся в заголовке Authorization. Подробнее — на странице аутентификация.
Не вставляйте ключ прямо в код. Сохраните его в переменную окружения:
export NEXARA_API_KEY="nx-...".
Сделайте первый запрос
Отправьте аудиофайл на POST /v1/audio/transcriptions. Замените nx-XXXXXXXXXXXXXXXXXXXXXXXX на свой ключ, а audio.mp3 — на путь к вашему файлу.
curl https://api.nexara.ru/v1/audio/transcriptions \
-H "Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX" \
-F "file=@audio.mp3" \
-F "model=whisper-1"import requests
with open("audio.mp3", "rb") as audio_file:
response = requests.post(
"https://api.nexara.ru/v1/audio/transcriptions",
headers={"Authorization": "Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX"},
files={"file": audio_file},
data={"model": "whisper-1"},
)
print(response.json()["text"])Nexara API совместим с OpenAI SDK — достаточно указать base_url.
from openai import OpenAI
client = OpenAI(
api_key="nx-XXXXXXXXXXXXXXXXXXXXXXXX",
base_url="https://api.nexara.ru/v1",
)
with open("audio.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
)
print(transcript.text)Node.js 18+:
import fs from "fs";
const form = new FormData();
form.append("file", new Blob([fs.readFileSync("audio.mp3")]), "audio.mp3");
form.append("model", "whisper-1");
const response = await fetch(
"https://api.nexara.ru/v1/audio/transcriptions",
{
method: "POST",
headers: { Authorization: "Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX" },
body: form,
},
);
const result = await response.json();
console.log(result.text);package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
file, _ := os.Open("audio.mp3")
defer file.Close()
var buf bytes.Buffer
writer := multipart.NewWriter(&buf)
part, _ := writer.CreateFormFile("file", "audio.mp3")
io.Copy(part, file)
writer.WriteField("model", "whisper-1")
writer.Close()
req, _ := http.NewRequest("POST", "https://api.nexara.ru/v1/audio/transcriptions", &buf)
req.Header.Set("Authorization", "Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX")
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "uri"
require "json"
uri = URI("https://api.nexara.ru/v1/audio/transcriptions")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX"
request.set_form(
[
["file", File.open("audio.mp3")],
["model", "whisper-1"],
],
"multipart/form-data",
)
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)["text"]В ответе придёт распознанный текст:
{
"text": "Привет! Это пример транскрибации."
}Готово — вы сделали первый запрос.
Что дальше
Локальный файл
Транскрибация файла с диска на разных языках программирования.
Диаризация
Разделение аудио по говорящим и разметка ролей.
Форматы ответа
json, text, verbose_json, а также субтитры srt и vtt.
LLM-анализ
Резюме, извлечение данных и структурированный вывод по расшифровке.
Асинхронная обработка
Фоновая обработка длинных записей по job_id.
Справочник API
Полное описание эндпоинтов и всех параметров.