Skip to main content

REST API Attachment


jonys_coelho
Hey everyone, Can anyone tell me please how can I make a attachment request through REST API? I am using the /sr/{id}/attachment url to add a new attachment to a service record. Thanks in advance.

9 replies

  • 1 reply
  • September 30, 2018
Same here please.

Has there been any update on this? I'm having the same problem.

  • New SysMate
  • 4 replies
  • February 7, 2020
I have attached a screenshot of how I was able to do it using Postman. Here are the highlights. URL: /sr/{id}/attachment Add a header: Key: Content-Disposition Value: multipart/form-data The request body needs to be set to "form-data" Add a file to the body using the below. Key: file Value: [attached the file here] Content Type: The Content Type that matches your file. Hope that helps!

jonys_coelho
  • Author
  • New SysMate
  • 9 replies
  • September 14, 2020
JHamblen
I have attached a screenshot of how I was able to do it using Postman. Here are the highlights. URL: /sr/{id}/attachment Add a header: Key: Content-Disposition Value: multipart/form-data The request body needs to be set to "form-data" Add a file to the body using the below. Key: file Value: [attached the file here] Content Type: The Content Type that matches your file. Hope that helps!
Hi JHamblen! You solved my problem! It worked! Thank you, very very much!

  • New SysMate
  • 2 replies
  • November 3, 2021
Is there a way to instead Get attachments via the API that is retrieve attachments related to an SR Record? I can't find that anywhere.

  • New SysMate
  • 2 replies
  • November 3, 2021
I would like to ask if you have already been able to retrieve the attachment file from the Service Desk directory using RESP API?

  • New SysMate
  • 2 replies
  • November 3, 2021
I would like to ask how can I retrieve the attached file from Service Directory? I haven't found how I can use the REST API to retrieve the attachment file.

Maayan Karstaedt
SysAider
Forum|alt.badge.img
Hi JPires, Hope you already figured it out but if not then here is a step by step guide: Step 1 - Build URL In order to add Attachments to a Service Record using RestAPI, you create need to use the POST method. The URL in the API tool (e.g: Postman) should be for example: https://accountID.sysaidit.com/api/v1/sr/123456/attachment (replace the accountID and 123456 with the actual SR number) Step 2 - populate on postman (or your chosen API builder) In the "Body" select "form-data" radio button. Under "KEY" you will have an option to select "FILE" and when you select that option, you will have in the "Type" column an option to select a file. After the file (Attachment) is uploaded from the computer, then type file under KEY, and click Send button to use the POST method and successfully upload the attachment. Step 3 - Validate input You will see "200 OK" for confirmation. Hope this helped let us know how it goes! Cheers, Maayan
JPires
I would like to ask how can I retrieve the attached file from Service Directory? I haven't found how I can use the REST API to retrieve the attachment file.

  • New SysMate
  • 4 replies
  • June 27, 2022
Because I found this post and had to translate in to PowerShell here is my function I use to post Attachments. Hope it helps someone. function Add-SysAidAPISRAttachment{ <# .INPUTS Attachment, URI, WebSession, ID .PARAMETER Attachment - [STRING] Path including file name .PARAMETER MediaType .PARAMETER URI/URL - SysAid URL/URI "http://mysysaid.domain.ca:8080/" .PARAMETER WebSession - Should be the session from the Get-SysAidAPIKey function .PARAMETER srID - INT32 id number of the Service Request to add the attachment to .OUTPUTS PSCustomObject from returned SysAid Json. .EXAMPLE $returnedSR = Get-SysAidAPISR -ServiceRequest $SR -URI "http://mysysaid.domain.ca:8080/" -APIWebSession $webSession Payload - File Multipart/Form data. #> [CmdletBinding(DefaultParameterSetName="Default")] param ( [Parameter( ParameterSetName="Default", Mandatory=$true, HelpMessage = "Web Session returned ay Get-SysAidAPIKey")] [Alias("API","JSESSIONID","Key","websession")] [ValidateNotNullOrEmpty()] [Microsoft.Powershell.Commands.WebRequestSession]$APIWebSession, [Parameter( ParameterSetName="Default", Mandatory=$true, HelpMessage="URL/URI for the SysAid Site http://[fqdn]:[port]/" )] [ValidateNotNullOrEmpty()] [Alias("URL","site")] [String]$URI, [Parameter( ParameterSetName="Default", Mandatory=$true, HelpMessage="ID - INT32 of the ticket to update" )] [ValidateNotNull()] [Alias("ID","serviceRequestID")] [Int32]$srID, [Parameter( ParameterSetName="Default", Mandatory=$true, HelpMessage="File path and name to attach to Service Request" )] [ValidateNotNullOrEmpty()] [Alias("file")] [string]$attachment, [Parameter( ParameterSetName="Default", HelpMessage="Media Type i.e. image/png" )] [ValidateNotNullOrEmpty()] [Alias("media")] [string]$mediaType ) begin{ #Service Request URI's <# Content-Disposition: form-data; name="file"; filename="694-117374.wav" Content-Type: audio/wav #> $finalURI= $URI + "api/v1/sr/" + $srID.ToString() + "/attachment" $body = $null $fileName = Get-Item $attachment if ($null -ne $mediaType) { $mimeType = $mediaType }else{ $mimeType ="application/octet-stream" } $file = [System.IO.File]::ReadAllBytes($attachment) $fileEnc = [System.Text.Encoding]::GetEncoding('iso-8859-1').GetString($file) $boundary = [System.Guid]::NewGuid().ToString() $LF = "`r`n" $body = ( "--$boundary", "Content-Disposition: form-data; name=`"file`"; filename=`"$($fileName.Name)`"", "Content-Type: $mimeType+$LF") + $fileEnc + ( "--$boundary--$LF" ) -join $LF $Response = $null $functionError = $null } process{ try { $Response = Invoke-RestMethod -Uri $finalURI -Method Post -ResponseHeadersVariable "responseHeaders" -WebSession $APIWebSession -ContentType "multipart/form-data; boundary=$boundary" -Body $body } catch { $functionError = $_ } } end{ if ($null -eq $functionError) { #$Response | ConvertFrom-Json $Response | ConvertTo-Json }else{ $functionError } } }

Want Some cookies?

No, literally. We have some. 😉 By continuing browsing on our site you agree to our cookie policy.

 
Cookie settings