ドキュメントに戻る

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キー、またはWebhook URLと一緒に公開しないでください。

/transcribe エンドポイントは multipart/form-data を要求し、バイナリ音声ファイルは 'audio' フィールド('file' ではありません)に指定する必要があります。オプションのフォームフィールドには '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

ユーザーが所有する有効なチャンネルのバリアントを作成または再利用します(1リクエスト最大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" }
    ]
  }'

配信証跡の境界

コンテンツワークフローはサードパーティのアカウント資格情報を保存せず、ユーザーに代わって自動投稿することもありません。ネイティブまたはブラウザの共有パネルは通常、開始または提示された状態のみを証明します。独立した信頼できる証跡のみが外部結果を確定済みにします。内部生成コールバックはサービスシークレットで保護されており、公開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" }
});