The Print API currently consists of one endpoint that allows users to upload a PDF or txt file to print. For now, it is quite simple, only taking two arguments.

The /printfile endpoint takes a PDF, and adds it to the given user's queue. It's really that simple! Our only goal is to provide you with programmatic access to the Andrew print queue, so all of your crazy apps can access a printer! There are all kinds of other services and APIs out there to do lots of things with files - convert them, rotate them, memeify them, etc. We'd love to see how you can combine these with the Print API!

3D printing is not available through the ScottyLabs Print API...yet?

Version 0

POST /printfile

Sample Request:


This post request expects the following form data:

Name Type Description
andrew_id string AndrewId of the user attempting to print.
file file Contents of a file input to print. Must be a PDF or txt document under 25MB.
copies number Number of copies to print.
sides radio The sidedness of the print job. Must be one of one-sided, two-sided-long-edge, two-sided-short-edge.

Response format:

A successful request:

  "message": "Successfully printed Homework-1.pdf",
  "status_code": 200

A failed request. In this case, the status code will default to 400, Bad Request.

  "message": "Please submit a valid Andrew ID.",
  "status_code": 400

Example Application

We have an example implementation of a web interface for you to play around with, and see how the API works. The demo is at, and the code is available on GitHub.