Link para baixar um material
const url = 'https://developers.nexo.winningsales.com.br/v1/knowledge/materials/example/download-url';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://developers.nexo.winningsales.com.br/v1/knowledge/materials/example/download-url \ --header 'Authorization: Bearer <token>'URL assinada da versão atual, válida por 5 minutos, que baixa o arquivo com o nome original. Como no app, vale para todo o time, porque o Copiloto e a busca na base citam materiais para o vendedor; cada link fica na atividade da API. O arquivo nunca passa pela API: o envio e o download são por link assinado do armazenamento, e cada link gasta a classe file (60 por minuto na empresa, 30 por token).
Authorizations
Seção intitulada “Authorizations”Parameters
Seção intitulada “Parameters”Path Parameters
Seção intitulada “Path Parameters”Id do material
Responses
Seção intitulada “Responses”URL de download
object
URL assinada que baixa o arquivo com o nome original, válida por 5 minutos
Quando a URL deixa de funcionar
Example generated
{ "url": "https://example.com", "expiresAt": "2026-04-15T12:00:00Z"}Token ausente, inválido, expirado ou revogado
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
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
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
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" }}Material inexistente ou removido
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example
{ "type": "knowledge.material_not_found", "title": "MaterialNotFoundError", "status": 404, "detail": "Material não encontrado na base de conhecimento.", "requestId": "019fcae7-3e54-755a-8458-bdb605b324bb", "meta": { "materialId": "019fcae7-3e54-755a-8458-bdb605b324aa" }}Limite de chamadas da empresa ou do token atingido
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
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 }}O armazenamento não assinou a URL
object
Stable machine-readable error code (e.g. identity.email_already_in_use)
Error class name
HTTP status code
Human-readable message, safe to display to end users
Correlation id — send it to support to locate the full trail
Structured details safe for the frontend (field errors, ids)
object
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "requestId": "example", "meta": { "additionalProperty": "example" }}