--- openapi: 3.0.1 info: title: Admin API V2 version: v1 components: securitySchemes: token_auth: type: apiKey description: Authorization header in the format "Token AUTH_TOKEN" name: Authorization in: header host: type: apiKey name: host in: header schemas: FilterResponse: title: FilterResponse description: This is the root object type: object required: - filter_configurations properties: filter_configurations: type: array items: "$ref": "#/components/schemas/Configuration" enabled: type: boolean description: Whether member filtering is enabled for this surface base_search_params: "$ref": "#/components/schemas/BaseSearchParams" BaseSearchParams: title: BaseSearchParams description: Search params the client must send with every request for this surface type: object required: - exclude_empty_name - status - order properties: exclude_empty_name: type: boolean description: Whether members without a name are excluded status: type: string description: Member status to scope the search to order: type: object additionalProperties: true description: Order clause, keyed by sortable field filters: type: array items: "$ref": "#/components/schemas/BaseSearchParamsFilter" description: Filters that are always applied on this surface BaseSearchParamsFilter: type: object required: - id - key - value properties: id: type: string key: type: string value: type: string Configuration: description: These are the allowed configurations oneOf: - "$ref": "#/components/schemas/StringFilterTypeConfiguration" - "$ref": "#/components/schemas/BooleanFilterTypeConfiguration" - "$ref": "#/components/schemas/RadioFilterTypeConfiguration" - "$ref": "#/components/schemas/ArrayFilterTypeConfiguration" - "$ref": "#/components/schemas/NearMeFilterTypeConfiguration" - "$ref": "#/components/schemas/PresetFilterTypeConfiguration" - "$ref": "#/components/schemas/LocationFilterTypeConfiguration" - "$ref": "#/components/schemas/SearchFilterTypeConfiguration" - "$ref": "#/components/schemas/NumberFilterTypeConfiguration" - "$ref": "#/components/schemas/AsyncSearchFilterTypeConfiguration" discriminator: propertyName: input_type mapping: string: "#/components/schemas/StringFilterTypeConfiguration" boolean: "#/components/schemas/BooleanFilterTypeConfiguration" radio: "#/components/schemas/RadioFilterTypeConfiguration" array: "#/components/schemas/ArrayFilterTypeConfiguration" near_me: "#/components/schemas/NearMeFilterTypeConfiguration" preset: "#/components/schemas/PresetFilterTypeConfiguration" location: "#/components/schemas/LocationFilterTypeConfiguration" search: "#/components/schemas/SearchFilterTypeConfiguration" number: "#/components/schemas/NumberFilterTypeConfiguration" async_search: "#/components/schemas/AsyncSearchFilterTypeConfiguration" BaseFilterInputType: type: object required: - type - key - label - icon - allow_multiple - pinned - visible_by_default - filter_group properties: type: type: string enum: - standard - search description: Type of the filter key: type: string description: Unique identifier for the filter label: type: string description: Display label for the filter icon: type: string nullable: true description: Icon identifier for the filter allow_multiple: type: boolean description: Whether multiple selections are allowed pinned: type: boolean description: Whether the filter is pinned visible_by_default: type: boolean description: Whether the filter is visible by default customizable: type: boolean description: Whether admins can customize this filter filter_group: allOf: - "$ref": "#/components/schemas/FilterGroups" description: The group this filter belongs to. Filters are ordered by group first, then within a group by the admin's saved order enabled: type: boolean description: Whether the filter is currently enabled (customize contexts only) filter_kit_control: nullable: true allOf: - "$ref": "#/components/schemas/FilterKitControl" description: The persisted or default FilterKit::Control for this filter (customize contexts only) FilterKitControl: type: object required: - key - filter_type - enabled properties: id: type: integer nullable: true community_id: type: integer nullable: true space_id: type: integer nullable: true profile_field_id: type: integer nullable: true key: type: string filter_type: type: string enabled: type: boolean sort_key: type: integer nullable: true created_at: type: string nullable: true updated_at: type: string nullable: true profile_field: type: object nullable: true properties: id: type: integer key: type: string label: type: string space: type: object nullable: true properties: id: type: integer name: type: string FilterGroups: type: string enum: - global - presets - profile description: 'Groups scope ordering — filters are only sorted relative to others in the same group. Returned in a fixed order: global, presets, profile' LocationSources: type: string enum: - mapbox_v6 description: Available location data sources StringFilterTypes: type: string enum: - contains - does_not_contain - is - is_not - not_exist - exist description: Available string filter types NumberFilterTypes: type: string enum: - is - is_not description: Available number filter types NumberFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - number description: Number input type identifier payload: type: object required: - filter_types properties: filter_types: type: array items: "$ref": "#/components/schemas/NumberFilterTypes" description: Available filter types for number filters additional_params: type: - object - 'null' description: Additional parameters for the filter number_options: "$ref": "#/components/schemas/NumberFilterOptions" NumberFilterOptions: type: object required: - id - format - decimal - position - text properties: id: type: integer format: type: string enum: - number - percentage - custom - unformatted decimal: type: integer nullable: true position: type: string enum: - left - right nullable: true text: type: string nullable: true StringFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - string description: String input type identifier payload: type: object required: - filter_types properties: filter_types: type: array items: "$ref": "#/components/schemas/StringFilterTypes" description: Available filter types for string filters additional_params: type: - object - 'null' description: Additional parameters for the filter BooleanFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - boolean description: Boolean input type identifier payload: type: object nullable: true description: No payload required for boolean filters RadioOption: type: object required: - key - value properties: key: type: string description: Option key value: oneOf: - type: string - type: number description: Option value RadioFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - radio description: Radio input type identifier payload: type: object required: - options properties: options: type: array items: "$ref": "#/components/schemas/RadioOption" description: Available radio button options ArrayFilterTypes: type: string enum: - is - is_not - not_exist - exist description: Available array filter types ArrayOption: type: object required: - text - value properties: text: type: string description: Display text for the option value: oneOf: - type: string - type: number description: Option value group: type: string nullable: true description: The group the option should be shown in, can be null ArrayFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - array description: Array input type identifier payload: type: object required: - options - filter_types - mode properties: options: type: array items: "$ref": "#/components/schemas/ArrayOption" description: Available array options filter_types: type: array items: "$ref": "#/components/schemas/ArrayFilterTypes" description: Available filter types for array filters mode: type: string enum: - inline - popover description: Mode of the array filter additional_params: type: object nullable: true additionalProperties: true description: Additional parameters (flexible object) AsyncSearchFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: const: async_search description: Async search input type identifier payload: type: object required: - filter_types - mode - url properties: filter_types: type: array items: "$ref": "#/components/schemas/ArrayFilterTypes" description: Available filter types for array filters mode: type: string enum: - inline - popover description: Mode of the array filter url: type: string format: uri description: URL to fetch the async search options LocationSearchOptions: type: object required: - key - source properties: key: type: string description: Location search key source: "$ref": "#/components/schemas/LocationSources" NearMeLocationFilterValues: type: object required: - source - id - name properties: source: "$ref": "#/components/schemas/LocationSources" id: type: string description: Location identifier name: type: string description: Location name NearMeCommunityMemberProfileField: type: object required: - id - text properties: id: type: number description: Profile field identifier text: type: string description: Profile field text NearMeFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - near_me description: Near me input type identifier payload: type: object required: - location_search_options - require_user_to_provide_more_precise_location - near_me_location_filter_values - community_member_profile_field properties: location_search_options: "$ref": "#/components/schemas/LocationSearchOptions" require_user_to_provide_more_precise_location: type: boolean description: Whether to require more precise location from user near_me_location_filter_values: nullable: true allOf: - "$ref": "#/components/schemas/NearMeLocationFilterValues" description: Near me location filter values community_member_profile_field: nullable: true allOf: - "$ref": "#/components/schemas/NearMeCommunityMemberProfileField" description: Community member profile field PresetFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - preset description: Preset input type identifier payload: type: object required: - preset_params properties: preset_params: type: object additionalProperties: true description: Preset parameters (flexible object) LocationFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - location description: Location input type identifier payload: type: object required: - location_search_options properties: location_search_options: "$ref": "#/components/schemas/LocationSearchOptions" mode: type: string enum: - inline - popover description: Render mode for the location filter. If inlined, the location search options will be displayed inline. If popover, the location search options will be displayed in a popover. SearchFilterTypeConfiguration: allOf: - "$ref": "#/components/schemas/BaseFilterInputType" - type: object required: - input_type - payload properties: input_type: type: string enum: - search description: Search input type identifier payload: type: object nullable: true description: No payload required for search filters location_result: type: object required: - source properties: name: type: string nullable: true description: Short place name. May equal full_address when Mapbox omits the short name. example: Bristol full_address: type: string nullable: true example: Bristol, England, United Kingdom feature_type: type: string nullable: true description: Mapbox place type (e.g. place, region, country). Needed to build a geo_location contact filter. example: place source: type: string description: Geocoder that produced this result. example: mapbox_v6 source_id: type: string nullable: true description: 'Opaque Mapbox location id. To build a geo_location contact filter, map this result to { source, id: source_id, name, feature_type }.' example: dXJuOm1ieHBsYzpHMGhQ location_search_results: type: object properties: results: type: array items: "$ref": "#/components/schemas/location_result" basic_post: type: object properties: id: type: integer status: type: string name: type: string nullable: true tiptap_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object circle_ios_fallback_text: type: string attachments: type: array items: {} inline_attachments: type: array items: {} sgids_to_object_map: type: object format: type: string community_members: type: array items: "$ref": "#/components/schemas/shared_community_member" entities: type: array items: {} group_mentions: type: array items: {} polls: type: array items: {} nullable: true body: type: object properties: id: type: integer name: type: string body: type: string record_type: type: string record_id: type: integer created_at: type: string format: date_time updated_at: type: string format: date_time slug: type: string url: type: string space_name: type: string space_slug: type: string space_id: type: integer user_id: type: integer user_email: type: string user_name: type: string comments_count: type: integer community_id: type: integer hide_meta_info: type: boolean user_avatar_url: type: string nullable: true published_at: type: string format: date_time created_at: type: string format: date_time updated_at: type: string format: date_time cover_image: type: string nullable: true cover_image_url: type: string nullable: true cardview_thumbnail: type: string nullable: true cardview_thumbnail_url: type: string nullable: true is_comments_enabled: type: boolean is_comments_closed: type: boolean is_liking_enabled: type: boolean flagged_for_approval_at: type: string format: date_time nullable: true unresolved_flagged_reports_count: type: integer custom_html: type: string nullable: true likes_count: type: integer topics: type: array items: type: integer member_posts_count: type: integer member_comments_count: type: integer member_likes_count: type: integer community: type: object properties: id: type: integer created_at: type: string format: date_time name: type: string locale: type: string slug: type: string allow_signups_to_public_community: type: boolean community_switcher_enabled: type: boolean custom_cta_for_share_links: type: boolean locked_post_cta_heading: type: string nullable: true locked_post_cta_body: type: string nullable: true locked_post_cta_button_text: type: string nullable: true locked_post_cta_button_url: type: string nullable: true custom_tos_enabled: type: boolean custom_tos: type: string nullable: true default_existing_member_space_id: type: integer nullable: true default_logged_out_space_id: type: integer nullable: true default_new_member_space_id: type: integer nullable: true default_search_sorting: type: string is_private: type: boolean nullable: true private_signup_link_label: type: string nullable: true private_signup_link_url: type: string nullable: true reply_to_email: type: string nullable: true white_label: type: boolean weekly_digest_enabled: type: boolean digest_subject: type: string nullable: true digest_intro: type: string nullable: true digests_hide_posts: type: boolean nullable: true digests_hide_comments: type: boolean nullable: true digests_hide_stats: type: boolean nullable: true digests_hide_members: type: boolean nullable: true prefs: type: object properties: has_posts: type: boolean has_spaces: type: boolean brand_color: type: object properties: light: type: string dark: type: string brand_text_color: type: object properties: light: type: string dark: type: string has_invited_member: type: boolean community_setting: type: object properties: id: type: integer created_at: type: string format: date_time updated_at: type: string format: date_time ios_app_enabled: type: boolean show_ios_app_banner: type: boolean deactivate_account_enabled: type: boolean allow_profile_search_indexing: type: boolean truncate_post_body_in_email_notifications: type: boolean hide_emails_on_member_profiles: type: boolean allow_members_to_go_live: type: boolean enforce_otp_for_signup: type: boolean community_activity_notifications_email_enabled: type: boolean community_activity_notifications_in_app_enabled: type: boolean desktop_app_community_visibility_enabled: type: boolean allow_moderator_csv_download: type: boolean default_space_ids: type: array items: type: integer default_logged_out_redirect_type: type: string nullable: true default_logged_out_redirect_id: type: integer nullable: true ai_summary: type: object properties: overview: type: string nullable: true content: type: string rich_text_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object properties: type: type: string content: type: array items: type: object properties: text: type: string nullable: true type: type: string circle_ios_fallback_text: type: string nullable: true attrs: type: object properties: sgid: type: string href: type: string nullable: true target: type: string nullable: true required: - sgid marks: type: array items: type: object properties: type: type: string attrs: type: object properties: href: type: string target: type: string nullable: true required: - type required: - type - content circle_ios_fallback_text: type: string attachments: type: array items: {} inline_attachments: type: array items: {} sgids_to_object_map: type: object format: type: string community_members: type: array items: {} entities: type: array items: {} group_mentions: type: array items: {} polls: type: array items: {} nullable: true direct_upload_response: type: object properties: id: type: integer key: type: string filename: type: string content_type: type: string byte_size: type: integer checksum: type: string created_at: type: string format: date_time metadata: type: object nullable: true service_name: type: string signed_id: type: string attachable_sgid: type: string direct_upload: type: object properties: url: type: string headers: type: object url: type: string shared_community_member: type: object properties: id: type: integer minimum: 1 name: type: string headline: type: string avatar_url: type: string nullable: true roles: oneOf: - type: object properties: admin: type: boolean moderator: type: boolean - type: array items: type: string nullable: true rich_text_field_sgid: type: string member_tags: type: array items: type: object properties: id: type: integer minimum: 1 name: type: string emoji: type: string color: type: string is_public: type: boolean is_background_enabled: type: boolean display_format: type: string display_locations: type: array items: type: string custom_emoji_dark_url: type: string custom_emoji_url: type: string profile_field: type: object properties: id: type: integer label: type: string field_type: type: string key: type: string placeholder: type: string nullable: true description: type: string nullable: true required: type: boolean allow_null: type: boolean platform_field: type: boolean archived: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time number_options: type: object nullable: true properties: id: type: integer format: type: string decimal: type: integer position: type: string nullable: true text: type: string nullable: true choices: type: array items: type: object properties: id: type: integer value: type: string pages: type: array items: type: object properties: id: type: integer name: type: string position: type: integer visible: type: boolean created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - label - field_type - key - required - allow_null - platform_field - archived - created_at - updated_at page_profile_fields: type: array items: type: object properties: id: type: integer label: type: string field_type: type: string key: type: string placeholder: type: string nullable: true description: type: string nullable: true required: type: boolean allow_null: type: boolean platform_field: type: boolean number_options: type: object nullable: true properties: id: type: integer format: type: string decimal: type: integer position: type: integer nullable: true text: type: string nullable: true choices: type: array items: type: object properties: id: type: integer value: type: string contact_search_rules_schema: type: object properties: rule_type: type: string enum: - all_contacts - all_members - custom_filters - selected_members rules: anyOf: - type: array items: type: object properties: key: type: string value: type: - string - boolean id: type: string filter_type: type: string enum: - is - is_not - contains - does_not_contain - gt - lt - eq required: - key - value - type: array items: type: object properties: email: type: string format: email community_member_id: type: integer required: - email - community_member_id required: - rule_type - rules community_segment_params: type: object properties: title: type: string visible: type: boolean rules: "$ref": "#/components/schemas/contact_search_rules_schema" community_segment_consumer_attributes: type: object properties: consumer_id: type: string consumer_type: type: string required: - title - visible - rules community_segment: type: object properties: id: type: integer minimum: 1 title: type: string nullable: true rules: "$ref": "#/components/schemas/contact_search_rules_schema" visible: type: boolean audience_count: type: integer minimum: 0 created_by: type: object properties: id: type: integer minimum: 1 name: type: string email: type: string avatar_url: type: string nullable: true public_uid: type: string created_at: type: string updated_at: type: string community_segments_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/community_segment" workflow: type: object required: - id - name - status - workflow_type - type_label - runs_count - url properties: id: type: string format: uuid example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string example: Welcome new members status: type: string enum: - draft - active - inactive - archived example: active workflow_type: type: string enum: - dynamic - bulk_action - scheduled example: dynamic type_label: type: string example: Automation runs_count: type: integer example: 42 community_segment_id: type: integer nullable: true example: url: type: string example: https://community.circle.so/settings/workflows/view/a1b2c3d4-e5f6-7890-abcd-ef1234567890 chat_preferences: type: object properties: id: type: integer messaging_enabled: type: boolean description: Enable or disable messaging for the community group_messaging_enabled: type: boolean description: Enable or disable group messaging for the community voice_messages_enabled: type: boolean description: Enable or disable voice messages for the community member_to_member_messaging_enabled: type: boolean description: Enable or disable member-to-member messaging for the community community_member: type: object properties: id: type: integer first_name: type: string nullable: true last_name: type: string nullable: true email: type: string headline: type: string nullable: true created_at: type: string format: date_time updated_at: type: string format: date_time community_id: type: integer last_seen_at: type: string format: date_time nullable: true profile_confirmed_at: type: string format: date_time nullable: true member_since: type: string format: date_time nullable: true member_since_overridden: type: boolean profile_url: type: string public_uid: type: string avatar_url: type: string nullable: true user_id: type: integer name: type: string accepted_invitation: type: string description: 'Timestamp the member accepted their invitation or terms, formatted as `"YYYY-MM-DD HH:MM:SS UTC"`. Empty string for members who have not yet accepted (e.g. invited members). Note: not ISO-8601; do not parse as a strict date-time.' active: type: boolean sso_provider_user_id: type: string nullable: true flattened_profile_fields: type: object posts_count: type: integer comments_count: type: integer member_tags: type: array items: type: object properties: id: type: integer name: type: string profile_fields: type: array items: type: object properties: id: type: integer label: type: string field_type: type: string key: type: string placeholder: type: string nullable: true description: type: string nullable: true required: type: boolean platform_field: type: boolean created_at: type: string format: date_time updated_at: type: string format: date_time community_member_profile_field: type: object properties: id: type: integer text: type: string nullable: true textarea: type: string nullable: true created_at: type: string updated_at: type: string display_value: oneOf: - type: string - type: array items: type: string nullable: true community_member_choices: type: array items: type: object properties: id: type: integer profile_field_choice: type: object properties: id: type: integer value: type: string nullable: true number_options: type: object nullable: true choices: type: array items: type: object properties: id: type: integer profile_field_choice: type: object properties: id: type: integer value: type: string pages: type: array items: type: object properties: id: type: integer name: type: string position: type: integer visible: type: boolean created_at: type: string format: date_time updated_at: type: string format: date_time gamification_stats: type: object nullable: true properties: community_member_id: type: integer example: 1 total_points: type: integer example: 100 current_level: type: integer nullable: true example: 1 current_level_name: type: string nullable: true example: Level 1 points_to_next_level: type: integer nullable: true example: 20 level_progress: type: integer nullable: true example: 100 activity_score: type: object properties: activity_score: type: string nullable: true presence: type: string nullable: true participation: type: string nullable: true contribution: type: string nullable: true connection: type: string nullable: true community_member_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/community_member" community_member_created: type: object properties: message: type: string community_member: "$ref": "#/components/schemas/community_member" course_sections_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/course_section" course_section: type: object properties: id: type: integer example: 1 name: type: string example: My Section space_id: type: integer example: 1 created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' updated_at: type: string format: date_time example: '2021-01-01T00:00:00Z' course_lessons_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/course_lesson" course_lesson: type: object properties: id: type: integer example: 1 name: type: string example: Lesson 1 status: type: string example: published enum: - published - draft created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' updated_at: type: string format: date_time example: '2021-01-01T00:00:00Z' section_id: type: integer example: 1 is_comments_enabled: type: boolean example: true is_featured_media_enabled: type: boolean example: true is_featured_media_download_enabled: type: boolean example: true body_html: type: string example: "

Lesson body

