Custom integrations can be achieved using the Conferences i/o API.
Note: API settings are an account setting enabled by Conferences i/o. If these settings are missing in your app, contact Customer Support to have them enabled.
API documentation
Full reference documentation for the Conferences i/o API is below.
Authentication Scheme Reference
- API Key (ApiKeyHeader)
- Parameter Name: API-Key, in: header.
Conferences i/o App REST API v2
Availability
API access must be activated by Conferences i/o before any API endpoint will work. Please reach out to your Conferences i/o Account Representative or to Conferences i/o Support (support@conferences.io) if you would like more information about activating API access. There may be an additional cost associated with activating API access.
Endpoint
Your endpoint for this API lives under your Conferences i/o URL. If your Conferences i/o URL was example.cnf.io, your endpoint would be: https://example.cnf.io/api/v2
The App identifier used when calling App resources is the App's URI (e.g. example for example.cnf.io). Be aware that this value may occasionally change if and when you send a change_uri instruction.
Authentication
All requests require an API-Key HTTP header. Multiple API keys can be created and managed by an administrator to control access.
Data Format
All request and response bodies are JSON (application/json).
Responses
Successful responses generally include a status ("ok") and a code (HTTP status code). Response body shape varies by endpoint. Some DELETE endpoints return 200 with a body, while others return 204 with no body.
Null Value Behavior
-
In GET responses: A
nullvalue indicates a field has no setting. -
In PUT requests: A
nullvalue means the field will be ignored (same as omitting it). To unset a field, pass a blank string ("").
Timestamps
All timestamps are in ISO-8601 format.
Base URLs:
-
https://{subdomain}.cnf.io/api/v2- subdomain - Your Conferences i/o subdomain (e.g. "example" for example.cnf.io) Default: YOUR_URL
App
App-level settings and configuration.
Retrieve App Settings
GET /app
Retrieves the current settings for the app. The App identifier is the app's URI (e.g. "example" for example.cnf.io). This value may occasionally change when a change_uri instruction is sent.
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"app_password": null,
"custom_attendee_field_1": "Registration ID",
"custom_attendee_field_2": "Region",
"custom_attendee_field_3": null,
"custom_attendee_field_4": null,
"custom_attendee_field_5": null,
"end_date": "2019-01-29",
"moderator_password": "example_moderator_secret",
"name": "Example Event",
"start_date": "2019-01-24",
"timezone": "America/Chicago"
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | App settings retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Update App Settings
PUT /app
Updates app settings. Only send fields you want to update. A null value for any field means that field will be ignored (no change). To unset a field, pass an empty string ("").
Body parameter
{
"name": "string",
"start_date": "2019-01-24",
"end_date": "2019-01-26",
"timezone": "America/Chicago",
"app_password": "string",
"moderator_password": "string",
"custom_attendee_field_1": "string",
"custom_attendee_field_2": "string",
"custom_attendee_field_3": "string",
"custom_attendee_field_4": "string",
"custom_attendee_field_5": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AppSettings | true | none |
| » name | body | string or null | false | A label associated with the app/instance, typically the name of the event. |
| » url | body | string or null | false | The publicly accessible URL for this app (read-only). |
| » start_date | body | string or null | false | Event start date. Format: YYYY-MM-DD (e.g. "2019-01-24"). |
| » end_date | body | string or null | false | Event end date. Format: YYYY-MM-DD (e.g. "2019-01-26"). |
| » timezone | body | string or null | false | Accepts values from the tz database, like "America/Chicago". Pass -1 for no timezone. |
| » app_password | body | string or null | false | A shared secret used to password-protect an app before anyone can join. Pass "" to unset. |
| » moderator_password | body | string or null | false | A shared secret used for session moderators. Pass "" to unset. |
| » custom_attendee_field_1 | body | string or null | false | Flexible label for identifying information associated with attendees. |
| » custom_attendee_field_2 | body | string or null | false | none |
| » custom_attendee_field_3 | body | string or null | false | none |
| » custom_attendee_field_4 | body | string or null | false | none |
| » custom_attendee_field_5 | body | string or null | false | none |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": null
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | App settings updated successfully. | SuccessResponse |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Authentication required: ApiKeyHeader
Sessions
Session management, including creation, retrieval, updating, deletion, and polling/Q&A data.
Retrieve a List of Sessions
GET /sessions
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"count": 5,
"data": [
{
"access_code": null,
"checkin_code": null,
"checkin_required": true,
"checkout_code": null,
"checkout_required": true,
"date": "2026-01-12",
"delivery_format": "virtual",
"end_time": "00:00:00",
"external_id": null,
"fields_of_study": [
{
"credits": "1",
"name": "Ethics"
}
],
"id": "abcd",
"learning_objectives": null,
"location": null,
"moderator_password": null,
"name": "Example Session",
"presenters": null,
"start_time": "00:00:00",
"url": "https://example.cnf.io/sessions/abcd"
}
]
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of sessions retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Create a Session
POST /sessions
Creates a new session. date is preferred in YYYY-MM-DD format, but other date strings like "January 23, 2023" are also parsed. start_time and end_time are preferred in 24-hour HH:MM format (e.g. "20:00" for 8:00PM), but strings like "8pm" or "8:00PM" are also accepted. There is no need to account for timezone — use the dates and times appropriate to the event's geographic context. Presenters can be created inline via the presenters array. See the Presenters section for deduplication logic.
Body parameter
{
"external_id": "string",
"name": "Example Session",
"location": "Ballroom A",
"description": "string",
"date": "2019-01-24",
"start_time": "08:30:00",
"end_time": "09:15:00",
"access_code": "string",
"moderator_password": "string",
"presenters": [
{
"id": "abcdefghijkl",
"external_id": "PRESENTER-001",
"name": "Jordan Example"
}
],
"fields_of_study": [
{
"name": "Accounting",
"credits": "2.5"
}
],
"learning_objectives": [
"string"
],
"checkin_required": true,
"checkout_required": true,
"checkin_code": "string",
"checkout_code": "string",
"delivery_format": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | any | true | none |
Example responses
201 Response
{
"status": "ok",
"code": "201",
"data": {
"object": "session",
"id": "abcd",
"url": "https://example.cnf.io/sessions/abcd"
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Session created successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Retrieve a Session
GET /sessions/{session_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| session_id | path | string | true | The session's short identifier (e.g. "abcd"). |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"id": "abcd",
"external_id": null,
"name": "Example Session",
"location": "Ballroom A",
"date": "2026-06-01",
"start_time": "08:30:00",
"end_time": "09:15:00",
"access_code": null,
"moderator_password": null,
"checkin_code": null,
"checkin_required": false,
"checkout_code": null,
"checkout_required": false,
"delivery_format": null,
"url": "https://example.cnf.io/sessions/abcd",
"presenters": null,
"fields_of_study": [
{
"name": "Accounting",
"credits": "2"
}
],
"learning_objectives": null
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Session retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Update a Session
PUT /sessions/{session_id}
Updates a session. You only need to send the fields you want updated. A null value means the field will be ignored (no change). To unset a field, pass an empty string (""). If fields_of_study is not included in the request, no change will be made to existing fields of study. Presenters can be updated inline via the presenters array. See the Presenters section for deduplication and update logic.
Body parameter
{
"external_id": "string",
"name": "Example Session",
"location": "Ballroom A",
"description": "string",
"date": "2019-01-24",
"start_time": "08:30:00",
"end_time": "09:15:00",
"access_code": "string",
"moderator_password": "string",
"presenters": [
{
"id": "abcdefghijkl",
"external_id": "PRESENTER-001",
"name": "Jordan Example"
}
],
"fields_of_study": [
{
"name": "Accounting",
"credits": "2.5"
}
],
"learning_objectives": [
"string"
],
"checkin_required": true,
"checkout_required": true,
"checkin_code": "string",
"checkout_code": "string",
"delivery_format": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | any | true | none |
| session_id | path | string | true | The session's short identifier (e.g. "abcd"). |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": null
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Session updated successfully. | SuccessResponse |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Authentication required: ApiKeyHeader
Delete a Session
DELETE /sessions/{session_id}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| session_id | path | string | true | The session's short identifier (e.g. "abcd"). |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 204 | No Content | Session deleted successfully. No response body. | None |
Authentication required: ApiKeyHeader
Retrieve Session Polling and Q&A Data
GET /sessions/{session_id}/data
Returns polling and Social Q&A data for a session (added December 2019). This endpoint only supports retrieving data — modifying polling or Q&A data is not supported. Useful for moving raw response datasets into your own database or service. Important: This endpoint is not intended for real-time consumption of polling and Q&A data, and no real-time method exists in this API.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| session_id | path | string | true | The session's short identifier. |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"polls": {},
"questions": []
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Session polling and Q&A data retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Attendance Tracking
Session attendance check-ins, check-outs, preloading, and removal. Includes support for fields of study, codewords, and delivery format tracking.
Retrieve All Attendance Tracking Data for a Session
GET /sessions/{session_id}/attendance
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| session_id | path | string | true | The session's short identifier. |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": [
{
"user": {
"first_name": "Alex",
"last_name": "Example",
"email": "attendee@example.com",
"external_id": "ATTENDEE-001",
"field_1": null,
"field_2": null,
"field_3": null,
"field_4": null,
"field_5": null
},
"checkin_time": "2019-01-08T11:47:02-05:00",
"checkout_time": null,
"checkin_time_actual": "2019-01-08T12:38:02-05:00",
"checkout_time_actual": null,
"delivery_format": null,
"admin_note": null,
"attendee_note": null,
"checkin_source": null,
"checkout_source": null,
"fields_of_study": [
{
"name": "Accounting",
"credits": 2,
"codewords": {
"possible": 4,
"valid": 0,
"missed": 4,
"valid_list": [],
"missed_list": [
"code1",
"code2",
"code3",
"code4"
]
}
},
{
"name": "Taxes",
"credits": 1,
"codewords": {
"possible": 2,
"valid": 0,
"missed": 2,
"valid_list": [],
"missed_list": [
"code5",
"code6"
]
}
}
],
"history": [
{
"action": "checkin",
"timestamp": "2019-01-08T11:47:02-05:00"
}
]
}
]
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Attendance data retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
| action | checkin |
| action | checkout |
Authentication required: ApiKeyHeader
Clear All Check-Ins for a Session
DELETE /sessions/{session_id}/attendance
Removes all check-ins and attendance data for an individual session. This method cannot remove individual attendee check-ins — use the /attendance/remove endpoint for that.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| session_id | path | string | true | The session's short identifier. |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"count": 3
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All check-ins cleared successfully. | Inline |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Remove Check-Ins for a Session
POST /sessions/{session_id}/attendance/remove
Removes individual attendee check-ins using filters. Can remove check-ins by email, external_id, or remove all check-ins with all: true. Filter rules: - Filters cannot be combined. Using more than one (e.g. all: true + an email) returns a "Too many possible filters" error.
- Passing all attributes as null or omitting them returns a "No valid filters were passed" error.
-
emailandexternal_idare mutually exclusive. - Matches are exact and case-insensitive. If two user records share the same email, both check-ins will be removed.
Use preview: true to see what would be removed without executing the removal. Added October 2021.
Body parameter
{
"preview": false,
"all": true,
"email": "string",
"external_id": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | true | none |
| » preview | body | boolean | false | If true, check-in removal will not be executed. The response will still include what would have been removed. |
| » all | body | boolean | false | If true, all check-ins for the session will be removed. Cannot be combined with other filters. |
| body | string or null | false | Remove check-ins matching this exact email (case-insensitive). Cannot be used at the same time as external_id. |
|
| » external_id | body | string or null | false | Remove check-ins matching this exact external_id (case-insensitive). Cannot be used at the same time as email. |
| » anonymous | body | object | false | none |
| »» all | body | boolean | true | none |
| » anonymous | body | object | false | none |
| body | string | true | none | |
| » anonymous | body | object | false | none |
| »» external_id | body | string | true | none |
| session_id | path | string | true | The session's short identifier. |
Enumerated Values
| Parameter | Value |
|---|---|
| »» all | true |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"preview": false,
"found": 1,
"checkins": [],
"filters": {
"all": false,
"email": "attendee@example.com",
"external_id": null
}
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "Too many possible filters"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Check-in removal executed (or previewed). Response includes preview flag, found count, checkins array of removed records, and filters summary. |
Inline |
| 500 | Internal Server Error | Error — possible messages: - "Too many possible filters": Filters cannot be combined (e.g. all: true with an email). - "No valid filters were passed": All usable attributes were null or omitted. |
ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
| action | checkin |
| action | checkout |
Authentication required: ApiKeyHeader
Preload Attendees to a Session
POST /sessions/{session_id}/attendance/preload
Pre-loads attendees for check-in, primarily used with Kiosk Mode. No pre-existing pre-loaded attendees will be removed when pre-loading. If you need to re-synchronize, clear existing attendance data for the session first, then use this method again.
Body parameter
[
{
"external_id": "ATTENDEE-001",
"first_name": "Alex",
"last_name": "Example",
"email": "attendee@example.com",
"field_1": "North Region",
"field_2": "string",
"field_3": "string",
"field_4": "string",
"field_5": "string"
}
]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | PreloadAttendee | true | none |
| session_id | path | string | true | The session's short identifier. |
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"count": 2
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Attendees preloaded successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Session Evaluations
Session evaluation response data (read-only).
Retrieve All Evaluation Response Data
GET /evaluations/responses
Returns all session evaluation response data across the app. Each record represents a single question/response pair, associated with a session, user, and optionally a presenter.
Example responses
200 Response
{
"status": "ok",
"code": "200",
"data": {
"count": 0,
"responses": []
}
}
500 Response
{
"status": "error",
"code": "500",
"message": "A description of an error that occurred during this request."
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Evaluation responses retrieved successfully. | Inline |
| 500 | Internal Server Error | Error response envelope. | ErrorResponse |
Response Schema
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
Authentication required: ApiKeyHeader
Schemas
SuccessResponse
{
"status": "ok",
"code": "200",
"data": null
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| code | string | true | none | none |
| data | any | false | none | Response payload. Shape varies by endpoint and may be null. |
Enumerated Values
| Property | Value |
|---|---|
| status | ok |
ErrorResponse
{
"status": "error",
"code": "500",
"message": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| status | string | true | none | none |
| code | string | true | none | none |
| message | string | true | none | A description of the error that occurred. |
Enumerated Values
| Property | Value |
|---|---|
| status | error |
AppSettings
{
"name": "string",
"url": "string",
"start_date": "2019-01-24",
"end_date": "2019-01-26",
"timezone": "America/Chicago",
"app_password": "string",
"moderator_password": "string",
"custom_attendee_field_1": "string",
"custom_attendee_field_2": "string",
"custom_attendee_field_3": "string",
"custom_attendee_field_4": "string",
"custom_attendee_field_5": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string or null | false | none | A label associated with the app/instance, typically the name of the event. |
| url | string or null | false | read-only | The publicly accessible URL for this app (read-only). |
| start_date | string or null | false | none | Event start date. Format: YYYY-MM-DD (e.g. "2019-01-24"). |
| end_date | string or null | false | none | Event end date. Format: YYYY-MM-DD (e.g. "2019-01-26"). |
| timezone | string or null | false | none | Accepts values from the tz database, like "America/Chicago". Pass -1 for no timezone. |
| app_password | string or null | false | none | A shared secret used to password-protect an app before anyone can join. Pass "" to unset. |
| moderator_password | string or null | false | none | A shared secret used for session moderators. Pass "" to unset. |
| custom_attendee_field_1 | string or null | false | none | Flexible label for identifying information associated with attendees. |
| custom_attendee_field_2 | string or null | false | none | none |
| custom_attendee_field_3 | string or null | false | none | none |
| custom_attendee_field_4 | string or null | false | none | none |
| custom_attendee_field_5 | string or null | false | none | none |
SessionListData
{
"count": 5,
"data": [
{
"id": "abcd",
"external_id": "string",
"name": "Example Session",
"location": "Ballroom A",
"description": "string",
"date": "2019-01-24",
"start_time": "08:30:00",
"end_time": "09:15:00",
"access_code": "string",
"moderator_password": "string",
"url": "https://example.cnf.io/sessions/abcd",
"presenters": [
{
"id": "7yzhmasgrdeys6fwyx64hx41",
"external_id": null,
"name": "Casey Example"
}
],
"fields_of_study": [
{
"name": "Accounting",
"credits": "2.5"
}
],
"learning_objectives": [
"string"
],
"checkin_required": true,
"checkout_required": true,
"checkin_code": "string",
"checkout_code": "string",
"delivery_format": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | Number of session records returned in this response. |
| data | [Session] | true | none | none |
CountData
{
"count": 2
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
FieldOfStudy
{
"name": "Accounting",
"credits": "2.5"
}
Both name and credits are required. If fields_of_study is not passed in a create or update request, no change will be made. Poorly formatted fields_of_study will not produce an error — instead, the field will silently become empty for the session.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | true | none | Label for the field of study. |
| credits | string | true | none | Numeric credit value (passed as a string). |
PresenterRef
{
"id": "abcdefghijkl",
"name": "Jordan Example",
"external_id": "PRESENTER-001"
}
Presenter objects used when creating or updating a session. The simplest form passes only name. If no external_id is specified, the API attempts to find a presenter with a matching name to avoid duplicates. If external_id is specified, the API looks for a presenter with that external_id and creates one if none exists. If the internal id is specified, name and external_id will be updated in Conferences i/o.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | Internal identifier. If specified, name and external_id will be updated. |
| name | string | false | none | Full name of the presenter (include salutations directly, e.g. "John Johnson, M.D."). |
| external_id | string or null | false | none | Optional external identifier useful for syncing from a third-party database. |
PresenterSummary
{
"id": "7yzhmasgrdeys6fwyx64hx41",
"external_id": null,
"name": "Casey Example"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | Internal identifier, auto-generated on creation. |
| external_id | string or null | false | none | none |
| name | string | false | none | none |
Session
{
"id": "abcd",
"external_id": "string",
"name": "Example Session",
"location": "Ballroom A",
"description": "string",
"date": "2019-01-24",
"start_time": "08:30:00",
"end_time": "09:15:00",
"access_code": "string",
"moderator_password": "string",
"url": "https://example.cnf.io/sessions/abcd",
"presenters": [
{
"id": "7yzhmasgrdeys6fwyx64hx41",
"external_id": null,
"name": "Casey Example"
}
],
"fields_of_study": [
{
"name": "Accounting",
"credits": "2.5"
}
],
"learning_objectives": [
"string"
],
"checkin_required": true,
"checkout_required": true,
"checkin_code": "string",
"checkout_code": "string",
"delivery_format": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | read-only | A short string used as an identifier for a session. Automatically generated on creation and cannot be changed. |
| external_id | string or null | false | none | Optional external identifier useful for syncing sessions from a third-party system. |
| name | string | false | none | A label for the session that appears on an app's homepage and the session header, allowing attendees to find and identify the session. |
| location | string or null | false | none | A label for the session's location (e.g. "Ballroom A", "Superior Room"). |
| description | string or null | false | none | A description associated with the session. Not currently displayed in the app. |
| date | string | false | none | Session date in YYYY-MM-DD format (preferred). Other date strings like "January 23, 2023" are also parsed. |
| start_time | string or null | false | none | Session start time using local event time. Preferred format is 24-hour HH:MM (e.g. "20:00" for 8:00PM), but strings like "8pm" or "8:00PM" are also accepted. No need to account for timezone — use the time appropriate to the event's geographic context. |
| end_time | string or null | false | none | Session end time using local event time. Same format rules as start_time. |
| access_code | string or null | false | none | A custom access code for searching from a long list of apps. Not used for attendee authentication. |
| moderator_password | string or null | false | none | A specific shared moderator password that only works for this session. |
| url | string | false | read-only | A publicly accessible URL for this session, usable for embedding in an event app. |
| presenters | [PresenterSummary] or null | false | none | none |
| fields_of_study | [FieldOfStudy] or null | false | none | [Both name and credits are required. If fields_of_study is not passed in a create or update request, no change will be made. Poorly formatted fields_of_study will not produce an error — instead, the field will silently become empty for the session.] |
| learning_objectives | [string] or null | false | none | Optional list of learning objectives associated with the session. |
| checkin_required | boolean or null | false | none | Requires attendees to check in before joining the session. |
| checkout_required | boolean or null | false | none | Allows attendees to check out at the end of the session. |
| checkin_code | string or null | false | none | Code required to successfully check in to a session. |
| checkout_code | string or null | false | none | Code required to successfully check out of a session. |
| delivery_format | string or null | false | none | If configured for a session, will be one of "in-person", "virtual", or "hybrid". |
Codewords
{
"possible": 4,
"valid": 0,
"missed": 4,
"valid_list": [
"string"
],
"missed_list": [
"code1",
"code2",
"code3",
"code4"
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| possible | integer | false | none | The number of codewords that exist for this field of study in the session. |
| valid | integer | false | none | The number of valid codewords the user submitted for this field of study. |
| missed | integer | false | none | The number of codewords the user did not submit for this field of study. |
| valid_list | [string] | false | none | Raw array of submitted codewords. |
| missed_list | [string] | false | none | Raw array of codewords the user missed. |
FieldOfStudyCheckin
{
"name": "Accounting",
"credits": 2,
"codewords": {
"possible": 4,
"valid": 0,
"missed": 4,
"valid_list": [
"string"
],
"missed_list": [
"code1",
"code2",
"code3",
"code4"
]
}
}
Field of study as it appears in a check-in record. If an administrator has manually adjusted the awarded credits within the application, that adjusted value will be reflected here.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| credits | number | false | none | none |
| codewords | Codewords | false | none | none |
CheckinHistoryEntry
{
"action": "checkin",
"timestamp": "2019-01-08T11:47:02-05:00"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| action | string | false | none | none |
| timestamp | string | false | none | ISO-8601 timestamp for the action. |
Enumerated Values
| Property | Value |
|---|---|
| action | checkin |
| action | checkout |
AttendeeUser
{
"first_name": "Alex",
"last_name": "Example",
"email": "attendee@example.com",
"external_id": "ATTENDEE-001",
"field_1": "string",
"field_2": "string",
"field_3": "string",
"field_4": "string",
"field_5": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| string | false | none | none | |
| external_id | string or null | false | none | none |
| field_1 | string or null | false | none | none |
| field_2 | string or null | false | none | none |
| field_3 | string or null | false | none | none |
| field_4 | string or null | false | none | none |
| field_5 | string or null | false | none | none |
CheckinRecord
{
"user": {
"first_name": "Alex",
"last_name": "Example",
"email": "attendee@example.com",
"external_id": "ATTENDEE-001",
"field_1": "string",
"field_2": "string",
"field_3": "string",
"field_4": "string",
"field_5": "string"
},
"checkin_time": "2019-01-08T11:47:02-05:00",
"checkout_time": "string",
"checkin_time_actual": "2019-01-08T12:38:02-05:00",
"checkout_time_actual": "string",
"delivery_format": "string",
"admin_note": "string",
"attendee_note": "string",
"checkin_source": "string",
"checkout_source": "string",
"evaluation_complete": "0",
"total_time_attended": "string",
"fields_of_study": [
{
"name": "Accounting",
"credits": 2,
"codewords": {
"possible": 4,
"valid": 0,
"missed": 4,
"valid_list": [
"string"
],
"missed_list": [
"code1",
"code2",
"code3",
"code4"
]
}
}
],
"history": [
{
"action": "checkin",
"timestamp": "2019-01-08T11:47:02-05:00"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user | AttendeeUser | false | none | none |
| checkin_time | string or null | false | none | ISO-8601 timestamp for the earliest check-in time associated with this record. Will be null if check-in has not occurred. In a future state, administrators may be able to modify this value; the _actual variant will then reflect the original. |
| checkout_time | string or null | false | none | ISO-8601 timestamp for the latest check-out time associated with this record. Will be null if check-out has not occurred. |
| checkin_time_actual | string or null | false | none | For most purposes, identical to checkin_time. Once administrators can modify checkin_time, this field will reflect the original (unmodified) value. |
| checkout_time_actual | string or null | false | none | For most purposes, identical to checkout_time. Once administrators can modify checkout_time, this field will reflect the original (unmodified) value. |
| delivery_format | string or null | false | none | How the attendee attended the session. Typically "in-person" or "virtual". Null if unknown. |
| admin_note | string or null | false | none | none |
| attendee_note | string or null | false | none | none |
| checkin_source | string or null | false | none | none |
| checkout_source | string or null | false | none | none |
| evaluation_complete | string or null | false | none | Whether the attendee completed the session evaluation, as returned by the live API. |
| total_time_attended | string or null | false | none | Total attended duration as returned by the live API, or null when not available. |
| fields_of_study | [FieldOfStudyCheckin] or null | false | none | [Field of study as it appears in a check-in record. If an administrator has manually adjusted the awarded credits within the application, that adjusted value will be reflected here. ] |
| history | [CheckinHistoryEntry] | false | none | Array of all check-in and check-out actions associated with this record. Attendees can check out and re-check in (e.g. for a lunch break during a seminar), so multiple entries are possible. In many cases this will simply mirror checkin_time and checkout_time for a single session check-in. |
PreloadAttendee
{
"external_id": "ATTENDEE-001",
"first_name": "Alex",
"last_name": "Example",
"email": "attendee@example.com",
"field_1": "North Region",
"field_2": "string",
"field_3": "string",
"field_4": "string",
"field_5": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| external_id | string | false | none | none |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| string | false | none | none | |
| field_1 | string or null | false | none | none |
| field_2 | string or null | false | none | none |
| field_3 | string or null | false | none | none |
| field_4 | string or null | false | none | none |
| field_5 | string or null | false | none | none |
PollData
{
"created": "string",
"name": "An example poll",
"rank": 0,
"type": "multiple_choice",
"choices": [
"Choice 1",
"Choice 2",
"Choice 3"
],
"responses": null
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| created | string or null | false | none | Poll creation timestamp as returned by the API. |
| name | string | false | none | none |
| rank | integer or null | false | none | none |
| type | string | false | none | none |
| choices | [string] | false | none | none |
| responses | any | false | none | Poll response data, or null if no responses yet. |
SessionQAData
{
"polls": {
"property1": {
"created": "string",
"name": "An example poll",
"rank": 0,
"type": "multiple_choice",
"choices": [
"Choice 1",
"Choice 2",
"Choice 3"
],
"responses": null
},
"property2": {
"created": "string",
"name": "An example poll",
"rank": 0,
"type": "multiple_choice",
"choices": [
"Choice 1",
"Choice 2",
"Choice 3"
],
"responses": null
}
},
"questions": [
{}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| polls | object | false | none | A map of poll IDs to PollData objects. Keys are poll identifiers. |
| » additionalProperties | PollData | false | none | none |
| questions | [object] or null | false | none | Q&A question data, or null if none. |
EvaluationResponseListData
{
"count": 0,
"responses": [
{
"session": {
"name": "Breakout A",
"external_id": "string"
},
"user": {
"id": "10000001",
"external_id": "string",
"first_name": "Alex",
"last_name": "Example",
"field_1": "ATTENDEE-001",
"field_2": "Yes",
"field_3": "string",
"field_4": "string",
"field_5": "string"
},
"presenter": null,
"question": "How was this session?",
"response": "5 - Great",
"response_value": 5,
"timestamp": "Tue, 21 Jan 2018 11:47:08 -0500"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| count | integer | true | none | none |
| responses | [EvaluationResponse] | true | none | none |
EvaluationUser
{
"id": "10000001",
"external_id": "string",
"first_name": "Alex",
"last_name": "Example",
"field_1": "ATTENDEE-001",
"field_2": "Yes",
"field_3": "string",
"field_4": "string",
"field_5": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | string | false | none | none |
| external_id | string or null | false | none | none |
| first_name | string | false | none | none |
| last_name | string | false | none | none |
| field_1 | string or null | false | none | none |
| field_2 | string or null | false | none | none |
| field_3 | string or null | false | none | none |
| field_4 | string or null | false | none | none |
| field_5 | string or null | false | none | none |
EvaluationResponse
{
"session": {
"name": "Breakout A",
"external_id": "string"
},
"user": {
"id": "10000001",
"external_id": "string",
"first_name": "Alex",
"last_name": "Example",
"field_1": "ATTENDEE-001",
"field_2": "Yes",
"field_3": "string",
"field_4": "string",
"field_5": "string"
},
"presenter": null,
"question": "How was this session?",
"response": "5 - Great",
"response_value": 5,
"timestamp": "Tue, 21 Jan 2018 11:47:08 -0500"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| session | object | false | none | none |
| » name | string | false | none | none |
| » external_id | string or null | false | none | none |
| user | EvaluationUser | false | none | none |
| presenter | any | false | none | Presenter associated with this evaluation response, if any. |
| question | string | false | none | none |
| response | string | false | none | none |
| response_value | number or null | false | none | none |
| timestamp | string | false | none | Timestamp of the response submission. |
Manage API keys
- Sign-in to the Admin panel
- Under Advanced Settings, click API Keys & Settings
- View an API key by clicking the blurred text area or disable a key by clicking Disable This Key
Create a new API key
- In API Keys & Settings, click Add API Key

-
Enter a description for the key, then click Create Now

- Get the API key by clicking the blurred text area in the API Keys & Settings area