---
sourceDocument: Zurich API Reference
sourceDocumentLink: https://www.servicenow.com/docs/r/zurich/api-reference

 Release :

    - zurich

ft:locale :

    - en-US

ft:publication_title :

    - Zurich API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Streaming file attachments

# Scripted REST API example - streaming file attachments {#ariaid-title1}

* Release version: Zurich
* 
* Updated July 31, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

This example demonstrates how to send an image attachment to a requesting user as a
binary stream.  

    /**
     *  Sample Scripted REST Resource that returns a stream of binary representing an attachment
     *  This sample uses ServiceNow JavaScript API GlideSysAttachmentInputStream to get an attachment as a stream then
     *  users WriteStream to stream the response.
     */
    (function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
        var hdrs = {},
            attachment_sys_id = '1852fd52471321009db4b5b08b9a71a9';

        hdrs['Content-Type'] = 'image/jpeg';
        response.setStatus(200);
        response.setHeaders(hdrs);

        var writer = response.getStreamWriter();
        var attachmentStream = new GlideSysAttachmentInputStream(attachment_sys_id);
        writer.writeStream(attachmentStream);
    })(request, response);

A request to this resource returns the following response.

    //  sample response
    /*
     HTTP/1.1 200 OK
     Set-Cookie: glide_session_store=SYSTEM; Expires=Fri, 30-Oct-2015 21:57:00 GMT; Path=/; HttpOnly
     Content-Type: image/jpeg
     Transfer-Encoding: chunked
     Date: Fri, 30 Oct 2015 21:26:59 GMT
     Connection: close
     Server: ServiceNow

     <binary response body excluded from this sample>
     */


