API Version: 1.0 Deprecated
This page is for developers who are still using API V1. For everyone else please refer to the newest version of Smartwaiver's API.

Smartwaiver’s API allows you to query your raw document data via https requests.

This is similar to a REST API, which works with PHP, ASP and all other languages that can do HTTPS GET requests.

This page is intended for web developers who want to query information from signed and submitted digital waivers. If you are looking for a list of waivers that participants can complete (a.k.a. waiver types) please visit the Waiver Types API documentation page.

Questions or thoughts? Contact us.

Related Articles
API Key
To find your API key, login to your Smartwaiver account then go to: https://www.smartwaiver.com/m/rest/

Replace every occurrence of “APIKEY” found in this manual with the API Key found in the above link.


Limits
The Smartwaiver API will never return more than 1,000 documents. Documents are listed by descending order based on the creation date.

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

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


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_limit=200&rest_offset=1000 Request will return records 1,001 to 1,200.


First Request
https://www.smartwaiver.com/api/?rest_request=APIKEY
Request will return all (up to 1,000) documents.


Query Options
rest_request_hours Only return documents created in the past [value] hours.
rest_accepted_hours Only return documents accepted in the past [value] hours.
rest_request_utc Only return documents 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 documents 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_uniqid Only return documents with the specified unique_id. This may be more than one document if the waiver contains multiple participants.
rest_since_uniqid Only return documents created after the specified unique_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.


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_request_hours=24
Request will return all documents created in the past 24 hours.

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


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_request_lastname=silliman
Request will return all documents with the last name: silliman.

rest_request_dob Only return documents 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


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_request_dob=19820101
Request will return all documents with the date of birth 01/01/1982.

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


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_request_tag=123
Request will return all documents with the tag 123.

rest_includependingwaivers By default documents that are pending email validation are not returned via the API. Including this will return all waivers (including those that are or are not pending email validation.


Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_includependingwaivers


Combining Queries
Combine as many queries as you wish.

Example: https://www.smartwaiver.com/api/?rest_request=APIKEY&rest_request_lastname=silliman&rest_request_dob=19820101
Request will return all documents with the last name, silliman, and date of birth 01/01/1982.


Results
All results are returned as XML. Example:
<xml>
<document>
<unique_id>4faacff060823</unique_id>
<firstname>mark</firstname>
<middlename/>
<lastname>silliman</lastname>
<dob>19840401</dob>
<date_created>2012-05-09 15:13:36</date_created>
<pdf_url>NTA4YjIxMjA5NDUyYXx8fGEyYWM4OWRhMjlhOGE2NjZiN2I1MmY5MTliMmFujysdy7HUDS</pdf_url>
<tag/>
<title>Demo Tour 4</title>
<participant_firstname>Mark</participant_firstname>
<participant_lastname>Silliman</participant_lastname>
<participant_phone>2103160941</participant_phone>
<participant_month>1</participant_month>
<participant_day>4</participant_day>
<participant_year>1984</participant_year>
<primary_email>mark@nospamplease.com</primary_email>
<howmany_additionalpartminors>0</howmany_additionalpartminors>
<electronicsigconsentcheck>Yes</electronicsigconsentcheck>
<ageofparticipant_hidden>28</ageofparticipant_hidden>
<titleofdocument>Demo Tour 4</titleofdocument>
<SERVERSIDE_sessionidforlog>4faacfdf0ae0b</SERVERSIDE_sessionidforlog>
<SERVERSIDE_HTTP_USER_AGENT>
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 </SERVERSIDE_HTTP_USER_AGENT>
<SERVERSIDE_REMOTE_ADDR>208.100.173.34</SERVERSIDE_REMOTE_ADDR>
<SERVERSIDE_CURRENT_URL>/wa/demo/kiosk.php?swform_complete</SERVERSIDE_CURRENT_URL>
<SERVERSIDE_SERVER_ADDR>72.32.168.237</SERVERSIDE_SERVER_ADDR>
<SERVERSIDE_HTTPS>1</SERVERSIDE_HTTPS>
<SERVERSIDE_REMOTE_PORT>49628</SERVERSIDE_REMOTE_PORT>
<SERVERSIDE_SERVER_PORT>443</SERVERSIDE_SERVER_PORT>
<SERVERSIDE_SERVER_NAME>www.smartwaiver.com</SERVERSIDE_SERVER_NAME>
<marketingallowed>No</marketingallowed>
</document>
</xml>


unique_id A unique ID which identifies the document. This will always be unique to this document.
firstname Participant’s first name
middlename Participant’s middle name
lastname Participant’s last name
dob Date of birth YYYYMMDD
dob_US_format Date of birth MM/DD/YYYY
date_created UTC time stamp when the waiver was created
date_accepted 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/?rest_request=APIKEY&restapi_viewpdf=VALUE_OF_PDF_URL
tag The most recent tag that is associated with the participant. Use "tags" if you want the entire list of all tags associated with the participant.
pending_email_validation Is the document pending email validation (1 is yes, 0 is no)
title Title of the document they completed
participant_phone Phone number
primary_email Email address
howmany_additionalpartminors How many additional minors are on the same document
electronicsigconsentcheck Was the electronic signature act checkbox, checked?
SERVERSIDE_HTTP_USER_AGENT Customer’s user agent
SERVERSIDE_REMOTE_ADDR Customer’s IP address
SERVERSIDE_CURRENT_URL URL of the document form
SERVERSIDE_SERVER_ADDR Server’s IP that the form was completed on
SERVERSIDE_HTTPS Was a https connection used?
SERVERSIDE_REMOTE_PORT Remote port
SERVERSIDE_SERVER_PORT Server port
SERVERSIDE_SERVER_NAME Domain the form was completed on
marketingallowed Did the customer opt-in to your maillist
marketingallowed_checked Was the participant given an option to opt-in to your maillist? If this isn't set they were not shown an option.
parentofminor_firstname Parent or guardian’s first name
parentofminor_middlename Parent or guardian’s middle name
parentofminor_lastname Parent or guardian’s last name
parentofminor_phone Parent or guardian’s phone number
wizardid The unique identifier of the waiver type. This can be compared to Waiver Type API calls.



Results for Custom Fields
Custom fields are added in pairs (title & value). 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 uniq id for each customfield (represented by * below).

customfield_* Value of the custom field
customfield_*_title Title of the custom field



Webhooks
Instructions for using Webhooks


PHP Example
View PHP examples