Swoogo integrationSwoogo logo

Swoogo integration for AI agents.

Swoogo integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves Swoogo tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.

What your agents can do

Real Swoogo actions, managed and audited.

Your user connects Swoogo once; your agent can then use Swoogo to manage events, contacts, registrants, sessions, speakers, sponsors, packages, transactions, attendance, forms, webhooks, and related event workflows — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.

  1. 1

    Your user grants Swoogo access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

Supported Swoogo tools.

157 tools are generated from the published Swoogo catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.

Showing 157 tools. All published catalog entries are included in this page's server-rendered HTML.

Add Contact to Invitation List
Adds a contact to an invitation list, granting them permission to register for the associated event. Requires `invitation_list_id` as a path parameter and `contact_id` in the request body. The contact must already exist in your account's contact database.
Invitation Lists
Add Registrant to Group
Adds a registrant to an existing registration group. The target group is identified by `group_id` (which is the primary registrant's ID). Both registrants must belong to the same event. When added, the registrant's transactions and line items are consolidated under the group primary's financial records.
Registrant Groups
Check Registrant In
Marks a registrant as checked in (or updates their attendance status) at the event. Sets the `checked_in_at` timestamp and updates the `registration_status` accordingly. Only registrants with a `confirmed` or `attended` status can be checked in. Registrants with status `cancelled`, `incomplete`, `in_progress`, or `api_created` cannot be checked in directly — update their status first.
Registrants
Clone Discount Code
Creates a duplicate of an existing discount code, copying all settings (type, amount, capacity, line item rules, and group constraints). Optionally provide a new `code` value via the `code` query parameter; if omitted, the original code is used with "(Clone)" appended. Alternate discount codes cannot be cloned and will return a 400 error.
Discount Codes
Clone Event
Creates a new event by cloning an existing one. Copies all event settings including registration types, packages, sessions, forms, and website configuration into a new event. The source event is identified by `event_id` in the path. Override any fields in the request body to customize the clone (e.g., new `name`, `start_date`, `display_url`). Fields not provided in the body inherit values from the source event. Cloning is asynchronous and may take a few moments to complete. Registrant data is never copied -- the cloned event starts with zero registrations.
Events
Create Contact
Creates a new contact in the Call for Speakers program for an event. Provide the contact's profile information (name, email, company, bio) to add them as a potential speaker. They can then be associated with submissions.
Call for Speaker Contacts
Create Review
Creates a new review for a Call for Speakers submission. Provide the `event_id`, `submission_id`, reviewer information, score, and optional feedback comments to record an evaluation of a speaker submission.
Call for Speaker Reviews
Create Submission
Creates a new speaker submission for an event's Call for Speakers program. Provide the `event_id`, session topic, abstract, and speaker contact information. The submission enters the review pipeline where it can be evaluated, scored, and accepted or rejected.
Call for Speaker Submissions
Create Contact
Creates a new CRM contact. The `email` field is required and must be unique within your account. You can also provide first_name, last_name, company, job_title, and other profile fields. Returns the newly created contact object. Once created, the contact can be linked to events as a registrant or speaker.
Contacts
Create Data List
Creates a new data list. Requires `name` in the request body. After creating the list, use the Data List Items endpoints to add individual options to the list.
Data Lists
Create Data List Item
Creates a new item within a data list. Requires `data_list_id` and the item `value` in the request body. The new item will appear as a selectable option in any custom field that references this data list.
Data List Items
Create Discount Code
Creates a new discount code for an event. Requires `event_id`, `code`, and `type` (`percentage`, `absolute`, or `specific`). Set `capacity` to limit total usage, `apply_to_all` to apply across every line item, or list specific items in `applicable_line_items` for targeted discounts. For `specific`-type discounts, supply line-item-specific fees via `custom_fees_update`. Group constraints can be configured via `min_group_size`, `registrants_per_use`, and `all_registrants_in_group`.
Discount Codes
Create Event
Creates a new event in your account. Returns the full event record on success. Required fields: `name`, `start_date`, `start_time`, `end_date`, `end_time`, and `timezone` (e.g., `US/Eastern`, `Europe/London`, `Asia/Tokyo` — see the [Formatting conventions](/api-reference/formatting-conventions#time-zones) page for the accepted identifiers). Optionally set `close_date` and `close_time` to control when registration closes, `folder_id` to organize the event, and `display_url` to set the registration page URL slug. The event is created in draft status by default. Configure registration types, packages, and sessions after creation.
Events
Create Badge
Creates a new badge template for an event. Configure the badge layout, dimensions, and which registration types should use this badge for on-site printing.
Event Badges
Create Field
Creates a new custom field definition for events. Specify the field name, type (text, dropdown, checkbox, etc.), visibility, sort order, and choices (for selection-type fields). The field will become available for data entry on events.
Event Fields
Create Invitation List
Creates a new invitation list for an event. Requires `event_id` and `name` in the request body. After creating the list, use the Add Contact endpoint to populate it with contacts who should be invited to register.
Invitation Lists
Create Package
Creates a new registration package for an event. Requires `event_id` and `name` in the request body. Optionally set `capacity` to limit the number of registrants who can select this package, and configure `min_group_size`/`max_group_size` for group registration constraints.
Packages
Create Registrant
Creates a new registrant for a specific event. Requires `event_id` and `email` at minimum. Returns the full registrant record on success. You can assign a `package_id`, `session_ids`, and `discount_code` in a single call to complete a full registration. Set `send_email=true` to trigger the confirmation email to the registrant. Set `override_capacity_errors=true` to register even when the event or sessions are at capacity. The `registration_status` defaults to `confirmed` if not specified. Financial fields (`individual_net`, `group_gross`, etc.) are calculated automatically and cannot be set directly.
Registrants
Create Registrant Session
Adds a session to a registrant's selected sessions. Both `registrant_id` and `session_id` are required path parameters. By default, the request will fail if the session is at capacity or has scheduling conflicts. Set `override_capacity_errors` to bypass capacity checks, `send_email` to trigger a session confirmation email, or `validate_only` to check for conflicts without actually adding the session.
Registrant Sessions
Create Registrant Token
Creates a pre-population token that allows registrant details to be pre-filled on a registration form. Returns a token and a ready-to-use resume URL. Pass `event_id` and any registrant fields (e.g., `fields[email]`, `fields[first_name]`, `fields[package_id]`) to generate a token. The returned URL (`https://client.swoogo.com/event/resume?i=TOKEN`) can be sent to the registrant to let them complete registration with their details pre-filled. Common use case: sending personalized registration links via email campaigns or CRM integrations where you already know some attendee details.
Registrants
Create Type
Creates a new registration type for an event. Requires `event_id` and `name` in the request body. Optionally set `capacity` to limit how many registrants can select this type.
Registrant Types
Create Session
Creates a new session within an event. Returns the full session record on success. Required fields: `event_id`, `name`, and `date`. Optionally set `start_time`, `end_time`, `capacity`, `location_id`, `track_id`, `timezone`, and `description`. If `timezone` is not provided, the session inherits the event's timezone. Sessions are created with `session_status=live` by default. Use `selection_control` to set whether the session is optional or automatically included in registrations.
Sessions
Create Session Attendance
Creates a new attendance record to mark a registrant as having attended a session. Requires `session_id` and `registrant_id` in the request body. This is separate from session registration and represents actual physical attendance.
Session Attendance
Create Field
Creates a new custom field definition for sessions. Specify the field name, type (text, dropdown, checkbox, etc.), visibility, sort order, and choices (for selection-type fields). The field will become available for data entry on all sessions.
Session Fields
Create Location
Creates a new session location (room/venue) for an event. Requires `event_id` and `name` in the request body. Optional fields: `capacity` (max occupancy), `color` (hex code used for display in session calendars), and `use_event_address` (when true, the location reuses the event's address rather than its own).
Session Locations
Create Session Scan
Records a new check-in scan for a registrant at a session. Requires `registrant_id` and `session_id` as path parameters. Use this to programmatically check in attendees at session entrances, equivalent to scanning their badge or QR code.
Session Scans
Create Speaker
Creates a new speaker for an event by linking an existing contact. Both `event_id` and `contact_id` are required. The speaker's profile data (name, email, company, bio) is pulled from the linked contact record. Returns the newly created speaker object. Note that speakers cannot be updated via PUT -- to change speaker details, update the underlying contact or delete and re-create the speaker.
Speakers
Create Speaker
Assigns a speaker to a single session by providing both `speaker_id` and `session_id` as path parameters. The speaker and session must belong to the same event. Returns the created association. To assign a speaker to multiple sessions at once, use the JSON body variant of this endpoint instead.
Speaker Sessions
Add sessions to speaker (JSON body)
Assigns a speaker to one or more sessions in a single request using a JSON body with an array of `session_ids`. The speaker is identified by `speaker_id` in the path. All sessions must belong to the same event as the speaker. Returns the full speaker object including the updated sessions list on success, or validation errors if any session ID is invalid.
Speaker Sessions
Create Sponsor
Creates a new sponsor for an event. Both `event_id` and `name` are required. You can also set optional fields such as website, description, level, and logo_id. Returns the newly created sponsor object.
Sponsors
Create Field
Creates a new custom field definition for sponsors. Requires `name` and `type` (e.g., textInput, dropDownList, textArea). For choice-based types, include a `choices` array. Optional properties include sort order, visibility, required flag, and HTML settings. Returns the newly created field definition.
Sponsor Fields
Create Track
Creates a new session track for an event. Requires `event_id` and `name` in the request body. Once created, sessions can be assigned to this track to categorize the event agenda.
Tracks
Create Transaction
Creates an offline transaction record for a registrant. Use this for payments or refunds processed outside the online payment gateway (e.g., wire transfers, checks, cash). Requires `event_id`, `registrant_id`, `type`, and `amount`. The `type` must be an offline payment or refund type such as `wire_transfer_payment`, `check_payment`, `cash_refund`, etc. Online payment types (e.g., credit_card_payment) cannot be created through this endpoint.
Transactions
Create Session Waitlist Registrant
Adds a registrant to the waitlist for a sold-out session. Requires both `registrant_id` and `session_id` as path parameters. When a spot opens up in the session, waitlisted registrants can be promoted to confirmed attendees.
Registrant Session Waitlists
Create Webhook
Creates a new webhook configuration. Specify the target URL, trigger event type, HTTP method, and optional custom headers. The webhook must be assigned to a webhook group, which controls which events it applies to.
Webhooks
Create Webhook Group
Creates a new webhook group. Specify the group name and assign it to one or more events. After creating the group, use the Create Webhook endpoint to add individual webhook configurations to it.
Webhook Groups
Delete Contact
Permanently deletes a Call for Speakers contact by their ID. This removes the contact from the CFS program and may affect associated submissions.
Call for Speaker Contacts
Delete Review
Permanently deletes a submission review by its ID. This removes the reviewer's score and feedback from the submission's evaluation record.
Call for Speaker Reviews
Delete Submission
Permanently deletes a speaker submission by its ID. This removes the submission and all associated reviews from the Call for Speakers program.
Call for Speaker Submissions
Delete Data List
Permanently deletes a data list and all its items. Custom fields that reference this list will lose their option set and may need to be reconfigured.
Data Lists
Delete Data List Item
Permanently deletes an item from a data list. The option will no longer appear in custom field dropdowns. Existing registrant records that selected this item will retain the value but it will not be selectable for new entries.
Data List Items
Delete Discount Code
Permanently deletes a discount code by its ID. The code will no longer be usable for future registrations. Existing registrants who already applied this discount are not affected.
Discount Codes
Delete Field
Permanently deletes a custom event field definition by its ID. Any data stored in this field on existing events will no longer be accessible.
Event Fields
Delete Image Field
Removes an image from a specific field on an object. The image file is deleted and the field is cleared. Requires `image_type`, `image_id`, and `field_id` as path parameters.
Images
Delete Package
Permanently deletes a registration package by its ID. This will remove the package as a selectable option for future registrations. Existing registrants already assigned to this package are not affected.
Packages
Remove package fee
Remove the fee for a specific package, effectively making it free. This sets the base price to 0 and clears all conditional pricing. **Note:** This operation cannot be undone through the API. The fee will need to be reconfigured manually if pricing needs to be restored.
Package Fees
Delete Registrant Session
Removes a session from a registrant's selected sessions. Requires both `registrant_id` and `session_id` as path parameters. The registrant will no longer appear in the session's attendance list.
Registrant Sessions
Delete Type
Permanently deletes a registration type by its ID. The type will no longer be available as a selection for new registrations. Existing registrants already assigned to this type are not affected.
Registrant Types
Delete Session
Permanently deletes a session by its unique ID. Returns a `204 No Content` response on success. Deleting a session removes it from all registrant session assignments and from the event agenda. This action cannot be undone. Any registrants assigned to this session will have it removed from their `session_ids`.
Sessions
Remove session fee
Remove the fee for a specific session, effectively making it free. This sets the base price to 0 and clears all conditional pricing. **Note:** This operation cannot be undone through the API. The fee will need to be reconfigured manually if pricing needs to be restored.
Session Fees
Delete Field
Permanently deletes a custom session field definition by its ID. Any data stored in this field on existing sessions will no longer be accessible.
Session Fields
Delete Location
Permanently deletes a session location by its ID. Sessions currently assigned to this location will need to be reassigned to a different location.
Session Locations
Delete Scan
Deletes a session check-in scan record for a specific registrant and session. Use this to reverse an accidental check-in or correct scanning errors.
Session Scans
Delete Speaker
Permanently removes a speaker from an event by `speaker_id`. This also removes any session associations for the speaker. The underlying contact record is not affected. Note that there is no PUT endpoint for speakers -- to modify speaker data, update the linked contact record directly.
Speakers
Delete Speaker
Removes a speaker from a specific session by providing both `speaker_id` and `session_id` as path parameters. This only removes the association -- the speaker and session records themselves are not deleted.
Speaker Sessions
Delete Sponsor
Permanently deletes a sponsor from an event by `sponsor_id`. This also removes any sponsor attendance records and custom field values associated with the sponsor. This action cannot be undone.
Sponsors
Delete Field
Permanently deletes a sponsor custom field definition by `field_id`. This removes the field schema and all stored values for this field across all sponsors. This action cannot be undone.
Sponsor Fields
Delete Track
Permanently deletes a session track by its ID. Sessions currently assigned to this track will need to be reassigned or will lose their track categorization.
Tracks
Delete Transaction
Permanently deletes a transaction record by its ID. This removes the financial record from the registrant's payment history and may affect their payment status and balance due calculations.
Transactions
Delete Session Waitlist Registrant
Removes a registrant from a session's waitlist. Requires both `registrant_id` and `session_id` as path parameters. The registrant will no longer be in line for a spot if one opens up.
Registrant Session Waitlists
Delete Webhook
Permanently deletes a webhook configuration by its ID. The webhook will immediately stop sending HTTP callbacks for its trigger event type.
Webhooks
Delete Webhook Group
Permanently deletes a webhook group and all webhooks it contains. All HTTP callbacks from webhooks in this group will immediately stop firing.
Webhook Groups
Email Registrant
Triggers a transactional email to a registrant. Use this to re-send confirmation emails, send abandoned registration reminders, or notify registrants of modifications or cancellations. The email content is configured in your Swoogo event's email templates. This endpoint triggers the sending — it does not customize the email body.
Registrants
Forget Contact
Performs a GDPR “right to be forgotten” operation on a contact by `contact_id`. This anonymizes the contact's personal data and optionally removes credit card holder names. Provide `registrantIds` as a JSON array to also anonymize specific linked registrant records. This action is irreversible -- all affected personal data is permanently erased.
Contacts
Get All Contacts
Retrieves all contacts who have submitted or been invited to the Call for Speakers (CFS) program for an event. CFS contacts are potential speakers with their profile information and submission status. Requires the `event_id` query parameter.
Call for Speaker Contacts
Get All Reviews
Retrieves all reviews for Call for Speakers submissions for an event. Reviews contain scores and feedback from reviewers evaluating speaker submissions. Requires the `event_id` query parameter. Use this to aggregate review scores and track the submission evaluation process.
Call for Speaker Reviews
Get All Submissions
Retrieves all speaker submissions for an event's Call for Speakers program. Each submission contains the proposed session topic, abstract, speaker contact, and current review status (e.g., pending, accepted, rejected). Requires the `event_id` query parameter.
Call for Speaker Submissions
Get All Fields
Returns a paginated list of custom field definitions available for contacts. These define the schema for custom data that can be stored on contact records beyond the standard fields. Each entry includes the field's type, name, and configuration. Use `search` to filter and `fields` to limit returned properties.
Contact Fields
Get All Contacts
Returns a paginated list of CRM contacts across all events in your account. Unlike registrants, contacts are not event-specific and can be linked to registrations across multiple events. Default fields returned are `id`, `first_name`, and `last_name` -- use `fields` to request additional properties. Use `expand` with `homeAddress`, `workAddress`, or `billingAddress` to include address objects. Use `search` to filter by any contact field and `sort` to control ordering.
Contacts
Get All Data List Items
Retrieves all items within a specific data list. Items are the individual options (e.g., "United States", "Canada") that appear in dropdown or checkbox fields on registration forms. Filter by `data_list_id` to get items for a specific list.
Data List Items
Get All Data Lists
Retrieves all data lists for your account. Data lists are reusable sets of options (e.g., countries, industries, dietary preferences) that can be assigned to custom fields across multiple events. Each list contains items that serve as dropdown or checkbox options on registration forms.
Data Lists
Get All Discount Codes
Retrieves all discount codes for a specific event. Discount codes can be percentage-based, absolute (fixed amount), or specific (custom fees per line item). Requires the `event_id` query parameter. Use `expand` to include `alternates`, `autopopulate` field mappings, `registrantCount`, or `reservedCount`. <details> <summary><b>Available Fields</b></summary> <p>These are the standard fields returned for each discount code:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>id</code></td> <td>integer</td> <td>The ID of the discount code.</td> </tr> <tr> <td><code>parent_id</code></td> <td>integer (nullable)</td> <td>ID of the primary discount code when this row is an alternate; <code>null</code> for primary codes.</td> </tr> <tr> <td><code>event_id</code></td> <td>integer</td> <td>The ID of the event to which this discount is associated.</td> </tr> <tr> <td><code>code</code></td> <td>string</td> <td>The unique code for the discount.</td> </tr> <tr> <td><code>type</code></td> <td>string</td> <td>The type of discount: <code>percentage</code>, <code>absolute</code>, or <code>specific</code>.</td> </tr> <tr> <td><code>percentage_discount</code></td> <td>number</td> <td>The percentage value of the discount (when <code>type</code> is <code>percentage</code>).</td> </tr> <tr> <td><code>absolute_discount</code></td> <td>number</td> <td>The absolute monetary value of the discount (when <code>type</code> is <code>absolute</code>).</td> </tr> <tr> <td><code>applicable_line_items</code></td> <td>array of strings (nullable)</td> <td>Line items the discount applies to when <code>apply_to_all</code> is <code>0</code>. Standard values: <code>reg_type</code>, <code>package</code>, <code>session</code>, plus <code>c_&lt;questionId&gt;</code> for custom questions.</td> </tr> <tr> <td><code>apply_to_all</code></td> <td>integer (0 or 1)</td> <td>Returned as <code>0</code> or <code>1</code> (not a JSON boolean). <code>1</code> means the discount applies to every line item.</td> </tr> <tr> <td><code>capacity</code></td> <td>integer</td> <td>The maximum number of times this discount can be used. <code>0</code> means unlimited.</td> </tr> <tr> <td><code>min_group_size</code></td> <td>integer</td> <td>The minimum group size required to use this discount.</td> </tr> <tr> <td><code>registrants_per_use</code></td> <td>integer</td> <td>Maximum number of times the code can be used per group of N registrants.</td> </tr> <tr> <td><code>custom_fees</code></td> <td>object (nullable)</td> <td>Merged set of line-item-specific fees for <code>specific</code> discounts. Outer key is line-item type, inner key is line-item ID, value is the fee as a string.</td> </tr> <tr> <td><code>sold_out_message</code></td> <td>string (nullable)</td> <td>Custom message shown when the discount is sold out.</td> </tr> <tr> <td><code>notes</code></td> <td>string (nullable)</td> <td>Additional notes or comments about the discount.</td> </tr> <tr> <td><code>created_at</code></td> <td>string (date-time)</td> <td>Timestamp when the discount was created.</td> </tr> <tr> <td><code>updated_at</code></td> <td>string (date-time)</td> <td>Timestamp when the discount was last updated.</td> </tr> </tbody> </table> </details> <details> <summary><b>Extra Fields</b></summary> <p>Additional fields available via the <code>expand</code> query parameter:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>alternates</code></td> <td>array of objects</td> <td>Alternate code list, which inherits the settings of the main code.</td> </tr> <tr> <td><code>autopopulate</code></td> <td>array of objects</td> <td>Registrant fields automatically populated when this discount is applied.</td> </tr> <tr> <td><code>registrantCount</code></td> <td>integer</td> <td>Number of registrants that used this discount code.</td> </tr> <tr> <td><code>reservedCount</code></td> <td>integer</td> <td>Number of reserved discount codes (in-progress registrations).</td> </tr> </tbody> </table> </details>
Discount Codes
Get All Badges
Retrieves all badge templates configured for an event. Badges are printable name tags or credentials for on-site check-in. Each badge includes its layout configuration and associated registration types.
Event Badges
Get All Fields
Retrieves all custom field definitions for events. These fields define the schema for additional event-level data (e.g., custom text fields, dropdowns, URLs). Each field includes its attribute name, display type, visibility, sort order, validation requirements, and available choices.
Event Fields
Get All Folders
Retrieves all event folders used to organize events in the dashboard. Folders support a hierarchical structure via `parent_id` for nested organization. Read-only endpoint.
Event Folders
Get All Questions
Retrieves all registration form questions configured for an event. Questions define the fields that registrants fill out during registration (e.g., name, email, custom questions). Defaults to questions on the main website but can be filtered by module. Requires the `event_id` query parameter. <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>choices</code></td> <td>array</td> <td>List of response options for the question (e.g. for dropdown, radio, or checkbox questions).</td> </tr> <tr> <td><code>page</code></td> <td>object</td> <td>The registration form page this question belongs to.</td> </tr> <tr> <td><code>translations</code></td> <td>object</td> <td>Question translations by language.</td> </tr> </tbody> </table> </details>
Event Questions
Get All Websites
Retrieves all websites associated with an event. Each event can have multiple websites (e.g., main registration site, speaker portal, exhibitor portal). Requires the `event_id` query parameter. Read-only endpoint.
Event Websites
Get All Events
Retrieves a paginated list of events for your account. Returns event configuration, scheduling, and status information. Use `fields` to control which fields are returned (defaults to `id`, `name` when not specified). Use `expand` to include related objects: `folder`, `location`. Use `search` to filter by any event field (e.g., `status=live`, `start_date>=2025-01-01`, `name=*conference*`). Supports operators: `=`, `!=`, `>=`, `<=`, `>`, `<`, `*contains*`, `*beginswith*`, `*endswith*`. Results are paginated with a maximum of 200 per page.
Events
Get All Invitation Lists
Retrieves all invitation lists for your account. Invitation lists are curated groups of contacts who are invited to register for specific events. Lists can be used to control registration access when invitation-only mode is enabled on an event.
Invitation Lists
Get All Packages
Retrieves all registration packages (pricing tiers) for a specific event. Packages define the pricing structure that registrants select during registration, including capacity limits and group size constraints. Requires the `event_id` query parameter. When the `fields` query parameter is omitted, the response only includes `id`, `name`, and `capacity` for each package. To retrieve additional fields, list them explicitly in `fields`. Use `expand` to include related objects such as fee pricing or translations. Soft-deleted packages are excluded from the results. Results default to the package `sort` order ascending unless overridden with the `sort` parameter. <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>fees</code></td> <td>object</td> <td>Fee record for this package, including base price and any conditional pricing.</td> </tr> <tr> <td><code>earlyBirds</code></td> <td>object</td> <td>Early-bird pricing configuration for this package's fee. Contains a <code>type</code> string and either a flat <code>price</code>/<code>registrations</code> pair (registrations-based) or an <code>items</code> array of date-based tiers.</td> </tr> <tr> <td><code>translations</code></td> <td>object</td> <td>Custom translations for this package, keyed by language code (e.g. <code>en</code>, <code>fr</code>). Each value is an object of field name → translated string.</td> </tr> </tbody> </table> </details>
Packages
Get All Pages
Retrieves all pages for a specific event website. Pages represent individual web pages within an event site (e.g., registration page, agenda, speaker directory). Requires the `event_id` query parameter. Read-only endpoint.
Pages
Get All Line Item Audits
Retrieves the audit trail for registrant line items within an event. Each audit record tracks a historical change to a line item, including price modifications, status changes, and discount applications. Requires the `event_id` query parameter. Useful for financial reconciliation and debugging pricing discrepancies.
Registrant Line Item Audits
Get All Line Items
Retrieves all financial line items for registrants within an event. Line items represent individual charges (packages, sessions, custom fees) on a registrant's invoice, including net/gross amounts, tax rates, and quantities. Requires the `event_id` query parameter. Use `search` to filter by registrant_id, object type, status, or amount.
Registrant Line Items
Get All Types
Retrieves all registration types for a specific event. Registration types (e.g., Attendee, Exhibitor, Speaker) categorize registrants and can have different pricing, capacity limits, and group size constraints. Requires the `event_id` query parameter.
Registrant Types
Get All Registrants
Retrieves a paginated list of registrants for a specific event. Returns registrant profile data, registration status, and financial summaries. Requires `event_id` as a query parameter. Use `fields` to control which fields are returned (defaults to `id`, `first_name`, `last_name` when not specified). Use `expand` to include related objects: `homeAddress`, `workAddress`, `billingAddress`, `emailHistory`. Use `search` to filter by any registrant field (e.g., `registration_status=confirmed`, `email=*@example.com*`). Supports operators: `=`, `!=`, `>=`, `<=`, `>`, `<`, `*contains*`, `*beginswith*`, `*endswith*`. Maximum 200 results per page with `per-page`, or up to 1000 per page when no `expand` is used.
Registrants
Get All Attendance
Retrieves all session attendance records for an event. Each record links a registrant to a session and tracks whether they actually attended (as opposed to just being registered). Requires the `event_id` query parameter. Useful for post-event reporting and CE credit tracking.
Session Attendance
Get All Fields
Retrieves all custom field definitions for sessions. These fields define the schema for additional data that can be captured on sessions (e.g., custom text fields, dropdowns, URLs). Each field includes its attribute name, display type, visibility, sort order, and validation requirements.
Session Fields
Get All Locations
Retrieves all session locations (rooms/venues) for a specific event. Locations can be assigned to sessions and include details like name, capacity, and address. Requires the `event_id` query parameter.
Session Locations
Get All Scans
Retrieves all session check-in scan records for an event. Scans are created when a registrant's badge or QR code is scanned at a session entrance, providing a timestamped record of physical check-in. Requires the `event_id` query parameter.
Session Scans
Get All Sessions
Retrieves a paginated list of sessions for a specific event. Returns session scheduling, capacity, track, and configuration details. Requires `event_id` as a query parameter. Use `fields` to control which fields are returned. Use `search` to filter by any session field (e.g., `date=2025-08-08`, `session_status=live`, `name=*keynote*`). Supports operators: `=`, `!=`, `>=`, `<=`, `>`, `<`, `*contains*`, `*beginswith*`, `*endswith*`. Use `expand` to include related objects: `speakers`, `location`, `track`, `translations`, `sessionAttendance`, `registrantCount`, `reservedCount`, `earlyBirds`. Results are paginated with a maximum of 200 per page. <details> <summary><b>Available Fields</b></summary> <p>These are the standard fields available for configuring a session:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>id</code></td> <td>integer</td> <td>Unique identifier for the session.</td> </tr> <tr> <td><code>event_id</code></td> <td>integer</td> <td>ID of the event associated with this session.</td> </tr> <tr> <td><code>name</code></td> <td>string</td> <td>Title or name of the session.</td> </tr> <tr> <td><code>admin_short_name</code></td> <td>string</td> <td>Admin-specific short name for internal usage.</td> </tr> <tr> <td><code>badge_name</code></td> <td>string</td> <td>Display name on attendee badges.</td> </tr> <tr> <td><code>description</code></td> <td>string</td> <td>Detailed description of the session.</td> </tr> <tr> <td><code>date</code></td> <td>string (date)</td> <td>The date when the session will take place.</td> </tr> <tr> <td><code>start_time</code></td> <td>string (time)</td> <td>Start time of the session.</td> </tr> <tr> <td><code>end_time</code></td> <td>string (time)</td> <td>End time of the session.</td> </tr> <tr> <td><code>use_event_timezone</code></td> <td>integer</td> <td>Whether the event's default timezone is applied to the session.</td> </tr> <tr> <td><code>timezone</code></td> <td>string</td> <td>Timezone for the session (see TZ Identifier column in the <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" target="_blank">List of TZ Database Time Zones</a>).</td> </tr> <tr> <td><code>capacity</code></td> <td>integer</td> <td>Maximum number of attendees allowed.</td> </tr> <tr> <td><code>location_id</code></td> <td>integer</td> <td>Identifier for the location.</td> </tr> <tr> <td><code>track_id</code></td> <td>integer</td> <td>Identifier for the session's track.</td> </tr> <tr> <td><code>selection_control</code></td> <td>string</td> <td>Specifies whether the session is optional or included by default, setting the value 'session_included'.</td> </tr> <tr> <td><code>webinar_url</code></td> <td>string (uri)</td> <td>URL for the webinar if the session is virtual.</td> </tr> <tr> <td><code>sold_out_message</code></td> <td>string</td> <td>Custom message displayed when the session is sold out.</td> </tr> <tr> <td><code>secure_id</code></td> <td>string</td> <td>Secure identifier for the session.</td> </tr> <tr> <td><code>session_status</code></td> <td>string</td> <td>Current status of the session. Possible values: <code>submitted</code>, <code>approved</code>, <code>rejected</code>, <code>converted</code>, <code>live</code>.</td> </tr> <tr> <td><code>locked_when_saved</code></td> <td>boolean</td> <td>Whether the session is locked after being saved.</td> </tr> <tr> <td><code>selected_by_default</code></td> <td>boolean</td> <td>Indicates if the session is selected by default for attendees.</td> </tr> <tr> <td><code>prevent_session_conflicts</code></td> <td>boolean</td> <td>Whether should prevent conflicts with other sessions when selecting this session.</td> </tr> <tr> <td><code>custom_fields</code></td> <td>object</td> <td>Custom fields associated with the session. Key-value pairs can be dynamic.</td> </tr> </tbody> </table> </details> <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>speakers</code></td> <td>object</td> <td>List of speakers assigned to this session</td> </tr> <tr> <td><code>location</code></td> <td>object</td> <td>Selected Location for this event</td> </tr> <tr> <td><code>track</code></td> <td>object</td> <td>Selected track for this event</td> </tr> <tr> <td><code>translations</code></td> <td>object</td> <td>Custom translations set for this event</td> </tr> <tr> <td><code>sessionAttendance</code></td> <td>object</td> <td>Session Attendance Information</td> </tr> <tr> <td><code>registrantCount</code></td> <td>object</td> <td>Number of Registrants registered to this session</td> </tr> <tr> <td><code>reservedCount</code></td> <td>object</td> <td>Number of Reserved seats for this session</td> </tr> <tr> <td><code>earlyBirds</code></td> <td>object</td> <td>List all available early birds for this session</td> </tr> </tbody> </table> </details>
Sessions
Get All Speakers
Returns a paginated list of speakers for a specific event. Requires the `event_id` query parameter. Default fields returned are `id`, `first_name`, and `last_name` -- use `fields` to request additional properties and `expand=sessions` to include each speaker's assigned sessions. Use `search` to filter by any speaker field (e.g., `company=Acme`) and `sort` to control ordering.
Speakers
Get All Attendance
Returns a paginated list of sponsor attendance records for a specific event. Requires the `event_id` query parameter. Each record tracks a sponsor's participation or booth presence at the event. Use `search` to filter results and `fields` to limit which properties are returned.
Sponsor Attendance
Get All Fields
Returns a paginated list of custom field definitions available for sponsors. These define the schema for custom data that can be stored on sponsor records (e.g., sponsorship level, booth number). Each field includes its type, name, sort order, visibility, and choices (for dropdown/multi-select fields). Use `search` to filter and `fields` to limit returned properties.
Sponsor Fields
Get All Sponsors
Returns a paginated list of sponsors for a specific event. Requires the `event_id` query parameter. Default fields returned are `id` and `name` -- use `fields` to request additional properties such as website, description, level, logo_id, and direct_link. Use `search` to filter by any sponsor field and `sort` to control ordering.
Sponsors
Get All Tracks
Retrieves all tracks for a specific event. Tracks are thematic categories used to organize sessions (e.g., "Technical", "Business", "Workshop"). Requires the `event_id` query parameter. Sessions can be assigned to tracks to help attendees filter and navigate the agenda.
Tracks
Get All Transactions
Retrieves all financial transaction records for a specific event. Transactions include payments, refunds, and credits linked to registrants. Requires the `event_id` query parameter. Each record contains the amount, type (e.g., credit_card_payment, wire_transfer_refund), status, and associated registrant. Use `search` to filter by registrant_id, status, amount, or date range.
Transactions
Get All Webhook Groups
Retrieves all webhook groups. Webhook groups organize individual webhooks and control which events they apply to. A group is assigned to one or more events, and all webhooks within the group will fire for those events. This allows you to manage webhook configurations across multiple events centrally. <details> <summary><b>Available Fields</b></summary> <p>These are the standard fields available for configuring a webhook:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>id</code></td> <td>integer</td> <td>The ID of the webhook group.</td> </tr> <tr> <td><code>name</code></td> <td>string</td> <td>The name of the webhook group.</td> </tr> <tr> <td><code>headers</code></td> <td>array</td> <td>Defined headers for the group.</td> </tr> <tr> <td><code>notification_emails</code></td> <td>array</td> <td>Emails notified when a webhook in the group fails.</td> </tr> </tbody> </table> </details> <details> <summary><b>Extra Fields</b></summary> <p>Additional information that can be returned by specifying the desired fields in the <code>expand</code> parameter:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>webhooks</code></td> <td>object</td> <td>List of webhooks associated with this group.</td> </tr> </tbody> </table> </details>
Webhook Groups
Get All Webhooks
Retrieves all webhook configurations. Webhooks send HTTP POST callbacks to your specified URL when events occur in Swoogo (e.g., new registration, session check-in, payment received). Each webhook defines the target URL, trigger event type, and which webhook group it belongs to. <details> <summary><b>Available Fields</b></summary> <p>These are the standard fields available for configuring a webhook:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>id</code></td> <td>integer</td> <td>The ID of the webhook.</td> </tr> <tr> <td><code>name</code></td> <td>string</td> <td>The name of the webhook.</td> </tr> <tr> <td><code>url</code></td> <td>string</td> <td>The URL that data should be sent to.</td> </tr> <tr> <td><code>trigger_object</code></td> <td>string</td> <td>The object that will cause the webhook to run.</td> </tr> <tr> <td><code>trigger_on_insert</code></td> <td>boolean</td> <td>Trigger when the object is inserted.</td> </tr> <tr> <td><code>trigger_on_update</code></td> <td>boolean</td> <td>Trigger when the object is updated.</td> </tr> <tr> <td><code>trigger_on_delete</code></td> <td>boolean</td> <td>Trigger when the object is deleted.</td> </tr> <tr> <td><code>fields</code></td> <td>array</td> <td>Array of fields which, when changed, will cause the webhook to run.</td> </tr> <tr> <td><code>public_user</code></td> <td>boolean</td> <td>Run the webhook for a public user.</td> </tr> <tr> <td><code>admin_user</code></td> <td>boolean</td> <td>Run the webhook for an admin user.</td> </tr> <tr> <td><code>api_call</code></td> <td>boolean</td> <td>Run the webhook on an API call.</td> </tr> <tr> <td><code>any_event</code></td> <td>boolean</td> <td>Run the webhook for any events (only applicable for some objects such as registrants).</td> </tr> <tr> <td><code>event_ids</code></td> <td>array</td> <td>Array of event IDs to run the webhook for (if <code>any_event</code> is false).</td> </tr> <tr> <td><code>all_fields</code></td> <td>boolean</td> <td>Should this run for changes to all fields?</td> </tr> </tbody> </table> </details> <details> <summary><b>Extra Fields</b></summary> <p>Additional information that can be returned by specifying the desired fields in the <code>expand</code> parameter:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>group</code></td> <td>object</td> <td>Details about the Webhook Group associated with the item.</td> </tr> </tbody> </table> </details>
Webhooks
Get Invitation List
Retrieves a single invitation list by its ID, including the list name, associated event, and capacity settings.
Invitation Lists
Get One Contact
Retrieves a single Call for Speakers contact by their ID, including profile information (name, email, company, bio) and their submission status within the CFS program.
Call for Speaker Contacts
Get One Review
Retrieves a single submission review by its ID, including the reviewer, score, feedback comments, and the associated submission.
Call for Speaker Reviews
Get One Submission
Retrieves a single speaker submission by its ID, including the session topic, abstract, speaker contact details, track preference, review status, and reviewer scores.
Call for Speaker Submissions
Get One Contact
Returns the full details of a single CRM contact by `contact_id`, including personal information, company, email, phone numbers, and profile data. Use `fields` to limit which properties are returned and `expand` to include related address objects.
Contacts
Get One Field
Returns the full details of a single contact custom field definition by `field_id`, including its type, name, configuration, and available choices (for dropdown or multi-select fields). Use `fields` to limit which properties are returned.
Contact Fields
Get One Data List
Retrieves a single data list by its ID, including the list name and notes.
Data Lists
Get One Data List Item
Retrieves a single data list item by its ID, including the item value, sort order, and parent list reference.
Data List Items
Get One Discount Code
Retrieves a single discount code by its ID, including discount type (`percentage`, `absolute`, or `specific`), applicable line items, capacity limits, line-item-specific fees (`custom_fees`), and group registration settings.
Discount Codes
Get One Event
Retrieves a single event by its unique ID. Returns the full event record including name, dates, times, timezone, capacity, status, and registration URL. Use `fields` to limit which fields are returned. Use `expand` to include related objects such as `folder` and `location`.
Events
Get One Badge
Retrieves a single badge template by its ID, including the layout configuration, dimensions, and associated registration types.
Event Badges
Get One Field
Retrieves a single custom event field definition by its ID, including the attribute name, field type, visibility settings, validation rules, and available choices (for dropdown/radio fields).
Event Fields
Get One Folder
Retrieves a single event folder by its ID, including the folder name and parent folder reference for hierarchical navigation.
Event Folders
Get One Question
Retrieves a single registration form question by its ID, including the question text, field type, validation rules, and available choices. Use `expand` to include related data. <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>choices</code></td> <td>array</td> <td>List of response options for the question (e.g. for dropdown, radio, or checkbox questions).</td> </tr> <tr> <td><code>page</code></td> <td>object</td> <td>The registration form page this question belongs to.</td> </tr> <tr> <td><code>translations</code></td> <td>object</td> <td>Question translations by language.</td> </tr> </tbody> </table> </details>
Event Questions
Get One Website
Retrieves a single event website by its ID, including the site URL, configuration, and associated pages.
Event Websites
Get Image URL
Retrieves the URL for an image associated with a specific object (e.g., event logo, speaker photo, sponsor banner). Requires `image_type` (the object type), `image_id` (the object's ID), and `field_id` (the image field) as path parameters.
Images
Get One Package
Retrieves a single registration package by its ID, including name, capacity, group size limits, and sold-out message. Use the `expand` parameter to include related `earlyBirds` pricing tiers. <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>earlyBirds</code></td> <td>object</td> <td>List all available early birds for this package</td> </tr> </tbody> </table> </details>
Packages
Get One Page
Retrieves a single event page by its ID, including the page name, slug, full URL, type (e.g., registration, agenda), sort order, and associated website. Read-only endpoint.
Pages
Get One Registrant
Retrieves a single registrant by their unique ID. Returns the full registrant profile including personal details, registration status, financial totals, and session assignments. Use `fields` to limit which fields are returned. Use `expand` to include related objects: `homeAddress`, `workAddress`, `billingAddress`, `emailHistory`. Financial fields like `individual_net`, `group_gross`, and `payment_status` are always read-only.
Registrants
Get One Type
Retrieves a single registration type by its ID, including name, capacity, group size limits, and sold-out message. Use the `expand` parameter to include related `earlyBirds` pricing tiers. <details> <summary><b>Extra Fields</b></summary> <p>This is the extra information that can be returned if required by specifying what you need in the expand variable:</p> <table> <thead> <tr> <th><strong>Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td><code>earlyBirds</code></td> <td>object</td> <td>List all available early birds for this registration type</td> </tr> </tbody> </table> </details>
Registrant Types
Get One Session
Retrieves a single session by its unique ID. Returns the full session record including name, date, times, capacity, location, track, and status. Use `fields` to limit which fields are returned. Use `expand` to include related objects such as `speakers`, `location`, `track`, `translations`, `sessionAttendance`, `registrantCount`, `reservedCount`, and `earlyBirds`.
Sessions
Get One Field
Retrieves a single custom session field definition by its ID, including the attribute name, field type, visibility settings, validation rules, and available choices (for dropdown/radio fields).
Session Fields
Get One Location
Retrieves a single session location by its ID, including the location name, capacity, and address details.
Session Locations
Get One Speaker
Returns the full details of a single speaker by `speaker_id`. Use `fields` to limit which properties are returned and `expand=sessions` to include the list of sessions assigned to this speaker. Speaker profile data (name, email, company, bio) originates from the linked contact record.
Speakers
Get One Sponsor
Returns the full details of a single sponsor by `sponsor_id`, including name, description, level, website, logo, and direct link. Use `fields` to limit which properties are returned.
Sponsors
Get One Field
Returns the full details of a single sponsor custom field definition by `field_id`, including its type, name, attribute key, sort order, visibility, required flag, and available choices (for dropdown or multi-select fields).
Sponsor Fields
Get One Track
Retrieves a single session track by its ID, including the track name, color, and description.
Tracks
Get One Transaction
Retrieves a single transaction by its ID, including payment details (amount, type, status), card information (last 4 digits, card type), associated registrant, and payment gateway used.
Transactions
Get One Webhook
Retrieves a single webhook configuration by its ID, including the target URL, trigger event type, HTTP method, headers, and associated webhook group.
Webhooks
Get One Webhook Group
Retrieves a single webhook group by its ID, including the group name, associated event IDs, and the list of webhooks it contains.
Webhook Groups
Get package fee configuration
Retrieve the current fee configuration for a specific package, including base price and conditional pricing. **Note:** Only standard conditional pricing is exposed through the API. Early bird pricing is not accessible.
Package Fees
Get session fee configuration
Retrieve the current fee configuration for a specific session, including base price and conditional pricing. **Note:** Only standard conditional pricing is exposed through the API. Early bird pricing is not accessible.
Session Fees
Remove Contact from Invitation List
### Invitation Lists This endpoint removes a contact from an existing invitation list. It returns a success response when the contact is successfully removed.
Invitation Lists
Remove Registrant from Group
Removes a registrant from their current registration group. The registrant becomes their own group primary with an independent financial record. Transactions are restored to the registrant's individual account. The registrant must not be the group primary to be removed.
Registrant Groups
Update Contact
Updates an existing Call for Speakers contact by their ID. You can modify profile fields such as name, email, company, bio, and other speaker-related information.
Call for Speaker Contacts
Update Review
Updates an existing submission review by its ID. You can modify the score, feedback comments, and reviewer details.
Call for Speaker Reviews
Update Submission
Updates an existing speaker submission by its ID. You can modify the session topic, abstract, speaker details, track preference, and review status.
Call for Speaker Submissions
Update Contact
Updates an existing CRM contact by `contact_id`. Send only the fields you want to change -- any omitted fields retain their current values. Changes to contact data may propagate to linked speaker records that pull profile information from this contact.
Contacts
Update Data List
Updates an existing data list by its ID. You can modify the list name and notes.
Data Lists
Update Data List Item
Updates an existing data list item by its ID. You can modify the item value and sort order.
Data List Items
Update Discount Code
Updates an existing discount code by its ID. All body fields are optional; only the fields included in the request body will be updated. `event_id` cannot be changed — discounts are bound to their original event. To create alternate codes for an existing discount, use the clone endpoint.
Discount Codes
Update Event
Updates an existing event by its unique ID. Only the fields included in the request body are modified; omitted fields are left unchanged. You can update scheduling (`start_date`, `end_date`, `start_time`, `end_time`), metadata (`name`, `folder_id`, `description`), and registration settings (`close_date`, `close_time`, `capacity`). Changes to dates and times on a live event take effect immediately for the registration page.
Events
Update Field
Updates an existing custom event field definition by its ID. You can modify the field name, type, visibility, sort order, validation rules, and available choices.
Event Fields
Update Image Field
Uploads or replaces an image for a specific field on an object (registrant, contact, or sponsor). Send as a `multipart/form-data` request with a single `file` parameter containing the image. The file must be no larger than 5MB and use a valid extension: jpg, jpeg, gif, png, webp, or svg. The `image_type` path parameter specifies the object type, `image_id` the object's ID, and `field_id` the target image field (e.g., profile_picture).
Images
Update Invitation List
Updates an existing invitation list by its ID. You can modify the list name and capacity settings.
Invitation Lists
Update Package
Updates an existing registration package by its ID. You can modify the package name, capacity, group size limits, display names, and sold-out message. Only the fields included in the request body will be updated.
Packages
Update package fee configuration
Update the fee configuration for a specific package. You can update the base price and/or conditional pricing. **Important Notes:** - Only existing conditional pricing keys can be updated - Non-existent keys are silently ignored - Empty strings can be used to clear specific conditional prices - Early bird pricing cannot be modified through this API
Package Fees
Update Registrant
Updates an existing registrant's profile data by their unique ID. Only the fields included in the request body are modified; omitted fields are left unchanged. You can update personal details (name, email, company), registration status, package, sessions, and custom fields. Financial fields (`individual_net`, `group_gross`, `payment_status`, etc.) are read-only and cannot be modified through this endpoint. Set `override_capacity_errors=true` to allow changes to packages or sessions that are at capacity. Without this flag, capacity-exceeded updates will return an error.
Registrants
Update Type
Updates an existing registration type by its ID. You can modify the name, capacity, group size limits, display names, and sold-out message. Only the fields included in the request body will be updated.
Registrant Types
Update Session
Updates an existing session by its unique ID. Only the fields included in the request body are modified; omitted fields are left unchanged. You can update scheduling (`date`, `start_time`, `end_time`), metadata (`name`, `description`, `track_id`, `location_id`), capacity, and session behavior (`selection_control`, `locked_when_saved`, `prevent_session_conflicts`). Changes to a live session take effect immediately for attendees viewing the agenda.
Sessions
Update Session Attendance
Updates an existing session attendance record by its ID. Use this to modify the attendance status or other details of a previously recorded attendance entry.
Session Attendance
Update session fee configuration
Update the fee configuration for a specific session. You can update the base price and/or conditional pricing. **Important Notes:** - Only existing conditional pricing keys can be updated - Non-existent keys are silently ignored - Empty strings can be used to clear specific conditional prices - Early bird pricing cannot be modified through this API
Session Fees
Update Field
Updates an existing custom session field definition by its ID. You can modify the field name, type, visibility, sort order, validation rules, and available choices.
Session Fields
Update Location
Updates an existing session location by its ID. You can modify the name, capacity, and address. Only the fields included in the request body will be updated.
Session Locations
Update One Sponsor
Updates an existing sponsor by `sponsor_id`. Send only the fields you want to change -- any omitted fields retain their current values. Updatable fields include name, website, description, level, logo_id, and notes. Returns the full updated sponsor object.
Sponsors
Update Field
Updates an existing sponsor custom field definition by `field_id`. Send only the properties you want to change. For choice-based fields, you can add new choices, update existing choices by `id`, or delete choices by passing `delete: true` with the choice `id`. Returns the full updated field definition including all current choices.
Sponsor Fields
Update Track
Updates an existing session track by its ID. You can modify the track name, color, and description.
Tracks
Update Webhook
Updates an existing webhook configuration by its ID. You can modify the target URL, trigger event type, HTTP method, headers, and active status.
Webhooks
Update Webhook Group
Updates an existing webhook group by its ID. You can modify the group name and the list of events it applies to.
Webhook Groups
FAQ

Swoogo integration, answered

How do AI agents use Swoogo through Open Connector?
Your user connects Swoogo once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Swoogo tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
Is this a Swoogo MCP server?
Yes. Open Connector can serve Swoogo as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Swoogo actions with credentials injected server-side.
Where do Swoogo credentials live?
In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.

Give your agents Swoogo — keep the keys.

Open source, self-hostable, with Swoogo credentials that never leave your infrastructure. Run it from source today.