문서로 돌아가기

API 레퍼런스

공개 엔드포인트를 실시간으로 테스트하고 인증, 멱등성 및 콘텐츠 워크플로의 수동 게시 경계를 검토하세요.

음성 텍스트 변환 API

POST/transcribe

다양한 형식과 사용자 지정 사전을 지원하여 오디오 파일을 텍스트로 변환합니다.

긴 오디오의 경우 백그라운드에서 청크 최적화가 완료되는 동안 대기/실행 중(pending/running)인 AI 최적化 상태가 반환될 수 있습니다. 이 코드 예제는 공개 /transcribe 요청을 지원하며, 내부 AI 최적화 작업 상태 및 복구 엔드포인트는 공개 API로 제공되지 않습니다.

AI 최적화가 활성화된 경우 dify_processing에 선택적 n8n_workflow_name, n8n_workflow_id, n8n_call_id 및 n8n_execution_id 진단 필드가 포함될 수 있습니다. 데스크톱 Records에서 성공적으로 재시도하면 동일한 워크플로 ID가 유지됩니다. 프리페치 캐시 적중 시 첫 번째 호출이 재사용되므로 finalize가 이러한 필드를 채우기 위해 중복 워크플로를 전달하지 않습니다. 이러한 식별자는 자격 증명이 아니지만 전사 텍스트, API 키 또는 웹후크 URL과 함께 공개해서는 안 됩니다.

/transcribe 엔드포인트는 multipart/form-data 형식을 필요로 하며, 바이너리 오디오 파일은 'file'이 아닌 'audio' 필드에 전달해야 합니다. 선택적 폼 필드로는 'prompt' 및 'dict'(오탈자/올바른 표기 쌍의 JSON 문자열 배열)가 있습니다.

cURL Multipart 오디오 전사 예제

curl -X POST "https://api.vowise.com/transcribe" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "prompt=Interview about technology" \
  -F 'dict=[{"misspelling":"AI","correct_spelling":"Artificial Intelligence"}]'

사전 관리 API

GET/api/v1/dictionary

사용자의 모든 사전 항목을 검색합니다.

테스트해보기

POST/api/v1/dictionary/add

사전 항목을 추가하거나 업데이트합니다.

테스트해보기

DELETE/api/v1/dictionary/delete

특정 사전 항목을 삭제합니다. 쿼리 매개변수에 misspelling이 필요합니다.

테스트해보기

콘텐츠 워크플로 API

Bearer API KeyAuthorization: Bearer YOUR_API_KEY

이 엔드포인트는 API 키 소유자의 콘텐츠만 반환합니다. 플랫폼 변형은 환경별로 순차적으로 배포되므로, 클라이언트는 경로가 존재한다고 해서 제품 화면이 활성화되었다고 가정하지 말고 404, 409 및 503 오류를 반드시 처리해야 합니다.

GET/api/v1/content/items/{id}/family

마스터 콘텐츠, 플랫폼 변형, 생성 상태, 승인 상태 및 최신성을 읽습니다.

POST/api/v1/content/items/{master_id}/variants

사용자 소유의 활성 채널에 대한 변형을 생성하거나 재사용합니다(요청당 최대 10개).

POST/api/v1/content/items/{variant_id}/regenerate

소스 스냅샷과 편집 충돌 방지를 유지하면서 기존 변형에 대한 새 생성 작업을 생성합니다.

POST/api/v1/content/items/{variant_id}/approve

content_hash로 식별된 현재 제목과 본문만 승인합니다. 이후 편집 시 승인이 무효화됩니다.

POST/api/v1/content/items/{id}/deliveries

직접 공유, 복사 또는 파일 내보내기에 대한 증거 상태를 기록합니다. 공유 시트 열기가 외부 게시 완료를 의미하지는 않습니다.

POST/api/v1/content/items/{variant_id}/deliveries/manual

수동으로 게시된 승인되고 최신의 변형을 확인 기록합니다. 외부 타사 플랫폼을 호출하지 않습니다.

플랫폼 변형 생성 요청 예제

client_request_id는 사용자 범위 내에서 안정적이고 고유해야 합니다. 동일한 ID는 완전히 동일한 마스터, 채널, 프리셋 및 소스 스냅샷만 재생할 수 있습니다. 다른 페이로드는 409 idempotency_conflict를 반환합니다.

curl -X POST "https://api.vowise.com/api/v1/content/items/CONTENT_ITEM_ID/variants" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client_request_id": "client-generated-stable-id",
    "targets": [
      { "channel_id": "CHANNEL_ID", "preset_id": "PRESET_ID" }
    ]
  }'

전달 증거 경계

콘텐츠 워크플로는 제3자 계정 자격 증명을 저장하지 않으며 사용자를 대신하여 자동 게시하지 않습니다. 기본 또는 브라우저 공유 패널은 시작 또는 표시된 상태만 증명합니다. 별도의 신뢰할 수 있는 증거만이 외부 결과를 확인된 것으로 기록합니다. 내부 생성 콜백은 서비스 비밀로 보호되며 공개 API가 아닙니다.

통합 및 코드 예제

Python (requests)

import requests

# 1. Transcribe audio with multipart form upload
url = "https://api.vowise.com/transcribe"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"audio": open("audio.wav", "rb")}
data = {
    "prompt": "Interview about technology",
    "dict": '[{"misspelling": "AI", "correct_spelling": "Artificial Intelligence"}]'
}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

# 2. Manage dictionary
dict_url = "https://api.vowise.com/api/v1/dictionary"
entries = requests.get(dict_url, headers=headers).json()
print("Dictionary entries:", entries)

# Delete dictionary entry (misspelling as query parameter)
requests.delete(f"{dict_url}/delete", headers=headers, params={"misspelling": "AI"})

JavaScript (fetch)

// 1. Transcribe audio with FormData
const formData = new FormData();
formData.append("audio", audioFile); // File or Blob object
formData.append("prompt", "Interview about technology");
formData.append("dict", JSON.stringify([
  { misspelling: "AI", correct_spelling: "Artificial Intelligence" }
]));

const transcribeRes = await fetch("https://api.vowise.com/transcribe", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY"
  },
  body: formData
});
const result = await transcribeRes.json();
console.log("Transcript:", result.text);

// 2. Manage dictionary
const dictRes = await fetch("https://api.vowise.com/api/v1/dictionary", {
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});
const entries = await dictRes.json();
console.log("Dictionary entries:", entries);

// Delete dictionary entry (misspelling as query parameter)
await fetch("https://api.vowise.com/api/v1/dictionary/delete?misspelling=AI", {
  method: "DELETE",
  headers: { "Authorization": "Bearer YOUR_API_KEY" }
});