Getting Started
The Dryfta API is designed for developers, or anyone else who’s comfortable creating custom-coded solutions or integrating with RESTful APIs. If you need help integrating with Dryfta API, please go to our Support Desk and submit a support ticket.
The REST architectural style is an integral part of API. If you’d like to learn more about REST before using the API, check out the Introduction to REST guide.
Resources
Resources are typically nouns like ‘contacts’ or ‘role’ that you take actions on using supported HTTP verbs. The root directory for the API includes a map of all available resources and their subresources:
https://<sitename>.dryfta.com/api/v1
The <sitename>
part of the URL is your domain name. For example, if your domain name is event360
, all API endpoints for your account are available at https://event360.dryfta.com/api/v1
.
Each resource is typically separated into a resource/{id}
format, with sub-resources following the same pattern. For example, if you’re looking for information about contacts or users, make a GET request to https://<sitename>.dryfta.com/api/v1/contacts
. To access an individual user, make a GET request to https://<sitename>.dryfta.com/api/v1/contacts/{user_id}
.
Authentication
There are 2 authentication methods for the API: HTTP Basic authentication and OAuth2. The easiest way to authenticate is using HTTP Basic authentication. In HTTP Basic authentication curl uses the -u flag to pass basic auth credentials and the credentials passed in headers. Here, we will use an authentication header to authenticate the API key.
curl --request GET \
--url 'https://<sitename>.dryfta.com/api/v1' \
--header 'Authorization:<your_apikey>'
HTTP Methods
The Dryfta API v1.1 supports GET HTTP method for interacting with resources:
- GET Make a GET request to retrieve data. GET requests will never cause an update or change to your data because they are safe.
- POST Make POST request to create a new user. POST request will create new records in your database.
- PATCH Make PATCH request to update an existing user. PATCH request will update existing user data in the database.
- DELETE Make DELETE request to delete an existing user.
Parameters
There are 4 main categories of parameters for each endpoint in the Dryfta API: path, query string, request body, and response body.
Request Method – POST
POST request is used to create new users.
You can create multiple users at once.
Up to 50 users can be created at once.
Up to 100 requests can be sent in 15 minutes.
Up to 3600 requests can be sent in 24 hours.
User data must be sent in JSON format.
https://event360.dryfta.com/api/v1/contacts
$userArr = array(array("prefix => "Mr", "first_name" => "Su", "last_name" => "Sen", "user_type" => "1", "email" => "example@test.com", "assign_roles" => "1,2,6", "custom_fields" => array("96" => "Demo University", "91" => "123652589")));
assign_roles - possible values ( comma separated role ids).
Input Type Fields.
custom_fields - ("FIELD_ID" => "FIELD_VALUE");
Optional Fields.
custom_fields - ("FIELD_ID" => "FIELD_VALUE"); ( comma separated option ids e.g. "239" => "56,57,58" )
Note: to get fields id and option ids, use GET request. GET request for fields.
Request Method – PATCH
PATCH request is used to update an existing user.
You can update one user at once.
To update user detail post user data to path and include user id as path parameter.
Up to 400 requests can be sent in 1 hour.
Up to 3600 requests can be sent in 24 hours.
User data must be sent in JSON format.
https://event360.dryfta.com/api/v1/contacts?user_id={user_id}
$userArr = array(array("first_name" => "Suss", "assign_roles" => "1,8", "custom_fields" => array("91" => "985621473")));
Post only fields which needs to be updated.
Request Method – DELETE
DELETE request is used to delete an existing user.
To delete a user, include user id as path parameter.
Up to 400 requests can be sent in 1 hour.
Up to 3600 requests can be sent in 24 hours.
https://event360.dryfta.com/api/v1/contacts?user_id={user_id}
Request Method – GET
Get All Forms
GET /forms
Get all forms created for the event.
Query string parameters – Not required.
Response body parameters
forms Type: Array Title: Forms Read only: false An array of forms.
Get All Fields of a particular form
GET /forms/{form_id}
Get all fields under a particular form. Use these field id and option ids to update user detail.
Path parameters
In an API URL, we include resource names and unique identifiers to help you figure out how to structure your requests. Resource names are immutable, but resource identifiers are required, so you need to replace them with real values from your Event data. Let’s look at an example:
https://event360.dryfta.com/api/v1/contacts/role/{role_id}
In that URL, there is 1 primary resource, contacts
, and 1 subresources: role
. There is also 1 path parameters that you need to replace with real values from your Event data: role_id
. The role_id can be id of default/custom role. For example, role_id for reviewers is 2. When you replace the value with actual data, your final URL should look something like this:
https://event360.dryfta.com/api/v1/contacts/role/2
form_id The unique id for the form. Replace {form_id} with any form id returned from GET all forms request (possible values – 1: Attendee Registration form, 2: Reviewer Registration Form and so on).
field_id The unique id of the field. Replace {field_id} with any field id returned from GET form request.
Response body parameters
field_detail Type: Array Title: field detail Read only: false An array of field_detail.
Query string parameters
We use query string parameters for filtering, pagination, and partial responses in the Dryfta API. The format for query string parameters is the full resource URL followed by a question mark, and the optional parameters:
https://event360.dryfta.com/api/v1/contacts/role/2?option1=foo&option2=bar
Pagination
Paginate your API requests to limit response results and make them easier to work with. We use offset
and count
in the URL query string to paginate because it provides greater control over how you view your data.
Offset
defaults to 0, so if you use offset=1
, you’ll miss the first element in the dataset. Count
defaults to 50. For example, this URL includes query string parameters for pagination:
https://event360.dryfta.com/api/v1/contacts?offset=0&count=10
Partial responses
Use field parameters to cut down on data transfers by limiting which fields the Dryfta API returns. For example, you may not need the full details of a resource, and can instead pass specific fields you want to include.
The parameters for fields can be set like F1=FIRST_NAME, F2=LAST_NAME and so on. To get all the custom fields in response, set field parameter for custom fields like F3=CUSTOM_FIELDS. For example, the following URL uses the F1
query string parameter to only include the first name and email fields in the response for contacts:
https://event360.dryfta.com/api/v1/contacts?F1=FIRST_NAME&F2=EMAIL
Response body parameters
Every API call response includes headers and an optional JSON-formatted body.
An Introduction to REST
Background
When we talk about our API, we use terms like “REST” and “RESTful.” “REST” stands for Representational State Transfer. REST is an architecture style for designing networked applications.
Most APIs aren’t fully RESTful, including the Dryfta API. But we follow most of the practices and common definitions of the style. For example, the Dryfta API has what we call “resources,” which are typically nouns like “contacts” or “role”. You take action on resources using the standard HTTP methods: POST, GET, PATCH, and DELETE. Dryfta API v1.1 only uses GET HTTP method.
RESTful HTTP Methods
You may see these standard HTTP methods referred to as CRUD, or Create, Read, Update, Delete. In Dryfta API v1.1., we are only reading data from the event database. So we will use GET method only. The GET request is used to read or retrieve a resource.
RESTful Features of the Dryfta API
Nouns
RESTful APIs are based on resources, and share a well-defined and uniform interface. URLs and URIs in the API don’t typically contain verbs because verbs can’t be resources. That’s why we try to limit verbs to the HTTP method part of your request.
We also refer to “endpoints” in our documentation. Endpoints are URIs (as opposed to URLs) for individual resources. For example, find users of a particular role by requesting the /contacts/role/{role_id}
endpoint.
HTTP methods and response codes
We do our best to use standard HTTP methods with accurate and well-known status codes in the Dryfta API.
Self-Describing representations
We use JSON Schema to describe each representation. Schemas also contain validation and type information to help you error-check your requests.
Now that you know a bit more about the REST architecture and how we use it in the Dryfta API, be sure to check out the API Reference to start making requests.
Reference
Here are all the methods and parameters that can be used in Dryfta API v1.1.
Contacts
Contacts are the users, who registered for your event including attendees, authors and speakers. Use contacts API call to get contacts.
Get All Contacts
GET /contacts
Get all contacts registered for the event. It will not return administrator user types.
Query string parameters
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field.
Possible Values:
|
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Determines which fields have to be returned. FIRST_NAME, LAST_NAME, EMAIL will be returned if no field parameter is passed. To include custom fields, use CUSTOM_FIELDS parameter. Please note that this will return all custom fields whatsoever has been submitted by user in your event platform.
Possible Values:
|
Response body parameters
contacts | Type: Array | Title: Contacts | Read only: false | An array of contacts. |
An example for making GET Request
curl --request GET \
--url 'https://event360.dryfta.com/api/v1/contacts' \
--header 'Accept:application/vnd.api+json' \
--header 'Content-Type:application/vnd.api+json' \
--header 'Authorization:apikey'
Get information about a specific contact
GET /contacts/{user_id}
Get information of a particular user. Replace {user_id} with id of the user who is registered for the event.
Path parameters
user_id | The unique id for the user. |
Query string parameters
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Determines which fields have to be returned. FIRST_NAME, LAST_NAME, EMAIL will be returned if no field parameter is passed. To include custom fields, use CUSTOM_FIELDS parameter. Please note that this will return all custom fields whatsoever has been submitted by user in your event platform.
Possible Values:
|
Response body parameters
Return an object having parameters passed in fields parameters. If no field parameter is passed, it will return first_name, last_name, email. |
Get information about users with specific role
GET /contacts/role/{role_id}
Get information of users with particular role. Replace {role_id} with id of specific role.
Path parameters
role_id | The unique id for the role. |
Query string parameters
The query string parameters will be the same as for all contacts.
Response body parameters
users | Type: Array | Title: Users | Read only: false | An array of users of a particular role. |
Get all Authors
GET /contacts/authors
Get all authors.
Query string parameters
The query string parameters will be same as for the all contacts.
Response body parameters
authors | Type: Array | Title: Authors | Read only: false | An array of authors. |
Sessions
Sessions are individual sessions listed under the program schedule. Use sessions API call to get sessions.
Get All Sessions
GET /programs
Get all sessions for the event.
Query string parameters
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field. |
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Determines which fields have to be returned. Please note that this will return all information whatsoever has been submitted by user in your event platform. |
Response body parameters
contacts | Type: Array | Title: Sessions | Read only: false | An array of contacts. |
An example for making GET Request
curl --request GET \
--url 'https://event360.dryfta.com/api/v1/programs' \
--header 'Accept:application/vnd.api+json' \
--header 'Content-Type:application/vnd.api+json' \
--header 'Authorization:apikey'
Get information about a specific session
GET /programs/{id}
Get information of a particular session. Replace {id} with id of the session created for the event.
Path parameters
id | The unique id of the session. |
Query string parameters
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Determines which fields have to be returned. Please note that this will return all information whatsoever has been submitted by user in your event platform. |
Response body parameters
Return an object having parameters passed in fields parameters. |
Abstracts
Abstracts are submissions submitted by authors. It could be papers, posters, panel submissions etc. Use abstracts API call to get submissions.
Get All Submissions
GET /submissions
Get all submissions collected at your event.
Query string parameters
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field.
Possible Values:
|
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false |
Response body parameters
contacts | Type: Array | Title: Contacts | Read only: false | An array of submissions. |
An example for making GET Request
curl --request GET \
--url 'https://event360.dryfta.com/api/v1/submissions' \
--header 'Accept:application/vnd.api+json' \
--header 'Content-Type:application/vnd.api+json' \
--header 'Authorization:apikey'
Get information about a specific submission
GET /submissions/{id}
Get information of a particular submission. Replace {id} with id of the abstract submission submitted for the event.
Path parameters
id | The unique id for the submission. |
Query string parameters
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | To include custom fields, use CUSTOM_FIELDS parameter. Please note that this will return all custom fields whatsoever has been submitted by user in your event platform. |
Response body parameters
Return an object having parameters passed in fields parameters. If no field parameter is passed, it will return all abstract fixed fields. |
Orders
Orders are ticket purchases placed by the user when purchasing one or more than one tickets and add-ons. Use orders API call to get a list of all orders.
Get All Orders
GET /orders
Get all orders placed in an event.
Query string parameters
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field. |
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Please note that this will return all fields whatsoever has been submitted by user in your event platform. |
Response body parameters
contacts | Type: Array | Title: Orders | Read only: false | An array of contacts. |
An example for making GET Request
curl --request GET \
--url 'https://event360.dryfta.com/api/v1/orders' \
--header 'Accept:application/vnd.api+json' \
--header 'Content-Type:application/vnd.api+json' \
--header 'Authorization:apikey'
Get information about a specific order
GET /orders/{id}
Get information of a particular order. Replace {id} with id of the order placed from the event website.
Path parameters
id | The unique id for the order. |
Query string parameters
Field Parameters
Possible Values:
|
Type: String | Title: Field Name | Read only: false | Please note that this will return all information whatsoever has been submitted by user in your event platform. |
Response body parameters
Return an object having parameters passed in fields parameters. If no field parameter is passed, it will return all information related to an order. |
Subscribers
Get All Subscribers
GET /subscribers
Get subscribers from the event.
Query string parameters
The query string parameters will be applied on the subscribers of the list, not on the lists itself. For example: If you set count parameter to 10, this will get 10 subscribers from each list.
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field.
Possible Values:
|
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Response body parameters
subscribers | Type: Array | Title: subscribers | Read only: false | An array of lists including subscribers. |
Get Subscribers of a specific list
GET /subscribers/{list_id}
Get subscribers of a particular list from the event. Replace {list_id} with id of the subscribers list from the event.
Path parameters
list_id | The unique id for the list. |
Query string parameters
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field.
Possible Values:
|
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Response body parameters
subscribers | Type: Array | Title: subscribers | Read only: false | An array contains list detail and subscribers. |
Dryfta API library for PHP
Download the library and include it manually. cURL support is required. Using the library, you have to include the library file and call the library functions. The function will return data in array form.
include('./DryftaApi.php');
Start by use-ing the class and creating an instance with your API key use \DryftaApi\DryftaApi; $DryftaApi = new DryftaApi($api_key);
Get All Contacts
$result = $DryftaApi->get(‘contacts’, $params, $fields);
Query Parameters
$params = array("count"=>50, "offset"=> 0, "sort_field" => "registration_date", "direction" => "DESC"); //default
count | Type: Integer | Title: Count | Read only: true | The number of records to return. Default value is 50. |
offset | Type: Integer | Title: Offset | Read only: false | The number of records from a collection to skip. Iterating over large collections with this parameter can be slow. Default value is 0. |
sort_field | Type: String | Title: Sort By Field | Read only: false | Returns records sorted by the specified field.
Possible Values:
|
direction | Type: String | Title: Sort Direction | Read only: false | Determines the order direction for sorted results.
Possible Values:
|
Fields Parameters
$fields = array('FIRST_NAME', 'LAST_NAME', 'EMAIL'); // default
Possible Values:
- FIRST_NAME
- LAST_NAME
- ROLE
- ORGANIZATION
- PHONE_NUMBER
- PROFILE_IMAGE
- CUSTOM_FIELDS
Response
Array of contacts.
Get a Specific Contact
$result = $DryftaApi->get(‘contacts/$user_id’, $params, $fields);
Replace $user_id with id of registered user.
Query Parameters
Query parameters not required for single contact, you need to pass a blank array.
$params = array(); //default
Fields Parameters
Fields parameters will be same as for contacts.
$fields = array('FIRST_NAME', 'LAST_NAME', 'EMAIL'); // default
Response
Array containing single contact detail.
Get contacts with a specific role
$result = $DryftaApi->get(‘contacts/role/$role_id’, $params, $fields);
Replace $role_id with id of role from event site.
Query Parameters
Query parameters will be same as for contacts.
$params = array("count"=>50, "offset"=> 0, "sort_field" => "registration_date", "direction" => "DESC"); //default
Fields Parameters
Fields parameters will be same as for contacts.
$fields = array('FIRST_NAME', 'LAST_NAME', 'EMAIL'); // default
Response
Array of contacts of specific role.
Get Authors
$result = $DryftaApi->get(‘contacts/authors’, $params, $fields);
Replace role_id with id of role from event site.
Query Parameters
Query parameters will be same as for contacts.
$params = array("count"=>50, "offset"=> 0, "sort_field" => "registration_date", "direction" => "DESC"); //default
Fields Parameters
Fields parameters will be same as for contacts.
$fields = array('FIRST_NAME', 'LAST_NAME', 'EMAIL'); // default
Response
Array of authors.
Get Subscribers
$result = $DryftaApi->get(‘subscribers’, $params, $fields);
Replace role_id with id of the role.
Query Parameters
$params = array("count"=>50, "offset"=> 0, "sort_field" => "created_on", "direction" => "DESC"); //default
All parameters are same as for contacts, but the sort_field parameter value will be changed. Remember the query parameters will be applied on subscribers of the list. For example, if you set count parameter to 10, it will return all the list with 10 subscribers of each list.
Possible Values for sort_field:
- created_on
- name
Fields Parameters
Fields parameter not required, you need to pass blank array.
$fields = array(); // default
Response
Array containg subscriber lists and subscribers.
Get Subscribers of a Specific List
$result = $DryftaApi->get(‘subscribers/$list_id’, $params, $fields);
Replace $list_id with id of subscriber list from event site.
Query Parameters
$params = array("count"=>50, "offset"=> 0, "sort_field" => "created_on", "direction" => "DESC"); //default
All parameters are same as for contacts, but the sort_field parameter value will be changed. Remember the query parameters will be applied on subscribers of the list. For example, if you set count parameter to 10, it will return all the list with 10 subscribers of each list.
Possible Values for sort_field:
- created_on
- name
Fields Parameters
Fields parameter not required, you need to pass blank array.
$fields = array(); // default
Response
Array contains subscriber list detail and subscribers.
Error Response Codes
Response error codes and information.
Status: 400 | Message: Bad Request | Code: 602 | User Message: Invalid path requested. | Your request could not be processed. This is a generic error. The action requested was not valid for this resource. Kindly check your request parameters. |
Status: 401 | Message: Unauthorized | Code: 601 | User Message: Provided API key is not valid. | Your API key may be invalid, or you have attempted to access the wrong data center. |
Status: 429 | Message: Too many requests | Code: 658 | User Message: You have reached maximum request limit for this API. You can not make further requests today. | An API is allowed to make 3600 requests per day, You have reached the limit. |
Status: 429 | Message: Too many requests | Code: 659 | User Message: You have reached maximum request limit for this API. Try after some time. | An API is allowed to make 100 requests in a 15 minute window. You have reached the limit. |
Status: 404 | Message: Not Found | Code: 604 | User Message: User does not exist. | The requested user is not exist. If the user id is correct, kindly check parameters. |
Status: 404 | Message: Not Found | Code: 605 | User Message: No user found. | No contacts found in the database, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 606 | User Message: No author exists. | No authors found in the database, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 606 | User Message: No author exists. | No authors found in the database, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 609 | User Message: Role not exist. | No role found in with the passed role id, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 603 | User Message: No contact exists with this role. | No contact found with the passed role id, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 610 | User Message: Subscriber list not exist. | No list found with the passed list id, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 607 | User Message: No subscriber list with this id. | No subscribers found with the passed list id, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 608 | User Message: No subscriber found. | No subscribers found in the database, or you have passed wrong parameters. |
Status: 404 | Message: Not Found | Code: 611 | User Message: No form found. | The form with this ID does not exist. |
Status: 404 | Message: Not Found | Code: 612 | User Message: No field found. | The field with this ID does not exist. |
Status: 404 | Message: Not Found | Code: 613 | User Message: Field detail not found. Re-check form id and field id. | Field does not exist. Please ensure the form ID and field ID are correct. |
Status: 400 | Message: Not Found | Code: 614 | User Message: No user created. Re-check user data format. | User not created due to invalid values. |
Status: 400 | Message: Not Found | Code: 614 | User Message: No user found with this id. | User with this ID does not exist. |