---
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: ""
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: ""
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: ""
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: ""
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: ""
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