October 2008
updated September 2009
updated April 2011

Warranty checking script for OS X

This handy little script lets you check the warranty status of your systems more conveniently than through Apple's web site. You can give it a serial number for an argument, and it will give you the date when the system is no longer covered. The -v (for verbose) option gives a bit more information, describing the type of warranty, and a longer text message.
host$ warranty ABCDEFGHIJK
host$ warranty -v ABCDEFGHIJK
Serial Number: ABCDEFGHIJK
Product Type : Mac Pro
Purchase Date: 2007-03-08
Covered Thru : 2010-03-07
Coverage Type: AppleCare Protection Plan
Description  : Our records indicate that your product is covered for service and telephone support under the AppleCare Protection Plan which is estimated to expire on March 07, 2010.

If you leave out the serial number, it will extract the serial number from the current system (using system_profiler) and report on the local system's warranty status. And if you use Apple Remote Desktop (ARD), the script can be told to populate one of the computer information fields of the local system on request. More generally, you can tell it to put the information in any field of any plist.

Note: If you make changes on a live computer to the ARD computer information fields, they won't show up in ARD until the ARD agent on the client is restarted (for instance via the kickstart command, or a reboot).

Just download the script, and put it in your $HOME/bin directory (or anywhere you like, really). Make it executable ("chmod +x warranty"). You might have to edit the first line to point to perl, but it should be correct on standard systems. And you might have to edit the script to tell it where curl lives, or make sure curl is in your path, but again, all should be well on a standard system.

Tested under Tiger and Leopard
Download warranty version 1.1 (changed to work with Apple's new website, 4/7/11)
Download warranty version 1.0 (significant changes to make script robust in new OS versions, 9/25/09)

In this latest version, I use the -xml option and fully parse the xml to make sure that I get the proper serial number and not something else that looks like a serial number to some imperfect pattern match. This is what has caused my script to break recently, and hopefully this new method will be more robust.

host$ warranty -h
usage: warranty [options] [serial_number]
  if no serial number is provided it uses the number from the current host
    -v         - verbose
    -d         - debug (show web XML data)
    -f field   - put expiration date into Remote Desktop plist field
		 (usually Text1 through Text4)
    -p plist   - used with -f, use a different plist from the default
		 must be full path, without the .plist suffix

Reader Comments (Experimental. Moderated, expect delays. Posts may be edited or ignored. I reserve the right to remove any or all comments, at any time.)


At 2012/05/01 10:39
spoko wrote:

You might be interested to take a look at this page from the Netherlands. I've found that it displays more extensive info than the Apple site, and it will give info from much older systems (Apple seems only to display info on things a few years old). http://www.chipmunk.nl/cgi-fast/applemodel.cgi?serienummer=SERIAL_HERE

At 2022/07/15 14:04
Anon wrote:

Does this script still work?

At 2022/08/23 15:47

I haven't used it in years, and I'm guessing it does not currently work.

End Comments

Add a comment

More Mac OS X Stuff

Tom Fine's Home Send Me Email