API Documentation
Integrate Smartwaiver with your CMS, local database, and more. All participant information that was submitted by your customer is accessible (e.g: Full Name, Date of Birth, Custom Questions etc). All PDF files are accessible as well.
APIs are intended for programmers only. If you have little or no programming experience, feel free to use one of our tools below:
There's a special place in our collective heart for programmers that take the time to integrate Smartwaiver into their products. Please feel free to email our lead developer Mark, if you need any help or have feature ideas that might assist you with creating the perfect integration. We'd love to hear from you.
Create an API Key and then replace every occurrence of "APIKEY" found in this manual with the API Key.
Smartwaiver's API is a mostly RESTful API that returns XML.
The Smartwaiver API will return XML data for every participant. It's possible for a waiver to have multiple participants. You can compare the participant's "waiver_id" (discussed below) to know if participants are listed on the same waiver.
Request will return up to 20 participants.
The Smartwaiver API will never return more than 20 participants. Participants are listed by descending order based on the creation date.

If there are more than 20 records the XML response will include:
<more_records_exist>true</more_records_exist>

rest_limit Change the maximum number of participants returned. E.g. if set to 10 it'll return 10 participants (instead of the default). This value must be smaller than 20.
rest_offset Skip the first [value] results and then return the next [rest_limit] participants.


Request will return records 101 to 110
rest_request_hours Only return participants created in the past [value] hours.
rest_accepted_hours Only return participants accepted in the past [value] hours.
rest_request_utc Only return participants created after [value] UTC date. Date must be in one of the following formats: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS
rest_request_accepted_utc Only return participants accepted after [value] UTC date. Date must be in one of the following formats: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS
rest_waiverid Only return participants with the specified waiver_id. This may be more than one participant if the waiver contains multiple participants.
rest_participant_id Only return the participant with the specified participant_id.
rest_since_waiverid Only return participants created after the specified waiver_id. Typically you'll want to use this in conjunction with rest_asc (below).
rest_asc By default the newest waiver is shown first. If you add rest_asc the oldest will be shown first.


Request will return all participants created in the past 24 hours.

rest_request_lastname Only return participants with [value] as the last name.


Request will return all participants with the last name: silliman.

rest_request_dob Only return participants with [value] as the date of birth. The [value] must be in the format: YYYYMMDD. Tip: If month or day are less than 10 you must add a 0 in front. i.e. 198211 should be 19820101


Request will return all participants with the date of birth 01/01/1982.

rest_request_tag Only return participants with [value] as the tag.


Request will return all participants with the tag 123.

rest_excludependingwaivers By default participants that are pending email validation are returned via the API. Including this will exclude participants pending email validation.


Combine as many queries as you wish.

Request will return all participants with the last name, silliman, and date of birth February 1st, 1982.
All results are returned as XML. Example:

<xml>
<participants>
  <participant>
    <participant_id>23239038432</participant_id>
    <waiver_id>4faacff060823</waiver_id>
    <firstname>mark</firstname>
    <middlename/>
    <lastname>silliman</lastname>
    <dob>1982-10-02</dob>
    <date_created_utc>2012-05-09 15:13:36</date_created_utc>
    <pdf_url>NTA4YjIxMjA5NDUyYXx8fGEyYWM4OWRhMjlhOGE2NjZiN2I1MmY5MTliMmFujysdy7HUDS</pdf_url>
    <tags>
      <tag>123</tag>
      <tag>234</tag>
    </tags>
    <customfields>
      <customfield>
        <guid>5gadcff060113</guid>
        <title>What team are you on?</title>
        <value>Elks</value>
      </customfield>
    </customfields>
    <phone>2103160941</phone>
    <primary_email>mark@nospamplease.com</primary_email>
    <waiver_title>Demo Tour 4</waiver_title>
    <web_browsers_user_agent>
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19     </web_browsers_user_agent>
    <completed_from_ip_address>208.100.173.34</completed_from_ip_address>
    <marketingallowed>true</marketingallowed>
  </participant>
