You can connect thousands of other applications to CLOSEM using our API links shown on this page. You must be logged in to your CLOSEM account.
Once logged in, this page will automatically populate with your unique content, including your Base URL, contacts lists and tags as shown below.
You can use these links to tie a form on your website to CLOSEM, or use Zapier to link with thousands of other applications.
## Base URL
A POST request must be sent to your company's base URL `https://app.closem.ai/?m=api&auth=`
```curl
curl --location --request POST 'https://app.closem.ai/?m=api&auth={APiKEY}'
```
## Required Parameter - Request Mode
The mode parameter is required with every request. This parameter lets you specify what action you want to be taken, such as adding a contact, starting a sequence, or scheduling an appointment.
Accepted modes: addcontact , runsequence , scheduleappointment
```curl
--form 'mode=addcontact'
Include upsert to modify existing contacts
--form 'upsert=true'
```
You can view the documentation for each mode below.
# Mode - Add Contact
Use this API call to add a new Users (and optionally run one a specified sequence on the newly added Users).
*The `mode` parameter must be set to `addcontact`.*
Include upsert to modify existing contacts
--form 'upsert=true'
```
### Required Parameters
Phone and/or email is required to add a Users.
### Phone Number
Accepted field names you can use for a phone number: `phone`, `phonenumber`, `number`, or `phone_number`
```curl
--form 'phone=9999999998' \
```
### Email Address
Accepted field names you can use for an email: `email`, `mail`, `emailaddress`, or `email_address`
```curl
--form 'email=[email protected]' \
```
Optional Parameters
Email is optional if phone is provided. Phone is optional if email is provided.
### Full Name
Accepted field names you can use for a Users's full name: `fullname`, `name`, or `full_name`
First and last name must be seperated by a space.
Will still work if only the first name is passed e.g. fullname:John
```curl
--form 'fullname=John Doe' \
```
### First Name
Accepted field names you can use for a Users's first name: `firstname`, `first`, or `first_name`
Field is ignored if full name is passed.
```curl
--form 'firstname=John' \
```
### Last Name
Accepted field names you can use for a Users's last name: `lastname`, `last`, or `last_name`
Field is ignored if full name is passed.
```curl
--form 'lastname=Doe' \
```
### Notes
Accepted field names you can use for Users notes: `notes`, or `note`
```curl
--form 'notes=Example Users note' \
```
### Address
Accepted field names you can use for Users address: `address`, or `street`
```curl
--form 'address=123 Testing Street' \
```
### City
Accepted field names you can use for Users city: `city`
```curl
--form 'city=Example Users city' \
```
### State
Accepted field names you can use for Users state: `state`
```curl
--form 'state=CA' \
```
### ZIP
Accepted field names you can use for Users ZIP: `zip`, `zip_code`, or `zipcode`
```curl
--form 'zip=99999' \
```
### Tag(s)
Accepted field names you can use for adding tag(s) to imported Users: `tags`, or `tag`
If assigning more than one tag, the tag IDs must be seperated by commas.
```curl
--form 'tags=42,57' \
```
### Contact List(s)
Accepted field names you can use for adding contact list(s) to imported Users: `contactlists`, `contactlist`, `contact_lists`, or `contact_list`
If assigning more than one contact list, the contact list IDs must be seperated by commas.
```curl
--form 'contactlists=18,32' \
```
### Sequence
Accepted field name for sequence ID to copy and run after importing the Users: sequence_id.
You can only send one sequence ID.
```curl
--form 'sequence_id=99' \
```
# Mode - Run Sequence
Use this API call to start a sequence on one or more Users, identified by either their email, phone, or contact list.
*The `mode` parameter must be set to `runsequence`.*
## Required Parameters
Sequence ID is required and one (or more) of the following parameters is required: `contact_emails`, `contact_phones`, `contact_lists`, or `tags`.
### Sequence ID
Accepted field names you can use for sequence ID: `sequence_id`
```curl
--form 'sequence_id=55'
```
### Contact Email(s)
Accepted field name you can use for contact email(s): `contact_emails`
If providing more than one contact email, the contact emails must be seperated by commas. This parameter is optional if contact phones, contact lists, or tags are specified.
```curl
--form 'contact_emails=[email protected],[email protected]'
```
### Contact Phone(s)
Accepted field name you can use for contact phone number(s): `contact_phones`
If providing more than one contact phone number, they must be seperated by commas. This parameter is optional if contact emails, contact lists, or tags are specified.
Accepted formats for phone number are: `+1 (###) ###-####`, `+1##########` , `1##########` , `1-###-###-####`
```curl
--form 'contact_phones=+15554443333,777-888-9999'
```
### Contact List(s)
Accepted field names are: `contactlists`, `contactlist`, `contact_lists`, or `contact_list`
All contacts belonging to the contact list(s) will get the sequence ran on them.
If assigning more than one contact list, the contact list IDs must be seperated by commas. This parameter is optional if contact phones, contact emails, or tags are specified.
```curl
--form 'contactlists=18,32'
```
### Tag(s)
Accepted field names are: tags, or tag
All contacts belonging to the tag(s) will get the sequence ran on them.
If specifying more than one tag, the tag IDs must be seperated by commas. This parameter is optional if contact emails, contact phones, or contact lists are specified.
```curl
--form 'tags=42,57'
```
# Mode - Schedule Appointment
Use this API call to start a sequence on one or more Users, identified by either their email, phone, or contact list.
The `mode` parameter must be set to `scheduleappointment`.
## Required Parameters
Appointment Note and Appointment Timestamp is required, and one (or more) of the following parameters is also required: contact_emails, contact_phones, contact_lists, or tags.
### Appointment Note
Accepted field name you can use for appointment note: `appointment_note`
```curl
--form 'appointment_note=Virtural Training Seminar'
```
### Appointment Timestamp
Accepted field name you can use for appointment timestamp: `appointment_timestamp`
This is when the appointment is scheduled for. This must be a time in the future (not the past!).
Additionally, you have one of two choices for this parameter:
1. You may send a UNIX timestamp (link to converter)
2. You may send a datetime string in one of the following format ONLY (AM/PM interchangable):
MM/DD/YY HH:MM AM
MM/DD/YYYY HH:MM PM
If you provide a datetime string, it will be assumed to be the same timezone as your companies CLOSEM timezone!
```curl
--form 'appointment_timestamp=04/01/2022 12:30 PM'
```
### Contact Email(s)
Accepted field name you can use for contact email(s): `contact_emails`
If providing more than one contact email, the contact emails must be seperated by commas. This parameter is optional if contact phones, contact lists, or tags are specified.
```curl
--form 'contact_emails=[email protected],[email protected]'
```
### Contact Phone(s)
Accepted field name you can use for contact phone number(s): `contact_phones`
If providing more than one contact phone number, they must be seperated by commas. This parameter is optional if contact emails, contact lists, or tags are specified.
```curl
--form 'contact_phones=+15554443333,1-777-888-9999'
```
### Contact List(s)
Accepted field names are: `contactlists`, `contactlist`, `contact_lists`, or `contact_list`
All contacts belonging to the contact list(s) will get the scheduled appointment.
If assigning more than one contact list, the contact list IDs must be seperated by commas. This parameter is optional if contact phones, contact emails, or tags are specified.
```curl
--form 'contactlists=18,32'
```
### Tag(s)
Accepted field names are: `tags`, or `tag`
All contacts belonging to the tag(s) will get the scheduled appointment.
If specifying more than one tag, the tag IDs must be seperated by commas. This parameter is optional if contact emails, contact phones, or contact lists are specified.
```curl
--form 'tags=42,57'
```