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.
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
Your user grants Swoogo access once (OAuth) — the token lands in the vault.
- 2
Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.
- 3
Every routed call appends a hash-chained audit record — nothing leaves your infra.
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_<questionId></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
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.