</participants>
</xml>
waiver_id A unique ID that identifies the participant's waiver. This will always be unique to this document.
participant_id A unique ID that identifies the individual participant.
firstname Participant's first name
middlename Participant's middle name
lastname Participant's last name
dob Date of birth in ISO8601 format
date_created_utc UTC time stamp when the waiver was created
date_accepted_utc UTC time stamp when the waiver was accepted
pdf_url To view the waiver point a browser to (note that you need to replace both APIKEY and VALUE_OF_PDF_URL): https://smartwaiver.com/api/v3/?rest_request=APIKEY&restapi_viewpdf=VALUE_OF_PDF_URL
pending_email_validation Is the document pending email validation? (If true, the participant completed their waiver online and has not clicked on the confirmation link in their email).
waiver_title Title of the document they completed
phone Phone number
primary_email Email address
web_browsers_user_agent Participant's user agent
completed_from_ip_address IP address that the participant completed the waiver at
marketingallowed Did the customer opt-in to your maillist? This will be true,false or "not asked". "not asked" means that the waiver asked for their email but did not ask permission to send them marketing email. False means that the customer opted out. True means that the customer opted in.
waiver_type_guid The unique identifier of the waiver type. This can be compared to Waiver Type API calls.
completed_at_kiosk If this is true the waiver was completed at a kiosk (at your facility). If this is false the waiver was completed online (e.g. at the participant's home before visiting).
how_many_auto_photo_capture_photographs_captured How many photographs were taken using auto photo capture.
Custom fields are added in sets of three keys (title, value & guid). The reason why the title is not the key for the value is that the titles can be changed at any time meaning that if we did this custom question's value couldn't be compared. Therefore we use a static unique id for each customfield.

guid Unique ID
value Value of the custom field
title Title of the custom field
value_iso8601 ISO8601 is only included for date fields. Example: If value is set to "January 2, 2013" value_iso8601 would be "2013-01-02".
There are two ways to capture images with Smartwaiver:

Auto Photo Capture - automatically takes photos of the participant signing the waiver. These photos will be added to the signed PDF copy of the waiver.

Photo Attach - allows staff members to take photos of a participant or ID after the waiver has been signed and submitted. These photos are not added to the signed PDF copy of the waiver.

Important: Images are associated at the waiver level (as opposed to the participant level). So if the waiver includes multiple participants (i.e., Minors and Adults) the photos will most likely be of of the signing adult and not the minor.

You can identify the type of photo by comparing the <source>.

Auto Photo Capture photos will be assigned a <source> of autophotocapture.
Photo Attach photos will be assigned a <source> of photoattach.

<date_utc> is a UTC timestamp for when the photo was captured.

<img_url> is a private value that allows you to download the images to your local server. https://www.smartwaiver.com/api/v3/?rest_request=APIKEY&rest_download_image=VALUE_OF_IMG_URL
The above API call will return the image in the format specified in <file_ext> (typically jpg).

Security Tip: Never stream images on your site using the API! This will open your API key to the public. Instead, save a local copy.

<tag> gives information regarding why the photo was captured or the IP that attached it.

For a list of when a participant checked-in reference the participant's <checkins>. What are Check-ins?

<checkins> can contain any number of <checkin> each which specify:
<checkin_id> A unique identifier for this check-in.
<checkin_utc> UTC time stamp when the check-in occurred.


Releated API Documentation

Waiver Check-In API documentation page – View participants that have been checked-in.
If you'd prefer to link to a specific waiver in Smartwaiver's Waiver Console use the following URL format:
This will open the Waiver Console and automatically look up the Waiver ID that you specified. From here, the end user can download the signed PDF and view all details of the waiver.
You can download any waiver's PDF using the Smartwaiver API. Select a language below for example code.
Hi, I'm Chelsea.