" space_id: type: integer example: 1 thumbnail: type: object nullable: true featured_media: type: object nullable: true course_setting: type: object nullable: true description: Course space configuration properties: course_type: type: string enum: - self_paced - scheduled - structured custom_lesson_label: type: string nullable: true enum: - activity - assignment - challenge - class - day - exercise - lecture - lesson - practice - session - topic - tutorial - workshop custom_section_label: type: string nullable: true enum: - chapter - level - module - part - path - phase - section - stage - track - unit - week enforce_lessons_order: type: boolean new_comment_notification_enabled: type: boolean lesson_thumbnails_visible: type: boolean flagged_content: type: object properties: id: type: integer status: type: string nullable: true reported_reason_type: type: string reported_reason_body: type: string nullable: true reported_at: type: string format: datetime action_taken_at: type: string format: datetime nullable: true action_reason_body: type: string nullable: true created_at: type: string format: datetime updated_at: type: string format: datetime content_id: type: integer content_type: type: string content_authored_by_id: type: integer content_authored_by_name: type: string content_authored_by_email: type: string reported_by_id: type: integer nullable: true reported_by_name: type: string nullable: true reported_by_email: type: string nullable: true action_by_id: type: integer nullable: true action_by_name: type: string nullable: true action_by_email: type: string nullable: true flagged_contents_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/flagged_content" form: type: object properties: id: type: integer uid: type: string after_submission_action: type: string enum: - thank_you_page - redirect embed_display_format: type: string enum: - inline - popup popup_delay: type: integer popup_frequency: type: integer name: type: string redirect_url: type: string nullable: true status: type: string enum: - draft - published thank_you_page_body: type: string nullable: true thank_you_page_title: type: string nullable: true updated_at: type: string format: date_time submissions_count: type: integer embed_styles: type: object nullable: true properties: form: type: object properties: backgroundColor: type: string color: type: string button: type: object properties: backgroundColor: type: string color: type: string standalone_page_styles: type: object nullable: true properties: form: type: object properties: backgroundColor: type: string color: type: string button: type: object properties: backgroundColor: type: string color: type: string form_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/form" form_submission_field: type: object properties: field_id: type: integer label: type: string value: oneOf: - type: string - type: array items: type: string nullable: true hidden: type: boolean form_submission: type: object properties: id: type: integer created_at: type: string format: date_time fields: type: array items: "$ref": "#/components/schemas/form_submission_field" form_submission_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/form_submission" form_submission_create_request: type: object properties: elements: type: array items: type: object properties: id: type: integer value: type: string nullable: true value_json: type: array items: type: string required: - id submission_on_behalf_of: type: string description: Email of the contact on behalf of which the submission is being created nullable: true required: - elements form_submission_create_response: type: object properties: success: type: boolean form_update_request: type: object properties: name: type: string after_submission_action: type: string enum: - thank_you_page - redirect embed_display_format: type: string enum: - inline - popup redirect_url: type: string nullable: true status: type: string enum: - draft - published thank_you_page_title: type: string nullable: true thank_you_page_body: type: string nullable: true popup_delay: type: integer popup_frequency: type: integer embed_styles: type: object nullable: true properties: form: type: object properties: backgroundColor: type: string color: type: string button: type: object properties: backgroundColor: type: string color: type: string standalone_page_styles: type: object nullable: true properties: form: type: object properties: backgroundColor: type: string color: type: string button: type: object properties: backgroundColor: type: string color: type: string elements: type: array items: "$ref": "#/components/schemas/form_element" form_element: type: object properties: id: type: integer nullable: true position: type: integer type: type: string enum: - text - field - button - layout parent_element_id: type: integer nullable: true attributes: type: object description: Element-specific attributes. Structure varies by element type. children: type: array description: Child elements nested within this element. Each child follows the same structure as a form_element and can be nested recursively. items: type: object invitation_link: type: object properties: id: type: integer name: type: string redemption_url: type: string format: uri created_at: type: string format: date_time updated_at: type: string format: date_time access_group_ids: type: array items: type: integer member_tag_ids: type: array items: type: string active: type: boolean members_joined_count: type: integer redirect_space_id: type: integer nullable: true paywall: type: object nullable: true properties: paywall_id: type: string paywall_price_id: type: string trial_days: type: integer paywall_coupon_code: type: string invitation_links_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/invitation_link" filter_kit_control: type: object required: - key - filter_type - enabled properties: id: type: integer nullable: true community_id: type: integer nullable: true space_id: type: integer nullable: true profile_field_id: type: integer nullable: true key: type: string filter_type: type: string enabled: type: boolean sort_key: type: integer nullable: true created_at: type: string nullable: true updated_at: type: string nullable: true profile_field: type: object nullable: true properties: id: type: integer key: type: string label: type: string space: type: object nullable: true properties: id: type: integer name: type: string filter_kit_controls_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/filter_kit_control" member_tags_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/member_tag" member_tag: type: object properties: id: type: integer example: 1 created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' updated_at: type: string format: date_time example: '2021-01-01T00:00:00Z' name: type: string example: My Tag is_public: type: boolean example: true is_background_enabled: type: boolean example: true tagged_members_count: type: integer example: 10 color: type: string example: "#000000" display_format: type: string example: label emoji: type: string example: "\U0001F44D" nullable: true custom_emoji_url: type: string example: https://example.com/emoji.png nullable: true custom_emoji_dark_url: type: string example: https://example.com/emoji-dark.png nullable: true display_locations: type: object nullable: true properties: post_bio: type: boolean example: true profile_page: type: boolean example: true member_directory: type: boolean example: true contact_note: type: object properties: id: type: integer example: 1 contact_id: type: integer example: 1 author_id: type: integer example: 1 community_id: type: integer example: 1 created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' updated_at: type: string format: date_time example: '2021-01-01T00:00:00Z' tiptap_body: type: object nullable: true policies: type: object properties: can_edit: type: boolean example: true can_destroy: type: boolean example: true contact_notes_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 5 has_next_page: type: boolean example: true count: type: integer example: 12 page_count: type: integer example: 5 records: type: array items: "$ref": "#/components/schemas/contact_note" workflow_detail: type: object required: - id - name - status - workflow_type - type_label - runs_count - community_segment_id - trigger - actions properties: id: type: string format: uuid example: 9f2c1b7a-8d3e-4a2f-9c1b-7a8d3e4a2f9c name: type: string example: Welcome new members status: type: string example: active workflow_type: type: string example: dynamic type_label: type: string example: Automations runs_count: type: integer example: 12 community_segment_id: type: integer nullable: true example: trigger: type: object nullable: true properties: id: type: string format: uuid example: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d workflow_id: type: string format: uuid example: 9f2c1b7a-8d3e-4a2f-9c1b-7a8d3e4a2f9c trigger_type: type: string example: member_joined_community resource_id: type: integer nullable: true example: resource_type: type: string nullable: true example: contact_type: type: string example: member community_segment_id: type: integer nullable: true example: ai_filter_prompt: type: string nullable: true example: config: type: object nullable: true actions: type: array items: type: object required: - id - workflow_id - action_type - position - list_position - api_params - community_segment_id properties: id: type: string format: uuid example: 2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e workflow_id: type: string format: uuid example: 9f2c1b7a-8d3e-4a2f-9c1b-7a8d3e4a2f9c action_type: type: string example: add_tag_to_community_member position: type: integer example: 3 list_position: type: integer example: 1 api_params: type: object nullable: true community_segment_id: type: integer nullable: true example: payment_method_preference: type: object properties: payment_method: type: string example: apple_pay capability_id: type: string example: apple_pay_payments nullable: true capability_status: type: string example: active nullable: true value: type: boolean example: true is_enabled: type: boolean example: true is_capability_active: type: boolean example: true is_capability_pending: type: boolean example: false can_request_capability: type: boolean example: false is_capability_available: type: boolean example: true mutable: type: boolean example: true normalized_state: type: string example: active enum: - pending_verification - active - disabled - unavailable required: - payment_method - value - is_enabled - is_capability_active - is_capability_pending - can_request_capability - is_capability_available - mutable - normalized_state payment_method_preferences_list: type: array items: "$ref": "#/components/schemas/payment_method_preference" paywall_group: type: object properties: id: type: integer example: 1 name: type: string example: Premium Memberships currency_id: type: integer example: 1 created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' updated_at: type: string format: date_time example: '2021-01-01T00:00:00Z' paywall_affiliate: type: object properties: id: type: integer example: 1 status: type: string example: enrolled code: type: string example: abc123 enrolled_at: type: string format: date_time example: '2021-01-01T00:00:00Z' nullable: true invited_at: type: string format: date_time example: '2021-01-01T00:00:00Z' nullable: true community_member: type: object properties: id: type: integer example: 1 name: type: string example: Jane Doe email: type: string example: jane@example.com paywall_affiliate_payout_export: type: object properties: id: type: integer example: 1 relation: type: string example: Paywalls::Affiliates::Payout community_member_ids: type: array items: type: integer example: [] created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' paywall_affiliates_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/paywall_affiliate" paywall: type: object properties: id: type: integer example: 1 name: type: string example: Premium Membership nullable: true display_name: type: string example: Premium Membership status: type: string example: active enum: - draft - active - inactive currency: type: string example: usd nullable: true paywall_group_id: type: integer example: 1 nullable: true subscription_group: type: string example: Premium Memberships nullable: true access_groups_enabled: type: boolean example: false created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' prices: type: array items: type: object properties: id: type: integer example: 1 name: type: string example: Monthly nullable: true status: type: string example: active enum: - draft - active - inactive price_type: type: string example: subscription enum: - subscription - onetime - installments amount_in_cents: type: integer example: 1000 description: The price's total amount, in cents. For installments-type prices, this is the price's full amount field, not a per-installment amount. interval: type: string example: monthly nullable: true enum: - daily - weekly - monthly - yearly description: 'Billing interval. Pairs with interval_count (e.g. interval: "monthly", interval_count: 3 is quarterly).' interval_count: type: integer example: 1 nullable: true recurring: type: boolean example: true upfront_payment_amount_in_cents: type: integer example: 0 display_name: type: string example: $10.00/month paywalls_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/paywall" community_member_charge: type: object properties: id: type: integer example: 1 processor_id: type: string example: pi_abc123 nullable: true invoice_processor_id: type: string example: in_abc123 nullable: true subscription_processor_id: type: string example: sub_abc123 nullable: true status: type: string example: paid display_status_raw: type: string example: paid refundable: type: boolean example: true amount: type: integer example: 1000 amount_refunded: type: integer example: 0 amount_to_refund: type: integer example: 1000 currency: type: string example: usd nullable: true platform: type: string example: web payment_method_type: type: string example: card nullable: true created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' paywall_id: type: integer example: 1 nullable: true paywall_name: type: string example: Premium Membership nullable: true paywall_price_id: type: integer example: 1 nullable: true paywall_price_type: type: string example: subscription nullable: true paywall_price_interval: type: string example: month nullable: true paywall_coupon_code: type: string example: SAVE20 nullable: true community_member_id: type: integer example: 1 nullable: true community_member_public_uid: type: string example: abc123 nullable: true community_member_name: type: string example: Jane Doe nullable: true community_member_email: type: string example: jane@example.com nullable: true community_member_charges_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/community_member_charge" community_member_charge_export: type: object properties: id: type: integer example: 1 relation: type: string example: CommunityMemberCharge fields: type: array items: type: string example: [] filters: type: object example: email: jane@example.com created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' community_lead: type: object properties: id: type: integer example: 1 name: type: string example: Jo Bloggs type: type: string example: CommunityLead email: type: string example: jo@example.com nullable: true created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' member_tags: type: array items: "$ref": "#/components/schemas/member_tag" sqid: type: string example: Xk3Jq9 public_uid: type: string example: a1b2c3d4e5f6 nullable: true community_member_subscription: type: object properties: id: type: integer example: 1 processor_id: type: string example: sub_abc123 nullable: true status: type: string example: active platform: type: string example: web renews_at: type: string format: date_time example: '2021-02-01T00:00:00Z' nullable: true trial_ends_at: type: string format: date_time example: '2021-01-15T00:00:00Z' nullable: true ends_at: type: string format: date_time example: '2021-03-01T00:00:00Z' nullable: true created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' charges_quantity: type: integer example: 3 total_amount_paid: type: integer example: 3000 currency: type: string example: usd nullable: true paywall_id: type: integer example: 1 nullable: true paywall_name: type: string example: Premium Membership nullable: true paywall_price_id: type: integer example: 1 nullable: true paywall_price_type: type: string example: subscription nullable: true paywall_price_interval: type: string example: month nullable: true paywall_coupon_code: type: string example: SAVE20 nullable: true community_member_id: type: integer example: 1 nullable: true community_member_public_uid: type: string example: abc123 nullable: true community_member_name: type: string example: Jane Doe nullable: true community_member_email: type: string example: jane@example.com nullable: true refundable: type: boolean example: false renewing: type: boolean example: true completed_installment: type: boolean example: false community_member_subscriptions_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/community_member_subscription" community_member_subscription_export: type: object properties: id: type: integer example: 1 relation: type: string example: CommunityMemberSubscription fields: type: array items: type: string example: [] filters: type: object example: email: jane@example.com created_at: type: string format: date_time example: '2021-01-01T00:00:00Z' event: type: object properties: id: type: integer name: type: string slug: type: string user_id: type: integer community_member_id: type: integer created_at: type: string format: date_time hide_meta_info: type: boolean nullable: true confirmation_message_title: type: string nullable: true confirmation_message_button_title: type: string nullable: true confirmation_message_button_link: type: string nullable: true confirmation_message_description: type: string nullable: true in_person_location: type: string nullable: true host: type: string nullable: true comments_count: type: integer duration_in_seconds: type: integer enable_custom_thank_you_message: type: boolean send_in_app_notification_confirmation: type: boolean rsvp_disabled: type: boolean example: false send_email_confirmation: type: boolean send_email_reminder: type: boolean send_in_app_notification_reminder: type: boolean virtual_location_url: type: string starts_at: type: string format: date_time location_type: type: string hide_attendees: type: boolean ends_at: type: string format: date_time updated_at: type: string format: date_time hide_location_from_non_attendees: type: boolean space: type: object properties: id: type: integer slug: type: string name: type: string community_id: type: integer body: type: string url: type: string member_email: type: string member_name: type: string member_avatar_url: type: string nullable: true zapier_display_title: type: string likes_count: type: integer cover_image_url: type: string nullable: true meta_tag_attributes: type: object nullable: true properties: meta_title: type: string nullable: true meta_description: type: string nullable: true opengraph_title: type: string nullable: true opengraph_description: type: string nullable: true opengraph_image: type: string nullable: true topics: type: array items: type: integer event_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/event" posts_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/basic_post" image_posts_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/image_post" basic_post_created_response: type: object properties: message: type: string post: "$ref": "#/components/schemas/basic_post" basic_post_updated_response: type: object properties: message: type: string post: "$ref": "#/components/schemas/basic_post" basic_post_deleted_response: type: object properties: success: type: boolean message: type: string space: type: object properties: id: type: integer name: type: string slug: type: string cover_image_url: type: string nullable: true cover_image_visible: type: boolean cover_image_display_style: type: string enum: - normal - wide thumbnail_image_url: type: string nullable: true community_id: type: integer is_private: type: boolean nullable: true is_hidden_from_non_members: type: boolean nullable: true is_draft: type: boolean is_hidden: type: boolean nullable: true locked_button_url: type: string nullable: true locked_button_label: type: string nullable: true locked_page_heading: type: string nullable: true locked_page_description: type: string nullable: true emoji: type: string nullable: true custom_emoji_url: type: string nullable: true custom_emoji_dark_url: type: string nullable: true hide_post_settings: type: boolean nullable: true display_view: type: string nullable: true is_post_disabled: type: boolean nullable: true space_type: type: string nullable: true host: type: string nullable: true post_ids: type: array items: type: integer url: type: string nullable: true space_group: type: object properties: id: type: integer name: type: string topics: type: array items: type: integer default_mention_in_app_notification_setting: type: string enum: - never - all description: Members will receive an in-app notification when they are mentioned in this space default_mention_mobile_notification_setting: type: string enum: - never - all description: Members will receive a mobile notification when they are mentioned in this space event_auto_rsvp_enabled: type: boolean description: If true, members will automatically be RSVP'd to events in this space default_in_app_notification_setting: type: string enum: - never - all description: Members will receive an in-app notification when a post is made in this space default_mobile_notification_setting: type: string enum: - never - all description: Members will receive a mobile notification when a post is made in this space default_notification_setting: type: string enum: - never - all description: Members will receive an email notification when a post is made in this space default_sort: type: string nullable: true hide_sorting: type: boolean nullable: true require_topic_selection: type: boolean nullable: true prevent_members_from_adding_others: type: boolean nullable: true hide_from_featured_areas: type: boolean nullable: true disable_member_post_covers: type: boolean nullable: true hide_members_count: type: boolean nullable: true pinned_posts_label: type: string nullable: true show_lock_icon_for_non_members: type: boolean nullable: true default_comment_sort: type: string nullable: true default_member_sort: type: string nullable: true default_tab: type: string nullable: true show_tab_bar: type: boolean nullable: true show_next_event: type: boolean nullable: true hide_from_sidebar: type: boolean nullable: true hide_right_sidebar: type: boolean nullable: true lock_screen_blocks: type: array nullable: true visible_tabs: type: object nullable: true meta_tag_attributes: type: object nullable: true properties: meta_title: type: string nullable: true meta_description: type: string nullable: true opengraph_title: type: string nullable: true opengraph_description: type: string nullable: true opengraph_image: type: string nullable: true chat_room_show_history: type: boolean nullable: true chat_room_description: type: string nullable: true course_setting: type: object nullable: true properties: course_type: type: string new_comment_notification_enabled: type: boolean enforce_lessons_order: type: boolean custom_lesson_label: type: string nullable: true custom_section_label: type: string nullable: true lesson_thumbnails_visible: type: boolean space_create_response: type: object properties: success: type: boolean message: type: string space: "$ref": "#/components/schemas/space" spaces: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/space" space_ai_summary: type: object properties: overview: type: string topics: type: array items: type: object properties: topic_name: type: string summary: type: string contributors: type: array items: type: object properties: id: type: integer name: type: string relevant_post_ids: type: array items: type: integer required: - topic_name - summary - contributors - relevant_post_ids required: - overview - topics space_group_member: type: object properties: id: type: integer space_group_id: type: integer user_id: type: integer moderator: type: boolean community_member_id: type: integer access_type: type: string status: type: string created_at: type: string format: date_time updated_at: type: string format: date_time community_member: type: object properties: name: type: string first_name: type: string last_name: type: string avatar_url: type: string nullable: true headline: type: string nullable: true community_id: type: integer profile_url: type: string public_uid: type: string email: type: string space_member: type: object properties: id: type: integer user_id: type: integer space_id: type: integer notification_type: type: string posts_read_count: type: integer in_app_notification_setting: type: string community_member_id: type: integer moderator: type: boolean mobile_notification_setting: type: string access_type: type: string status: type: string created_at: type: string format: date-time updated_at: type: string format: date-time community_member: type: object properties: name: type: string first_name: type: string last_name: type: string avatar_url: type: string nullable: true headline: type: string nullable: true community_id: type: integer profile_url: type: string public_uid: type: string email: type: string space_members: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/space_member" space_group_members: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/space_group_member" space_group: type: object properties: id: type: integer name: type: string slug: type: string community_id: type: integer is_hidden_from_non_members: type: boolean hide_members_count: type: boolean allow_members_to_create_spaces: type: boolean automatically_add_members_to_new_spaces: type: boolean add_members_to_space_group_on_space_join: type: boolean hide_non_member_spaces_from_sidebar: type: boolean created_at: type: string format: date_time updated_at: type: string format: date_time space_group_members_count: type: integer spaces_count: type: integer space_groups: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/space_group" comment: type: object properties: id: type: integer parent_comment_id: type: integer nullable: true flagged_for_approval_at: type: string format: date_time nullable: true unresolved_flagged_reports_count: type: integer created_at: type: string format: date_time body: type: object properties: id: type: integer nullable: true name: type: string body: type: string record_type: type: string record_id: type: integer created_at: type: string format: date_time nullable: true updated_at: type: string format: date_time nullable: true user: type: object properties: id: type: integer name: type: string avatar_url: type: string nullable: true email: type: string post: type: object properties: id: type: integer name: type: string slug: type: string space: type: object properties: id: type: integer name: type: string slug: type: string replies_count: type: integer replies: type: array items: "$ref": "#/components/schemas/comment" url: type: string community_id: type: integer likes_count: type: integer user_posts_count: type: integer user_comments_count: type: integer user_likes_count: type: integer author_type: type: string enum: - CommunityMember - CommunityAiAgent comments_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/comment" event_attendee: type: object properties: id: type: integer event_id: type: integer event_name: type: string member_name: type: string member_email: type: string member_avatar_url: type: string nullable: true headline: type: string nullable: true rsvp_date: type: string format: date_time event_attendees_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/event_attendee" tagged_member: type: object properties: id: type: integer member_tag_id: type: integer member_tag_name: type: string member_tag_emoji: type: string nullable: true user_id: type: integer user_email: type: string lead_id: type: integer nullable: true lead_email: type: string nullable: true community_member_id: type: integer contact_id: type: integer created_at: type: string format: date_time updated_at: type: string format: date_time tagged_members: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/tagged_member" topic: type: object properties: id: type: integer name: type: string admin_only: type: boolean description: Only admins and moderators can select this topic created_at: type: string format: date_time updated_at: type: string format: date_time author: type: object properties: first_name: type: string nullable: true last_name: type: string nullable: true avatar_url: type: string nullable: true space_ids: type: array items: type: integer topics_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/topic" access_group_community_member: type: object properties: id: type: integer access_group_id: type: integer community_member_id: type: integer community_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time access_group_community_members: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/access_group_community_member" access_group: type: object properties: id: type: integer name: type: string description: type: string status: type: string community_id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time access_groups: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/access_group" image_post: allOf: - "$ref": "#/components/schemas/basic_post" - type: object properties: gallery: type: object properties: id: type: integer downloadable_images: type: boolean images: type: array items: type: object properties: id: type: integer signed_id: type: string original_url: type: string url: type: string filename: type: string width: type: integer height: type: integer advanced_searched_post: type: object properties: id: type: integer type: type: string name: type: string slug: type: string url: type: string created_at: type: string format: date_time status: type: string highlighted_name: type: string nullable: true cover_image_url: type: string nullable: true body: type: string nullable: true highlighted_body: type: string nullable: true sgid: type: string starts_at: type: string nullable: true author: type: object properties: name: type: string avatar_url: type: string nullable: true community_member_id: type: integer space: "$ref": "#/components/schemas/space_basic_info" advanced_searched_comment: type: object properties: id: type: integer type: type: string body: type: string url: type: string post_id: type: integer post_slug: type: string post_name: type: string space_id: type: integer space_slug: type: string parent_comment_id: type: integer nullable: true highlighted_body: type: string nullable: true author: type: object properties: name: type: string avatar_url: type: string nullable: true community_member_id: type: integer advanced_searched_lesson: type: object properties: id: type: integer type: type: string name: type: string body: type: string status: type: string section_name: type: string section_id: type: integer created_at: type: string format: date_time highlighted_name: type: string nullable: true highlighted_body: type: string nullable: true sgid: type: string space: "$ref": "#/components/schemas/space_basic_info" advanced_searched_space: allOf: - "$ref": "#/components/schemas/space_basic_info" - type: object properties: type: type: string highlighted_name: type: string nullable: true sgid: type: string space_type: type: string advanced_searched_community_member: type: object properties: type: type: string id: type: integer name: type: string email: type: string headline: type: string nullable: true avatar_url: type: string nullable: true bio: type: string nullable: true public_uid: type: string location: type: string nullable: true user_id: type: integer highlighted_name: type: string nullable: true sgid: type: string space_basic_info: type: object properties: id: type: integer name: type: string slug: type: string emoji: type: string nullable: true custom_emoji_url: type: string nullable: true custom_emoji_dark_url: type: string nullable: true advanced_searched_group_mention: type: object properties: id: type: integer type: type: string name: type: string mention_type: type: string mention_scope: type: string highlighted_name: type: string nullable: true sgid: type: string advanced_search_results: type: object properties: page: type: integer minimum: 1 per_page: type: integer minimum: 1 has_next_page: type: boolean count: type: integer minimum: 0 page_count: type: integer minimum: 0 records: type: array items: anyOf: - "$ref": "#/components/schemas/advanced_searched_post" - "$ref": "#/components/schemas/advanced_searched_comment" - "$ref": "#/components/schemas/advanced_searched_lesson" - "$ref": "#/components/schemas/advanced_searched_space" - "$ref": "#/components/schemas/advanced_searched_community_member" - "$ref": "#/components/schemas/advanced_searched_group_mention" image_post_created_response: type: object properties: message: type: string post: "$ref": "#/components/schemas/image_post" leaderboard_member: type: object properties: community_member_id: type: integer name: type: string public_uid: type: string headline: type: string nullable: true avatar_url: type: string nullable: true total_points: type: integer required: - community_member_id - name - public_uid - total_points leaderboard: type: array items: "$ref": "#/components/schemas/leaderboard_member" embed: type: object properties: id: type: integer url: type: string sgid: type: string type: type: string embed_type: type: - string - 'null' embed_provider: type: string circle_embed_url: type: string html: type: - string - 'null' title: type: - string - 'null' width: type: - integer - 'null' height: type: - integer - 'null' version: type: - string - 'null' author_url: type: - string - 'null' author_name: type: - string - 'null' description: type: - string - 'null' provider_url: type: - string - 'null' provider_name: type: - string - 'null' thumbnail_url: type: - string - 'null' thumbnail_width: type: - integer - 'null' thumbnail_height: type: - integer - 'null' live_room: type: object properties: id: type: integer name: type: string status: type: string room_type: type: string created_at: type: string format: date-time live_at: type: string format: date-time nullable: true closed_at: type: string format: date-time nullable: true recording_enabled: type: boolean slug: type: string required: - id - name - status - room_type - created_at - recording_enabled - slug live_room_list: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/live_room" tax_setting: type: object properties: processor_status: type: string platform_status: type: string default_tax_behavior: type: string nullable: true required: - processor_status - platform_status - default_tax_behavior connect_settings: type: object properties: connect: type: object properties: enabled: type: boolean example: true recommendations: type: boolean example: true exclude_admins_from_recommendations: type: boolean example: false exclude_moderators_from_recommendations: type: boolean example: false required: - enabled - recommendations - exclude_admins_from_recommendations - exclude_moderators_from_recommendations member_directory: type: object properties: public: type: boolean example: true sort: type: string nullable: true enum: - alphabetical - oldest - latest example: alphabetical view: type: string nullable: true enum: - list - cards example: list required: - public - sort - view messaging: type: object properties: enabled: type: boolean example: true member_to_member_messaging_enabled: type: boolean example: true group_messaging_enabled: type: boolean example: true voice_messages_enabled: type: boolean example: false require_connection_before_messaging: type: boolean example: false required: - enabled - member_to_member_messaging_enabled - group_messaging_enabled - voice_messages_enabled - require_connection_before_messaging required: - connect - member_directory - messaging error: type: object properties: success: type: boolean message: type: string error_details: oneOf: - type: string - type: object - type: array nullable: true workflow_summary: type: object required: - id - name - status - workflow_type - type_label - runs_count properties: id: type: string format: uuid example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string nullable: true example: Welcome new members status: type: string description: Workflow status example: active workflow_type: type: string enum: - dynamic - bulk_action - scheduled example: dynamic type_label: type: string example: Automation runs_count: type: integer example: 42 community_segment_id: type: integer nullable: true example: workflows_list: type: object properties: page: type: integer example: 1 per_page: type: integer example: 10 has_next_page: type: boolean example: true count: type: integer example: 100 page_count: type: integer example: 10 records: type: array items: "$ref": "#/components/schemas/workflow_summary" paths: "/api/admin/v2/access_groups/{access_group_id}/community_members": post: summary: Add Member to Access Group tags: - Access Group Members description: Add Member to Access Group security: - token_auth: [] host: [] parameters: - name: access_group_id in: path required: true schema: type: integer responses: '201': description: Add Member to Access Group content: application/json: examples: add_member_to_access_group: value: message: Member has been added to 'ACCESS_GROUP_NAME' access group. schema: type: object properties: message: type: string '404': description: Not Found content: application/json: examples: access_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: email: type: string required: - email required: true delete: summary: Remove Access Group Member tags: - Access Group Members description: Remove Access Group Member security: - token_auth: [] host: [] parameters: - name: access_group_id in: path required: true schema: type: integer - name: email in: query schema: type: string required: true description: Email responses: '200': description: Remove Access Group Member content: application/json: examples: remove_access_group_member: value: message: Member removed from 'ACCESS_GROUP_NAME' access group. schema: type: object properties: message: type: string '404': description: Not Found content: application/json: examples: access_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' access_group_community_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: List Access Group Community Members tags: - Access Group Members description: List Community Members in an Access Group security: - token_auth: [] host: [] parameters: - name: access_group_id in: path schema: type: integer required: true description: Access Group ID - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page responses: '200': description: List Access Group Community Members content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 access_group_id: 1 community_member_id: 2 community_id: 2 created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' - id: 1 access_group_id: 1 community_member_id: 1 community_id: 2 created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' schema: "$ref": "#/components/schemas/access_group_community_members" '404': description: Not Found content: application/json: examples: access_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/access_groups/{access_group_id}/community_member": get: summary: Show Access Group Community Member tags: - Access Group Members description: Show Community Member in an Access Group security: - token_auth: [] host: [] parameters: - name: access_group_id in: path schema: type: integer required: true description: Access Group ID - name: email in: query schema: type: string required: true description: Email responses: '200': description: Show Access Group Community Member content: application/json: examples: access_group_community_member: value: id: 1 access_group_id: 1 community_member_id: 1 community_id: 1 created_at: '2024-09-12T12:03:02.000Z' updated_at: '2024-09-12T12:03:02.000Z' schema: "$ref": "#/components/schemas/access_group_community_member" '404': description: Not Found content: application/json: examples: access_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' access_group_community_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/access_groups": post: summary: Create Access Group tags: - Access Groups security: - token_auth: [] host: [] parameters: [] responses: '201': description: Access Group Created content: application/json: examples: success: value: id: 1 name: Test Access Group status: active description: Test description for access group community_id: 1 created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' schema: "$ref": "#/components/schemas/access_group" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Name can't be blank error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: access_group: type: object properties: name: type: string description: Name of the access group description: type: string description: Description of the access group required: - name required: - access_group examples: Create Access Group: summary: Create a new access group value: access_group: name: VIP Members description: Premium access group for VIP members get: summary: List Access Groups tags: - Access Groups security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: status in: query schema: type: string enum: - active - archived - all required: false description: Filter by access group status - name: ids in: query schema: type: array items: type: integer required: false description: Filter by access group ids - name: name in: query schema: type: string required: false description: Filter by access group name responses: '200': description: List Access Groups content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 name: Group Two status: active community_id: 1 created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' description: Group Two Description - id: 1 name: Group One status: active community_id: 1 created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' description: Group One Description schema: "$ref": "#/components/schemas/access_groups" '400': description: Bad Request content: application/json: examples: invalid_status: value: success: false message: 'Invalid status. Valid statuses are: active, archived, all' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/access_groups/{id}": delete: summary: Archive Access Group tags: - Access Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Access Group ID responses: '200': description: Access Group archived content: application/json: examples: success: value: success: true message: Access group archived schema: type: object properties: success: type: boolean message: type: string '422': description: Unable to archive Access Group content: application/json: examples: failure: value: success: false message: An error occurred while archiving access group. Please try again later error_details: [] schema: "$ref": "#/components/schemas/error" '404': description: Access Group not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update Access Group tags: - Access Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Access Group ID responses: '200': description: Access Group updated content: application/json: examples: success: value: id: 1 name: Updated Name status: active description: Updated Description community_id: 1 created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/access_group" '422': description: Unprocessable Entity content: application/json: examples: blank_name: value: success: false message: Name can't be blank error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '404': description: Access Group not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' schema: type: object properties: success: type: boolean message: type: string error_details: type: object '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: access_group: type: object properties: name: type: string description: Name of the access group description: type: string description: Description of the access group required: - access_group "/api/admin/v2/access_groups/{id}/unarchive": patch: summary: Unarchive Access Group tags: - Access Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Access Group ID responses: '200': description: Access Group unarchived content: application/json: examples: success: value: id: 1 name: Test Access Group status: active description: Test Description community_id: 1 created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/access_group" '404': description: Access Group not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: access group' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/advanced_search": get: summary: Advanced Search tags: - Advanced Search description: Advanced Search security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: query in: query schema: type: string required: true description: Search query - name: type in: query schema: type: string enum: - general - members - posts - comments - spaces - lessons - events - entity_list - mentions required: false description: Search type - name: mention_scope in: query schema: type: string enum: - space - group_chat - thread - direct required: false description: Mention scope - name: filters in: query schema: type: object properties: space_ids: type: array items: type: string topic_ids: type: array items: type: string member_tag_ids: type: array items: type: string author_name: type: string status: type: string enum: - upcoming - past style: deepObject explode: true required: false description: Filters responses: '200': description: OK content: application/json: examples: success: value: page: 1 has_next_page: false count: 2 page_count: 2 per_page: 20 records: - id: 5 type: space name: test-course slug: post-f660aa emoji: custom_emoji_url: http://welch.circledev.net:31337/assets/emoji-picker-v3/shapes/circle/shape-circle-blue-65c4a6035acf9fa79fa588f789d2f8033ed911cc1f7c90ffbd8e7525e9050611.png custom_emoji_dark_url: http://welch.circledev.net:31337/assets/emoji-picker-v3/shapes/circle/shape-circle-blue-65c4a6035acf9fa79fa588f789d2f8033ed911cc1f7c90ffbd8e7525e9050611.png highlighted_name: "test-course" sgid: SGID - id: 4 type: space name: Test Members Space slug: post-e1ad1d emoji: custom_emoji_url: http://welch.circledev.net:31337/assets/emoji-picker-v3/shapes/circle/shape-circle-blue-65c4a6035acf9fa79fa588f789d2f8033ed911cc1f7c90ffbd8e7525e9050611.png custom_emoji_dark_url: http://welch.circledev.net:31337/assets/emoji-picker-v3/shapes/circle/shape-circle-blue-65c4a6035acf9fa79fa588f789d2f8033ed911cc1f7c90ffbd8e7525e9050611.png highlighted_name: "Test Members Space" sgid: SGID success_no_query: value: page: 1 has_next_page: false count: 9 page_count: 9 per_page: 15 records: - id: 109 name: John Harvey email: john.harvey@example.com headline: central manager bio: nam libero facilis. quae facilis eos. earum expedita et. public_uid: c3e3e936 location: '' user_id: '165' highlighted_name: John Harvey sgid: BAh7CEkiCGdpZAY6BkVUSSI3Z2lkOi8vanVtcHN0YXJ0LWFwcC9Db21tdW5pdHlNZW1iZXIvMTA5P2V4cGlyZXNfaW4GOwBUSSIMcHVycG9zZQY7AFRJIhRyaWNoX3RleHRfZmllbGQGOwBUSSIPZXhwaXJlc19hdAY7AFQw--9812ce14d1f34316b7182072ee72b7613b8b9aa1 type: community_member avatar_url: - id: 110 name: ever 2 email: ever2@example.com headline: lead accounting associate bio: omnis architecto non. quo ipsa sapiente. ut aut consequatur. public_uid: dcde38b7 location: '' user_id: '167' highlighted_name: ever 2 sgid: BAh7CEkiCGdpZAY6BkVUSSI3Z2lkOi8vanVtcHN0YXJ0LWFwcC9Db21tdW5pdHlNZW1iZXIvMTEwP2V4cGlyZXNfaW4GOwBUSSIMcHVycG9zZQY7AFRJIhRyaWNoX3RleHRfZmllbGQGOwBUSSIPZXhwaXJlc19hdAY7AFQw--12b44d75c0a977559e93c16ba0bd8c49f70fbe86 type: community_member avatar_url: - type: space id: 379 name: post slug: post emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: post sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zNzk_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--cb9dbb6cde5e9171a1904d47de74bc9480558279 - type: space id: 380 name: post event slug: post-event emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: post event sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODA_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--68444d3988f98129348bc8e07b231af88985193f - type: space id: 381 name: test-draft-course slug: post-8dc326 emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: test-draft-course sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODE_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--125471b96ec883f90970615e9ded713889080621 - type: space id: 382 name: Test Members Space slug: post-0ee6a7 emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: Test Members Space sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODI_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--a3b6b3f1d2ded4ae84bc6fa318ff1f3aaccf7a01 - type: space id: 383 name: test-course slug: post-c189d0 emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: test-course sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODM_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--987570aff991b31915629858ae169686a76edb69 - type: space id: 384 name: post chat space slug: enim emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: post chat space sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODQ_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--bf078932f0cf96c996b653aefff5ee9916b56212 - type: space id: 385 name: another space slug: another-space emoji: custom_emoji_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png custom_emoji_dark_url: http://wehner.circledev.net:31337/images/emoji-picker-v3/shapes/circle/shape-circle-blue.png highlighted_name: another space sgid: BAh7CEkiCGdpZAY6BkVUSSItZ2lkOi8vanVtcHN0YXJ0LWFwcC9TcGFjZS8zODU_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiFHJpY2hfdGV4dF9maWVsZAY7AFRJIg9leHBpcmVzX2F0BjsAVDA=--14b4bc46f6a52f31d4da821239ad6f0f091ceba8 schema: "$ref": "#/components/schemas/advanced_search_results" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/chat_preferences": put: summary: Update Chat Preferences tags: - Chat Preferences security: - token_auth: [] host: [] parameters: [] responses: '200': description: Chat Preferences updated successfully content: application/json: examples: chat_preferences_updated: value: id: 1 messaging_enabled: true group_messaging_enabled: true voice_messages_enabled: true member_to_member_messaging_enabled: true schema: "$ref": "#/components/schemas/chat_preferences" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Something went wrong while updating chat preferences. error_details: message: Record invalid schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: messaging_enabled: type: boolean example: true description: Enable or disable messaging for the community group_messaging_enabled: type: boolean example: true description: Enable or disable group messaging for the community voice_messages_enabled: type: boolean example: true description: Enable or disable voice messages for the community member_to_member_messaging_enabled: type: boolean example: true description: Enable or disable member-to-member messaging for the community examples: Update Community Chat Preferences: summary: Updates community chat preferences value: messaging_enabled: true group_messaging_enabled: true voice_messages_enabled: true member_to_member_messaging_enabled: true "/api/admin/v2/chat_room_message_imports": post: summary: Import Chat Room Message tags: - Chat Room Message Imports description: | Imports a historical message into a chat space on behalf of the specified user. The user is automatically added as a space member and chat room participant if not already present. The sent_at field is required and must be a past timestamp — this endpoint is intended exclusively for importing historical messages. Notifications are never sent for imported messages. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Chat room message imported successfully content: application/json: schema: "$ref": "#/components/schemas/admin_v2_chat_room_message" '422': description: Invalid params content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object required: - chat_room_uuid - user_email - rich_text_body - sent_at properties: chat_room_uuid: type: string description: UUID of the target chat room (from a chat space) example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_email: type: string description: Email of the community member who is the message sender example: member@example.com rich_text_body: type: object description: 'TipTap rich text body, wrapped as `{ body: }`' example: body: type: doc content: - type: paragraph content: - type: text text: Hello! sent_at: type: string format: date-time description: Timestamp for the imported message. Required and must not be in the future. example: '2024-01-01T12:00:00Z' parent_message_id: type: integer nullable: true description: ID of the parent message when creating a thread reply example: required: true description: Chat room message import params "/api/admin/v2/comments": post: summary: Create Comment tags: - Comments description: Create Comment security: - token_auth: [] host: [] parameters: [] responses: '201': description: Create Comment content: application/json: examples: success: value: id: 2 parent_comment_id: 1 flagged_for_approval_at: created_at: '2024-09-03T08:59:50.111Z' body: id: 3 name: body body: First comment record_type: Comment record_id: 2 created_at: '2024-09-03T08:59:50.000Z' updated_at: '2024-09-03T08:59:50.000Z' user: id: 2 name: Dulce Hauck avatar_url: https://secure.gravatar.com/avatar/e8e59111d32b648a5d74689a04ecda4c?default=404&secure=true&size=300 email: francoise.schmitt@harber-huels.org post: id: 1 name: First post slug: lind space: id: 1 slug: comment name: comment url: http://ratke.circledev.net:31337/c/comment/lind#comment_wrapper_2 community_id: 1 likes_count: 0 user_posts_count: 1 user_likes_count: 0 user_comments_count: 2 schema: "$ref": "#/components/schemas/comment" '404': description: Not Found content: application/json: examples: post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' parent_comment_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: comment' parent_comment_not_top_level: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: comment' schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: body: type: string post_id: type: integer parent_comment_id: type: integer created_at: type: string format: date_time updated_at: type: string format: date_time skip_notifications: type: boolean required: - body - post_id get: summary: List Comments tags: - Comments description: List Comments security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: space_id in: query schema: type: integer required: false description: Space ID - name: post_id in: query schema: type: integer required: false description: Post ID - name: search_text in: query schema: type: string required: false description: Search text responses: '200': description: List Comments content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 2 records: - id: 2 parent_comment_id: 12 flagged_for_approval_at: '2024-09-04T06:55:07.879Z' created_at: '2024-09-02T06:55:07.879Z' body: id: 4 name: body body: Second comment record_type: Comment record_id: 2 created_at: '2024-09-02T06:55:07.000Z' updated_at: '2024-09-02T06:55:07.000Z' user: id: 2 name: Alfonzo Treutel avatar_url: https://secure.gravatar.com/avatar/0b0d8721ad4cbc76065f8f7992650ea7?default=404&secure=true&size=300 email: tomika@upton-lemke.io post: id: 2 name: First post slug: leuschke space: id: 1 slug: comment name: comment url: http://mccullough-fay.circledev.net:31337/c/comment/leuschke#comment_wrapper_2 community_id: 1 likes_count: 0 user_posts_count: 2 user_likes_count: 0 user_comments_count: 2 - id: 1 parent_comment_id: flagged_for_approval_at: created_at: '2024-09-02T06:55:07.864Z' body: id: 3 name: body body: First comment record_type: Comment record_id: 1 created_at: '2024-09-02T06:55:07.000Z' updated_at: '2024-09-02T06:55:07.000Z' user: id: 2 name: Alfonzo Treutel avatar_url: https://secure.gravatar.com/avatar/0b0d8721ad4cbc76065f8f7992650ea7?default=404&secure=true&size=300 email: tomika@upton-lemke.io post: id: 2 name: First post slug: leuschke space: id: 1 slug: comment name: comment url: http://mccullough-fay.circledev.net:31337/c/comment/leuschke#comment_wrapper_1 community_id: 1 likes_count: 0 user_posts_count: 2 user_likes_count: 0 user_comments_count: 2 replies_count: 1 schema: "$ref": "#/components/schemas/comments_list" "/api/admin/v2/comments/{id}": delete: summary: Destroy Comment tags: - Comments description: Destroy Comment security: - token_auth: [] host: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: Destroy Comment content: application/json: examples: success: value: message: Comment deleted. schema: type: object properties: message: type: string '404': description: Not Found content: application/json: examples: comment_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: comment' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Oops! We were unable to delete this comment. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show Comment tags: - Comments description: Show Comment security: - token_auth: [] host: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: Show Comment content: application/json: examples: success: value: id: 1 parent_comment_id: flagged_for_approval_at: created_at: '2024-09-09T16:10:35.597Z' body: id: 2 name: body body: First comment record_type: Comment record_id: 1 created_at: '2024-09-09T16:10:35.000Z' updated_at: '2024-09-09T16:10:35.000Z' user: id: 2 name: Norman Cronin JD avatar_url: https://secure.gravatar.com/avatar/9e6c9fdd020092f3b08403df25b52e1a?default=404&secure=true&size=300 email: lois_herzog@boyle.io post: id: 1 name: First post slug: williamson space: id: 1 slug: distinctio name: maxime url: http://corwin.circledev.net:31337/c/distinctio/williamson#comment_wrapper_1 community_id: 1 likes_count: 0 user_posts_count: 1 user_likes_count: 0 user_comments_count: 2 replies_count: 1 replies: - id: 2 parent_comment_id: 1 flagged_for_approval_at: created_at: '2024-09-09T16:10:35.612Z' body: id: 3 name: body body: Second comment record_type: Comment record_id: 2 created_at: '2024-09-09T16:10:35.000Z' updated_at: '2024-09-09T16:10:35.000Z' user: id: 2 name: Norman Cronin JD avatar_url: https://secure.gravatar.com/avatar/9e6c9fdd020092f3b08403df25b52e1a?default=404&secure=true&size=300 email: lois_herzog@boyle.io post: id: 1 name: First post slug: williamson space: id: 1 slug: distinctio name: maxime url: http://corwin.circledev.net:31337/c/distinctio/williamson#comment_wrapper_2 community_id: 1 likes_count: 0 user_posts_count: 1 user_likes_count: 0 user_comments_count: 2 schema: "$ref": "#/components/schemas/comment" '404': description: Not Found content: application/json: examples: comment_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: comment' schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community": get: summary: Get community details tags: - Communities security: - token_auth: [] host: [] responses: '200': description: Community details content: application/json: examples: community_details: value: id: 1 created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' name: My Community locale: en slug: my-community allow_signups_to_public_community: true community_switcher_enabled: true custom_cta_for_share_links: true locked_post_cta_heading: Become a member locked_post_cta_body: Please join us to continue reading this post. locked_post_cta_button_text: Sign up locked_post_cta_button_url: https://www.community.com/signup custom_tos_enabled: true custom_tos: https://www.community.com/tos default_existing_member_space_id: 1 default_logged_out_space_id: 1 default_new_member_space_id: 1 default_search_sorting: latest is_private: true private_signup_link_label: Not a member? private_signup_link_url: https://www.community.com/signup reply_to_email: support@community.com white_label: true weekly_digest_enabled: true digest_subject: Weekly Digest digest_intro: Here's what's happening this week. digests_hide_posts: false digests_hide_comments: false digests_hide_stats: false digests_hide_members: false prefs: has_posts: true has_spaces: true has_invited_member: true brand_color: light: "#000000" dark: "#000000" brand_text_color: light: "#FFFFFF" dark: "#FFFFFF" community_setting: id: 1 created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' ios_app_enabled: true show_ios_app_banner: true deactivate_account_enabled: true allow_profile_search_indexing: true truncate_post_body_in_email_notifications: true hide_emails_on_member_profiles: true allow_members_to_go_live: true enforce_otp_for_signup: true community_activity_notifications_email_enabled: true community_activity_notifications_in_app_enabled: true desktop_app_community_visibility_enabled: true allow_moderator_csv_download: true member_media_uploads_enabled: true default_space_ids: - 1 - 2 default_logged_out_redirect_type: Space default_logged_out_redirect_id: 1 schema: "$ref": "#/components/schemas/community" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update Community tags: - Communities security: - token_auth: [] host: [] parameters: [] responses: '200': description: Community updated successfully content: application/json: examples: community_updated: value: id: 1 created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' name: My Community locale: en slug: my-community allow_signups_to_public_community: true community_switcher_enabled: true custom_cta_for_share_links: true locked_post_cta_heading: Become a member locked_post_cta_body: Please join us to continue reading this post. locked_post_cta_button_text: Sign up locked_post_cta_button_url: https://www.community.com/signup custom_tos_enabled: true custom_tos: https://www.community.com/tos default_existing_member_space_id: 1 default_logged_out_space_id: 1 default_new_member_space_id: 1 default_search_sorting: latest is_private: true private_signup_link_label: Not a member? private_signup_link_url: https://www.community.com/signup reply_to_email: support@community.com white_label: true weekly_digest_enabled: true digest_subject: Weekly Digest digest_intro: Here's what's happening this week. digests_hide_posts: false digests_hide_comments: false digests_hide_stats: false digests_hide_members: false prefs: has_posts: true has_spaces: true has_invited_member: true brand_color: light: "#123123" dark: "#555555" brand_text_color: light: "#987654" dark: "#333333" community_setting: id: 1 created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' ios_app_enabled: true show_ios_app_banner: true deactivate_account_enabled: true allow_profile_search_indexing: true truncate_post_body_in_email_notifications: true hide_emails_on_member_profiles: true allow_members_to_go_live: true enforce_otp_for_signup: true community_activity_notifications_email_enabled: true community_activity_notifications_in_app_enabled: true desktop_app_community_visibility_enabled: true allow_moderator_csv_download: true member_media_uploads_enabled: true default_space_ids: - 1 - 2 default_logged_out_redirect_type: Space default_logged_out_redirect_id: 1 schema: "$ref": "#/components/schemas/community" '422': description: Invalid community params content: application/json: examples: invalid_community_params: value: success: false message: There was an error saving your changes. error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: community: type: object properties: name: type: string locale: type: string enum: - en - pt - pt-PT - es - fr - it slug: type: string allow_signups_to_public_community: type: boolean community_switcher_enabled: type: boolean custom_cta_for_share_links: type: boolean locked_post_cta_heading: type: string locked_post_cta_body: type: string locked_post_cta_button_text: type: string locked_post_cta_button_url: type: string custom_tos_enabled: type: boolean custom_tos: type: string default_search_sorting: type: string enum: - relevance - latest - oldest - alphabetical is_private: type: boolean private_signup_link_label: type: string private_signup_link_url: type: string logo: type: string description: signed_id of the logo returned from the direct upload endpoint reply_to_email: type: string white_label: type: boolean default_existing_member_space_id: type: integer default_logged_out_space_id: type: integer default_new_member_space_id: type: integer weekly_digest_enabled: type: boolean digest_subject: type: string digest_intro: type: string digests_hide_posts: type: boolean digests_hide_comments: type: boolean digests_hide_stats: type: boolean digests_hide_members: type: boolean prefs: type: object properties: brand_color: type: object properties: dark: type: string light: type: string brand_text_color: type: object properties: dark: type: string light: type: string community_setting: type: object properties: ios_app_enabled: type: boolean show_ios_app_banner: type: boolean deactivate_account_enabled: type: boolean allow_profile_search_indexing: type: boolean truncate_post_body_in_email_notifications: type: boolean hide_emails_on_member_profiles: type: boolean allow_members_to_go_live: type: boolean enforce_otp_for_signup: type: boolean community_activity_notifications_email_enabled: type: boolean community_activity_notifications_in_app_enabled: type: boolean desktop_app_community_visibility_enabled: type: boolean default_logged_out_redirect_type: type: string enum: - Space - Site::Page - feed default_logged_out_redirect_id: type: integer allow_moderator_csv_download: type: boolean member_media_uploads_enabled: type: boolean default_space_ids: type: array items: type: integer examples: Update Community: summary: Updates a community value: community: name: My Community locale: en slug: my-community allow_signups_to_public_community: true community_switcher_enabled: true custom_cta_for_share_links: true locked_post_cta_heading: Become a member locked_post_cta_body: Please join us to continue reading this post. locked_post_cta_button_text: Sign up locked_post_cta_button_url: https://www.community.com/signup custom_tos_enabled: true custom_tos: https://www.community.com/tos default_search_sorting: latest is_private: true private_signup_link_label: Not a member? private_signup_link_url: https://www.community.com/signup reply_to_email: support@community.com white_label: true default_existing_member_space_id: 1 default_logged_out_space_id: 1 default_new_member_space_id: 1 weekly_digest_enabled: true digest_subject: Weekly Digest digest_intro: Here's what's happening this week. digests_hide_posts: false digests_hide_comments: false digests_hide_stats: false digests_hide_members: false prefs: brand_color: light: "#123123" dark: "#555555" brand_text_color: light: "#FFFFFF" dark: "#FFFFFF" community_setting: ios_app_enabled: true show_ios_app_banner: true deactivate_account_enabled: true allow_profile_search_indexing: true truncate_post_body_in_email_notifications: true hide_emails_on_member_profiles: true allow_members_to_go_live: true enforce_otp_for_signup: true community_activity_notifications_email_enabled: true community_activity_notifications_in_app_enabled: true desktop_app_community_visibility_enabled: true allow_moderator_csv_download: true member_media_uploads_enabled: true default_space_ids: - 1 - 2 default_logged_out_redirect_type: Space default_logged_out_redirect_id: 1 "/api/admin/v2/community_leads": post: summary: Create a non-member contact (lead). To add a full community member instead, use create_community_member. tags: - Community Leads description: | Creates a non-member contact (also called a lead) in the community from an email address. A non-member contact appears in the community's audience and can be reached by email marketing, but has no login and no access to the community. To add someone as a full member with access, use the create_community_member endpoint instead. The email must not already belong to a member or to an existing non-member contact in this community - both cases return a 422. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Non-member contact created successfully content: application/json: schema: "$ref": "#/components/schemas/community_lead" '422': description: Non-member contact could not be created content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: email: type: string example: jo@example.com description: Email address of the contact. Must not already belong to a member or an existing non-member contact in this community. name: type: string example: Jo Bloggs description: Display name of the contact. member_tag_ids: type: array items: type: integer example: - 1 description: IDs of existing member tags to apply to the new contact. Use the member_tags endpoints to look these up. required: - email required: true description: Non-member contact attributes "/api/admin/v2/community_leads/{id}": delete: summary: Delete a non-member contact (lead). To delete a full community member instead, use destroy_community_member. tags: - Community Leads description: | Deletes a non-member contact (also called a lead) from the community's audience. This is a soft delete: the contact is removed from the audience and no longer appears in listings, but is retained and is restored automatically if the same contact is re-added. It only removes non-member contacts: pass the numeric id of a contact returned by the community_leads or contacts endpoints. An id that belongs to a full community member (or to a contact in another community) returns a 404 and deletes nothing - to remove a member with community access, use destroy_community_member instead. security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: Numeric id of the non-member contact to delete schema: type: integer responses: '200': description: Non-member contact deleted successfully content: application/json: examples: success: value: message: Non-member contact deleted successfully. schema: type: object properties: message: type: string '404': description: Non-member contact not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_member_charges/export": post: summary: Export Community Member Charges tags: - Community Member Charges description: Creates a background task that exports community member charges matching the given filters to a CSV, emailed to the requesting admin security: - token_auth: [] host: [] parameters: - name: member_email in: query required: false description: Filter by community member email (partial match) schema: type: string - name: community_member_id in: query required: false description: Filter by community member ID schema: type: integer - name: community_member_public_uid in: query required: false description: Filter by community member public UID schema: type: string - name: billing_info_business_name in: query required: false description: Filter by billing info business name (partial match) schema: type: string - name: paywall_price_type in: query required: false description: Comma-separated list of paywall price types (e.g. subscription,onetime,installments) schema: type: string - name: processor_id in: query required: false description: Filter by exact processor (charge) ID schema: type: string - name: subscription_processor_id in: query required: false description: Filter by exact subscription processor ID schema: type: string - name: invoice_processor_id in: query required: false description: Filter by exact invoice processor ID schema: type: string - name: currency in: query required: false description: Comma-separated list of currency codes schema: type: string - name: paywall_ids in: query required: false description: Comma-separated list of paywall IDs schema: type: string - name: status in: query required: false description: Comma-separated list of statuses (e.g. paid,refunded,partial_refunded) schema: type: string - name: platform in: query required: false description: Comma-separated list of platforms (web, app_store, play_store) schema: type: string - name: amount_gte in: query required: false description: Minimum charge amount (in currency subunits) schema: type: integer - name: amount_lte in: query required: false description: Maximum charge amount (in currency subunits) schema: type: integer - name: created_at_gte in: query required: false description: Only include charges created on/after this date (ISO8601) schema: type: string - name: created_at_lte in: query required: false description: Only include charges created on/before this date (ISO8601) schema: type: string - name: fields in: query required: false description: Comma-separated list of CSV columns to include schema: type: string - name: timezone in: query required: false description: Timezone used to render dates in the CSV (defaults to Etc/UTC) schema: type: string responses: '201': description: Export task created content: application/json: schema: "$ref": "#/components/schemas/community_member_charge_export" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: 'Invalid field: ''not_a_real_field''. Valid fields are: processor_id, invoice_processor_id, amount, amount_refunded, refund_reason, display_status_raw, subscription_processor_id, created_at, paywall_id, paywall_name, paywall_price_id, paywall_price_amount, paywall_price_type, paywall_price_interval, currency, coupon_code, coupon_terms, community_member_public_uid, community_member_processor_id, community_member_name, community_member_email' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_member_charges": get: summary: Community Member Charges List tags: - Community Member Charges description: Searches community member charges for a community security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Records per page (max 100) schema: type: integer - name: query in: query required: false description: Free-text search schema: type: string - name: member_email in: query required: false description: Filter by community member email (partial match) schema: type: string - name: community_member_id in: query required: false description: Filter by community member ID schema: type: integer - name: community_member_public_uid in: query required: false description: Filter by community member public UID schema: type: string - name: billing_info_business_name in: query required: false description: Filter by billing info business name (partial match) schema: type: string - name: paywall_price_type in: query required: false description: Comma-separated list of paywall price types (e.g. subscription,onetime,installments) schema: type: string - name: processor_id in: query required: false description: Filter by exact processor (charge) ID schema: type: string - name: subscription_processor_id in: query required: false description: Filter by exact subscription processor ID schema: type: string - name: invoice_processor_id in: query required: false description: Filter by exact invoice processor ID schema: type: string - name: currency in: query required: false description: Comma-separated list of currency codes schema: type: string - name: paywall_ids in: query required: false description: Comma-separated list of paywall IDs schema: type: string - name: status in: query required: false description: Comma-separated list of statuses (e.g. paid,refunded,partial_refunded) schema: type: string - name: platform in: query required: false description: Comma-separated list of platforms (web, app_store, play_store) schema: type: string - name: amount_gte in: query required: false description: Minimum charge amount (in currency subunits) schema: type: integer - name: amount_lte in: query required: false description: Maximum charge amount (in currency subunits) schema: type: integer - name: created_at_gte in: query required: false description: Only include charges created on/after this date (ISO8601) schema: type: string - name: created_at_lte in: query required: false description: Only include charges created on/before this date (ISO8601) schema: type: string - name: sort in: query schema: type: string enum: - amount - charge_term - community_member_name - paywall_name - platform - display_status - created_at required: false description: Sort field. Defaults to created_at. - name: direction in: query schema: type: string enum: - asc - desc required: false description: Sort direction. Defaults to desc. responses: '200': description: Retrieves a list of community member charges for a community content: application/json: schema: "$ref": "#/components/schemas/community_member_charges_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_member_charges/{id}/refund": post: summary: Refund Community Member Charge tags: - Community Member Charges description: Refunds a community member charge, in full or in part security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Community Member Charge ID responses: '200': description: Charge refunded content: application/json: schema: "$ref": "#/components/schemas/community_member_charge" '422': description: Refund not allowed content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: amount: type: integer description: Amount to refund (in currency subunits). Omit for a full refund. reason_details: type: string description: Refund reason. Required, 255 characters max. maxLength: 255 required: - reason_details "/api/admin/v2/community_member_spaces": get: summary: List Community Member Spaces tags: - Community Member Spaces description: List Community Member Spaces security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: community_member_id in: query required: false schema: type: integer - name: user_email in: query required: false schema: type: string responses: '200': description: Community Member Spaces content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 1 name: aut slug: sit cover_image_url: https://community.example.com/storage/cover_images/1/picsum.jpeg cover_image_visible: true cover_image_display_style: wide community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://community.example.com post_ids: - 1 url: https://community.example.com/c/sit custom_emoji_url: https://community.example.com/emoji/1 custom_emoji_dark_url: https://community.example.com/emoji/2 emoji: "#" space_group: id: 2 name: Name 1 topics: - 32 - 21 - 12 event_auto_rsvp_enabled: false default_in_app_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never default_mention_in_app_notification_setting: never default_mention_mobile_notification_setting: never - id: 2 name: maxime slug: ad community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://community.example.com post_ids: - 14 - 52 url: https://community.example.com/c/ad custom_emoji_url: https://community.example.com/emoji/1 custom_emoji_dark_url: https://community.example.com/emoji/2 emoji: "#" space_group: id: 3 name: Name 2 topics: - 1 - 2 - 3 event_auto_rsvp_enabled: false default_in_app_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never default_mention_in_app_notification_setting: never default_mention_mobile_notification_setting: never schema: "$ref": "#/components/schemas/spaces" "/api/admin/v2/community_member_subscriptions/{id}/cancel": post: summary: Cancel Community Member Subscription tags: - Community Member Subscriptions description: Cancels a community member subscription, immediately or at the end of the current billing period security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Community Member Subscription ID responses: '200': description: Subscription canceled content: application/json: schema: "$ref": "#/components/schemas/community_member_subscription" '422': description: Cancellation not allowed content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: ends_at: type: string description: 'Cancellation timing: ''now'' or ''at_period_end''.' refund_type: type: string description: 'Optional refund type when canceling immediately: ''prorated'' or ''full''.' required: - ends_at "/api/admin/v2/community_member_subscriptions/export": post: summary: Export Community Member Subscriptions tags: - Community Member Subscriptions description: Creates a background task that exports community member subscriptions matching the given filters to a CSV, emailed to the requesting admin security: - token_auth: [] host: [] parameters: - name: member_email in: query required: false description: Filter by community member email (partial match) schema: type: string - name: community_member_id in: query required: false description: Filter by community member ID schema: type: integer - name: community_member_public_uid in: query required: false description: Filter by community member public UID schema: type: string - name: billing_info_business_name in: query required: false description: Filter by billing info business name (partial match) schema: type: string - name: paywall_price_type in: query required: false description: Comma-separated list of paywall price types (e.g. subscription,onetime,installments) schema: type: string - name: billing_interval in: query required: false description: Filter by paywall price billing interval (e.g. month, year) schema: type: string - name: subscription_processor_id in: query required: false description: Filter by exact subscription processor ID schema: type: string - name: currency in: query required: false description: Comma-separated list of currency codes schema: type: string - name: paywall_ids in: query required: false description: Comma-separated list of paywall IDs schema: type: string - name: status in: query required: false description: Comma-separated list of statuses (e.g. active,trial,canceled) schema: type: string - name: scheduled_to_cancel in: query required: false description: Filter by whether the subscription is scheduled to cancel schema: type: boolean - name: platform in: query required: false description: Comma-separated list of platforms (web, app_store, play_store) schema: type: string - name: total_amount_paid_gte in: query required: false description: Minimum total amount paid (in currency subunits) schema: type: integer - name: total_amount_paid_lte in: query required: false description: Maximum total amount paid (in currency subunits) schema: type: integer - name: start_date_gte in: query required: false description: Only include subscriptions started on/after this date (ISO8601) schema: type: string - name: start_date_lte in: query required: false description: Only include subscriptions started on/before this date (ISO8601) schema: type: string - name: fields in: query required: false description: Comma-separated list of CSV columns to include schema: type: string - name: timezone in: query required: false description: Timezone used to render dates in the CSV (defaults to Etc/UTC) schema: type: string responses: '201': description: Export task created content: application/json: schema: "$ref": "#/components/schemas/community_member_subscription_export" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: 'Invalid field: ''not_a_real_field''. Valid fields are: processor_id, status, charges_quantity, total_amount_paid, start_date, renews_on, trial_ends_at, ends_at, cancellation_type, paywall_id, paywall_name, paywall_price_id, paywall_price_amount, paywall_price_type, paywall_price_interval, currency, coupon_code, coupon_terms, community_member_public_uid, community_member_processor_id, community_member_name, community_member_email' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_member_subscriptions": get: summary: Community Member Subscriptions List tags: - Community Member Subscriptions description: Searches community member subscriptions for a community security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Records per page (max 100) schema: type: integer - name: query in: query required: false description: Free-text search schema: type: string - name: member_email in: query required: false description: Filter by community member email (partial match) schema: type: string - name: community_member_id in: query required: false description: Filter by community member ID schema: type: integer - name: community_member_public_uid in: query required: false description: Filter by community member public UID schema: type: string - name: billing_info_business_name in: query required: false description: Filter by billing info business name (partial match) schema: type: string - name: paywall_price_type in: query required: false description: Comma-separated list of paywall price types (e.g. subscription,onetime,installments) schema: type: string - name: billing_interval in: query required: false description: Filter by paywall price billing interval (e.g. month, year) schema: type: string - name: subscription_processor_id in: query required: false description: Filter by exact subscription processor ID schema: type: string - name: currency in: query required: false description: Comma-separated list of currency codes schema: type: string - name: paywall_ids in: query required: false description: Comma-separated list of paywall IDs schema: type: string - name: status in: query required: false description: Comma-separated list of statuses (e.g. active,trial,canceled) schema: type: string - name: scheduled_to_cancel in: query required: false description: Filter by whether the subscription is scheduled to cancel schema: type: boolean - name: platform in: query required: false description: Comma-separated list of platforms (web, app_store, play_store) schema: type: string - name: total_amount_paid_gte in: query required: false description: Minimum total amount paid (in currency subunits) schema: type: integer - name: total_amount_paid_lte in: query required: false description: Maximum total amount paid (in currency subunits) schema: type: integer - name: start_date_gte in: query required: false description: Only include subscriptions started on/after this date (ISO8601) schema: type: string - name: start_date_lte in: query required: false description: Only include subscriptions started on/before this date (ISO8601) schema: type: string - name: sort in: query required: false description: 'Sort field (one of: charges_quantity, subscription_term, renews_on, community_member_name, paywall_name, platform, status, created_at). Defaults to created_at' schema: type: string - name: direction in: query required: false description: Sort direction (asc or desc). Defaults to desc schema: type: string responses: '200': description: Retrieves a list of community member subscriptions for a community content: application/json: schema: "$ref": "#/components/schemas/community_member_subscriptions_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_member_subscriptions/{id}/resume": post: summary: Resume Community Member Subscription tags: - Community Member Subscriptions description: Resumes a community member subscription that is scheduled to cancel at the end of the current billing period security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Community Member Subscription ID responses: '200': description: Subscription resumed content: application/json: schema: "$ref": "#/components/schemas/community_member_subscription" '422': description: Resume not allowed content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_members/{community_member_id}/access_groups": get: summary: List Community Member's Access Groups tags: - Community Member Access Groups description: List Access Groups a Community Member belongs to security: - token_auth: [] host: [] parameters: - name: community_member_id in: path schema: type: integer required: true description: Community Member ID - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page responses: '200': description: List Community Member's Access Groups content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 name: Access Group 2 status: active community_id: 1 created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' - id: 1 name: Access Group 1 status: active community_id: 1 created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' schema: "$ref": "#/components/schemas/access_groups" '404': description: Not Found content: application/json: examples: community_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_members/{id}/ban_member": put: summary: Ban Community Member tags: - Community Members description: Ban a community member and delete all associated records including posts, comments, likes, and chat messages. This action also bans the member's IP addresses and email. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Community member ID to ban responses: '200': description: Member successfully banned content: application/json: examples: success: value: message: Member banned successfully. schema: type: object properties: message: type: string required: - message '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. error_details: cannot_ban_owner: value: success: false message: You cannot perform this action. error_details: schema: "$ref": "#/components/schemas/error" '404': description: Not Found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' cannot_ban_deleted_member: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' cannot_ban_different_community_member: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' invalid_member_id: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '400': description: Bad Request - Service failure content: application/json: examples: service_failure: value: success: false message: Failed to ban member error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_members": post: summary: Create/Invite a community member tags: - Community Members description: Creates a community member with the given email. Avatar requires using the direct_upload flow first (upload to presigned URL, then use signed_id and url). security: - token_auth: [] host: [] parameters: [] responses: '201': description: Community member created content: application/json: examples: success: value: message: 'This user has been invited to the community and has been added to following space groups: Name 1 spaces: molestiae.' community_member: first_name: Baz last_name: Tazo headline: Anotha one created_at: '2024-09-04T16:18:10.634Z' updated_at: '2024-09-04T16:18:10.641Z' community_id: 1 last_seen_at: profile_confirmed_at: member_since: member_since_overridden: false id: 2 profile_url: http://hammes.circledev.net:31337/u/7b8a7a69 public_uid: 7b8a7a69 profile_fields: - id: 1 label: Label field_type: text key: profile_field_key_1 placeholder: description: required: false platform_field: true created_at: '2024-09-04T16:18:10.285Z' updated_at: '2024-09-04T16:18:10.285Z' community_member_profile_field: id: 2 text: Bar textarea: created_at: '2024-09-04T16:18:10.654Z' updated_at: '2024-09-04T16:18:10.657Z' display_value: Bar community_member_choices: [] number_options: choices: [] pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-09-04T16:18:10.287Z' updated_at: '2024-09-04T16:18:10.287Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-09-04T16:18:10.288Z' updated_at: '2024-09-04T16:18:10.288Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-09-04T16:18:10.286Z' updated_at: '2024-09-04T16:18:10.286Z' flattened_profile_fields: profile_field_key_1: Bar avatar_url: user_id: 3 name: Baz email: craig_koss@shields.info accepted_invitation: '' active: false sso_provider_user_id: member_tags: - name: perferendis id: 1 posts_count: 0 comments_count: 0 schema: "$ref": "#/components/schemas/community_member_created" '422': description: Unprocessable entity content: application/json: examples: invalid_password: value: success: false message: 'Validation failed: Password Please make sure your password includes at least 6 characters, 1 uppercase letter, 1 number, and 1 symbol (!, $, @, *, etc).' error_details: {} blocked_email_domain: value: success: false message: Invalid email address. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: new_member_not_allowed: value: success: false errors: Your community has reached the maximum limit of members supported by your plan. api_member_limit_exceeded: value: success: false errors: Daily member limit exceeded. forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: email: type: string password: type: string skip_invitation: type: boolean avatar: type: string description: signed_id of the avatar returned from the direct upload endpoint name: type: string headline: type: string is_flagged: type: boolean preferences: type: object properties: messaging_enabled_by_admin: type: boolean space_ids: type: array items: type: integer space_group_ids: type: array items: type: integer member_tag_ids: type: array items: type: integer community_member_profile_fields: type: object additionalProperties: type: string description: Profile fields key value pairs required: - email required: true description: Community member params get: summary: List Community Members tags: - Community Members security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Number of records per page schema: type: integer - name: status in: query schema: type: string enum: - active - all - inactive required: false description: |- Filter by member status. Defaults to `active`. - `active`: members who have completed profile setup (`profile_confirmed_at` is set). - `inactive`: invited members who have not yet completed profile setup. This is the same set shown in the admin UI under Audience → Manage → Invited. - `all`: both of the above. - name: member_tag_ids in: query schema: type: array items: type: integer style: form explode: false required: false description: Filter by Member Tag IDs (OR logic, comma-separated) responses: '200': description: Community Members found content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 2 records: - first_name: Gov. last_name: Loriann Barton headline: Sales Orchestrator created_at: '2024-09-03T16:20:19.814Z' updated_at: '2024-09-03T16:20:19.826Z' community_id: 1 last_seen_at: profile_confirmed_at: '2024-09-03T16:20:19.000Z' member_since: '2024-09-03T16:20:19.000Z' member_since_overridden: false id: 2 profile_url: http://reynolds.circledev.net:31337/u/352c3aff public_uid: 352c3aff profile_fields: - id: 1 label: Label field_type: select key: profile_field_key_1 placeholder: description: required: false platform_field: false created_at: '2024-09-03T16:20:19.864Z' updated_at: '2024-09-03T16:20:19.864Z' community_member_profile_field: number_options: choices: - id: 1 value: Choice 1 pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-09-03T16:20:19.868Z' updated_at: '2024-09-03T16:20:19.868Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-09-03T16:20:19.869Z' updated_at: '2024-09-03T16:20:19.869Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-09-03T16:20:19.866Z' updated_at: '2024-09-03T16:20:19.866Z' flattened_profile_fields: profile_field_key_1: avatar_url: user_id: 3 name: Gov. Loriann Barton email: raul@nitzsche.org accepted_invitation: 2024-09-03 16:20:19 UTC active: true sso_provider_user_id: member_tags: [] posts_count: 0 comments_count: 0 gamification_stats: community_member_id: 2 total_points: 0 current_level: 1 current_level_name: Level 1 points_to_next_level: 50 level_progress: 50 activity_score: activity_score: '23.0' presence: '3.0' participation: '10.0' contribution: '24.0' connection: '24.0' - first_name: Alfred last_name: Rice headline: Government Executive created_at: '2024-09-03T16:20:19.605Z' updated_at: '2024-09-03T16:20:19.779Z' community_id: 1 last_seen_at: profile_confirmed_at: '2024-09-03T16:20:19.000Z' member_since: '2024-09-03T16:20:19.000Z' member_since_overridden: false id: 1 profile_url: http://reynolds.circledev.net:31337/u/a5f6b09a public_uid: a5f6b09a profile_fields: - id: 1 label: Label field_type: select key: profile_field_key_1 placeholder: description: required: false platform_field: false created_at: '2024-09-03T16:20:19.864Z' updated_at: '2024-09-03T16:20:19.864Z' community_member_profile_field: id: 1 text: textarea: created_at: '2024-09-03T16:20:19.885Z' updated_at: '2024-09-03T16:20:19.885Z' display_value: - Choice 1 community_member_choices: - id: 1 profile_field_choice: id: 1 value: Choice 1 number_options: choices: - id: 1 value: Choice 1 pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-09-03T16:20:19.868Z' updated_at: '2024-09-03T16:20:19.868Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-09-03T16:20:19.869Z' updated_at: '2024-09-03T16:20:19.869Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-09-03T16:20:19.866Z' updated_at: '2024-09-03T16:20:19.866Z' flattened_profile_fields: profile_field_key_1: - Choice 1 avatar_url: user_id: 2 name: Alfred Rice email: mariano.ondricka@stehr.biz accepted_invitation: 2024-09-03 16:20:19 UTC active: true sso_provider_user_id: member_tags: - name: minus id: 1 posts_count: 0 comments_count: 0 gamification_stats: community_member_id: 1 total_points: 0 current_level: 2 current_level_name: Level 2 points_to_next_level: 30 level_progress: 70 activity_score: {} schema: "$ref": "#/components/schemas/community_member_list" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_members/{id}/delete_member": put: summary: Delete Community Member tags: - Community Members description: Deletes a community member and all associated records including posts, comments, likes, and chat messages. This action permanently removes the member from the community. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Community member ID to delete responses: '200': description: Member successfully deleted content: application/json: examples: success: value: message: Member deleted successfully. schema: type: object properties: message: type: string required: - message '400': description: Bad Request - Service failure content: application/json: examples: service_failure: value: success: false message: Failed to delete member error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. error_details: cannot_delete_owner: value: success: false message: You cannot perform this action. error_details: schema: "$ref": "#/components/schemas/error" '404': description: Not Found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' cannot_delete_deleted_member: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' cannot_delete_different_community_member: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' invalid_member_id: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_members/{id}": delete: summary: Deactivate a community member tags: - Community Members security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: string required: true description: ID of the community member responses: '200': description: Community member deleted content: application/json: examples: success: value: message: The community member has been removed from the community. schema: type: object properties: message: type: string '422': description: Unprocessable entity content: application/json: examples: forbidden: value: success: false message: An error occurred trying to cancel the subscription(s) so the account couldn't be deactivated. Please contact us at support@circle.so error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Community member not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" get: summary: Show a community member tags: - Community Members security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: string required: true description: ID of the community member responses: '200': description: Community member found content: application/json: examples: success: value: first_name: Gov. last_name: Loriann Barton headline: Sales Orchestrator created_at: '2024-09-03T16:20:19.814Z' updated_at: '2024-09-03T16:20:19.826Z' community_id: 1 last_seen_at: profile_confirmed_at: '2024-09-03T16:20:19.000Z' member_since: '2024-09-03T16:20:19.000Z' member_since_overridden: false id: 2 profile_url: http://reynolds.circledev.net:31337/u/352c3aff public_uid: 352c3aff profile_fields: - id: 1 label: Label field_type: select key: profile_field_key_1 placeholder: description: required: false platform_field: false created_at: '2024-09-03T16:20:19.864Z' updated_at: '2024-09-03T16:20:19.864Z' community_member_profile_field: number_options: choices: - id: 1 value: Choice 1 pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-09-03T16:20:19.868Z' updated_at: '2024-09-03T16:20:19.868Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-09-03T16:20:19.869Z' updated_at: '2024-09-03T16:20:19.869Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-09-03T16:20:19.866Z' updated_at: '2024-09-03T16:20:19.866Z' flattened_profile_fields: profile_field_key_1: avatar_url: user_id: 3 name: Gov. Loriann Barton email: raul@nitzsche.org accepted_invitation: 2024-09-03 16:20:19 UTC active: true sso_provider_user_id: member_tags: [] posts_count: 0 comments_count: 0 gamification_stats: community_member_id: 2 total_points: 0 current_level: 1 current_level_name: Level 1 points_to_next_level: 50 level_progress: 50 activity_score: activity_score: '23.0' presence: '3.0' participation: '10.0' contribution: '24.0' connection: '24.0' schema: "$ref": "#/components/schemas/community_member" '404': description: Community member not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update a community member tags: - Community Members security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: string required: true description: ID of the community member responses: '200': description: Community member updated content: application/json: examples: success: value: first_name: Baz last_name: headline: New headline created_at: '2024-09-10T01:40:57.450Z' updated_at: '2024-09-10T01:41:13.180Z' community_id: 1 last_seen_at: profile_confirmed_at: '2024-09-10T01:40:57.000Z' member_since: '2024-09-10T01:40:57.000Z' member_since_overridden: false id: 2 profile_url: http://torphy.circledev.net:31337/u/1e32c94e public_uid: 1e32c94e profile_fields: - id: 1 label: Label field_type: text key: profile_field_key_1 placeholder: description: required: false platform_field: true created_at: '2024-09-10T01:40:57.484Z' updated_at: '2024-09-10T01:40:57.484Z' community_member_profile_field: id: 1 text: Bar textarea: created_at: '2024-09-10T01:41:13.198Z' updated_at: '2024-09-10T01:41:13.201Z' display_value: Bar community_member_choices: [] number_options: choices: [] pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-09-10T01:40:57.486Z' updated_at: '2024-09-10T01:40:57.486Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-09-10T01:40:57.487Z' updated_at: '2024-09-10T01:40:57.487Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-09-10T01:40:57.484Z' updated_at: '2024-09-10T01:40:57.484Z' flattened_profile_fields: profile_field_key_1: Bar avatar_url: user_id: 3 name: Baz email: carlton@ernser.biz accepted_invitation: 2024-09-10 01:40:57 UTC active: true sso_provider_user_id: member_tags: [] posts_count: 0 comments_count: 0 schema: "$ref": "#/components/schemas/community_member" '422': description: Unprocessable entity content: application/json: examples: unprocessable_content: value: success: false message: 'Validation failed: Name can''t be blank' error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Community member not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: avatar: type: string description: signed_id of the avatar returned from the direct upload endpoint name: type: string headline: type: string is_flagged: type: boolean member_since: type: string format: date_time description: Effective "member since" / joined date. Cannot be in the future. preferences: type: object properties: messaging_enabled_by_admin: type: boolean visible_in_member_directory: type: boolean make_my_email_public: type: boolean messaging_enabled: type: boolean space_ids: type: array items: type: integer space_group_ids: type: array items: type: integer member_tag_ids: type: array items: type: integer community_member_profile_fields: type: object additionalProperties: type: string description: Profile fields key value pairs required: true description: Community member update params "/api/admin/v2/community_members/search": get: summary: Search a community member tags: - Community Members security: - token_auth: [] host: [] parameters: - name: email in: query schema: type: string required: true description: Email of the community member responses: '200': description: Invited (unconfirmed) community member is returned content: application/json: examples: success: value: first_name: Johnie last_name: Feeney headline: Senior Developer created_at: '2024-08-23T09:01:17.166Z' updated_at: '2024-08-23T09:01:17.352Z' community_id: 1 last_seen_at: '2024-08-23T09:01:37.000Z' profile_confirmed_at: '2024-08-23T09:01:17.000Z' member_since: '2024-08-23T09:01:17.000Z' member_since_overridden: false id: 1 profile_url: http://becker-hettinger.circledev.net:31337/u/ed9f7768 public_uid: ed9f7768 profile_fields: - id: 1 label: Label field_type: select key: profile_field_key_1 placeholder: description: required: false platform_field: false created_at: '2024-08-23T09:01:17.394Z' updated_at: '2024-08-23T09:01:17.394Z' community_member_profile_field: id: 1 text: textarea: created_at: '2024-08-23T09:01:17.413Z' updated_at: '2024-08-23T09:01:17.413Z' display_value: - Choice 1 community_member_choices: - id: 1 profile_field_choice: id: 1 value: Choice 1 number_options: choices: - id: 1 value: Choice 1 pages: - id: 2 name: edit_profile position: 1 visible: true created_at: '2024-08-23T09:01:17.397Z' updated_at: '2024-08-23T09:01:17.397Z' - id: 3 name: profile_view position: 1 visible: true created_at: '2024-08-23T09:01:17.399Z' updated_at: '2024-08-23T09:01:17.399Z' - id: 1 name: signup position: 1 visible: true created_at: '2024-08-23T09:01:17.396Z' updated_at: '2024-08-23T09:01:17.396Z' flattened_profile_fields: profile_field_key_1: - Choice 1 avatar_url: user_id: 2 name: Johnie Feeney email: benjamin@cremin-okeefe.io accepted_invitation: 2024-08-23 09:01:16 UTC active: true sso_provider_user_id: member_tags: - name: inventore id: 1 posts_count: 0 comments_count: 0 gamification_stats: community_member_id: 2 total_points: 0 current_level: 1 current_level_name: Level 1 points_to_next_level: 50 level_progress: 50 schema: "$ref": "#/components/schemas/community_member" '404': description: Email matches a CommunityLead but not a CommunityMember content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_segments": post: summary: Create a community segment tags: - Community Segments description: Creates a community segment security: - token_auth: [] host: [] parameters: [] responses: '201': description: Community segment created successfully content: application/json: examples: success: value: id: 1 title: VIP Members rules: rule_type: custom_filters rules: - key: role value: member visible: true audience_count: 0 created_by: id: 1 name: Ada Lovelace email: ada@example.com avatar_url: public_uid: 016ab0fc created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:24:17.411Z' schema: "$ref": "#/components/schemas/community_segment" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Oops! There was an error creating the community segment, please contact support. error_details: 'Validation failed: Title can''t be blank' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: "$ref": "#/components/schemas/community_segment_params" required: true description: Community segment params get: summary: List Community Segments tags: - Community Segments security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: title in: query schema: type: string required: false description: Filter by title responses: '200': description: List of Community Segments content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 1 title: VIP Members rules: rule_type: custom_filters rules: - key: role value: member visible: true audience_count: 0 created_by: id: 1 name: Ada Lovelace email: ada@example.com avatar_url: public_uid: 016ab0fc created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:24:17.411Z' - id: 2 title: Active Users rules: rule_type: custom_filters rules: - key: activity_level value: high visible: true audience_count: 0 created_by: id: 1 name: Ada Lovelace email: ada@example.com avatar_url: public_uid: 016ab0fc created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:24:17.411Z' schema: "$ref": "#/components/schemas/community_segments_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/community_segments/{id}": delete: summary: Delete a community segment tags: - Community Segments security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the community segment to delete schema: type: string responses: '200': description: Community segment deleted successfully content: application/json: examples: success: value: success: true message: Community segment deleted successfully '404': description: Community segment not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community segment' '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Oops! There was an error destroying the community segment, please contact support. error_details: {} '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} put: summary: Update a community segment tags: - Community Segments description: Updates an existing community segment security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the community segment to update schema: type: string responses: '200': description: Community segment updated successfully content: application/json: examples: success: value: id: 1 title: Updated Segment rules: rule_type: custom_filters rules: - key: role value: member - key: country value: USA visible: true audience_count: 0 created_by: id: 1 name: Ada Lovelace email: ada@example.com avatar_url: public_uid: 016ab0fc created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:24:17.411Z' schema: "$ref": "#/components/schemas/community_segment" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Oops! There was an error updating the community segment, please contact support. error_details: Title can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: "$ref": "#/components/schemas/community_segment_params" required: true description: Community segment params "/api/admin/v2/community_segments/{id}/duplicate": post: summary: Duplicate a community segment tags: - Community Segments security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the community segment to duplicate schema: type: string - name: title in: query required: true description: Title for the duplicated community segment schema: type: string responses: '200': description: Community segment duplicated successfully content: application/json: examples: success: value: id: 2 title: Duplicated Segment rules: rule_type: custom_filters rules: - key: email value: test@example.com visible: true audience_count: 100 created_by: id: 1 name: Rep. Elwood Altenwerth email: rep@example.com avatar_url: public_uid: 016ab0fc created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/community_segment" '404': description: Community segment not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community segment' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Oops! There was an error duplicating the community segment, please contact support. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/contacts/{contact_id}/contact_notes": post: summary: Create Contact Note tags: - Contact Notes operationId: create_contact_note description: Adds an internal note to a contact in the community. Use list_contact_notes to read existing notes. security: - token_auth: [] host: [] parameters: - name: contact_id in: path schema: type: string required: true description: Contact ID or sqid responses: '201': description: Contact note created successfully content: application/json: schema: "$ref": "#/components/schemas/contact_note" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '404': description: Contact not found content: application/json: schema: "$ref": "#/components/schemas/error" '422': description: Invalid contact note body content: application/json: schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: tiptap_body: type: object description: Rich text note in Tiptap document format properties: body: type: object required: - body required: - tiptap_body required: true description: Contact note attributes get: summary: List Contact Notes tags: - Contact Notes operationId: list_contact_notes description: Lists the notes admins have added to a contact, newest first. security: - token_auth: [] host: [] parameters: - name: contact_id in: path schema: type: string required: true description: Contact ID or sqid - name: page in: query schema: type: integer required: false description: Page number responses: '200': description: Retrieves the paginated list of notes for a contact content: application/json: schema: "$ref": "#/components/schemas/contact_notes_list" '404': description: Contact not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/course_lesson_progress": put: summary: Update Course Lesson Progress tags: - Course Lesson Progress security: - token_auth: [] host: [] parameters: [] responses: '200': description: OK content: application/json: examples: success: value: success: true message: Lesson progress updated. schema: type: object properties: success: type: boolean message: type: string '404': description: Not Found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/lesson' schema: "$ref": "#/components/schemas/error" '400': description: Bad Request content: application/json: examples: bad_request: value: success: false message: Failed to update lesson progress. error_details: 'Invalid status: invalid' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: lesson_id: type: integer example: 1 member_email: type: string example: test@example.com status: type: string enum: - incomplete - completed example: completed required: - lesson_id - member_email - status required: true description: Course lesson params "/api/admin/v2/course_lessons": post: summary: Create a course lesson tags: - Course Lessons description: Creates a lesson in a course section. section_id is required. Use rich_text_body instead of body_html for rich text content. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Course lesson created successfully content: application/json: examples: course_lesson_created: value: id: 1 name: New lesson status: published created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Lesson body

