Volver à documentação

Referência da API

Teste endpoints públicos em tempo real e revise a autenticação, idempotência e limites de publicação manual para fluxos de trabalho de conteúdo.

API de fala para texto

POST/transcribe

Converta arquivos de áudio em texto com suporte a vários formatos e dicionários personalizados.

Áudios longos podem retornar um status de otimização por IA pendente/em execução enquanto a otimização em blocos é concluída em segundo plano. Esses exemplos de código abrangem a requisição pública /transcribe; os endpoints internos de status e recuperação de tarefas de otimização de IA não são expostos como API pública.

Quando a otimização de IA está ativada, dify_processing pode incluir os campos de diagnóstico opcionais n8n_workflow_name, n8n_workflow_id, n8n_call_id e n8n_execution_id; uma nova tentativa bem-sucedida no Records para desktop preserva a mesma identidade de fluxo de trabalho. Um acerto no cache de pré-busca reutiliza a primeira chamada, portanto finalize não despacha um fluxo de trabalho duplicado apenas para preencher esses campos. Esses identificadores não são credenciais, mas ainda assim não devem ser publicados junto com o texto da transcrição, chaves de API ou URLs de webhook.

O endpoint /transcribe requer multipart/form-data com um arquivo de áudio binário no campo 'audio' (não 'file'). Os campos opcionais do formulário incluem 'prompt' e 'dict' (matriz de string JSON com pares misspelling/correct_spelling).

Exemplo de transcrição 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 de gerenciamento de dicionário

GET/api/v1/dictionary

Recupere todas as entradas do dicionário do usuário.

Experimentar

POST/api/v1/dictionary/add

Adicione ou atualize uma entrada no dicionário.

Experimentar

DELETE/api/v1/dictionary/delete

Exclua uma entrada específica do dicionário. Requer misspelling nos parâmetros de consulta.

Experimentar

API de fluxo de trabalho de conteúdo

Bearer API KeyAuthorization: Bearer YOUR_API_KEY

Esses endpoints retornam apenas conteúdo pertencente ao usuário da chave de API. As variantes da plataforma são implementadas por ambiente; os clientes devem tratar 404, 409 e 503 em vez de presumir que uma rota significa que a interface do produto está ativada.

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

Leia um conteúdo mestre, suas variantes de plataforma, estado de geração, estado de aprovação e atualização.

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

Crie ou reutilize variantes para canais ativos do usuário, com no máximo 10 destinos por solicitação.

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

Crie uma nova tarefa de geração para uma variante existente preservando o instantâneo de origem e a proteção contra conflitos.

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

Aprove apenas o título e o corpo atuais identificados por content_hash; edições posteriores invalidam a aprovação.

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

Registre os estados de evidência para compartilhamento direto, cópia ou exportação; abrir o painel não confirma a publicação.

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

Confirme uma variante aprovada, atual e publicada manualmente; este endpoint nunca chama serviços de terceiros.

Exemplo de criação de variantes de plataforma

client_request_id deve ser estável e exclusivo para o usuário. O mesmo ID só pode reproduzir o mesmo conteúdo mestre, canal, predefinição e instantâneo; outro payload retorna 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" }
    ]
  }'

Limites de evidência de entrega

O fluxo de conteúdo não salva credenciais de terceiros nem publica automaticamente em nome do usuário. O painel nativo apenas prova o início ou exibição; o resultado só é confirmado com evidências independentes. O callback interno é protegido por segredo de serviço e não é público.

Exemplos de integração e código

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" }
});