Pular para o conteúdo

Busca um anexo do ticket pelo id

GET
/v1/tickets/{ticketId}/attachments/{attachmentId}
Code sample: Shell / cURL
curl --request GET \
--url 'https://public-api.mspdesk.com.br/v1/tickets/1/attachments/912?fields=id%2CfileName%2CcontentType&expand=customer%2Cagent' \
--header 'Authorization: Bearer <token>'

Escopo exigido: tickets:read. Devolve 404 not_found quando o anexo não existe ou pertence a outro ticket.

Ao contrário da listagem, esta rota não esconde a imagem embutida nem a imagem colada na descrição: um id devolvido em outro lugar da API continua legível aqui, e os campos inline e linkedToDescription dizem o que o arquivo é. Só a listagem esconde.

O conteúdo do arquivo não vem nesta resposta: ele está em GET /v1/tickets/{ticketId}/attachments/{attachmentId}/content.

ticketId
required
integer format: int64

ID do ticket

Exemplo
1
attachmentId
required
integer format: int64

ID do anexo

Exemplo
912
fields
string

Campos de primeiro nível a retornar, separados por vírgula (id sempre volta): id, fileName, contentType, size, noteId, appointmentId, linkedToDescription, inline, createdAt, updatedAt.

Exemplo
id,fileName,contentType
expand
string

Objetos a acrescentar à resposta, separados por vírgula, até 3 por requisição: . Sem o escopo exigido de algum item pedido: 403 insufficient_scope.

Exemplo
customer,agent

O anexo

Media typeapplication/json

Arquivo anexado a um ticket.

object
appointmentId

Apontamento a que o anexo está preso. Nulo num anexo solto da aba.

integer format: int64
nullable
contentType

Tipo de mídia declarado no envio.

string
nullable
createdAt

Instante de criação do registro. Nulo em anexo anterior a esta API.

string format: date-time
nullable
fileName

Nome do arquivo como a tela o mostra.

string
nullable
id

Identificador do anexo.

integer format: int64
inline

O arquivo é uma imagem que o remetente do e-mail declarou embutida no corpo (assinatura, papel de carta). Sempre false no que a listagem devolve.

boolean
nullable
linkedToDescription

O arquivo é uma imagem colada no editor da descrição do ticket. Sempre false no que a listagem devolve.

boolean
nullable
noteId

Nota a que o anexo está preso. Nulo num anexo solto da aba.

integer format: int64
nullable
size

Tamanho em bytes.

integer format: int64
nullable
updatedAt

Instante da última alteração do registro. Nulo em anexo anterior a esta API que nunca foi alterado desde então.

string format: date-time
nullable
Exemplo
{
"appointmentId": null,
"contentType": "application/pdf",
"createdAt": "2026-01-10T14:04:00Z",
"fileName": "log-impressora.pdf",
"id": 912,
"inline": false,
"linkedToDescription": false,
"noteId": 1204,
"size": 184320,
"updatedAt": "2026-01-10T14:04:00Z"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo

Requisição malformada ou parâmetros de consulta inválidos

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo

Chave de API ausente, inválida, revogada ou expirada

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}

Acesso negado: empresa inativa (account_inactive), API pública desabilitada para a empresa (public_api_disabled), escopo liberado só com a API pública (scope_requires_public_api) ou escopo insuficiente (insufficient_scope)

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo

Recurso inexistente, de outra empresa, ou rota inexistente

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo

Limite de uso atingido (rate_limited); o campo layer indica a camada: ip, company, key, operation ou concurrency

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo

Retry-After
integer format: int32

Segundos até poder repetir

Erro interno inesperado

Media typeapplication/problem+json

Erro no formato RFC 9457 (application/problem+json).

object
code
required

Código estável do erro, para tratamento programático.

string
detail
required

Explicação legível deste erro específico.

string
errors

Erros de campo — presente quando a falha vem de validação de campo.

Array<object>
object
code

Código estável do erro de campo.

string
Allowed values: required too_long too_short invalid_value invalid_format unknown_field unsupported_operator unsupported_field out_of_range not_found inactive inconsistent_reference not_applicable
field

Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.

string
nullable
message

Mensagem traduzida no locale da requisição.

string
layer

Presente só no 429

string
Allowed values: ip company key operation concurrency
operation

Presente só quando layer=operation

string
Allowed values: report pdf upload
requestId

Identificador da requisição — informe-o ao suporte ao reportar um erro.

string
requiredScope

Presente só no 403 insufficient_scope

string
status
required

Status HTTP da resposta.

integer format: int32
title
required

Título curto e legível do erro.

string
type
required

URI que identifica o tipo do erro.

string
Exemplo
{
"code": "not_found",
"detail": "O recurso solicitado não foi encontrado.",
"errors": [
{
"code": "required"
}
],
"layer": "ip",
"operation": "report",
"requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55",
"status": 404,
"title": "Recurso não encontrado",
"type": "https://developers.mspdesk.com.br/erros/#not_found"
}
RateLimit-Limit
integer format: int32

Capacidade do balde mais restritivo consumido nesta requisição

RateLimit-Remaining
integer format: int32

Requisições restantes nesse balde

RateLimit-Reset
integer format: int32

Segundos até o balde encher de novo