" space_id: 1 thumbnail: featured_media: schema: "$ref": "#/components/schemas/course_lesson" '404': description: Not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/section' schema: "$ref": "#/components/schemas/error" '422': description: Invalid course lesson params content: application/json: examples: invalid_course_lesson_params: value: success: false message: Failed to save changes. error_details: 'Validation failed: Name can''t be blank' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: section_id: type: integer example: 1 name: type: string example: New lesson status: type: string enum: - draft - published body_html: type: string example: "

Lesson body

" is_comments_enabled: type: boolean example: true is_featured_media_enabled: type: boolean example: true is_featured_media_download_enabled: type: boolean example: true thumbnail: type: string description: signed_id of the lesson thumbnail image returned from the direct upload endpoint featured_media: type: string description: signed_id of the lesson featured media file returned from the direct upload endpoint rich_text_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object properties: type: type: string text: type: string nullable: true marks: type: array items: type: object attrs: type: object required: - type - content required: - name - section_id required: true description: Course lesson params get: summary: List course lessons tags: - Course Lessons security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: section_id in: query schema: type: integer required: false description: Section ID - name: space_id in: query schema: type: integer required: false description: Space ID - name: status in: query schema: type: string enum: - draft - published required: false description: Status - name: sort in: query schema: type: string enum: - oldest - newest - alphabetical - alphabetical_desc description: Sorting parameters (sort by name in ascending order, name in descending order, and by newest. Default is oldest) required: false responses: '200': description: Retrieves a list of course lessons for a community content: application/json: examples: course_lessons_list: value: page: 1 per_page: 10 has_next_page: true count: 3 page_count: 3 records: - id: 1 name: Lesson 1 status: published created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Lesson body

