Pular para o conteúdo

Áudio de uma reunião em MP3

POST
/v1/downloads/meetings/{meetingId}/audio
curl --request POST \
--url https://developers.nexo.winningsales.com.br/v1/downloads/meetings/example/audio \
--header 'Authorization: Bearer <token>'

O MP3 da gravação, pelo prazo de retenção do lake. Sempre por link: o arquivo fica no lake e a resposta é a URL assinada do S3, válida por 15 minutos, que já baixa com o nome do arquivo; nenhum arquivo passa pela API. O vendedor baixa as reuniões que organizou, as próprias conversas de WhatsApp e de e-mail e as de contatos dos próprios negócios (o e-mail do CRM, pelo negócio em que foi registrado); estar vinculada a um negócio dele não basta; admin e líder de vendas baixam as do time. Exige o escopo conversations:read e todo download fica registrado. Além do limite de chamadas do token: Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.

meetingId
required
string

Id da reunião gravada

A URL assinada do MP3 e o nome do arquivo

Media typeapplication/json
object
url
required

URL assinada do MP3, válida por poucos minutos

string format: uri
expiresAt
required

Quando a URL deixa de funcionar

string format: date-time
fileName
required

Nome sugerido para o arquivo: data, título da reunião e “audio”

string

Example generated

{
"url": "https://example.com",
"expiresAt": "2026-04-15T12:00:00Z",
"fileName": "example"
}

Token ausente, inválido, expirado ou revogado

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.invalid_credential",
"title": "InvalidCredentialError",
"status": 401,
"detail": "Token de acesso inválido, expirado ou revogado. Crie um novo token de acesso no Nexo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb"
}

Papel, escopo do token ou plano não permitem a operação

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.insufficient_scope",
"title": "InsufficientScopeError",
"status": 403,
"detail": "Este token não tem o escopo conversations:read, exigido por esta operação. Gere um token com esse escopo.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"operation": "conversations.reading",
"scope": "conversations:read"
}
}

Reunião inexistente, sem áudio ou fora da visibilidade

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "meetings.not_found",
"title": "MeetingNotFoundError",
"status": 404,
"detail": "Reunião não encontrada.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"meetingId": "019fcae7-3e54-755a-8458-bdb605b324aa"
}
}

Limite de downloads de arquivo: 60 por pessoa e 600 pela empresa inteira, numa janela de 10 minutos que começa no primeiro pedido e zera ao fim; acima disso responde 429 até a janela fechar. A conta é a mesma no app, na API pública (/v1) e no MCP.

Limite de chamadas da empresa ou do token atingido

Media typeapplication/json
object
type
required

Stable machine-readable error code (e.g. identity.email_already_in_use)

string
title
required

Error class name

string
status
required

HTTP status code

integer
detail
required

Human-readable message, safe to display to end users

string
requestId
required

Correlation id — send it to support to locate the full trail

string
nullable
meta

Structured details safe for the frontend (field errors, ids)

object
key
additional properties

Example

{
"type": "public_api.rate_limited",
"title": "PublicRateLimitedError",
"status": 429,
"detail": "Muitas chamadas em pouco tempo. Tente de novo em 12 segundos.",
"requestId": "019fcae7-3e54-755a-8458-bdb605b324bb",
"meta": {
"class": "content",
"limitedBy": "company",
"limit": 120,
"windowSeconds": 60,
"retryAfterSeconds": 12
}
}