" space_id: 1 thumbnail: featured_media: - id: 2 name: Lesson 2 status: draft created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Lesson body

" space_id: 1 thumbnail: featured_media: - id: 3 name: Lesson 3 status: draft created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Lesson body

" space_id: 1 thumbnail: featured_media: schema: "$ref": "#/components/schemas/course_lessons_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/course_lessons/{id}": delete: summary: Delete a course lesson tags: - Course Lessons security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: Course lesson ID schema: type: integer responses: '200': description: Course lesson deleted successfully content: application/json: examples: success: value: success: true message: Course lesson deleted schema: type: object properties: success: type: boolean message: type: string '404': description: Course lesson not found content: application/json: examples: course_lesson_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/lesson' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show a course lesson tags: - Course Lessons security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the course lesson schema: type: integer responses: '200': description: Course lesson retrieved successfully content: application/json: examples: course_lesson: value: id: 1 name: Lesson 1 status: published created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Lesson body

" space_id: 1 thumbnail: featured_media: schema: "$ref": "#/components/schemas/course_lesson" '404': description: Course lesson not found content: application/json: examples: course_lesson_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/lesson' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" patch: summary: Update a course lesson tags: - Course Lessons description: Updates a course lesson. Use rich_text_body instead of body_html for rich text content. security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the course lesson schema: type: integer responses: '200': description: Course lesson updated successfully content: application/json: examples: course_lesson_updated: value: id: 1 name: Updated lesson status: published created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' section_id: 1 is_comments_enabled: true is_featured_media_enabled: true is_featured_media_download_enabled: true body_html: "

Updated lesson body

" space_id: 1 thumbnail: featured_media: schema: "$ref": "#/components/schemas/course_lesson" '404': description: Course lesson not found content: application/json: examples: course_lesson_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/lesson' schema: "$ref": "#/components/schemas/error" '422': description: Invalid course lesson params content: application/json: examples: invalid_course_lesson_params: value: success: false message: Failed to save changes. error_details: 'Validation failed: Name can''t be blank' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string example: Updated lesson status: type: string enum: - draft - published example: published body_html: type: string example: "

Updated lesson body

" is_comments_enabled: type: boolean example: true is_featured_media_enabled: type: boolean example: true is_featured_media_download_enabled: type: boolean example: true thumbnail: type: string description: signed_id of the lesson thumbnail image returned from the direct upload endpoint featured_media: type: string description: signed_id of the lesson featured media file returned from the direct upload endpoint rich_text_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object properties: type: type: string text: type: string nullable: true marks: type: array items: type: object attrs: type: object required: - type - content required: true description: Course lesson params "/api/admin/v2/course_lessons/reorder": put: summary: Reorder course lessons tags: - Course Lessons description: Reorders a course's sections and lessons, and moves lessons between sections. The new_order array must contain every course section in its final order, with every lesson listed under its destination section in its final order. security: - token_auth: [] host: [] parameters: [] responses: '200': description: Course lessons reordered successfully content: application/json: examples: success: value: success: true message: Course lessons reordered schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Course space not found content: application/json: examples: course_space_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' schema: "$ref": "#/components/schemas/error" '422': description: Invalid course order content: application/json: examples: invalid_course_order: value: success: false message: Invalid params. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: space_id: type: integer description: ID of the course space example: 1 new_order: type: array description: All course sections and lessons in their final order items: type: object properties: section_id: type: integer example: 2 lesson_ids: type: array items: type: integer example: - 3 - 1 - 2 required: - section_id - lesson_ids required: - space_id - new_order required: true description: Final course content order "/api/admin/v2/course_sections": post: summary: Create a course section tags: - Course Sections security: - token_auth: [] host: [] parameters: [] responses: '201': description: Course section created successfully content: application/json: examples: course_section_created: value: id: 1 name: New Section space_id: 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/course_section" '404': description: Not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' schema: "$ref": "#/components/schemas/error" '422': description: Invalid course section params content: application/json: examples: invalid_course_section_params: value: success: false message: Failed to save changes. error_details: 'Validation failed: Name can''t be blank' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string space_id: type: integer required: - name - space_id required: true description: Course section params get: summary: List Course Sections tags: - Course Sections security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Number of records per page schema: type: integer - name: space_id in: query required: false description: Space ID of the course section schema: type: integer - name: sort in: query description: Sorting parameters (sort by name in ascending order, name in descending order, and by newest. Default is oldest) required: false schema: type: string enum: - oldest - newest - alphabetical - alphabetical_desc responses: '200': description: Retrieves a list of course sections for a community content: application/json: examples: course_sections_list: value: page: 1 per_page: 10 has_next_page: true count: 3 page_count: 3 records: - id: 1 name: Section 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' space_id: 1 - id: 2 name: Section 2 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' space_id: 1 - id: 3 name: Section 3 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' space_id: 1 schema: "$ref": "#/components/schemas/course_sections_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/course_sections/{id}": delete: summary: Delete a course section tags: - Course Sections security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: Course section ID schema: type: integer responses: '200': description: Course section deleted successfully '404': description: Not found content: application/json: examples: course_section_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/section' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show a course section tags: - Course Sections security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the course section schema: type: integer responses: '200': description: Course section retrieved successfully content: application/json: examples: course_section: value: id: 1 name: Section 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' space_id: 1 schema: "$ref": "#/components/schemas/course_section" '404': description: Course section not found content: application/json: examples: course_section_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/section' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update a course section tags: - Course Sections security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the course section schema: type: integer responses: '200': description: Course section updated successfully content: application/json: examples: course_section_updated: value: id: 1 name: Updated Section created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' space_id: 1 schema: "$ref": "#/components/schemas/course_section" '404': description: Course section not found content: application/json: examples: course_section_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: courses/section' schema: "$ref": "#/components/schemas/error" '422': description: Invalid course section params content: application/json: examples: invalid_course_section_params: value: success: false message: Failed to save changes. error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string required: - name required: true description: Course section params "/api/admin/v2/direct_uploads": post: summary: Create Direct Upload tags: - Direct Uploads description: Creates a presigned URL for file upload. Upload the file via PUT to the returned direct_upload.url with the provided headers. The checksum is a base64-encoded MD5 hash of the file content. security: - token_auth: [] host: [] parameters: [] responses: '404': description: Forbidden content: application/json: schema: "$ref": "#/components/schemas/error" '200': description: OK content: application/json: examples: success: value: id: 1 key: c7u0d0sjfp9p7wjlzp7v0bxkrykm filename: sample.jpg content_type: image/jpeg byte_size: 186822 checksum: 409fnt4awWB4Ab0ZU4+xyA== created_at: '2024-07-22T07:44:52.000Z' service_name: test community_id: 1 community_member_id: 1 signed_id: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa attachable_sgid: BAh7CEkiCGdpZAY6BkVUSSI5Z2lkOi8vanVtcHN0YXJ0LWFwcC9BY3RpdmVTdG9yYWdlOjpCbG9iLzE_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiD2F0dGFjaGFibGUGOwBUSSIPZXhwaXJlc19hdAY7AFQw--88f6aa111f445e903b24937e43a8d44202fa4d08 direct_upload: url: http://www.example.com:31337/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDam9JYTJWNVNTSWhZemQxTUdRd2MycG1jRGx3TjNkcWJIcHdOM1l3WW5ocmNubHJiUVk2QmtWVU9oRmpiMjUwWlc1MFgzUjVjR1ZKSWc5cGJXRm5aUzlxY0dWbkJqc0dWRG9UWTI5dWRHVnVkRjlzWlc1bmRHaHBBOGJaQWpvTlkyaGxZMnR6ZFcxSkloMDBNRGxtYm5RMFlYZFhRalJCWWpCYVZUUXJlSGxCUFQwR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjoiMjAyNC0wNy0yMlQwNzo0OTo1Mi4yMzVaIiwicHVyIjoiYmxvYl90b2tlbiJ9fQ==--d506363ed9b9d09864438ae805bebd80a5d64ed9 headers: Content-Type: image/jpeg url: http://www.example.com/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhZemQxTUdRd2MycG1jRGx3TjNkcWJIcHdOM1l3WW5ocmNubHJiUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUDJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5OaGJYQnNaUzVxY0djaU95Qm1hV3hsYm1GdFpTbzlWVlJHTFRnbkozTmhiWEJzWlM1cWNHY0dPd1pVT2hGamIyNTBaVzUwWDNSNWNHVkpJZzlwYldGblpTOXFjR1ZuQmpzR1ZEb1JjMlZ5ZG1salpWOXVZVzFsT2dsMFpYTjAiLCJleHAiOm51bGwsInB1ciI6ImJsb2Jfa2V5In19--133e53c3b198ae40722fd296d4de82a6892bf989/sample.jpg schema: "$ref": "#/components/schemas/direct_upload_response" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: blob: type: object properties: key: type: string filename: type: string content_type: type: string byte_size: type: integer checksum: type: string required: - key - filename - content_type - byte_size - checksum required: - blob "/api/admin/v2/embeds": post: summary: Create Embed tags: - Embeds description: Creates an embed from a URL and returns the embed data with an sgid security: - token_auth: [] host: [] parameters: [] responses: '201': description: Created content: application/json: examples: success: value: id: 1 url: https://vimeo.com/253989945 sgid: BAh7CEkiCGdpZAY6BkVUSSI... type: embed embed_type: video embed_provider: iframely circle_embed_url: https://example.circle.so/embeds/BAh7CEkiCGdpZAY6BkVUSSI... html: "
Embed HTML
" title: Sample Video width: 1280 height: 720 version: '1.0' author_url: https://vimeo.com/testuser author_name: Vimeo Test User description: Sample Video Description provider_url: https://vimeo.com/ provider_name: Vimeo thumbnail_url: https://i.vimeocdn.com/video/example.jpg thumbnail_width: 1280 thumbnail_height: 720 schema: "$ref": "#/components/schemas/embed" '422': description: Unprocessable Entity content: application/json: examples: bad_request: value: success: false message: 'Unsupported URL: invalid-url' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: url: type: string description: The URL to embed (e.g., YouTube, Vimeo, etc.) required: - url "/api/admin/v2/embeds/{sgid}": get: summary: Get Embed tags: - Embeds description: Retrieves an embed by its sgid security: - token_auth: [] host: [] parameters: - name: sgid in: path description: The sgid of the embed required: true schema: type: string responses: '200': description: OK content: application/json: examples: success: value: id: 1 url: https://vimeo.com/253989945 sgid: BAh7CEkiCGdpZAY6BkVUSSI... type: embed embed_type: video embed_provider: iframely circle_embed_url: https://example.circle.so/embeds/BAh7CEkiCGdpZAY6BkVUSSI... html: "
Embed HTML
" title: Test Video width: 1280 height: 720 provider_url: https://vimeo.com/ provider_name: Vimeo thumbnail_url: https://i.vimeocdn.com/video/example.jpg schema: "$ref": "#/components/schemas/embed" '404': description: Not Found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: rich text oembed' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/event_attendees": post: summary: Create Event Attendee tags: - Event Attendees security: - token_auth: [] host: [] parameters: [] responses: '200': description: Event attendee created successfully content: application/json: examples: success: value: message: RSVP'd to the event. schema: type: object properties: message: type: string description: Message '404': description: Event Not Found content: application/json: examples: post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: member_email: type: string description: Member Email event_id: type: string description: Event ID delete: summary: Delete Event Attendee tags: - Event Attendees security: - token_auth: [] host: [] parameters: [] responses: '200': description: Event attendee deleted successfully content: application/json: examples: success: value: message: Un-RSVP successful from the event schema: type: object properties: message: type: string description: Message '404': description: Event attendee not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: member_email: type: string description: Member Email event_id: type: string description: Event ID get: summary: List Event Attendees tags: - Event Attendees security: - token_auth: [] host: [] parameters: - name: event_id in: query required: true description: Event ID schema: type: string - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Number of records per page schema: type: integer responses: '200': description: Event attendees retrieved successfully content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 2 records: - id: 2 event_id: 2 community_member_id: 3 contact_id: 3 contact_type: CommunityMember rsvp_status: 'yes' event_name: Eaque tenetur nostrum non. member_name: Margarette Schinner member_email: tamar_powlowski@kemmer.net member_avatar_url: headline: Principal Architect rsvp_date: '2024-09-30T10:51:43.834Z' - id: 1 event_id: 2 community_member_id: 1 contact_id: 1 contact_type: CommunityMember rsvp_status: 'yes' event_name: Eaque tenetur nostrum non. member_name: Elisha Terry member_email: junior@conroy.com member_avatar_url: headline: IT Representative rsvp_date: '2024-09-30T10:51:43.800Z' schema: "$ref": "#/components/schemas/event_attendees_list" '404': description: Event Not Found content: application/json: examples: post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/events": post: summary: Create Event tags: - Events description: Creates an event in an event-type space. space_id must be provided both at the top level and inside the event object. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Event created content: application/json: examples: success: value: id: 3 name: Second event slug: flatley-pacocha user_id: 6 community_member_id: 1 created_at: '2024-09-10T12:39:32.225Z' hide_meta_info: false confirmation_message_title: Doloremque et et. confirmation_message_button_title: Et et. confirmation_message_button_link: http://www.haag.com/velit-ut-qui confirmation_message_description: Quisquam et et. in_person_location: New York host: Dolores comments_count: 0 duration_in_seconds: 25 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: http://schaefer-bode.net/fausto.kreiger starts_at: '2024-09-20T12:39:32.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-20T12:39:57.000Z' updated_at: '2024-09-10T12:39:32.228Z' hide_location_from_non_attendees: true space: id: 2 slug: event name: event community_id: 1 body: Sunt pariatur sequi voluptatem. url: http://armstrong-hayes.circledev.net:31337/c/event/flatley-pacocha member_email: vida.smith@feest-sipes.info member_name: Demetrius Nolan member_avatar_url: http://placekitten.com/200/200 zapier_display_title: Second event 20 Sep 2024 12:39PM UTC likes_count: 0 cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg meta_tag_attributes: meta_title: Event meta title meta_description: Event meta description opengraph_title: Event OpenGraph title opengraph_description: Event OpenGraph description opengraph_image: https://example.com/event-opengraph-image.jpg topics: - 10 - 11 - 12 schema: "$ref": "#/components/schemas/event" '400': description: Invalid request content: application/json: examples: invalid_request: value: success: false message: Oops! We were unable to create the event. error_details: Event setting starts at can't be blank, Event setting location type can't be blank, and Event setting is invalid schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: event: type: object properties: name: type: string slug: type: string body: type: string user_id: type: integer space_id: type: integer cover_image: type: string description: signed_id of the cover image thumbnail_image: type: string description: signed_id of the thumbnail image hide_from_featured_areas: type: boolean event_type: type: string enum: - single - recurring status: type: string enum: - draft - published topics: type: array items: type: integer event_setting_attributes: type: object properties: starts_at: type: string format: date_time host: type: string duration_in_seconds: type: integer location_type: type: string enum: - virtual - in_person - tbd - live_stream - live_room virtual_location_url: type: string in_person_location: type: string description: A stringified Google Places API result. JSON-serialize the Places API response object before sending. Stored as-is in the database. example: '{"formatted_address":"345 Spear St, San Francisco, CA 94105","geometry":{"location":{"lat":37.7900161,"lng":-122.3900146}},"name":"Google San Francisco - 345 Spear St","place_id":"ChIJ32vwFWSAhYAR8wx7vbWoSPA","url":"https://maps.google.com/?cid=17314274265947376883","website":"https://www.google.com/about/careers/locations/san-francisco/","html_attributions":[]}' hide_location_from_non_attendees: type: boolean send_email_reminder: type: boolean send_in_app_notification_reminder: type: boolean rsvp_disabled: type: boolean hide_attendees: type: boolean enable_custom_thank_you_message: type: boolean send_email_confirmation: type: boolean send_in_app_notification_confirmation: type: boolean confirmation_message_title: type: string confirmation_message_description: type: string confirmation_message_button_title: type: string confirmation_message_button_link: type: string rsvp_limit_enabled: type: boolean rsvp_limit: type: integer send_publish_email: type: boolean ticket_type: type: string enum: - paid - free live_stream_room_setting_attributes: type: object properties: access_type: type: string enum: - open - secret - public_stream description: Access type for the live stream room. 'open' all community members will receive notifications to join, 'secret' invited members will receive notifications to join, 'public_stream' makes the event publicly accessible. recording_enabled: type: boolean view_type: type: string enum: - speaker_view - speaker_variant_view - grid_view description: View type for the live stream room. 'speaker_view' shows the speaker view at the top, 'speaker_variant_view' shows the speaker view at the left side, 'grid_view' shows a grid of participants. auto_post_recording_enabled: type: boolean mute_on_join: type: boolean hide_participants_list: type: boolean limit_url_sharing: type: boolean meta_tag_attributes: type: object properties: meta_title: type: string meta_description: type: string opengraph_title: type: string opengraph_description: type: string opengraph_image: type: string recurring_setting_attributes: type: object properties: frequency: type: string enum: - daily - weekday - weekly - bi_weekly - monthly - monthly_weekday_based - annually - yearly ends_at: type: string format: date_time occurrences: type: integer edit_mode: type: string enum: - current - remaining - all paywall_attributes: type: object properties: currency_id: type: integer description: type: string price_amount: type: number attendee_invite_attributes: type: object properties: invited_entities_ids: type: object properties: members_ids: type: array items: type: integer spaces_ids: type: array items: type: integer space_groups_ids: type: array items: type: integer member_tags_ids: type: array items: type: integer invited_cohost_ids: type: array items: type: integer required: - name - space_id - status space_id: type: integer required: - event - space_id examples: complete_event_example: summary: A complete event creation example value: event: name: Tech Conference 2024 slug: tech-conference-2024 body: "
Join us for an exciting tech conference!
" space_id: 123 user_id: 1 status: published event_type: single topics: - 1 - 2 - 3 cover_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBEUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--cb16b4bc4c9fe7654c2cf0a9cea575d75ec719e8 thumbnail_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBEUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--cb16b4bc4c9fe7654c2cf0a9cea575d75ec719e8 hide_from_featured_areas: false event_setting_attributes: starts_at: '2024-06-15T09:00:00Z' host: John Doe duration_in_seconds: 7200 location_type: live_stream virtual_location_url: https://meet.example.com/tech-conf in_person_location: '{"formatted_address":"345 Spear St, San Francisco, CA 94105","geometry":{"location":{"lat":37.7900161,"lng":-122.3900146}},"name":"Google San Francisco - 345 Spear St","place_id":"ChIJ32vwFWSAhYAR8wx7vbWoSPA","url":"https://maps.google.com/?cid=17314274265947376883","website":"https://www.google.com/about/careers/locations/san-francisco/","html_attributions":[]}' hide_location_from_non_attendees: true send_email_reminder: true send_in_app_notification_reminder: true rsvp_disabled: false hide_attendees: false enable_custom_thank_you_message: false send_email_confirmation: true send_in_app_notification_confirmation: true rsvp_limit_enabled: true rsvp_limit: 100 send_publish_email: true ticket_type: paid live_stream_room_setting_attributes: access_type: public recording_enabled: true view_type: grid_view auto_post_recording_enabled: true mute_on_join: true hide_participants_list: false limit_url_sharing: true meta_tag_attributes: meta_title: Tech Conference 2024 - Join the Future meta_description: Annual tech conference featuring industry leaders opengraph_title: Tech Conference 2024 opengraph_description: Don't miss the biggest tech event of the year opengraph_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--abcdef1234567890 recurring_setting_attributes: frequency: weekly ends_at: '2024-07-15T09:00:00Z' occurrences: 4 edit_mode: remaining paywall_attributes: currency_id: 1 description: Standard admission ticket price_amount: 99.99 attendee_invite_attributes: invited_entities_ids: members_ids: - 1 - 2 - 3 spaces_ids: - 10 - 11 space_groups_ids: - 20 - 21 member_tags_ids: - 30 - 31 invited_cohost_ids: - 101 - 102 space_id: 123 required: true get: summary: List Events tags: - Events description: List Events security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: space_id in: query schema: type: integer required: false description: Filter events by event space ID - name: filter_date[start_date] in: query schema: type: string format: date required: false description: 'Start date for filtering events (format: YYYY-MM-DD)' - name: filter_date[end_date] in: query schema: type: string format: date required: false description: 'End date for filtering events (format: YYYY-MM-DD)' - name: sort in: query schema: type: string enum: - oldest - start_date - start_date_desc required: false description: Sort events - oldest (by created_at), start_date (by starts_at ascending), start_date_desc (by starts_at descending), default is newest (by published_at) responses: '200': description: List Events content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 3 name: Second event slug: flatley-pacocha user_id: 6 community_member_id: 1 created_at: '2024-09-10T12:39:32.225Z' hide_meta_info: false confirmation_message_title: Doloremque et et. confirmation_message_button_title: Et et. confirmation_message_button_link: http://www.haag.com/velit-ut-qui confirmation_message_description: Quisquam et et. in_person_location: New York host: Dolores comments_count: 0 duration_in_seconds: 25 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: http://schaefer-bode.net/fausto.kreiger starts_at: '2024-09-20T12:39:32.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-20T12:39:57.000Z' updated_at: '2024-09-10T12:39:32.228Z' hide_location_from_non_attendees: true space: id: 2 slug: event name: event community_id: 1 body: Sunt pariatur sequi voluptatem. url: http://armstrong-hayes.circledev.net:31337/c/event/flatley-pacocha member_email: vida.smith@feest-sipes.info member_name: Demetrius Nolan member_avatar_url: http://placekitten.com/200/200 zapier_display_title: Second event 20 Sep 2024 12:39PM UTC likes_count: 0 cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg meta_tag_attributes: meta_title: Event meta title meta_description: Event meta description opengraph_title: Event OpenGraph title opengraph_description: Event OpenGraph description opengraph_image: https://example.com/event-opengraph-image.jpg topics: - 10 - 11 - 12 - id: 2 name: First event slug: jacobs user_id: 5 community_member_id: 1 created_at: '2024-09-10T12:39:32.191Z' hide_meta_info: false confirmation_message_title: Rerum et et. confirmation_message_button_title: Gloria et et. confirmation_message_button_link: http://www.kreiger.com/et-ut-qui confirmation_message_description: Quisquam et et. in_person_location: Atlanta host: Dolores comments_count: 0 duration_in_seconds: 26 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: http://wintheiser-schoen.name/ed.langosh starts_at: '2024-09-20T12:39:32.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-20T12:39:58.000Z' updated_at: '2024-09-10T12:39:32.194Z' hide_location_from_non_attendees: true space: id: 2 slug: event name: event community_id: 1 body: A illum quis maxime. url: http://armstrong-hayes.circledev.net:31337/c/event/jacobs member_email: vida.smith@feest-sipes.info member_name: Demetrius Nolan member_avatar_url: http://placekitten.com/200/200 zapier_display_title: First event 20 Sep 2024 12:39PM UTC likes_count: 0 cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg topics: - 10 - 11 - 12 schema: "$ref": "#/components/schemas/event_list" '404': description: Space not found '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/events/{id}": delete: summary: Delete Event tags: - Events description: Delete Event security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Event ID - name: space_id in: query schema: type: integer required: true description: Space ID responses: '200': description: Delete Event content: application/json: examples: success: value: message: Event deleted. schema: type: object properties: message: type: string '404': description: Event not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Get Event tags: - Events description: Get Event security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Event ID responses: '200': description: Get Event content: application/json: examples: success: value: id: 3 name: Second event slug: flatley-pacocha user_id: 6 community_member_id: 1 created_at: '2024-09-10T12:39:32.225Z' hide_meta_info: false confirmation_message_title: Doloremque et et. confirmation_message_button_title: Et et. confirmation_message_button_link: http://www.haag.com/velit-ut-qui confirmation_message_description: Quisquam et et. in_person_location: New York host: Dolores comments_count: 0 duration_in_seconds: 25 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: http://schaefer-bode.net/fausto.kreiger starts_at: '2024-09-20T12:39:32.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-20T12:39:57.000Z' updated_at: '2024-09-10T12:39:32.228Z' hide_location_from_non_attendees: true space: id: 2 slug: event name: event community_id: 1 body: Sunt pariatur sequi voluptatem. url: http://armstrong-hayes.circledev.net:31337/c/event/flatley-pacocha member_email: vida.smith@feest-sipes.info member_name: Demetrius Nolan member_avatar_url: http://placekitten.com/200/200 zapier_display_title: Second event 20 Sep 2024 12:39PM UTC likes_count: 0 cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg meta_tag_attributes: meta_title: Event meta title meta_description: Event meta description opengraph_title: Event OpenGraph title opengraph_description: Event OpenGraph description opengraph_image: https://example.com/event-opengraph-image.jpg topics: - 10 - 11 - 12 schema: "$ref": "#/components/schemas/event" '404': description: Event not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: posts/event' schema: "$ref": "#/components/schemas/error" put: summary: Update Event tags: - Events description: Update Event security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: Event ID schema: type: integer responses: '200': description: Update Event content: application/json: examples: success: value: id: 3 name: Second event slug: flatley-pacocha user_id: 6 community_member_id: 1 created_at: '2024-09-10T12:39:32.225Z' hide_meta_info: false confirmation_message_title: Doloremque et et. confirmation_message_button_title: Et et. confirmation_message_button_link: http://www.haag.com/velit-ut-qui confirmation_message_description: Quisquam et et. in_person_location: New York host: Dolores comments_count: 0 duration_in_seconds: 25 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: http://schaefer-bode.net/fausto.kreiger starts_at: '2024-09-20T12:39:32.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-20T12:39:57.000Z' updated_at: '2024-09-10T12:39:32.228Z' hide_location_from_non_attendees: true space: id: 2 slug: event name: event community_id: 1 body: Sunt pariatur sequi voluptatem. url: http://armstrong-hayes.circledev.net:31337/c/event/flatley-pacocha member_email: vida.smith@feest-sipes.info member_name: Demetrius Nolan member_avatar_url: http://placekitten.com/200/200 zapier_display_title: Second event 20 Sep 2024 12:39PM UTC likes_count: 0 cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg meta_tag_attributes: meta_title: Updated event meta title meta_description: Updated event meta description opengraph_title: Updated event OpenGraph title opengraph_description: Updated event OpenGraph description opengraph_image: https://example.com/updated-event-opengraph-image.jpg topics: - 10 - 11 - 12 schema: "$ref": "#/components/schemas/event" '404': description: Event not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '400': description: Invalid request content: application/json: examples: unprocessable_content: value: success: false message: Oops! We were unable to save your changes. error_details: Event setting duration in seconds must be greater than or equal to 0 and Event setting is invalid schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: event: type: object properties: name: type: string slug: type: string body: type: string user_id: type: integer space_id: type: integer cover_image: type: string description: signed_id of the cover image thumbnail_image: type: string description: signed_id of the thumbnail image hide_from_featured_areas: type: boolean event_type: type: string status: type: string enum: - draft - published topics: type: array items: type: integer event_setting_attributes: type: object properties: starts_at: type: string format: date_time host: type: string duration_in_seconds: type: integer location_type: type: string virtual_location_url: type: string in_person_location: type: string description: A stringified Google Places API result. JSON-serialize the Places API response object before sending. Stored as-is in the database. example: '{"formatted_address":"345 Spear St, San Francisco, CA 94105","geometry":{"location":{"lat":37.7900161,"lng":-122.3900146}},"name":"Google San Francisco - 345 Spear St","place_id":"ChIJ32vwFWSAhYAR8wx7vbWoSPA","url":"https://maps.google.com/?cid=17314274265947376883","website":"https://www.google.com/about/careers/locations/san-francisco/","html_attributions":[]}' hide_location_from_non_attendees: type: boolean send_email_reminder: type: boolean send_in_app_notification_reminder: type: boolean rsvp_disabled: type: boolean hide_attendees: type: boolean enable_custom_thank_you_message: type: boolean send_email_confirmation: type: boolean send_in_app_notification_confirmation: type: boolean confirmation_message_title: type: string confirmation_message_description: type: string confirmation_message_button_title: type: string confirmation_message_button_link: type: string rsvp_limit_enabled: type: boolean rsvp_limit: type: integer send_publish_email: type: boolean ticket_type: type: string live_stream_room_setting_attributes: type: object properties: access_type: type: string enum: - open - secret - public_stream description: Access type for the live stream room. 'open' all community members will receive notifications to join, 'secret' invited members will receive notifications to join, 'public_stream' makes the event publicly accessible. recording_enabled: type: boolean view_type: type: string enum: - speaker_view - speaker_variant_view - grid_view description: View type for the live stream room. 'speaker_view' shows the speaker view at the top, 'speaker_variant_view' shows the speaker view at the left side, 'grid_view' shows a grid of participants. auto_post_recording_enabled: type: boolean mute_on_join: type: boolean hide_participants_list: type: boolean limit_url_sharing: type: boolean meta_tag_attributes: type: object properties: meta_title: type: string meta_description: type: string opengraph_title: type: string opengraph_description: type: string opengraph_image: type: string recurring_setting_attributes: type: object properties: frequency: type: string ends_at: type: string format: date_time occurrences: type: integer edit_mode: type: string paywall_attributes: type: object properties: currency_id: type: integer description: type: string price_amount: type: number attendee_invite_attributes: type: object properties: invited_entities_ids: type: object properties: members_ids: type: array items: type: integer spaces_ids: type: array items: type: integer space_groups_ids: type: array items: type: integer member_tags_ids: type: array items: type: integer invited_cohost_ids: type: array items: type: integer required: - name - space_id - status space_id: type: integer required: - event - space_id required: true "/api/admin/v2/spaces/{space_id}/events/{id}/duplicate": post: summary: Duplicate Event tags: - Events description: Duplicate Event security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Space ID - name: id in: path schema: type: integer required: true description: Event ID responses: '200': description: Duplicate Event content: application/json: examples: success: value: id: 3 name: First event slug: first-event-copy user_id: 6 community_member_id: 1 created_at: '2024-09-10T12:39:32.225Z' hide_meta_info: false confirmation_message_title: confirmation_message_button_title: confirmation_message_button_link: confirmation_message_description: in_person_location: host: Jane Doe comments_count: 0 duration_in_seconds: 3600 enable_custom_thank_you_message: false send_in_app_notification_confirmation: true rsvp_disabled: false send_email_confirmation: true send_email_reminder: true send_in_app_notification_reminder: true virtual_location_url: https://meet.example.com starts_at: '2024-09-11T12:00:00.000Z' location_type: virtual hide_attendees: false ends_at: '2024-09-11T13:00:00.000Z' updated_at: '2024-09-10T12:39:32.225Z' hide_location_from_non_attendees: false space: id: 2 slug: target name: Target Space community_id: 1 body: "
Event description
" url: https://example.circle.so/c/space/events/first-event-copy member_email: jane@example.com member_name: Jane Doe member_avatar_url: https://example.circle.so/avatar.png zapier_display_title: First event (September 11, 2024) likes_count: 0 cover_image_url: topics: [] schema: "$ref": "#/components/schemas/event" '404': description: Event not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '422': description: Duplicate Event fails content: application/json: examples: unprocessable_content: value: success: false message: Could not duplicate this event error_details: '' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: event: type: object properties: space_id: type: integer description: Target Space ID for the duplicate event required: - space_id required: - event required: true "/api/admin/v2/filter_kit_configuration": get: summary: Get the filters currently shown on the member directory or a member space tags: - FilterKit Configuration description: Returns the resolved runtime filter configuration members currently see, including defaults and saved customizations. security: - token_auth: [] host: [] parameters: - name: context in: query required: true description: Surface to inspect. Use member_directory for the community directory or member_space for a specific members space. schema: type: string enum: - member_directory - member_space - name: space_id in: query required: false description: Members space ID. Required when context is member_space. schema: type: integer responses: '200': description: Filter configuration retrieved successfully content: application/json: schema: "$ref": "#/components/schemas/FilterResponse" '400': description: Invalid filter configuration context content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/filter_kit_controls": post: summary: Create a member filter control tags: - Filter Kit Controls description: | Creates one saved filter customisation for the member directory or a member space. Use this to hide a default filter, or use key "profile_field" with profile_field_id to show a profile field as a filter. Omit space_id for the member directory. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Filter control created successfully content: application/json: schema: "$ref": "#/components/schemas/filter_kit_control" '422': description: Filter control parameters are invalid content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: key: type: string enum: - contact_search - near_me - online - recently_joined - location - tags - profile_field - spaces - space_groups - global description: Filter to control; profile_field requires profile_field_id enabled: type: boolean description: Whether to show the filter space_id: type: integer description: Member space ID; omit for the member directory profile_field_id: type: integer description: Profile field ID; allowed only when key is profile_field sort_key: type: integer description: Optional ordering position; lower values sort first required: - key - enabled additionalProperties: false required: true description: Filter control attributes get: summary: List member directory and member space filter controls tags: - Filter Kit Controls description: Lists a community's saved filter customisations, including whether each filter is enabled and the member directory, member space, or profile field it applies to. Results are ordered by sort key. security: - token_auth: [] host: [] parameters: - name: space_id in: query schema: type: integer required: false description: Only controls for this member space - name: member_directory_only in: query schema: type: boolean required: false description: Only member-directory controls that are not scoped to a space - name: enabled in: query schema: type: boolean required: false description: Only enabled or disabled controls - name: key in: query schema: type: string enum: - contact_search - near_me - online - recently_joined - location - tags - profile_field - spaces - space_groups - global required: false description: Only controls for this filter key - name: profile_field_id in: query schema: type: integer required: false description: Only controls for this profile field - name: page in: query schema: type: integer minimum: 1 required: false description: Page number - name: per_page in: query schema: type: integer minimum: 1 maximum: 100 required: false description: Number of records per page (max 100) responses: '200': description: Filter controls listed successfully content: application/json: schema: "$ref": "#/components/schemas/filter_kit_controls_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/filter_kit_controls/{id}": delete: summary: Delete a filter control tags: - Filter Kit Controls description: Deletes one member filter kit control security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: ID of the filter control to delete responses: '200': description: Filter control deleted successfully content: application/json: examples: success: value: success: true message: Filter control removed successfully. schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Filter control not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Get a filter control tags: - Filter Kit Controls description: Retrieves a single member directory or member space filter customisation by ID. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Filter control ID responses: '200': description: Filter control retrieved successfully content: application/json: schema: "$ref": "#/components/schemas/filter_kit_control" '404': description: Filter control not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" patch: summary: Update a member directory or member space filter control tags: - Filter Kit Controls description: Updates an existing member directory or member space filter customisation. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Filter control ID. Use list_filter_kit_controls if the ID is unknown. responses: '200': description: Filter control updated successfully content: application/json: schema: "$ref": "#/components/schemas/filter_kit_control" '404': description: Filter control not found content: application/json: schema: "$ref": "#/components/schemas/error" '422': description: Invalid filter control fields content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: key: type: string enum: - contact_search - near_me - online - recently_joined - location - tags - profile_field - spaces - space_groups - global description: Filter to control. enabled: type: boolean description: Whether the filter is shown. Set false to hide it. space_id: type: integer description: Member space ID to move this control to. profile_field_id: type: integer description: Profile field ID for a profile_field control. sort_key: type: integer description: Ordering position; lower values sort first. description: Filter control fields to update "/api/admin/v2/flagged_contents": post: summary: Report Flagged Content tags: - Flagged Contents description: Report Flagged Content security: - token_auth: [] host: [] parameters: [] responses: '201': description: Flagged content reported content: application/json: examples: success: value: id: 1 status: reported_reason_type: spam reported_reason_body: This content appears to be spam reported_at: '2024-09-02T06:55:07.879Z' action_taken_at: action_reason_body: created_at: '2024-09-02T06:55:07.879Z' updated_at: '2024-09-02T06:55:07.879Z' content_id: 1 content_type: post content_authored_by_id: 2 content_authored_by_name: John Doe content_authored_by_email: john@example.com reported_by_id: 3 reported_by_name: Jane Smith reported_by_email: jane@example.com action_by_id: action_by_name: action_by_email: schema: "$ref": "#/components/schemas/flagged_content" '422': description: Invalid flagged content params content: application/json: examples: invalid_reported_reason_type: value: success: false message: Something went wrong while updating review status. error_details: reported_reason_type: - is not included in the list invalid_flagged_contentable_type: value: success: false message: Something went wrong while updating review status. error_details: content: - must exist content_type: - is not included in the list both_types_invalid: value: success: false message: Something went wrong while updating review status. error_details: content: - must exist content_type: - is not included in the list reported_reason_type: - is not included in the list schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: flagged_content: type: object properties: content_id: type: integer content_type: type: string enum: - post - comment - connect/connection - chat_room_message reported_reason_type: type: string enum: - harassment - spam - incorrect_location - against_guidelines - other reported_reason_body: type: string required: - content_id - content_type - reported_reason_type - reported_reason_body required: - flagged_content get: summary: List Flagged Contents tags: - Flagged Contents description: List Flagged Contents security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: status in: query schema: type: string enum: - all - inbox - approved - rejected required: false description: 'Status. Default: ''all''.' responses: '200': description: List Flagged Contents content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 1 records: - id: 1 status: reported_reason_type: spam reported_reason_body: This content appears to be spam reported_at: '2024-09-02T06:55:07.879Z' action_taken_at: action_reason_body: created_at: '2024-09-02T06:55:07.879Z' updated_at: '2024-09-02T06:55:07.879Z' content_authored_by_id: 2 content_authored_by_name: John Doe content_authored_by_email: john@example.com reported_by_id: 3 reported_by_name: Jane Smith reported_by_email: jane@example.com action_by_id: action_by_name: action_by_email: content_id: 1 content_type: post - id: 2 status: rejected reported_reason_type: other reported_reason_body: Contains inappropriate language reported_at: '2024-09-01T06:55:07.879Z' action_taken_at: '2024-09-02T08:30:15.123Z' action_reason_body: Content removed for violating community guidelines created_at: '2024-09-01T06:55:07.879Z' updated_at: '2024-09-02T08:30:15.123Z' content_authored_by_id: 2 content_authored_by_name: John Doe content_authored_by_email: john@example.com reported_by_id: 5 reported_by_name: Alice Johnson reported_by_email: alice@example.com action_by_id: 1 action_by_name: Admin User action_by_email: admin@example.com content_id: 1 content_type: post schema: "$ref": "#/components/schemas/flagged_contents_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/forms/{id}": delete: summary: Delete a form tags: - Forms description: Deletes a form security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Form ID responses: '200': description: Form deleted successfully content: application/json: examples: success: value: success: true message: Form deleted successfully schema: type: object properties: success: type: boolean message: type: string '404': description: Form not found content: application/json: examples: form_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: form' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: deletion_failed: value: success: false message: Failed to delete form schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show a form tags: - Forms description: Returns form details security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Form ID responses: '200': description: Form found content: application/json: examples: success: value: id: 1 uid: abc12345 after_submission_action: thank_you_page embed_display_format: inline popup_delay: 5 popup_frequency: 7 name: Contact Form redirect_url: status: draft thank_you_page_body: We're thrilled to have you as a part of our vibrant and growing community. thank_you_page_title: Thank you for subscribing! updated_at: '2025-12-01T17:01:58.306Z' submissions_count: 0 embed_styles: form: color: "#545861" backgroundColor: "#fff" button: color: "#fff" backgroundColor: "#2B2E33" standalone_page_styles: form: color: "#545861" backgroundColor: "#fff" button: color: "#fff" backgroundColor: "#2B2E33" elements: - id: 1 type: text position: 0 elementable_id: 1 parent_element_id: attributes: text_type: title value: Title schema: "$ref": "#/components/schemas/form" '404': description: Form not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: forms/form' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update a form tags: - Forms description: Updates a form with the provided parameters security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Form ID responses: '200': description: Form updated with nested elements (layout with children) content: application/json: examples: form_updated: value: id: 1 uid: 5bcd56a2 after_submission_action: redirect embed_display_format: popup popup_delay: 3 popup_frequency: 5 name: Updated Form Name redirect_url: https://example.com/thank-you status: published thank_you_page_body: We appreciate your submission. thank_you_page_title: Thank You! updated_at: '2025-12-01T17:01:58.306Z' submissions_count: 0 elements: - id: 121 position: 0 parent_element_id: type: text elementable_id: 47 attributes: text_type: title value: Title - id: 122 position: 1 parent_element_id: type: text elementable_id: 48 attributes: text_type: subtitle value: Subtitle - id: 123 position: 2 parent_element_id: type: field elementable_id: 49 attributes: field_type: contact_name label: Name placeholder: Enter name required: false hidden: false - id: 124 position: 3 parent_element_id: type: field elementable_id: 50 attributes: field_type: contact_email label: Email placeholder: required: true hidden: false - id: 125 position: 4 parent_element_id: type: button elementable_id: 25 attributes: label: Submit styles: form_updated_with_styles: value: id: 1 uid: 5bcd56a2 name: Updated Form embed_styles: form: backgroundColor: "#FFFFFF" color: "#000000" button: backgroundColor: "#007bff" color: "#FFFFFF" standalone_page_styles: form: backgroundColor: "#F5F5F5" color: "#333333" button: backgroundColor: "#28a745" color: "#FFFFFF" status: draft updated_at: '2025-12-01T17:01:58.306Z' elements: [] form_updated_with_elements: value: id: 1 uid: 5bcd56a2 name: Form with Elements status: published updated_at: '2025-12-01T17:01:58.306Z' elements: - id: 1 elementable_id: 1 type: text position: 0 attributes: text_type: title value: Updated Title - id: 2 elementable_id: 2 type: text position: 1 attributes: text_type: subtitle value: New Subtitle - id: 3 elementable_id: 3 type: field position: 2 attributes: field_type: short_answer label: New Field placeholder: Enter value required: true - id: 4 elementable_id: 4 type: button position: 3 attributes: label: Submit styles: schema: "$ref": "#/components/schemas/form" '404': description: Form not found content: application/json: examples: form_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: form' schema: "$ref": "#/components/schemas/error" '422': description: Form not updated - invalid element type content: application/json: examples: form_not_updated: value: success: false message: Unable to update form error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: "$ref": "#/components/schemas/form_update_request" required: true description: Form update parameters "/api/admin/v2/forms/{id}/duplicate": post: summary: Duplicate a form tags: - Forms security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: ID of the form to duplicate schema: type: string responses: '201': description: Form duplicated successfully content: application/json: examples: success: value: id: 2 uid: 5bcd56a2 after_submission_action: thank_you_page embed_display_format: inline popup_delay: 5 popup_frequency: 7 name: Original Form (copy) redirect_url: status: draft thank_you_page_body: We're thrilled to have you as a part of our vibrant and growing community. thank_you_page_title: Thank you for subscribing! updated_at: '2025-12-01T17:01:58.306Z' embed_styles: form: color: "#19283a" backgroundColor: "#FFFFFF" button: color: "#FFFFFF" backgroundColor: "#a40b0b" standalone_page_styles: form: color: "#545861" backgroundColor: "#fff" button: color: "#fff" backgroundColor: "#2B2E33" elements: [] schema: "$ref": "#/components/schemas/form" '404': description: Form not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: form' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: Could not duplicate this form error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/forms": get: summary: List Forms tags: - Forms security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: name in: query schema: type: string required: false description: Filter by form name responses: '200': description: List Forms content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 5 uid: 5bcd56a2 after_submission_action: thank_you_page embed_display_format: inline popup_delay: 5 popup_frequency: 7 name: First test form (copy) redirect_url: status: draft thank_you_page_body: We're thrilled to have you as a part of our vibrant and growing community. thank_you_page_title: Thank you for subscribing! updated_at: '2025-12-01T17:01:58.306Z' submissions_count: 0 embed_styles: form: color: "#19283a" backgroundColor: "#FFFFFF" button: color: "#FFFFFF" backgroundColor: "#a40b0b" standalone_page_styles: form: color: "#545861" backgroundColor: "#fff" button: color: "#fff" backgroundColor: "#2B2E33" - id: 2 uid: 44bd8ec2 after_submission_action: thank_you_page embed_display_format: inline popup_delay: 5 popup_frequency: 7 name: First test form redirect_url: status: published thank_you_page_body: We're thrilled to have you as a part of our vibrant and growing community. thank_you_page_title: Thank you for subscribing! updated_at: '2025-05-27T20:33:40.516Z' submissions_count: 0 embed_styles: form: color: "#19283a" backgroundColor: "#FFFFFF" button: color: "#FFFFFF" backgroundColor: "#a40b0b" standalone_page_styles: form: color: "#545861" backgroundColor: "#fff" button: color: "#fff" backgroundColor: "#2B2E33" schema: "$ref": "#/components/schemas/form_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/forms/{form_id}/submissions": post: summary: Create a form submission tags: - Forms security: - token_auth: [] host: [] parameters: - name: form_id in: path schema: type: integer required: true description: Form ID responses: '201': description: Created content: application/json: schema: "$ref": "#/components/schemas/form_submission_create_response" '422': description: Unprocessable Entity - invalid email content: application/json: examples: invalid_email: value: success: false message: 'Validation failed: Submission fields is invalid' error_details: - elementable_id: 1 error: is invalid schema: "$ref": "#/components/schemas/error" '404': description: Form not found content: application/json: examples: form_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: forms/form' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: email_hub_disabled: value: success: false message: You cannot perform this action. error_details: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: "$ref": "#/components/schemas/form_submission_create_request" get: summary: List form submissions tags: - Forms security: - token_auth: [] host: [] parameters: - name: form_id in: path schema: type: integer required: true description: Form ID - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page responses: '200': description: List submissions content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 1 records: - id: 17 created_at: '2026-01-02T07:41:14.634Z' fields: - field_id: 343 label: Name value: Donnie Rodriguez DDS hidden: false - field_id: 344 label: Email value: glenda@walsh.co hidden: false - id: 18 created_at: '2026-01-02T07:41:14.634Z' fields: - field_id: 343 label: Name value: Jane Smith hidden: false - field_id: 344 label: Email value: jane@smith.com hidden: false schema: "$ref": "#/components/schemas/form_submission_list" '401': description: Unauthenticated content: application/json: examples: email_hub_disabled: value: success: false message: You cannot perform this action. error_details: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/gamification/leaderboard": get: summary: Show Leaderboard tags: - Gamification description: Show Leaderboard security: - token_auth: [] host: [] parameters: - name: period in: query schema: type: string enum: - 30_days - 7_days required: false description: Leaderboard period, default is all time responses: '200': description: Show Leaderboard content: application/json: examples: success: value: - community_member_id: 1 name: John Doe public_uid: abcd1234 headline: Member headline avatar_url: http://example.com/avatar.png total_points: 10 - community_member_id: 2 name: Jane Doe public_uid: abcd1235 headline: Member headline avatar_url: http://example.com/avatar.png total_points: 20 - community_member_id: 3 name: Jamie Doe public_uid: abcd1236 headline: Member headline avatar_url: http://example.com/avatar.png total_points: 30 schema: "$ref": "#/components/schemas/leaderboard" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/spaces/{space_id}/images/posts": post: summary: Create Image Post tags: - Posts description: Create Image Post security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Image space ID responses: '200': description: Create Image Post content: application/json: examples: image_post_created: value: message: Post created. post: id: 28 status: published name: slug: test-post hide_meta_info: false published_at: '2025-07-15T05:58:29.882Z' created_at: '2025-07-15T05:58:29.882Z' updated_at: '2025-07-15T05:58:29.884Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 28 name: body body: "

Content

" record_type: Post record_id: 28 created_at: '2025-07-15T05:58:29.000Z' updated_at: '2025-07-15T05:58:29.000Z' tiptap_body: body: type: doc content: - type: paragraph content: - type: text text: Content circle_ios_fallback_text: Content circle_ios_fallback_text: Content attachments: [] inline_attachments: [] sgids_to_object_map: {} format: post community_members: [] entities: [] group_mentions: [] polls: [] url: http://reilly.circledev.net:31337/c/natus/test-post space_name: sit space_slug: natus space_id: 34 user_id: 18 user_email: tasha@bogisich-veum.name user_name: Bruno Turcotte community_id: 17 user_avatar_url: cover_image_url: cover_image: cardview_thumbnail_url: cardview_thumbnail: is_comments_closed: false custom_html: likes_count: 0 comments_count: 0 member_posts_count: 2 member_comments_count: 0 member_likes_count: 0 topics: [] gallery: id: 11 downloadable_images: false images: - id: 21 signed_id: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBKZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ed373bb5f7f53b7836603ae16b27b3d6c8876a46 original_url: http://reilly.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhNbmM0Ynpsb2JHOXFkM1V6YldkdFpuTTViSGxtTVdWM01teHBPUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUjJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW14aGJtUnpZMkZ3WlM1cWNHVm5JanNnWm1sc1pXNWhiV1VxUFZWVVJpMDRKeWRzWVc1a2MyTmhjR1V1YW5CbFp3WTdCbFE2RVdOdmJuUmxiblJmZEhsd1pVa2lEMmx0WVdkbEwycHdaV2NHT3daVU9oRnpaWEoyYVdObFgyNWhiV1U2Q1hSbGMzUT0iLCJleHAiOm51bGwsInB1ciI6ImJsb2Jfa2V5In19--ce54cc91c36354f367b70f5aebd805da730f0f0f/landscape.jpeg url: http://app.circledev.net:31337/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBKZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ed373bb5f7f53b7836603ae16b27b3d6c8876a46/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hSeVpYTnBlbVZmZEc5ZmJHbHRhWFJiQjJrQzBBZHBBdEFIT2dwellYWmxjbnNHT2dwemRISnBjRlE9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--4d801f9d6698c5e93d9a7dbb6e428fef53ffa2fc/landscape.jpeg filename: landscape.jpeg width: 100 height: 100 - id: 22 signed_id: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBKdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--61317084ad500eeb8192300061628c6336d04d02 original_url: http://reilly.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhiMnRrYUdSMGVHUjZkbXd5YURWd2RYSXhNWGxoY0ROemJIWmhPUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpTzJsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW01bGJ5NXFjR1ZuSWpzZ1ptbHNaVzVoYldVcVBWVlVSaTA0SnlkdVpXOHVhbkJsWndZN0JsUTZFV052Ym5SbGJuUmZkSGx3WlVraUQybHRZV2RsTDJwd1pXY0dPd1pVT2hGelpYSjJhV05sWDI1aGJXVTZDWFJsYzNRPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9rZXkifX0=--464bec630de2257178c11f6decc833e5b8e3b287/neo.jpeg url: http://app.circledev.net:31337/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBKdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--61317084ad500eeb8192300061628c6336d04d02/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDRG9MWm05eWJXRjBTU0lKYW5CbFp3WTZCa1ZVT2hSeVpYTnBlbVZmZEc5ZmJHbHRhWFJiQjJrQzBBZHBBdEFIT2dwellYWmxjbnNHT2dwemRISnBjRlE9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--4d801f9d6698c5e93d9a7dbb6e428fef53ffa2fc/neo.jpeg filename: neo.jpeg width: 100 height: 100 schema: "$ref": "#/components/schemas/image_post_created_response" '404': description: Author not found content: application/json: examples: author_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: slug: type: string status: type: string enum: - draft - published - scheduled is_liking_enabled: type: boolean is_comments_enabled: type: boolean topics: type: array items: type: integer tiptap_body: type: object properties: body: type: object gallery_attributes: type: object properties: images_attributes: type: array items: type: object properties: id: type: integer image: type: string width: type: integer height: type: integer downloadable_images: type: boolean user_email: type: string description: email of the author (preferred over user_id) user_id: type: integer description: id of the author is_pinned: type: boolean description: whether the post should be pinned to the top required: - gallery_attributes get: summary: List Image Posts tags: - Posts description: List Image Posts security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Image space ID - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page responses: '200': description: List Image Posts content: application/json: schema: "$ref": "#/components/schemas/image_posts_list" '404': description: Image space not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/spaces/{space_id}/images/posts/{id}": delete: summary: Delete Image Post tags: - Posts description: Delete Image Post security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Image space ID - name: id in: path schema: type: integer required: true description: Image post ID responses: '200': description: Delete Image Post content: application/json: examples: success: value: success: true message: This post has been removed from the space. schema: "$ref": "#/components/schemas/basic_post_deleted_response" '404': description: Image Post not found content: application/json: examples: error: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" get: summary: Show Image Post tags: - Posts description: Show Image Post security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Image space ID - name: id in: path schema: type: integer required: true description: Image post ID responses: '200': description: Show Image Post content: application/json: schema: "$ref": "#/components/schemas/image_post" '404': description: Image Post not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/spaces/{space_id}/images/posts/{id}/duplicate": post: summary: Duplicate Image Post tags: - Posts description: Duplicate Image Post security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Image space ID - name: id in: path schema: type: integer required: true description: Image post ID responses: '200': description: Duplicate Image Post content: application/json: examples: image_post_duplicated: value: message: Post duplicated. post: id: 29 status: draft slug: test-post-copy gallery: downloadable_images: false images: - id: 41 filename: landscape.jpeg width: 2000 height: 2000 schema: "$ref": "#/components/schemas/image_post_created_response" '404': description: Image Post not found content: application/json: examples: image_post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' non_image_post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '400': description: Duplication Failed content: application/json: examples: duplication_failed: value: success: false message: Oops! We were unable to duplicate this post. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: post: type: object properties: send_notifications: type: boolean "/api/admin/v2/invitation_links": post: summary: Create invitation link tags: - Invitation Links description: Creates an active invitation link. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Invitation link created successfully content: application/json: schema: "$ref": "#/components/schemas/invitation_link" '422': description: Invitation link parameters are invalid content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string description: Name for the invitation link redirect_space_id: type: integer description: ID of the space to open after signup access_group_ids: type: array items: type: integer description: Access group IDs to attach. Presence, including an empty array, selects access-group mode member_tag_ids: type: array items: type: integer description: Member tag IDs to apply when the link is used paywall: type: - object - 'null' description: Optional paywall configuration properties: paywall_id: type: integer description: Paywall ID; requires paywall_price_id and paywall_trial_days paywall_price_id: type: integer description: Eligible recurring paywall price ID paywall_trial_days: type: integer minimum: 1 maximum: 730 description: Free trial length in days paywall_coupon_code: type: string description: Optional coupon code for the paywall trial required: - name required: true description: Invitation link attributes get: summary: List Invitation Links tags: - Invitation Links security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: name in: query schema: type: string required: false description: Filter by invitation link name - name: status in: query schema: type: string enum: - active - revoked required: false description: Filter by invitation link status responses: '200': description: List of Invitation Links content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 3 page_count: 1 records: - id: 1 name: Beta Testers redemption_url: https://example.circle.so/join?invitation_token=token created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' access_group_ids: [] member_tag_ids: [] active: false members_joined_count: 0 redirect_space_id: - id: 2 name: Marketing Team redemption_url: https://example.circle.so/join?invitation_token=token created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' access_group_ids: [] member_tag_ids: [] active: true members_joined_count: 0 redirect_space_id: - id: 3 name: Family Invitation redemption_url: https://example.circle.so/join?invitation_token=token created_at: '2024-01-01T00:00:00.000Z' updated_at: '2024-01-01T00:00:00.000Z' access_group_ids: [] member_tag_ids: [] active: true members_joined_count: 0 redirect_space_id: schema: "$ref": "#/components/schemas/invitation_links_list" '400': description: Bad Request content: application/json: examples: invalid_status: value: success: false message: 'Invalid status. Valid statuses are: active, revoked' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/invitation_links/{id}": delete: summary: Delete invitation link tags: - Invitation Links description: Delete an invitation link by setting its status to deleted security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Invitation link ID responses: '200': description: Invitation link deleted successfully content: application/json: examples: success: value: message: Invitation link deleted successfully '404': description: Invitation link not found content: application/json: examples: invitation_link_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: invitation link' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: deletion_failed: value: success: false message: There was an error deleting your invite link. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update invitation link tags: - Invitation Links description: Updates an invitation link. security: - token_auth: [] host: [] parameters: - name: id in: path required: true schema: type: integer description: Invitation link ID responses: '200': description: Invitation link updated successfully content: application/json: schema: "$ref": "#/components/schemas/invitation_link" '422': description: Invitation link parameters are invalid content: application/json: schema: "$ref": "#/components/schemas/error" '400': description: Invitation link foreign key parameter is invalid content: application/json: schema: "$ref": "#/components/schemas/error" '404': description: Invitation link not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string description: Name for the invitation link redirect_space_id: type: - integer - 'null' description: ID of the space to open after signup. Set to null to remove the existing redirect access_group_ids: type: array items: type: integer description: Access group IDs to attach; fully replaces the current set (empty array detaches all) member_tag_ids: type: array items: type: integer description: Member tag IDs to apply when the link is used paywall: type: - object - 'null' description: Paywall configuration. Set to null to remove the existing paywall configuration properties: paywall_id: type: integer description: Paywall ID; requires paywall_price_id and paywall_trial_days paywall_price_id: type: integer description: Eligible recurring paywall price ID paywall_trial_days: type: integer minimum: 1 maximum: 730 description: Free trial length in days paywall_coupon_code: type: string description: Optional coupon code for the paywall trial required: true description: Invitation link attributes to update "/api/admin/v2/invitation_links/{id}/revoke": patch: summary: Revoke invitation link tags: - Invitation Links description: Revokes an invitation link security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Invitation link ID responses: '200': description: Invitation link revoked successfully content: application/json: examples: success: value: message: Invitation link revoked successfully '404': description: Invitation link not found content: application/json: examples: invitation_link_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: invitation link' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: revocation_failed: value: success: false message: There was an error revoking the invitation link error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/live/rooms": get: summary: List Live Rooms tags: - Live description: Returns a paginated list of live rooms for the community. security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page responses: '200': description: Returns a list of live rooms content: application/json: examples: success: value: page: 1 per_page: 20 has_next_page: false count: 2 page_count: 2 records: - id: 2 name: Room 2 status: active room_type: stream created_at: '2024-09-10T12:39:32.225Z' live_at: closed_at: recording_enabled: false slug: some-uuid-2 - id: 1 name: Room 1 status: active room_type: stream created_at: '2024-09-10T12:39:32.191Z' live_at: closed_at: recording_enabled: false slug: some-uuid-1 empty: value: page: 1 per_page: 20 has_next_page: false count: 0 page_count: 0 records: [] schema: "$ref": "#/components/schemas/live_room_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/live/rooms/{room_id}/transcripts": get: summary: List Live Room Transcripts tags: - Live description: Returns the raw VTT transcripts for a given live room. Transcripts are sourced from the recording blob's media transcript via a polymorphic association. security: - token_auth: [] host: [] parameters: - name: room_id in: path schema: type: integer required: true description: Live Room ID responses: '200': description: Returns the transcripts content: application/json: examples: success: value: transcripts: - | WEBVTT 00:00:00.500 --> 00:00:02.000 The Web is always changing 00:00:02.500 --> 00:00:04.300 and the way we access it is changing no_recording: value: transcripts: [] transcript_disabled: value: transcripts: [] transcript_not_ready: value: transcripts: [] multiple_recordings: value: transcripts: - | WEBVTT 00:00:00.500 --> 00:00:02.000 The Web is always changing 00:00:02.500 --> 00:00:04.300 and the way we access it is changing - | WEBVTT 00:00:00.500 --> 00:00:02.000 The Web is always changing 00:00:02.500 --> 00:00:04.300 and the way we access it is changing schema: type: object properties: transcripts: type: array items: type: string required: - transcripts '404': description: Live room not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: Live::Room' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/locations/search": get: summary: Search locations tags: - Locations description: Resolves a free-text location query into geocoded candidates via Mapbox. Read-only lookup used to resolve a place before setting a location profile field or filtering contacts by geo_location. security: - token_auth: [] host: [] parameters: - name: query in: query required: true description: Free-text location query (e.g. 'San Francisco, CA' or 'Berlin'). schema: type: string responses: '200': description: Returns matching location candidates content: application/json: schema: "$ref": "#/components/schemas/location_search_results" '422': description: Missing or blank location query content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/member_tags": post: summary: Create Member Tag tags: - Member Tags description: Creates a new member tag security: - token_auth: [] host: [] parameters: [] responses: '201': description: Member tag created successfully content: application/json: examples: member_tag_created: value: color: "#0ce806" display_format: label name: Created Tag Name display_locations: post_bio: true profile_page: true member_directory: true is_public: true is_background_enabled: true created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' id: 1 tagged_members_count: 1 emoji: "\U0001F929" custom_emoji_url: custom_emoji_dark_url: schema: "$ref": "#/components/schemas/member_tag" '422': description: Invalid member tag params content: application/json: examples: invalid_member_tag_params: value: success: false message: Unable to save member tag error_details: name: - can't be blank invalid_custom_emoji: value: success: false message: Unable to save member tag error_details: custom_emoji: - is invalid schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: color: type: string example: "#0ce806" display_format: type: string enum: - label - icon example: label emoji: type: string example: "\U0001F929" is_background_enabled: type: boolean is_public: type: boolean name: type: string example: Updated Tag display_locations: type: object properties: member_directory: type: boolean post_bio: type: boolean profile_page: type: boolean custom_emoji: type: object properties: emoji_type: type: string enum: - emoji - custom - shapes emoji: type: string example: "\U0001F929" identifier: type: string example: shape-circle-cyan signed_id: type: string example: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJB required: true description: Member tag params get: summary: Member Tags List tags: - Member Tags security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Number of records per page schema: type: integer - name: name in: query required: false description: Name of the member tag schema: type: string - name: is_public in: query required: false description: Whether the member tag is public schema: type: boolean - name: sort in: query description: Sorting parameters (sort by name in ascending order, name in descending order, and by newest. Default is oldest) required: false schema: type: string enum: - oldest - newest - alphabetical - alphabetical_desc responses: '200': description: Retrieves a list of member tags for a community content: application/json: schema: "$ref": "#/components/schemas/member_tags_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/member_tags/{id}": delete: summary: Deletes a member tag tags: - Member Tags security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Member tag ID responses: '200': description: Member tag deleted successfully content: application/json: examples: success: value: success: true message: Member tag deleted schema: type: object properties: success: type: boolean message: type: string '404': description: Member tag not found content: application/json: examples: member_tag_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: member tag' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Shows a member tag's details tags: - Member Tags security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Member tag ID responses: '200': description: Member tag retrieved successfully content: application/json: examples: success: value: color: "#0ce806" display_format: label name: vips display_locations: post_bio: true profile_page: true member_directory: true is_public: true is_background_enabled: true created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' id: 1 tagged_members_count: 1 emoji: "\U0001F606" custom_emoji_url: custom_emoji_dark_url: schema: "$ref": "#/components/schemas/member_tag" '404': description: Member tag not found content: application/json: examples: member_tag_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: member tag' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update member tag tags: - Member Tags description: Updates a member tag security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Member tag ID responses: '200': description: Member tag updated successfully content: application/json: examples: member_tag_updated: value: color: "#0ce806" display_format: label name: Updated Tag Name display_locations: post_bio: true profile_page: true member_directory: true is_public: true is_background_enabled: true created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' id: 1 tagged_members_count: 1 emoji: "\U0001F929" custom_emoji_url: custom_emoji_dark_url: schema: "$ref": "#/components/schemas/member_tag" '422': description: Invalid member tag params content: application/json: examples: invalid_member_tag_params: value: success: false message: Unable to save member tag error_details: name: - can't be blank invalid_custom_emoji: value: success: false message: Unable to save member tag error_details: custom_emoji: - is invalid schema: "$ref": "#/components/schemas/error" '404': description: Member tag not found content: application/json: examples: member_tag_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: member tag' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: color: type: string example: "#0ce806" display_format: type: string enum: - label - icon example: label emoji: type: string example: "\U0001F929" is_background_enabled: type: boolean is_public: type: boolean name: type: string example: Updated Tag display_locations: type: object properties: member_directory: type: boolean post_bio: type: boolean profile_page: type: boolean custom_emoji: type: object properties: emoji_type: type: string enum: - emoji - custom - shapes emoji: type: string example: "\U0001F929" identifier: type: string example: shape-circle-cyan signed_id: type: string example: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJB required: true description: Member tag params "/api/admin/v2/messages": post: summary: Create Message tags: - Messages description: Create Message security: - token_auth: [] host: [] parameters: [] responses: '200': description: Message created content: application/json: examples: message_created: value: message: Message sent chat_room_message: id: 1 parent_message_id: edited_at: created_at: '2024-10-21T09:50:33.282Z' chat_room_uuid: ef97ad3f-e3fb-46b9-a060-041a4b9a64dd chat_room_participant_id: 2 body: "Hi ,\nHow was your weekend?\nPlease check out https://www.google.com/ when you have a moment. \nAlso, we should create a community on circle.so." bookmark_id: rich_text_body: body: type: doc content: - type: paragraph content: - type: text text: 'Hi ' circle_ios_fallback_text: 'Hi ' - type: mention attrs: sgid: BAh7CEkiCGdpZAY6BkVUSSI7Z2lkOi8vanVtcHN0YXJ0LWFwcC9Db21tdW5pdHlNZW1iZXIvMjQ1OTQ1Mz9leHBpcmVzX2luBjsAVEkiDHB1cnBvc2UGOwBUSSIUcmljaF90ZXh0X2ZpZWxkBjsAVEkiD2V4cGlyZXNfYXQGOwBUMA==--f710f267c8c35bc29d3c934399d1c785cf96358b - type: mention attrs: sgid: BAh7CEkiCGdpZAY6BkVUSSI4Z2lkOi8vanVtcHN0YXJ0LWFwcC9Db21tdW5pdHlNZW1iZXIvMjA3Mj9leHBpcmVzX2luBjsAVEkiDHB1cnBvc2UGOwBUSSIUcmljaF90ZXh0X2ZpZWxkBjsAVEkiD2V4cGlyZXNfYXQGOwBUMA==--621f2efb40b175a8aeedbc510eeec52fbc4397d3 - type: text text: "," circle_ios_fallback_text: "," - type: hardBreak circle_ios_fallback_text: "\n" - type: text text: How was your weekend? circle_ios_fallback_text: How was your weekend? - type: hardBreak circle_ios_fallback_text: "\n" - type: text text: 'Please check out ' circle_ios_fallback_text: 'Please check out ' - type: text marks: - type: link attrs: href: https://www.google.com/ target: _blank text: https://www.google.com/ circle_ios_fallback_text: https://www.google.com/ - type: text text: " when you have a moment. " circle_ios_fallback_text: " when you have a moment. " - type: hardBreak circle_ios_fallback_text: "\n" - type: text text: 'Also, we should create a community on ' circle_ios_fallback_text: 'Also, we should create a community on ' - type: text marks: - type: link attrs: href: http://circle.so/ target: _blank text: circle.so circle_ios_fallback_text: circle.so - type: text text: "." circle_ios_fallback_text: "." circle_ios_fallback_text: "Hi ,\nHow was your weekend?\nPlease check out https://www.google.com/ when you have a moment. \nAlso, we should create a community on circle.so." attachments: [] inline_attachments: [] sgids_to_object_map: {} format: chat community_members: [] entities: [] group_mentions: [] polls: [] sent_at: '2024-10-21T09:50:33.282Z' sender: id: 2 name: Clair Ziemann community_member_id: 1 user_public_uid: ad33e5ec avatar_url: chat_thread_id: reactions: [] embedded_chat_message_access: [] can_report: false can_review: false in_review: false '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable entity content: application/json: examples: unprocessable_content: value: success: false message: Failed to create chat room. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Not found content: application/json: schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: rich_text_body: "$ref": "#/components/schemas/rich_text_body" user_email: type: string user_emails: type: array items: type: string chat_room_uuid: type: string parent_message_id: type: integer oneOf: - required: - user_email - rich_text_body - required: - user_emails - rich_text_body - required: - chat_room_uuid - rich_text_body "/api/admin/v2/page_profile_fields": get: summary: Get Page Profile Fields tags: - Page Profile Fields description: Get Page Profile Fields security: - token_auth: [] host: [] parameters: - name: page_name in: query schema: type: string enum: - signup - edit_profile - profile_view - community_view required: true description: Page name responses: '200': description: Page Profile Fields content: application/json: examples: success: value: - id: 2 label: Label field_type: number key: profile_field_key_2 placeholder: description: required: false allow_null: false platform_field: false number_options: id: 1 format: number decimal: 2 position: text: choices: [] - id: 1 label: Label field_type: select key: profile_field_key_1 placeholder: description: required: false allow_null: false platform_field: false number_options: choices: - id: 1 value: Choice 1 schema: "$ref": "#/components/schemas/page_profile_fields" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/payment_method_setting": get: summary: Retrieves the community's payment method preferences tags: - Payment Method Settings description: Returns the enabled/disabled state and Stripe capability status for every supported payment method (Apple Pay, Google Pay, card, Klarna, Afterpay/Clearpay, Affirm, Bancontact, iDEAL, Pix, SEPA Debit, Link) for the community's connected Stripe account. security: - token_auth: [] host: [] responses: '200': description: Payment method preferences retrieved successfully content: application/json: schema: "$ref": "#/components/schemas/payment_method_preferences_list" '422': description: The payment method preferences could not be resolved content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywall_affiliate_payouts/export": post: summary: Export Paywall Affiliate Payouts tags: - Paywall Affiliate Payouts description: Creates a background task that exports processing affiliate payouts to a CSV, optionally scoped to specific community members security: - token_auth: [] host: [] parameters: [] responses: '201': description: Export task created content: application/json: schema: "$ref": "#/components/schemas/paywall_affiliate_payout_export" '422': description: Unprocessable content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: community_member_ids: type: array items: type: integer maxItems: 20 example: - 1 - 2 description: Community member IDs to scope the export to (max 20 per request). Omit to export all processing payouts. description: Optional payout scope "/api/admin/v2/paywall_affiliate_payouts/mark_paid": post: summary: Mark Paywall Affiliate Payouts Paid tags: - Paywall Affiliate Payouts description: Moves processing affiliate payouts to paid, optionally scoped to specific community members security: - token_auth: [] host: [] parameters: [] responses: '200': description: Payouts marked as paid content: application/json: schema: type: object properties: expected: type: integer example: 2 processed: type: integer example: 2 required: - expected - processed '422': description: Unprocessable content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: community_member_ids: type: array items: type: integer maxItems: 20 example: - 1 - 2 description: Community member IDs to scope the mark-paid to (max 20 per request). Omit to mark all processing payouts as paid. description: Optional payout scope "/api/admin/v2/paywall_affiliate_payouts/start": post: summary: Start Paywall Affiliate Payouts tags: - Paywall Affiliate Payouts description: Moves due affiliate payouts to processing, optionally scoped to specific community members security: - token_auth: [] host: [] parameters: [] responses: '200': description: Payouts moved to processing content: application/json: schema: type: object properties: processing: type: integer example: 2 required: - processing '422': description: Unprocessable content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: community_member_ids: type: array items: type: integer maxItems: 20 example: - 1 - 2 description: Community member IDs to scope the start to (max 20 per request). Omit to start all due payouts. description: Optional payout scope "/api/admin/v2/paywall_affiliates": get: summary: Paywall Affiliates List tags: - Paywall Affiliates description: Searches affiliates for a community security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Records per page (max 100) schema: type: integer - name: filters in: query schema: type: object properties: status: type: string campaign_id: type: integer name_or_email: type: string code: type: string style: deepObject explode: true required: false description: Filters responses: '200': description: Retrieves a list of affiliates for a community content: application/json: schema: "$ref": "#/components/schemas/paywall_affiliates_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywall_affiliates/invite": post: summary: Invite Paywall Affiliates tags: - Paywall Affiliates description: Invites existing community members to the affiliate program security: - token_auth: [] host: [] parameters: [] responses: '200': description: Invites sent content: application/json: schema: type: object properties: results: type: array description: Grouped by outcome (invited, then reinvited, then already_active, then failed) -- not the order of the input existing_member_ids. items: type: object properties: community_member_id: type: integer status: type: string enum: - invited - reinvited - already_active - failed error: type: string summary: type: object properties: invited: type: integer reinvited: type: integer already_active: type: integer failed: type: integer '422': description: Affiliates feature disabled content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: existing_member_ids: type: array items: type: integer maxItems: 20 description: Community member IDs to invite (max 20 per request). Must belong to the current community. required: - existing_member_ids required: true description: Invite params "/api/admin/v2/paywall_affiliates/{id}": patch: summary: Update Paywall Affiliate tags: - Paywall Affiliates description: Updates an affiliate's status security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Affiliate ID responses: '200': description: Affiliate updated successfully content: application/json: schema: "$ref": "#/components/schemas/paywall_affiliate" '422': description: Illegal status transition content: application/json: examples: unprocessable_content: value: success: false message: This affiliate can only be updated to status 'enrolled'. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Affiliate not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywalls/affiliate' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: status: type: string example: disabled required: true description: Affiliate status params "/api/admin/v2/paywall_coupons/{id}": delete: summary: Deletes a paywall coupon tags: - Paywall Coupons description: Deletes a paywall coupon. Removes any Stripe-side coupon and invalidates offers that reference it. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Paywall coupon ID responses: '200': description: Paywall coupon deleted successfully content: application/json: examples: success: value: success: true message: Coupon deleted schema: type: object properties: success: type: boolean message: type: string '404': description: Paywall coupon not found (nonexistent or already deleted) content: application/json: examples: paywall_coupon_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall coupon' schema: "$ref": "#/components/schemas/error" '422': description: Stripe outage prevents the coupon from being deleted content: application/json: examples: processor_sync_failed: value: success: false message: This coupon could not be synced to your Stripe account. Please contact support@circle.so. error_details: This coupon could not be synced to your Stripe account. Please contact support@circle.so. schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywall_groups": post: summary: Create Subscription Group tags: - Paywall Groups description: Creates a new subscription group (paywall group) for the community. Paywalls with subscription prices can be added to a subscription group to allow members to upgrade/downgrade between them. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Subscription group created successfully content: application/json: examples: success: value: id: 1 name: Premium Memberships currency_id: 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/paywall_group" '422': description: Invalid subscription group params content: application/json: examples: invalid_params: value: success: false message: Unable to save subscription group error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string example: Premium Memberships currency_id: type: integer example: 1 description: ID of the currency the group's paywalls are priced in required: - name - currency_id required: true description: Subscription group params "/api/admin/v2/paywall_groups/{id}": put: summary: Update Subscription Group tags: - Paywall Groups description: Updates a subscription group's name. The currency can only be changed while the group has no paywalls attached to it. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Subscription group ID responses: '200': description: Subscription group updated successfully content: application/json: examples: success: value: id: 1 name: Renamed Group currency_id: 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/paywall_group" '422': description: Invalid subscription group params content: application/json: examples: invalid_params: value: success: false message: Unable to save subscription group error_details: name: - can't be blank schema: "$ref": "#/components/schemas/error" '404': description: Subscription group not found content: application/json: examples: paywall_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall group' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string example: Premium Memberships currency_id: type: integer example: 1 description: ID of the currency the group's paywalls are priced in required: true description: Subscription group params "/api/admin/v2/paywalls/search": get: summary: Search Paywalls tags: - Paywalls description: Searches paywalls for a community security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Records per page (max 100) schema: type: integer - name: name in: query required: false description: Filter by paywall name or display name (partial match) schema: type: string - name: status in: query required: false description: Comma-separated list of statuses (e.g. draft,active,inactive) schema: type: string - name: currency in: query required: false description: Comma-separated list of currency codes schema: type: string - name: paywall_id in: query required: false description: Comma-separated list of paywall IDs to include schema: type: string - name: exclude_paywall_id in: query required: false description: Comma-separated list of paywall IDs to exclude schema: type: string - name: subscription_group_id in: query required: false description: Comma-separated list of subscription group IDs to include schema: type: string - name: exclude_subscription_group_id in: query required: false description: Comma-separated list of subscription group IDs to exclude schema: type: string - name: sort in: query required: false description: 'Sort field (one of: title, status, created_at). Defaults to created_at' schema: type: string - name: direction in: query required: false description: Sort direction (asc or desc). Defaults to desc. Only takes effect when sort is also given -- direction alone is ignored schema: type: string responses: '200': description: Retrieves a list of paywalls for a community content: application/json: schema: "$ref": "#/components/schemas/paywalls_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywalls/{id}": delete: summary: Deletes a paywall tags: - Paywalls description: Permanently deletes a paywall. Fails if the paywall has real transactions -- archive it instead. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Paywall ID responses: '200': description: Paywall deleted successfully content: application/json: examples: success: value: success: true message: Paywall was deleted. schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Paywall not found (nonexistent, already deleted, or belongs to another community) content: application/json: examples: paywall_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: not_authorized: value: success: false message: You cannot perform this action. error_details: {} unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Paywall cannot be deleted (has real transactions) content: application/json: examples: not_destroyable: value: success: false message: This Paywall cannot be deleted as it has associated charges. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywalls/{id}/archive": put: summary: Archives a paywall tags: - Paywalls description: | Archives a paywall (sets it inactive). Only an already-published (active) paywall can be archived -- a draft paywall must be published or deleted instead, and an already-archived paywall returns an error. Warning: archiving a paywall irreversibly discards every kept upsell offer where this paywall is either the host or the target, along with each discarded offer's prices and customization attachments. Unarchiving the paywall later does not restore these offers. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Paywall ID responses: '200': description: Paywall archived successfully, discarding kept upsell offers where the paywall is host or target content: application/json: examples: success: value: success: true message: Paywall was archived. schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Paywall not found (nonexistent, already deleted, or belongs to another community) content: application/json: examples: paywall_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: not_authorized: value: success: false message: You cannot perform this action. error_details: {} unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Paywall cannot be archived (invalid current state) content: application/json: examples: already_archived: value: success: false message: Paywall is already archived. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywalls/{id}/publish": put: summary: Publishes a paywall tags: - Paywalls description: Publishes a draft or archived paywall, making it active. Fails if the paywall is already active. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Paywall ID responses: '200': description: Paywall published successfully content: application/json: examples: success: value: success: true message: Paywall was published. schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Paywall not found (nonexistent, already deleted, or belongs to another community) content: application/json: examples: paywall_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: not_authorized: value: success: false message: You cannot perform this action. error_details: {} unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Paywall cannot be published (already active) content: application/json: examples: already_active: value: success: false message: Paywall is already published. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/paywalls/{id}/unarchive": put: summary: Unarchives a paywall tags: - Paywalls description: | Unarchives a paywall, republishing it (sets it back to active). Only an already-archived (inactive) paywall can be unarchived. This does not restore upsell offers discarded by a prior archive -- that offer discard is irreversible. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Paywall ID responses: '200': description: Paywall unarchived successfully content: application/json: examples: success: value: success: true message: Paywall was unarchived. schema: type: object properties: success: type: boolean message: type: string required: - success - message '404': description: Paywall not found (nonexistent, already deleted, or belongs to another community) content: application/json: examples: paywall_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: paywall' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: not_authorized: value: success: false message: You cannot perform this action. error_details: {} unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Paywall cannot be unarchived (not currently archived) content: application/json: examples: not_archived: value: success: false message: Only archived paywalls can be unarchived. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/posts/{post_id}/post_followers": delete: summary: Unfollow a post tags: - Post Followers description: Unfollow a post security: - token_auth: [] host: [] parameters: - name: post_id in: path required: true description: Post ID schema: type: integer - name: community_member_id in: query required: true description: Community Member ID schema: type: integer responses: '200': description: Post unfollowed content: application/json: examples: success: value: success: true message: Post unfollowed for the provided member. '404': description: Post not found content: application/json: examples: post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' community_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: community member' post_follower_not_found: value: success: false message: Post follower record could not be found for the provided member ID. error_details: {} '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. error_details: {} '422': description: Unprocessable entity content: application/json: examples: unprocessable_content: value: success: false message: Post could not be unfollowed. Please contact support@circle.so if you think this is an error. error_details: {} "/api/admin/v2/posts": post: summary: Create Basic Post tags: - Posts description: Creates a basic post in a basic-type space. Use tiptap_body instead of body_html for rich text content. security: - token_auth: [] host: [] parameters: [] responses: '200': description: Create Post content: application/json: examples: success: value: message: Post created. post: id: 2 status: published name: ullam slug: ullam comments_count: 0 hide_meta_info: false published_at: '2024-07-01T10:44:32.659Z' created_at: '2024-07-01T10:44:32.659Z' updated_at: '2024-07-01T10:44:32.661Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 2 name: body body: "

Test

" record_type: Post record_id: 2 created_at: '2024-08-05T05:07:04.000Z' updated_at: '2024-08-05T05:07:04.000Z' tiptap_body: body: type: doc content: - type: paragraph content: - type: text text: Test circle_ios_fallback_text: Test circle_ios_fallback_text: Test attachments: [] inline_attachments: [] sgids_to_object_map: {} format: post community_members: [] entities: [] group_mentions: [] polls: [] url: http://torphy.circledev.net:31337/c/in/ullam space_name: distinctio space_slug: in space_id: 1 user_id: 2 user_email: antonina@hills-jaskolski.org user_name: Ellis Oberbrunner community_id: 1 user_avatar_url: cover_image_url: cover_image: cardview_thumbnail_url: cardview_thumbnail: is_comments_closed: false custom_html: "
Hello world
" likes_count: 0 member_posts_count: 2 member_comments_count: 0 member_likes_count: 0 topics: [] schema: "$ref": "#/components/schemas/basic_post_created_response" '404': description: Author not found content: application/json: examples: author_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: space_id: type: integer status: type: string enum: - draft - published - scheduled name: type: string slug: type: string tiptap_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object properties: type: type: string text: type: string nullable: true marks: type: array items: type: object attrs: type: object required: - type - content cover_image: type: string description: signed_id of the cover image internal_custom_html: type: string is_truncation_disabled: type: boolean is_comments_closed: type: boolean is_comments_enabled: type: boolean is_liking_enabled: type: boolean hide_meta_info: type: boolean hide_from_featured_areas: type: boolean meta_title: type: string meta_description: type: string opengraph_title: type: string opengraph_description: type: string published_at: type: string created_at: type: string topics: type: array items: type: integer skip_notifications: type: boolean is_pinned: type: boolean user_email: type: string description: email of the author (preferred over user_id) user_id: type: integer description: id of the author required: - space_id - name get: summary: List Basic Posts tags: - Posts description: List Basic Posts security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: space_id in: query schema: type: integer required: false description: Basic type space ID - name: space_group_id in: query schema: type: integer required: false description: Space Group ID - name: status in: query schema: type: string enum: - draft - published - scheduled - all required: false description: Post status - name: search_text in: query schema: type: string required: false description: Search text - name: sort in: query schema: type: string enum: - oldest - latest - alphabetical - likes - latest_updated - oldest_updated required: false description: Sort by responses: '200': description: List Posts content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 status: published name: Second post slug: kiehn comments_count: 0 hide_meta_info: false published_at: '2024-06-27T08:31:30.777Z' created_at: '2024-06-27T08:31:30.781Z' updated_at: '2024-06-27T08:31:30.784Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 2 name: body body: "
Iusto sint asperiores sed.
" record_type: Post record_id: 2 created_at: '2024-06-27T08:31:30.000Z' updated_at: '2024-06-27T08:31:30.000Z' url: http://dickinson.circledev.net:31337/c/post/kiehn space_name: post space_slug: post space_id: 1 user_id: 6 user_email: lyndon@frami.info user_name: Rory Wyman community_id: 1 user_avatar_url: https://example.com/avatar.png cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cover_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa cardview_thumbnail_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cardview_thumbnail: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa is_comments_closed: false custom_html: "
Click Me!
" likes_count: 0 member_posts_count: 2 member_comments_count: 0 member_likes_count: 0 topics: - 12 - 43 - 54 - id: 1 status: published name: First post slug: ryan-brown hide_meta_info: false published_at: '2024-06-27T08:31:30.577Z' comments_count: 0 created_at: '2024-06-27T08:31:30.598Z' updated_at: '2024-06-27T08:31:30.602Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 2 name: body body: "

Test

" record_type: Post record_id: 2 created_at: '2024-08-05T05:07:04.000Z' updated_at: '2024-08-05T05:07:04.000Z' tiptap_body: body: type: doc content: - type: paragraph content: - type: text text: Test circle_ios_fallback_text: Test circle_ios_fallback_text: Test attachments: [] inline_attachments: [] sgids_to_object_map: {} format: post community_members: [] entities: [] group_mentions: [] polls: [] url: http://dickinson.circledev.net:31337/c/post/ryan-brown space_name: post space_slug: post space_id: 1 user_id: 3 user_email: delena@klein.net user_name: Stacey Schamberger PhD community_id: 1 user_avatar_url: https://example.com/avatar.png cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cover_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa cardview_thumbnail_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cardview_thumbnail: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa is_comments_closed: false custom_html: "
Hello World!
" likes_count: 0 member_posts_count: 2 member_comments_count: 0 member_likes_count: 0 topics: - 55 - 54 - 65 schema: "$ref": "#/components/schemas/posts_list" "/api/admin/v2/posts/{id}": delete: summary: Delete Basic Post tags: - Posts description: Delete Basic Post security: - token_auth: [] host: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: Delete Post content: application/json: examples: success: value: success: true message: This post has been removed from the space. schema: "$ref": "#/components/schemas/basic_post_deleted_response" get: summary: Show Basic Post tags: - Posts description: Show Basic Post security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Post ID responses: '200': description: Show Post content: application/json: examples: success: value: id: 2 status: published name: Second post slug: kiehn comments_count: 0 hide_meta_info: false published_at: '2024-06-27T08:31:30.777Z' created_at: '2024-06-27T08:31:30.781Z' updated_at: '2024-06-27T08:31:30.784Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 2 name: body body: "

Test

" record_type: Post record_id: 2 created_at: '2024-08-05T05:07:04.000Z' updated_at: '2024-08-05T05:07:04.000Z' tiptap_body: body: type: doc content: - type: paragraph content: - type: text text: Test circle_ios_fallback_text: Test circle_ios_fallback_text: Test attachments: [] inline_attachments: [] sgids_to_object_map: {} format: post community_members: [] entities: [] group_mentions: [] polls: [] url: http://dickinson.circledev.net:31337/c/post/kiehn space_name: post space_slug: post space_id: 1 user_id: 6 user_email: lyndon@frami.info user_name: Rory Wyman community_id: 1 user_avatar_url: https://example.com/avatar.png cover_image_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cover_image: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa cardview_thumbnail_url: http://login.circledev.net/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhOMlk1ZURWNGRXSmlPR0Z3WnpCck1tdzNjbmR4ZURocE4zTnllUVk2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--de2ca9f5695147b886fe65a18179e53f445d42cb/picsum.jpeg cardview_thumbnail: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--705b374a95b895bfd07289c5a26f002d24650efa is_comments_closed: false custom_html: "
Click Me!
" likes_count: 0 member_posts_count: 2 member_comments_count: 0 member_likes_count: 0 topics: - 12 - 43 - 54 summary: '#' schema: "$ref": "#/components/schemas/basic_post" '404': description: Post not found content: application/json: examples: error: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" put: summary: Update Basic Post tags: - Posts description: Update Basic Post security: - token_auth: [] host: [] parameters: - name: id in: path required: true schema: type: string responses: '200': description: Update Post content: application/json: examples: success: value: success: true message: Post updated. post: id: 1 status: published name: deserunt slug: wintheiser comments_count: 0 hide_meta_info: false published_at: '2024-07-01T15:41:09.277Z' created_at: '2024-07-01T15:41:09.297Z' updated_at: '2024-07-01T15:41:09.678Z' is_comments_enabled: true is_liking_enabled: true flagged_for_approval_at: body: id: 2 name: body body: "

Test

" record_type: Post record_id: 2 created_at: '2024-08-05T05:07:04.000Z' updated_at: '2024-08-05T05:07:04.000Z' tiptap_body: body: type: doc content: - type: paragraph content: - type: text text: Another Test circle_ios_fallback_text: Another Test circle_ios_fallback_text: Test attachments: [] inline_attachments: [] sgids_to_object_map: {} format: post community_members: [] entities: [] group_mentions: [] polls: [] url: http://price.circledev.net:31337/c/similique/wintheiser space_name: laboriosam space_slug: similique space_id: 1 user_id: 2 user_email: zola.brekke@sporer-barrows.com user_name: Clay Schamberger II community_id: 1 user_avatar_url: cover_image_url: cover_image: cardview_thumbnail_url: cardview_thumbnail: is_comments_closed: false custom_html: "
Hello world
" likes_count: 0 member_posts_count: 1 member_comments_count: 0 member_likes_count: 0 topics: [] schema: "$ref": "#/components/schemas/basic_post_updated_response" requestBody: content: application/json: schema: type: object properties: tiptap_body: type: object properties: body: type: object properties: type: type: string content: type: array items: type: object properties: type: type: string text: type: string nullable: true marks: type: array items: type: object attrs: type: object required: - type - content description: The Tiptap body will be updated only for posts that already contain a Tiptap body. If the post does not have a Tiptap body, the tiptap_body will be ignored. name: type: string cover_image: type: string description: signed_id of the cover image internal_custom_html: type: string is_truncation_disabled: type: boolean is_comments_closed: type: boolean is_comments_enabled: type: boolean is_liking_enabled: type: boolean hide_meta_info: type: boolean hide_from_featured_areas: type: boolean meta_title: type: string meta_description: type: string opengraph_title: type: string opengraph_description: type: string published_at: type: string topics: type: array items: type: integer skip_notifications: type: boolean is_pinned: type: boolean "/api/admin/v2/posts/{post_id}/summary": get: summary: Get Post Summary tags: - Posts description: Retrieve AI-generated summary for a specific post security: - token_auth: [] host: [] parameters: - name: post_id in: path schema: type: integer required: true description: Post ID responses: '200': description: Returns post summary content: application/json: examples: success: value: overview: This is a brief overview of the post content: This is the detailed content of the summary with comprehensive information. schema: "$ref": "#/components/schemas/ai_summary" '404': description: Post not found content: application/json: examples: no_summary: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: ai summary' summaries_disabled: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: AiSummary' post_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: post' schema: "$ref": "#/components/schemas/error" '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. schema: "$ref": "#/components/schemas/error" "/api/admin/v2/profile_fields/{id}/archive": put: summary: Archive Profile Field tags: - Profile Fields security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Profile field ID responses: '200': description: Profile field archived content: application/json: examples: success: value: success: true message: Profile field archived successfully. schema: type: object properties: success: type: boolean message: type: string '422': description: Unable to archive profile field content: application/json: examples: unprocessable_content: value: success: false message: Can't archive profile field. There are some errors. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Profile field not found content: application/json: examples: profile_field_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: profile fields/profile field' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/profile_fields": post: summary: Create Profile Field tags: - Profile Fields description: | Creates a new custom profile field for the community. Every part of the field is stated explicitly: `pages_attributes` lists the pages the field appears on and whether it is visible on each, `choices_attributes` lists the options for a select or checkbox field in the order given by `sort_key`, and `number_options_attributes` configures a number field. Nothing is derived — what you send is what is stored. To hide a field everywhere, send every page with `visible: false`. To change an existing field use the update endpoint; to take one out of use without deleting it use archive. security: - token_auth: [] host: [] parameters: [] responses: '201': description: Profile field created successfully content: application/json: examples: success: value: id: 1 label: Department field_type: text key: department placeholder: e.g., Engineering description: Your department required: false allow_null: true platform_field: false archived: false created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' number_options: choices: [] pages: - id: 1 name: signup position: 1 visible: true created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' schema: "$ref": "#/components/schemas/profile_field" '422': description: Invalid profile field params content: application/json: examples: unprocessable_content: value: success: false message: Can't create profile field. There are some errors. error_details: Key has already been taken schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: profile_field: type: object properties: label: type: string minLength: 1 maxLength: 255 description: Field label shown to members example: Department field_type: type: string enum: - text - select - checkbox - textarea - link - number description: Type of field to create key: type: string minLength: 1 maxLength: 100 pattern: "^[a-z0-9_]+$" description: Unique identifier for the field within the community. Lowercase letters, numbers and underscores only description: type: string description: Help text shown to members placeholder: type: string description: Placeholder text. Only meaningful for text, textarea and link fields required: type: boolean description: Whether members must fill the field in. Defaults to false allow_null: type: boolean description: Whether the field may be left empty. Defaults to false pages_attributes: type: array description: The pages the field appears on. Send all four to state visibility explicitly items: type: object properties: name: type: string enum: - signup - edit_profile - profile_view - community_view description: Page the field appears on visible: type: boolean description: Whether the field is visible on this page required: - name - visible choices_attributes: type: array maxItems: 50 description: Options for a select or checkbox field. Required for those types, must be absent otherwise items: type: object properties: value: type: string description: Option label sort_key: type: integer description: Position of the option, ascending required: - value number_options_attributes: type: object description: Formatting for a number field. Required for that type, must be absent otherwise properties: format: type: string enum: - number - percentage - custom - unformatted description: How the number is formatted decimal: type: integer minimum: 0 description: Number of decimal places text: type: string description: Custom text shown alongside the number. Required when format is custom position: type: string enum: - left - right description: Which side of the number the custom text sits on required: - format required: - label - field_type - key - pages_attributes required: - profile_field required: true description: Profile field attributes get: summary: Profile Fields List tags: - Profile Fields security: - token_auth: [] host: [] parameters: - name: page in: query required: false description: Page number schema: type: integer - name: per_page in: query required: false description: Number of records per page schema: type: integer - name: label in: query required: false description: Filter by label (case-insensitive partial match) schema: type: string - name: archived in: query required: false description: Set to 'true' to search archived profile fields, omit or set to 'false' for active fields schema: type: string responses: '200': description: Retrieves a list of profile fields for a community content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 1 records: - id: 1 label: Department field_type: text key: department placeholder: e.g., Engineering description: Your department required: false allow_null: true platform_field: false archived: false created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' number_options: choices: [] pages: - id: 1 name: signup position: 1 visible: true created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' schema: type: object properties: page: type: integer per_page: type: integer has_next_page: type: boolean count: type: integer page_count: type: integer records: type: array items: "$ref": "#/components/schemas/profile_field" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/profile_fields/{id}": delete: summary: Delete Profile Field tags: - Profile Fields description: | Permanently deletes an archived custom profile field. The field must be archived first — deleting an active field returns a 404 telling you to archive it. Archiving is reversible; this is not. Deletion cascades: the field's pages, choices and number options go with it, along with every member's stored value for the field. There is no undo and no confirmation step. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Archived profile field ID responses: '200': description: Profile field deleted content: application/json: examples: success: value: success: true message: Profile field deleted successfully. schema: type: object properties: success: type: boolean message: type: string '404': description: Profile field not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: profile fields/profile field' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update Profile Field tags: - Profile Fields description: | Updates an existing custom profile field. Only the attributes sent are changed; anything omitted is left as it is. Nested records are addressed by `id`: send `pages_attributes` with a page id to change its visibility, and `choices_attributes` with a choice id to rename or reorder that option. Omit the id to add a new choice, or send `_destroy: true` to remove one — removing a choice also removes every member's selection of it. `field_type` cannot be changed once the field exists. To take a field out of use without deleting it, use the archive endpoint. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Profile field ID responses: '200': description: Profile field updated successfully content: application/json: examples: success: value: id: 1 label: Team field_type: text key: department placeholder: description: required: false allow_null: false platform_field: false archived: false created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' number_options: choices: [] pages: - id: 1 name: signup position: 1 visible: true created_at: '2025-10-27T14:00:00.000Z' updated_at: '2025-10-27T14:00:00.000Z' schema: "$ref": "#/components/schemas/profile_field" '404': description: Profile field not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: profile fields/profile field' schema: "$ref": "#/components/schemas/error" '422': description: Invalid profile field params content: application/json: examples: unprocessable_content: value: success: false message: Can't update profile field. There are some errors. error_details: Key has already been taken schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: profile_field: type: object properties: label: type: string minLength: 1 maxLength: 255 description: Field label shown to members example: Department key: type: string minLength: 1 maxLength: 100 pattern: "^[a-z0-9_]+$" description: Unique identifier for the field within the community. Cannot be changed on a platform field description: type: string description: Help text shown to members placeholder: type: string description: Placeholder text. Only meaningful for text, textarea and link fields required: type: boolean description: Whether members must fill the field in allow_null: type: boolean description: Whether the field may be left empty pages_attributes: type: array description: Visibility changes, addressed by page id items: type: object properties: id: type: integer description: Id of a page belonging to this profile field visible: type: boolean description: Whether the field is visible on this page required: - id - visible choices_attributes: type: array maxItems: 50 description: Option changes for a select or checkbox field. Omit id to add an option, send _destroy to remove one items: type: object properties: id: type: integer description: Id of an existing choice. Omit to add a new one value: type: string description: Option label sort_key: type: integer description: Position of the option, ascending _destroy: type: boolean description: Set to true to delete this choice and every member's selection of it number_options_attributes: type: object description: Formatting changes for a number field properties: id: type: integer description: Id of the number options belonging to this profile field format: type: string enum: - number - percentage - custom - unformatted description: How the number is formatted decimal: type: integer minimum: 0 description: Number of decimal places text: type: string description: Custom text shown alongside the number. Required when format is custom position: type: string enum: - left - right description: Which side of the number the custom text sits on required: - profile_field required: true description: Profile field attributes to change "/api/admin/v2/profile_fields/{id}/unarchive": put: summary: Unarchive Profile Field tags: - Profile Fields security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Profile field ID responses: '200': description: Profile field unarchived content: application/json: examples: success: value: success: true message: Profile field unarchived successfully. schema: type: object properties: success: type: boolean message: type: string '422': description: Unable to unarchive profile field content: application/json: examples: unprocessable_content: value: success: false message: Can't unarchive profile field. There are some errors. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Profile field not found content: application/json: examples: profile_field_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: profile fields/profile field' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/settings/connect": get: summary: Get Connect settings tags: - Connect Settings description: | Returns the current community's Connect settings — the admin settings that control member-to-member interactions. No parameters; always reads the authenticated community's live settings. Three sections: - connect: enabled, recommendations, exclude_admins_from_recommendations, exclude_moderators_from_recommendations - member_directory: public, sort (alphabetical/oldest/latest), view (list/cards) - messaging: enabled, member_to_member_messaging_enabled, group_messaging_enabled, voice_messages_enabled, require_connection_before_messaging Use this to answer questions like "Is messaging enabled?", "Is the member directory public?", or "Are voice messages enabled?" — fetch live rather than answering from memory. security: - token_auth: [] host: [] responses: '200': description: Connect settings content: application/json: schema: "$ref": "#/components/schemas/connect_settings" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" patch: summary: Update Connect settings tags: - Connect Settings description: | Updates the current community's Connect settings — the admin settings that control member-to-member interactions. Every field is optional; only the fields you send are changed, the rest are left untouched (partial update). Params are grouped into three nested objects: - connect: enabled, recommendations (only effective when connect.enabled is true), exclude_admins_from_recommendations, exclude_moderators_from_recommendations - member_directory: public, sort (alphabetical/oldest/latest), view (list/cards) - messaging: enabled (master toggle), member_to_member_messaging_enabled, group_messaging_enabled, voice_messages_enabled, require_connection_before_messaging Use this to change settings — e.g. "Enable Connect", "Make the member directory public", "Sort the member directory alphabetically", or "Turn off group messaging". To read the current settings without changing them, use get_setting_connect instead. security: - token_auth: [] host: [] parameters: [] responses: '200': description: Connect settings updated content: application/json: schema: "$ref": "#/components/schemas/connect_settings" '422': description: Validation error (invalid member_directory.sort or member_directory.view) content: application/json: examples: invalid_sort: value: success: false message: 'Invalid sort value. Must be one of: alphabetical, oldest, latest' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: connect: type: object properties: enabled: type: boolean description: Whether the Connect feature is enabled for the community recommendations: type: boolean description: Whether member-to-member connection recommendations are enabled. Only effective when connect.enabled is true. exclude_admins_from_recommendations: type: boolean description: Whether admins are excluded from connection recommendations exclude_moderators_from_recommendations: type: boolean description: Whether moderators are excluded from connection recommendations member_directory: type: object properties: public: type: boolean description: Whether the member directory is publicly visible sort: type: string enum: - alphabetical - oldest - latest description: Default sort order for the member directory view: type: string enum: - list - cards description: Default view layout for the member directory messaging: type: object properties: enabled: type: boolean description: Whether messaging is enabled for the community (master toggle) member_to_member_messaging_enabled: type: boolean description: Whether members can direct message one another group_messaging_enabled: type: boolean description: Whether members can create group chats voice_messages_enabled: type: boolean description: Whether voice messages are enabled in chats require_connection_before_messaging: type: boolean description: Whether members must be connected before they can message each other "/api/admin/v2/space_group_members": post: summary: Create Space Group Member tags: - Space Group Members security: - token_auth: [] host: [] parameters: [] responses: '200': description: space group member created content: application/json: examples: success_not_member: value: success: true message: User has been added to the space group. success_already_member: value: success: true message: User is already added to the space group. schema: type: object properties: success: type: boolean message: type: string '422': description: space group member not created content: application/json: examples: user_not_member_error: value: success: false message: User is not a member of community schema: "$ref": "#/components/schemas/error" '404': description: Not Found content: application/json: examples: space_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space group' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: space_group_id: type: integer email: type: string required: - space_group_id - email delete: summary: Destroy Space Group Member tags: - Space Group Members security: - token_auth: [] host: [] parameters: - name: email in: query required: true description: Email of the user schema: type: string - name: space_group_id in: query required: true description: ID of the space group schema: type: integer responses: '200': description: space group member destroyed content: application/json: examples: success: value: success: true message: User removed from the space group and its spaces schema: type: object properties: success: type: boolean message: type: string '404': description: Not found content: application/json: examples: user_not_member_error: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' space_group_not_found_error: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space group' schema: "$ref": "#/components/schemas/error" '422': description: space group member not destroyed content: application/json: examples: space_group_member_not_destroyed: value: success: false message: User cannot be removed from this space group error_details: message: Error message schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: List Space Group Members tags: - Space Group Members description: List Space Group Members security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: space_group_id in: query schema: type: integer required: true description: Space Group ID - name: status in: query schema: type: string enum: - active - inactive - all required: false description: Space group member status. By default, it returns all members. responses: '200': description: List Space Group Members content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 user_id: 3 space_group_id: 1 community_member_id: 2 moderator: false access_type: invite status: active created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' community_member: first_name: John last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/john-doe public_uid: john-doe avatar_url: https://example.com/john-doe.png name: John Doe email: john.doe@example.com - id: 1 user_id: 2 space_group_id: 1 community_member_id: 1 moderator: false access_type: invite status: active created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' community_member: first_name: Jane last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/jane-doe public_uid: jane-doe avatar_url: https://example.com/jane-doe.png name: Jane Doe email: jane.doe@example.com schema: "$ref": "#/components/schemas/space_group_members" '404': description: Not Found content: application/json: examples: space_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space group' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/space_group_member": get: summary: Show Space Group Member tags: - Space Group Members security: - token_auth: [] host: [] parameters: - name: email in: query required: true description: Email of the user schema: type: string - name: space_group_id in: query required: true description: ID of the space group schema: type: integer responses: '200': description: space group member found content: application/json: examples: success: value: id: 1 user_id: 2 space_group_id: 2 community_member_id: 2 access_type: invite status: active moderator: true created_at: '2024-09-13T11:38:31.769Z' updated_at: '2024-09-13T11:38:31.769Z' community_member: first_name: John last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/john-doe public_uid: john-doe avatar_url: https://example.com/john-doe.png name: John Doe email: john.doe@example.com schema: "$ref": "#/components/schemas/space_group_member" '404': description: Not Found content: application/json: examples: space_group_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space group' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' space_group_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space group member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/space_groups": post: summary: Create Space Group tags: - Space Groups security: - token_auth: [] host: [] parameters: [] responses: '201': description: Space Group created content: application/json: examples: success: value: id: 1 name: Test Group slug: test-group community_id: 1 is_hidden_from_non_members: false hide_members_count: false allow_members_to_create_spaces: false automatically_add_members_to_new_spaces: false add_members_to_space_group_on_space_join: false hide_non_member_spaces_from_sidebar: false created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' space_group_members_count: 1 spaces_count: 0 schema: "$ref": "#/components/schemas/space_group" '400': description: Bad Request content: application/json: examples: invalid_params: value: success: false message: There was an error saving your space group error_details: Name can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string slug: type: string is_hidden_from_non_members: type: boolean hide_members_count: type: boolean allow_members_to_create_spaces: type: boolean automatically_add_members_to_new_spaces: type: boolean add_members_to_space_group_on_space_join: type: boolean hide_non_member_spaces_from_sidebar: type: boolean required: - name - slug get: summary: List Space Groups tags: - Space Groups security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: name in: query schema: type: string required: false description: Filter by name responses: '200': description: List of Space Groups content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 1 name: Public Group slug: public-group community_id: 1 is_hidden_from_non_members: false hide_members_count: false allow_members_to_create_spaces: true automatically_add_members_to_new_spaces: true add_members_to_space_group_on_space_join: false hide_non_member_spaces_from_sidebar: false created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' space_group_members_count: 0 spaces_count: 0 - id: 2 name: Private Group slug: private-group community_id: 1 is_hidden_from_non_members: true hide_members_count: true allow_members_to_create_spaces: false automatically_add_members_to_new_spaces: false add_members_to_space_group_on_space_join: true hide_non_member_spaces_from_sidebar: true created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' space_group_members_count: 5 spaces_count: 3 schema: "$ref": "#/components/schemas/space_groups" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/space_groups/{id}": delete: summary: Delete Space Group tags: - Space Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Space Group ID responses: '200': description: Space Group deleted content: application/json: examples: success: value: success: true message: The space group has been removed from the community schema: type: object properties: success: type: boolean message: type: string '404': description: Space Group not found content: application/json: examples: not_found: value: success: false message: 'Missing record: space group' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show Space Group tags: - Space Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Space Group ID responses: '200': description: Space Group found content: application/json: examples: success: value: id: 1 name: Group 1 slug: group-1 community_id: 1 is_hidden_from_non_members: false hide_members_count: false allow_members_to_create_spaces: false automatically_add_members_to_new_spaces: false add_members_to_space_group_on_space_join: false hide_non_member_spaces_from_sidebar: false created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' space_group_members_count: 0 spaces_count: 0 schema: "$ref": "#/components/schemas/space_group" '404': description: Space Group not found content: application/json: examples: not_found: value: success: false message: 'Missing record: space group' error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update Space Group tags: - Space Groups security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Space Group ID responses: '200': description: Space Group updated content: application/json: examples: success: value: id: 1 name: Updated Name slug: updated-slug community_id: 1 is_hidden_from_non_members: false hide_members_count: false allow_members_to_create_spaces: false automatically_add_members_to_new_spaces: false add_members_to_space_group_on_space_join: false hide_non_member_spaces_from_sidebar: false created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' space_group_members_count: 0 spaces_count: 0 schema: "$ref": "#/components/schemas/space_group" '404': description: Space Group not found content: application/json: examples: not_found: value: success: false message: 'Missing record: space group' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string slug: type: string is_hidden_from_non_members: type: boolean hide_members_count: type: boolean allow_members_to_create_spaces: type: boolean automatically_add_members_to_new_spaces: type: boolean add_members_to_space_group_on_space_join: type: boolean hide_non_member_spaces_from_sidebar: type: boolean moderator_community_member_ids: type: array items: type: integer description: Array of community member ids to add as moderators required: true "/api/admin/v2/space_members": post: summary: Add Space Member tags: - Space Members description: Add Space Member security: - token_auth: [] host: [] parameters: [] responses: '200': description: Add Space Member content: application/json: examples: add_space_member: value: message: User added to space schema: type: object properties: message: type: string '404': description: Not Found content: application/json: examples: space_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: unprocessable_content: value: success: false message: User not added to space. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: email: type: string space_id: type: integer required: - email - space_id delete: summary: Remove Space Member tags: - Space Members description: Remove Space Member security: - token_auth: [] host: [] parameters: - name: email in: query schema: type: string required: true description: Email - name: space_id in: query schema: type: integer required: true description: Space ID responses: '200': description: Remove Space Member content: application/json: examples: remove_space_member: value: message: Member removed from space schema: type: object properties: message: type: string '404': description: Not Found content: application/json: examples: space_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' space_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: List Space Members tags: - Space Members description: List Space Members security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: space_id in: query schema: type: integer required: true description: Space ID - name: status in: query schema: type: string enum: - active - inactive - all required: false description: Space member status. By default, it returns all members. responses: '200': description: List Space Members content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 2 user_id: 3 space_id: 1 notification_type: never posts_read_count: 1 in_app_notification_setting: never community_member_id: 2 moderator: false mobile_notification_setting: never access_type: invite status: active created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' community_member: first_name: John last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/john-doe public_uid: john-doe avatar_url: https://example.com/john-doe.png name: John Doe email: john.doe@example.com - id: 1 user_id: 2 space_id: 1 notification_type: never posts_read_count: 0 in_app_notification_setting: never community_member_id: 1 moderator: false mobile_notification_setting: never access_type: invite status: active created_at: '2024-09-11T12:48:42.000Z' updated_at: '2024-09-11T12:48:42.000Z' community_member: first_name: Jane last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/jane-doe public_uid: jane-doe avatar_url: https://example.com/jane-doe.png name: Jane Doe email: jane.doe@example.com schema: "$ref": "#/components/schemas/space_members" '404': description: Not Found content: application/json: examples: space_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/space_member": get: summary: Show Space Member tags: - Space Members description: Show Space Member security: - token_auth: [] host: [] parameters: - name: email in: query schema: type: string required: true description: Email - name: space_id in: query schema: type: integer required: true description: Space ID responses: '200': description: Show Space Member content: application/json: examples: space_member: value: id: 1 user_id: 2 space_id: 1 notification_type: never posts_read_count: 0 in_app_notification_setting: never community_member_id: 1 moderator: false mobile_notification_setting: never access_type: invite status: active created_at: '2024-09-12T12:03:02.000Z' updated_at: '2024-09-12T12:03:02.000Z' community_member: name: John Doe first_name: John last_name: Doe headline: Software Engineer community_id: 1 profile_url: https://example.com/john-doe public_uid: john-doe avatar_url: https://example.com/john-doe.png email: john.doe@example.com schema: "$ref": "#/components/schemas/space_member" '404': description: Not Found content: application/json: examples: space_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' user_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: user' space_member_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space member' schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/spaces/{space_id}/ai_summaries": get: summary: Summarize a space tags: - Spaces security: - token_auth: [] host: [] parameters: - name: space_id in: path schema: type: integer required: true description: Space ID - name: date_from in: query schema: type: string format: date_time required: false description: Filters messages created after the provided ISO8601 timestamp - name: first_unread_message_id in: query schema: type: integer required: false description: First unread message ID to include additional chat context responses: '200': description: Space AI summary content: application/json: examples: success: value: overview: The space 'latest-updates' highlights recent announcements and product discussions. topics: - topic_name: Launch Planning summary: Members coordinated timelines and deliverables for the next release. contributors: - id: 1001 name: Ada Lovelace relevant_post_ids: - 10 - 12 - topic_name: Community Feedback summary: Conversation focused on improvements suggested by power users. contributors: - id: 1002 name: Grace Hopper relevant_post_ids: - 14 schema: "$ref": "#/components/schemas/space_ai_summary" '422': description: Summary generation failed content: application/json: examples: error: value: success: false message: 'Failed to generate response: Space type event not supported' error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Space not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: space' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/spaces": post: summary: Create Space tags: - Spaces description: Creates a space. space_type defaults to "basic" if not provided. Use course_setting for course-type spaces. Access levels are controlled via is_private and is_hidden_from_non_members. security: - token_auth: [] host: [] parameters: [] responses: '200': description: Space created content: application/json: examples: success: value: success: true message: Space created. space: id: 2 name: Test Space slug: test-space cover_image_url: https://heller-nader.example.com/rails/active_storage/disk/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdDVG9JYTJWNVNTSWhZVGMyYldFNWMzRXhNR3cyYUd4aWNqQm1PWFprT0hnek16QnJNZ1k2QmtWVU9oQmthWE53YjNOcGRHbHZia2tpUVdsdWJHbHVaVHNnWm1sc1pXNWhiV1U5SW5CcFkzTjFiUzVxY0dWbklqc2dabWxzWlc1aGJXVXFQVlZVUmkwNEp5ZHdhV056ZFcwdWFuQmxad1k3QmxRNkVXTnZiblJsYm5SZmRIbHdaVWtpRDJsdFlXZGxMMnB3WldjR093WlVPaEZ6WlhKMmFXTmxYMjVoYldVNkNYUmxjM1E9IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2tleSJ9fQ==--a99c1c9c683c8f856799aec51620ef13c487b89c/picsum.jpeg cover_image_visible: true cover_image_display_style: normal community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://willms.example.com post_ids: - 1 - 2 - 3 url: https://willms.example.com/c/test-space custom_emoji_url: https://example.com/emoji.png custom_emoji_dark_url: https://example.com/emoji-dark.png emoji: "#" space_group: id: 2 name: Name 1 topics: - 1 - 34 - 4 course_setting: course_type: structured custom_lesson_label: custom_section_label: enforce_lessons_order: false new_comment_notification_enabled: false schema: "$ref": "#/components/schemas/space_create_response" '400': description: Bad Request content: application/json: examples: bad_request: value: success: false message: 'Space type is invalid. The valid space types are: basic, event, members, image, course, chat' error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Forbidden content: application/json: examples: forbidden: value: success: false message: You’ve reached the limit for the number of spaces you can create on your plan. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string slug: type: string cover_image: type: string description: signed_id of the cover image cover_image_visible: type: boolean cover_image_display_style: type: string enum: - normal - wide is_private: type: boolean is_hidden_from_non_members: type: boolean is_hidden: type: boolean locked_button_url: type: string locked_button_label: type: string locked_page_heading: type: string locked_page_description: type: string is_post_disabled: type: boolean default_sort: type: string hide_sorting: type: boolean space_group_id: type: integer topics: type: array items: type: integer custom_emoji: type: object properties: emoji: type: string example: "\U0001F680" space_type: type: string enum: - basic - event - members - image - course - chat example: basic event_auto_rsvp_enabled: type: boolean example: true description: Only for event spaces default_in_app_notification_setting: type: string enum: - never - all example: never description: Members will see an in-app notification when new events are posted default_mobile_notification_setting: type: string enum: - never - all example: never description: Members will see a mobile notification when new events are posted default_notification_setting: type: string enum: - never - all example: never description: Members will receive an email notification when new events are posted course_setting: type: object properties: course_type: type: string enum: - self_paced - scheduled - structured example: structured new_comment_notification_enabled: type: boolean example: true enforce_lessons_order: type: boolean example: true custom_lesson_label: type: string enum: - activity - assignment - challenge - class - day - exercise - lecture - lesson - practice - session - topic - tutorial - workshop example: lesson custom_section_label: type: string enum: - chapter - level - module - part - path - phase - section - stage - track - unit - week example: section lesson_thumbnails_visible: type: boolean example: true description: Course space configuration thumbnail_image: type: string description: signed_id of the thumbnail image for event spaces default_mention_in_app_notification_setting: type: string enum: - never - all example: never description: Members will see an in-app notification when mentioned default_mention_mobile_notification_setting: type: string enum: - never - all example: never description: Members will see a mobile notification when mentioned hide_from_sidebar: type: boolean description: Hide space from sidebar navigation hide_right_sidebar: type: boolean description: Hide right sidebar in space require_topic_selection: type: boolean description: Require topic selection when posting display_view: type: string enum: - posts - cards - list - thumbnail - feed - masonry - grid - calendar description: Default display view for the space prevent_members_from_adding_others: type: boolean description: Prevent members from adding other members to the space hide_from_featured_areas: type: boolean description: Hide space from featured areas disable_member_post_covers: type: boolean description: Disable cover images on member posts hide_members_count: type: boolean description: Hide the member count display pinned_posts_label: type: string description: Custom label for pinned posts show_lock_icon_for_non_members: type: boolean description: Show lock icon for non-members hide_post_settings: type: boolean description: Hide post settings default_comment_sort: type: string enum: - oldest - latest description: Default sort order for comments default_member_sort: type: string enum: - oldest - latest - alphabetical description: Default sort order for members emoji: type: string description: Simple emoji string for the space default_tab: type: string description: Default tab to show when entering the space show_tab_bar: type: boolean description: Show the tab bar navigation show_next_event: type: boolean description: Show next event information for event spaces visible_tabs: type: object properties: posts: type: boolean description: Show posts tab members: type: boolean description: Show members tab upcoming: type: boolean description: Show upcoming events tab past: type: boolean description: Show past events tab description: Visible tabs configuration for the space meta_tag_attributes: type: object properties: meta_description: type: string meta_title: type: string opengraph_description: type: string opengraph_title: type: string opengraph_image: type: string description: SEO meta tag attributes required: - space_group_id - name - slug examples: Post Space: summary: Create a post space value: name: Test Space slug: test-space space_type: basic space_group_id: 1 cover_image: signed_id of the cover image cover_image_visible: true cover_image_display_style: normal is_private: false is_hidden: false is_hidden_from_non_members: false locked_button_url: https://example.com locked_button_label: Join locked_page_heading: This space is locked locked_page_description: Please join the space to view the content. is_post_disabled: false default_sort: latest hide_sorting: false topics: - 1 - 2 - 3 Event Space: summary: Create an event space value: name: Test Event Space slug: test-event-space space_group_id: 1 space_type: event event_auto_rsvp_enabled: true default_in_app_notification_setting: all default_mobile_notification_setting: all default_notification_setting: all Members Space: summary: Create a members space value: name: Test Members Space slug: test-members-space space_group_id: 1 space_type: members Image Space: summary: Create an image space value: name: Test Image Space slug: test-image-space space_group_id: 1 space_type: image default_in_app_notification_setting: all default_mobile_notification_setting: all default_notification_setting: all Course Space: summary: Create a course space value: name: Test Course Space slug: test-course-space space_group_id: 1 space_type: course course_setting: course_type: structured new_comment_notification_enabled: true enforce_lessons_order: true custom_lesson_label: lesson custom_section_label: section Chat Space: summary: Create a chat space value: name: Test Chat Space slug: test-chat-space space_group_id: 1 space_type: chat default_mention_in_app_notification_setting: all default_mention_mobile_notification_setting: all default_mobile_notification_setting: all default_notification_setting: all get: summary: List Spaces tags: - Spaces security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: sort in: query schema: type: string enum: - active - oldest - alphabetical - likes - latest_updated - oldest_updated - latest_profile_confirmed required: false description: Sort by responses: '200': description: List of Spaces content: application/json: examples: success: value: page: 1 per_page: 60 has_next_page: false count: 2 page_count: 2 records: - id: 1 name: aut slug: sit cover_image_url: https://medhurst.example.com/storage/cover_images/1/picsum.jpeg cover_image_visible: true cover_image_display_style: wide community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://medhurst.example.com post_ids: - 1 url: https://medhurst.example.com/c/sit custom_emoji_url: https://medhurst.example.com/emoji/1 custom_emoji_dark_url: https://medhurst.example.com/emoji/2 emoji: "#" space_group: id: 2 name: Name 1 topics: - 32 - 21 - 12 event_auto_rsvp_enabled: false default_in_app_notification_setting: never default_mention_in_app_notification_setting: never default_mention_mobile_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never - id: 2 name: maxime slug: ad cover_image_url: https://medhurst.example.com/storage/cover_images/2/picsum.jpeg cover_image_visible: true cover_image_display_style: wide community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://medhurst.example.com post_ids: - 14 - 52 url: https://medhurst.example.com/c/ad custom_emoji_url: https://medhurst.example.com/emoji/1 custom_emoji_dark_url: https://medhurst.example.com/emoji/2 emoji: "#" space_group: id: 3 name: Name 2 topics: - 1 - 2 - 3 event_auto_rsvp_enabled: false default_in_app_notification_setting: never default_mention_in_app_notification_setting: never default_mention_mobile_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never schema: "$ref": "#/components/schemas/spaces" "/api/admin/v2/spaces/{id}": delete: summary: Delete a space tags: - Spaces security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Space ID responses: '200': description: Space deleted content: application/json: examples: success: value: success: true message: This space has been removed from the community. schema: type: object properties: success: type: boolean message: type: string '404': description: Space not found content: application/json: examples: not_found: value: success: false message: 'Missing record: space' error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthorized content: application/json: examples: unauthorized: value: success: false message: You cannot perform this action. error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable entity content: application/json: examples: unprocessable_content: value: success: false message: This space could not be removed from the community. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show a space tags: - Spaces security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Space ID responses: '200': description: Space found content: application/json: examples: success: value: id: 1 name: aut slug: sit cover_image_url: https://medhurst.example.com/storage/cover_images/1/picsum.jpeg cover_image_visible: true cover_image_display_style: wide community_id: 1 is_private: false hide_post_settings: false display_view: posts is_post_disabled: false space_type: basic host: https://medhurst.example.com post_ids: - 1 url: https://medhurst.example.com/c/sit custom_emoji_url: https://medhurst.example.com/emoji/1 custom_emoji_dark_url: https://medhurst.example.com/emoji/2 emoji: "#" space_group: id: 2 name: Name 1 topics: - 32 - 21 - 12 event_auto_rsvp_enabled: false default_in_app_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never default_mention_in_app_notification_setting: never default_mention_mobile_notification_setting: never schema: "$ref": "#/components/schemas/space" '404': description: Space not found content: application/json: examples: not_found: value: success: false message: 'Missing record: space' error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update Space tags: - Spaces security: - token_auth: [] host: [] parameters: - name: id in: path required: true description: Space ID schema: type: integer responses: '200': description: Space successfully updated content: application/json: examples: success: value: id: 123 name: Real-time Team Chat slug: team-chat space_group: id: 1 name: General cover_image_url: https://cdn.circle.so/signed_id_chat_cover_123.jpg cover_image_visible: false cover_image_display_style: wide thumbnail_image_url: url: "/c/community/team-chat" community_id: 456 is_private: true is_hidden_from_non_members: true is_hidden: false locked_button_url: locked_button_label: locked_page_heading: locked_page_description: hide_post_settings: false display_view: posts post_ids: [] is_post_disabled: false space_type: chat host: community.circle.so emoji: "\U0001F4AC" custom_emoji_url: custom_emoji_dark_url: topics: [] event_auto_rsvp_enabled: false default_in_app_notification_setting: all default_mention_in_app_notification_setting: all default_mention_mobile_notification_setting: all default_mobile_notification_setting: all default_notification_setting: never default_sort: latest hide_sorting: false require_topic_selection: false prevent_members_from_adding_others: false hide_from_featured_areas: false disable_member_post_covers: false hide_members_count: false pinned_posts_label: show_lock_icon_for_non_members: false default_comment_sort: oldest default_member_sort: recent_activity default_tab: posts show_tab_bar: false show_next_event: false hide_from_sidebar: false hide_right_sidebar: false lock_screen_blocks: [] visible_tabs: posts: true members: true upcoming: false past: false meta_tag_attributes: meta_title: Team Chat Room meta_description: Private chat space for team collaboration opengraph_title: Team Chat opengraph_description: Real-time team communication space chat_room_show_history: true chat_room_description: Private team chat for project discussions and quick updates schema: "$ref": "#/components/schemas/space" '400': description: Invalid draft state change content: application/json: schema: "$ref": "#/components/schemas/error" '404': description: Not Found content: application/json: examples: not_found: value: success: false message: 'Missing record: space' error_details: {} schema: "$ref": "#/components/schemas/error" '422': description: Unprocessable Entity content: application/json: examples: validation_error: value: success: false message: Space update failed. error_details: message: 'Validation failed: Name can''t be blank' schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string cover_image: type: string description: signed_id of the cover image cover_image_visible: type: boolean cover_image_display_style: type: string enum: - normal - wide is_private: type: boolean is_hidden_from_non_members: type: boolean is_draft: type: boolean description: Only valid for course spaces; set to false to publish a course is_hidden: type: boolean locked_button_url: type: string locked_button_label: type: string locked_page_heading: type: string locked_page_description: type: string is_post_disabled: type: boolean default_sort: type: string hide_sorting: type: boolean space_group_id: type: integer topics: type: array items: type: integer custom_emoji: type: object properties: emoji: type: string example: "\U0001F680" event_auto_rsvp_enabled: type: boolean example: true description: Only for event spaces default_in_app_notification_setting: type: string enum: - never - all example: never description: Members will see an in-app notification when new events are posted default_mobile_notification_setting: type: string enum: - never - all example: never description: Members will see a mobile notification when new events are posted default_notification_setting: type: string enum: - never - all example: never description: Members will receive an email notification when new events are posted course_setting_attributes: type: object properties: course_type: type: string enum: - self_paced - scheduled - structured example: structured new_comment_notification_enabled: type: boolean example: true enforce_lessons_order: type: boolean example: true custom_lesson_label: type: string enum: - activity - assignment - challenge - class - day - exercise - lecture - lesson - practice - session - topic - tutorial - workshop example: lesson custom_section_label: type: string enum: - chapter - level - module - part - path - phase - section - stage - track - unit - week example: section lesson_thumbnails_visible: type: boolean example: true description: Course space configuration thumbnail_image: type: string description: signed_id of the thumbnail image for event spaces default_mention_in_app_notification_setting: type: string enum: - never - all example: never description: Members will see an in-app notification when mentioned default_mention_mobile_notification_setting: type: string enum: - never - all example: never description: Members will see a mobile notification when mentioned hide_from_sidebar: type: boolean description: Hide space from sidebar navigation hide_right_sidebar: type: boolean description: Hide right sidebar in space require_topic_selection: type: boolean description: Require topic selection when posting display_view: type: string enum: - posts - cards - list - thumbnail - feed - masonry - grid - calendar description: Default display view for the space prevent_members_from_adding_others: type: boolean description: Prevent members from adding other members to the space hide_from_featured_areas: type: boolean description: Hide space from featured areas disable_member_post_covers: type: boolean description: Disable cover images on member posts hide_members_count: type: boolean description: Hide the member count display pinned_posts_label: type: string description: Custom label for pinned posts show_lock_icon_for_non_members: type: boolean description: Show lock icon for non-members hide_post_settings: type: boolean description: Hide post settings default_comment_sort: type: string enum: - oldest - latest description: Default sort order for comments default_member_sort: type: string enum: - oldest - latest - alphabetical description: Default sort order for members emoji: type: string description: Simple emoji string for the space default_tab: type: string description: Default tab to show when entering the space show_tab_bar: type: boolean description: Show the tab bar navigation show_next_event: type: boolean description: Show next event information for event spaces visible_tabs: type: object properties: posts: type: boolean description: Show posts tab members: type: boolean description: Show members tab upcoming: type: boolean description: Show upcoming events tab past: type: boolean description: Show past events tab description: Visible tabs configuration for the space meta_tag_attributes: type: object properties: meta_description: type: string meta_title: type: string opengraph_description: type: string opengraph_title: type: string opengraph_image: type: string description: SEO meta tag attributes chat_room_show_history: type: boolean description: Show chat history to new members in chat spaces chat_room_description: type: string description: Description for the chat room in chat spaces examples: Update Basic Discussion Space: summary: Update a basic discussion space with comprehensive settings value: name: General Discussion slug: general-discussion space_group_id: 1 space_type: basic cover_image: signed_id_cover_image_123 cover_image_visible: true cover_image_display_style: wide thumbnail_image: signed_id_thumbnail_456 is_private: false is_hidden: false is_hidden_from_non_members: false is_post_disabled: false default_sort: latest hide_sorting: false display_view: posts require_topic_selection: true topics: - 1 - 2 - 3 show_tab_bar: true default_tab: posts visible_tabs: posts: true members: true upcoming: false past: false emoji: "\U0001F4AC" default_comment_sort: oldest default_member_sort: alphabetical hide_members_count: false pinned_posts_label: Important Announcements hide_from_sidebar: false hide_right_sidebar: false prevent_members_from_adding_others: false hide_from_featured_areas: false disable_member_post_covers: false show_lock_icon_for_non_members: false hide_post_settings: false default_in_app_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never meta_tag_attributes: meta_title: General Discussion - Community Forum meta_description: Join our general discussion forum to connect with community members opengraph_title: General Discussion Forum opengraph_description: Connect and discuss with our community opengraph_image: signed_id_og_image_789 Update Event Space: summary: Update an event space with calendar and notification settings value: name: Community Events slug: community-events space_group_id: 1 space_type: event cover_image: signed_id_event_cover_123 cover_image_visible: true cover_image_display_style: normal thumbnail_image: signed_id_event_thumb_456 is_private: false is_hidden: false event_auto_rsvp_enabled: true show_next_event: true display_view: calendar show_tab_bar: true default_tab: upcoming visible_tabs: posts: true members: false upcoming: true past: true emoji: "\U0001F4C5" default_in_app_notification_setting: all default_mobile_notification_setting: all default_notification_setting: all default_member_sort: latest hide_members_count: false pinned_posts_label: Featured Events meta_tag_attributes: meta_title: Community Events Calendar meta_description: Join our upcoming community events and workshops opengraph_title: Community Events opengraph_description: Don't miss out on our amazing community events! Update Members Space: summary: Update a members directory space value: name: Member Directory slug: member-directory space_group_id: 1 space_type: members cover_image: signed_id_members_cover_123 cover_image_visible: true is_private: false is_hidden_from_non_members: false display_view: list show_tab_bar: false default_tab: members visible_tabs: posts: false members: true upcoming: false past: false emoji: "\U0001F465" default_member_sort: alphabetical hide_members_count: false prevent_members_from_adding_others: true hide_from_sidebar: false default_in_app_notification_setting: never default_mobile_notification_setting: never default_notification_setting: never meta_tag_attributes: meta_title: Community Member Directory meta_description: Browse and connect with our community members opengraph_title: Member Directory opengraph_description: Discover and connect with fellow community members Update Image Space: summary: Update an image gallery space value: name: Photo Gallery slug: photo-gallery space_group_id: 1 space_type: image cover_image: signed_id_gallery_cover_123 cover_image_visible: true cover_image_display_style: wide is_private: false is_post_disabled: false display_view: masonry show_tab_bar: true default_tab: posts visible_tabs: posts: true members: false upcoming: false past: false emoji: "\U0001F4F8" default_sort: latest hide_sorting: false disable_member_post_covers: false require_topic_selection: false topics: - 4 - 5 default_comment_sort: latest default_member_sort: latest hide_members_count: true pinned_posts_label: Featured Photos default_in_app_notification_setting: all default_mobile_notification_setting: never default_notification_setting: never meta_tag_attributes: meta_title: Community Photo Gallery meta_description: Share and discover amazing photos from our community opengraph_title: Photo Gallery opengraph_description: Beautiful photos shared by our community members Update Course Space: summary: Update a structured course space value: name: Digital Marketing Masterclass slug: digital-marketing-masterclass space_group_id: 1 space_type: course cover_image: signed_id_course_cover_123 cover_image_visible: true cover_image_display_style: normal is_private: true is_hidden_from_non_members: true is_post_disabled: true display_view: posts show_tab_bar: true default_tab: posts visible_tabs: posts: true members: true upcoming: false past: false emoji: "\U0001F393" hide_from_sidebar: false prevent_members_from_adding_others: true hide_members_count: false default_in_app_notification_setting: all default_mobile_notification_setting: all default_notification_setting: all course_setting_attributes: new_comment_notification_enabled: true enforce_lessons_order: true custom_lesson_label: activity custom_section_label: chapter meta_tag_attributes: meta_title: Digital Marketing Masterclass Course meta_description: Comprehensive digital marketing course for professionals opengraph_title: Digital Marketing Masterclass opengraph_description: Learn digital marketing from industry experts Update Chat Space: summary: Update a real-time chat space value: name: Real-time Team Chat slug: team-chat space_group_id: 1 space_type: chat cover_image: signed_id_chat_cover_123 cover_image_visible: false is_private: true is_hidden_from_non_members: true show_tab_bar: false emoji: "\U0001F4AC" hide_from_sidebar: false prevent_members_from_adding_others: false hide_members_count: false default_mention_in_app_notification_setting: all default_mention_mobile_notification_setting: all default_mobile_notification_setting: all default_notification_setting: never chat_room_show_history: true chat_room_description: Private team chat for project discussions and quick updates meta_tag_attributes: meta_title: Team Chat Room meta_description: Private chat space for team collaboration opengraph_title: Team Chat opengraph_description: Real-time team communication space "/api/admin/v2/tagged_members": post: summary: Create Tagged Member tags: - Tagged Members security: - token_auth: [] host: [] parameters: [] responses: '201': description: Successfully tagged member content: application/json: examples: created: value: message: Person tagged successfully! schema: type: object properties: message: type: string '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" '404': description: Not found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: member tag' schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: member_tag_id: type: integer user_email: type: string required: - member_tag_id - user_email delete: summary: Delete Tagged Member tags: - Tagged Members security: - token_auth: [] host: [] parameters: - name: user_email in: query schema: type: string required: true description: User Email - name: member_tag_id in: query schema: type: integer required: true description: Member Tag ID responses: '200': description: Tagged Member Deleted content: application/json: examples: success: value: message: Tag has been removed '404': description: Not Found content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: member tag' '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} get: summary: List Tagged Members tags: - Tagged Members security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: member_tag_ids in: query schema: type: array items: type: integer style: form explode: false required: false description: Filter by Member Tag IDs (OR logic, comma-separated) responses: '200': description: List of Tagged Members content: application/json: examples: success: value: page: 1 per_page: 10 has_next_page: false count: 2 page_count: 2 records: - id: 1 member_tag_id: 1 member_tag_name: Member Tag 1 member_tag_emoji: "\U0001F44D" user_id: 1 user_email: user1@example.com lead_id: 1 lead_email: lead1@example.com community_member_id: 1 contact_id: 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' - id: 2 member_tag_id: 2 member_tag_name: Member Tag 2 member_tag_emoji: "\U0001F44D" user_id: 2 user_email: user2@example.com lead_id: 2 lead_email: lead2@example.com community_member_id: 1 contact_id: 2 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/tagged_members" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/tagged_members/{id}": get: summary: Get Tagged Member tags: - Tagged Members security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: string required: true description: Tagged Member ID responses: '200': description: Show Tagged Member content: application/json: examples: success: value: id: 1 member_tag_id: 1 member_tag_name: Member Tag 1 member_tag_emoji: "\U0001F44D" user_id: 1 user_email: user1@example.com lead_id: 1 lead_email: lead1@example.com community_member_id: 1 contact_id: 1 created_at: '2021-01-01T00:00:00Z' updated_at: '2021-01-01T00:00:00Z' schema: "$ref": "#/components/schemas/tagged_member" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/tax_setting": get: summary: Get tax settings tags: - Tax Settings description: Returns the community's Stripe Tax settings, refreshed from a live Stripe read. security: - token_auth: [] host: [] responses: '200': description: Tax settings content: application/json: examples: tax_setting: value: processor_status: enabled platform_status: disabled default_tax_behavior: exclusive schema: "$ref": "#/components/schemas/tax_setting" '401': description: Unauthenticated content: application/json: examples: not_authorized: value: message: You cannot perform this action. unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '400': description: Live Stripe Tax resolve fails content: application/json: examples: resolve_failed: value: success: false message: Unable to reach Stripe. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update tax settings tags: - Tax Settings description: Updates the community's Stripe Tax platform status and/or default tax behavior. security: - token_auth: [] host: [] parameters: [] responses: '200': description: Stale disabled cache with live-enabled Stripe Tax succeeds content: application/json: examples: tax_setting_updated: value: processor_status: enabled platform_status: enabled default_tax_behavior: inclusive stale_disabled_cache_live_enabled: value: processor_status: enabled platform_status: enabled default_tax_behavior: inclusive schema: "$ref": "#/components/schemas/tax_setting" '422': description: Validation error (invalid platform_status, invalid default_tax_behavior, or processor disabled) content: application/json: examples: invalid_platform_status: value: success: false message: 'Platform status must be one of: enabled, disabled.' error_details: {} invalid_default_tax_behavior: value: success: false message: 'Default tax behavior must be one of: exclusive, inclusive, inferred_by_currency.' error_details: {} processor_disabled: value: success: false message: Stripe Tax is disabled for this community's payment processor. Enable it in Stripe before updating tax settings. error_details: {} schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: tax_setting: type: object properties: platform_status: type: string enum: - enabled - disabled default_tax_behavior: type: string enum: - exclusive - inclusive - inferred_by_currency "/api/admin/v2/topics": post: summary: Create a topic tags: - Topics description: Creates a topic security: - token_auth: [] host: [] parameters: [] responses: '201': description: Topic created successfully content: application/json: examples: topic_created: value: id: 1 name: New Topic admin_only: true created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:24:17.411Z' author: first_name: John last_name: Doe avatar_url: https://example.com/avatar.png space_ids: - 1 - 2 - 3 schema: "$ref": "#/components/schemas/topic" '422': description: Topic not created content: application/json: examples: topic_not_created: value: success: false message: Unable to save topic error_details: Name can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string admin_only: type: boolean description: Toggles if only admins and moderators can select this topic space_ids: type: array items: type: integer description: Array of space IDs to be assigned to the topic description: Topic params get: summary: List topics tags: - Topics description: Lists topics security: - token_auth: [] host: [] parameters: - name: page in: query schema: type: integer required: false description: Page number - name: per_page in: query schema: type: integer required: false description: Number of records per page - name: name in: query schema: type: string required: false description: query by name - name: sort in: query description: Sorting parameters (sort by name in ascending order, name in descending order, and by newest. Default is oldest) required: false schema: type: string enum: - oldest - newest - alphabetical - alphabetical_desc responses: '200': description: Retrieves a list of topics content: application/json: examples: success: value: success: true page: 1 per_page: 10 has_next_page: false count: 2 page_count: 2 records: - id: 1 name: Math assignments admin_only: false created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' author: id: 1 name: Chris Jones avatar_url: https://example.com/avatar.png space_ids: - 1 - 2 - id: 2 name: Science assignments admin_only: true created_at: '2024-01-01T00:00:00Z' updated_at: '2024-01-01T00:00:00Z' author: id: 2 name: Matthew Smith avatar_url: https://example.com/avatar.png space_ids: - 3 schema: "$ref": "#/components/schemas/topics_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/topics/{id}": delete: summary: Delete a topic tags: - Topics description: Deletes a topic security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Topic ID responses: '200': description: Topic deleted successfully content: application/json: examples: success: value: success: true message: Topic deleted. schema: type: object properties: success: type: boolean message: type: string '404': description: Topic not found content: application/json: examples: topic_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: topic' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" get: summary: Show topic details tags: - Topics security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Topic ID responses: '200': description: Topic retrieved successfully content: application/json: examples: success: value: id: 1 name: Topic 1 admin_only: false created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' author: first_name: John last_name: Doe avatar_url: https://example.com/avatar.png space_ids: - 1 - 2 - 3 schema: "$ref": "#/components/schemas/topic" '404': description: Topic not found content: application/json: examples: topic_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: topic' schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" put: summary: Update a topic tags: - Topics description: Updates a topic security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: integer required: true description: Topic ID responses: '200': description: Topic updated successfully content: application/json: examples: topic_updated: value: id: 1 name: Updated Topic admin_only: false created_at: '2025-04-01T21:24:17.411Z' updated_at: '2025-04-01T21:33:43.219Z' author: first_name: John last_name: Doe avatar_url: https://example.com/avatar.png space_ids: - 1 - 2 - 3 schema: "$ref": "#/components/schemas/topic" '404': description: Topic not found content: application/json: examples: topic_not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: topic' schema: "$ref": "#/components/schemas/error" '422': description: Topic not updated content: application/json: examples: topic_not_updated: value: success: false message: Unable to save topic error_details: Name can't be blank schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" requestBody: content: application/json: schema: type: object properties: name: type: string admin_only: type: boolean description: Toggles if only admins and moderators can select this topic space_ids: type: array items: type: integer description: Array of space IDs to be assigned to the topic description: Topic params "/api/admin/v2/workflows/{id}/activate": put: summary: Activate an automation (dynamic) workflow so it starts running automatically tags: - Workflows security: - token_auth: [] host: [] description: | Activates an automation (dynamic) workflow, setting its status to active so it starts running automatically. Only automation workflows can be activated: run a bulk action workflow immediately with run_workflow_now, and start a scheduled workflow from the workflow editor. Activation is immediate and enforces plan limits and eligibility (a valid trigger and at least one action); it is not gated behind a confirmation step. parameters: - name: id in: path required: true schema: type: string format: uuid description: UUID of the workflow to activate responses: '200': description: Workflow activated content: application/json: schema: "$ref": "#/components/schemas/workflow" '422': description: Workflow could not be activated content: application/json: schema: "$ref": "#/components/schemas/error" '404': description: Workflow not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/workflows/{id}/deactivate": put: summary: Deactivate an automation (dynamic) workflow so it stops running automatically tags: - Workflows security: - token_auth: [] host: [] description: | Deactivates an active automation (dynamic) workflow, setting its status to inactive so it stops running automatically. Only automation workflows can be deactivated — bulk action and scheduled workflows cannot. The workflow must currently be active. Deactivation is immediate and is not gated behind a confirmation step. parameters: - name: id in: path required: true schema: type: string format: uuid description: UUID of the workflow to deactivate responses: '200': description: Workflow deactivated content: application/json: schema: "$ref": "#/components/schemas/workflow" '422': description: Workflow could not be deactivated content: application/json: schema: "$ref": "#/components/schemas/error" '404': description: Workflow not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/workflows/{id}/duplicate": post: summary: Duplicate a workflow tags: - Workflows description: | Duplicate (clone) an existing workflow. The copy is created in draft status and includes all of the original's triggers, actions and schedule configuration. No workflow run is triggered by the duplication. Returns the new workflow together with a URL to open it in Settings. security: - token_auth: [] host: [] parameters: - name: id in: path format: uuid required: true description: UUID of the workflow to duplicate schema: type: string responses: '201': description: Workflow duplicated successfully content: application/json: schema: "$ref": "#/components/schemas/workflow" '404': description: Workflow in another community content: application/json: examples: not_found: value: success: false message: Oops! Missing record. Please try again later. error_details: message: 'Missing record: workflow' schema: "$ref": "#/components/schemas/error" '422': description: Refuses to duplicate a fork while branch authoring is off content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/workflows": get: summary: List a community's automations/workflows tags: - Workflows security: - token_auth: [] host: [] description: | Lists the community's automations/workflows, newest first, paginated. Each record is a lean summary (id, name, status, type); it omits the trigger/actions graph and any URL - fetch a single workflow to get the full graph. Filters are optional and combine with AND. `status` semantics (note the omit-vs-all difference): - omit -> all workflows, INCLUDING archived - `all` -> all workflows EXCEPT archived - `archived` -> only archived workflows - `draft` / `active` / `inactive` -> only workflows with that status parameters: - name: query in: query required: false description: Filter by workflow name (substring match). schema: type: string - name: status in: query required: false description: Filter by status. Omit to include archived; use `all` to exclude archived; use `archived` for only archived. schema: type: string enum: - draft - active - inactive - archived - all - name: workflow_type in: query required: false description: 'Filter by type: dynamic (Automation), bulk_action (Bulk action), scheduled (Scheduled).' schema: type: string enum: - dynamic - bulk_action - scheduled - name: page in: query required: false description: Page number (min 1) schema: type: integer - name: per_page in: query required: false description: Records per page (max 100) schema: type: integer responses: '200': description: Retrieves a paginated list of the community's workflows content: application/json: schema: "$ref": "#/components/schemas/workflows_list" '401': description: Unauthenticated content: application/json: examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} schema: "$ref": "#/components/schemas/error" '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" "/api/admin/v2/workflows/{id}": get: summary: Get Workflow tags: - Workflows description: Gets a single workflow by its UUID, including its trigger and all action steps in execution order. Each action carries a 1-indexed `list_position` for placement decisions; the raw `position` can have gaps. security: - token_auth: [] host: [] parameters: - name: id in: path schema: type: string format: uuid required: true description: UUID of the workflow responses: '200': description: Returns the workflow with its trigger and ordered actions content: application/json: schema: "$ref": "#/components/schemas/workflow_detail" '404': description: Workflow not found content: application/json: schema: "$ref": "#/components/schemas/error" '401': description: Unauthenticated content: application/json: schema: "$ref": "#/components/schemas/error" examples: unauthorized: value: success: false message: The API token is invalid. error_details: {} '403': description: Community is not eligible for admin API v2 access content: application/json: examples: forbidden: value: success: false message: The community is not eligible for admin API v2 access. error_details: {} schema: "$ref": "#/components/schemas/error" servers: - url: https://{defaultHost} description: Local development server variables: defaultHost: default: app.circle.so