openapi: 3.1.0 info: version: 1.0.0 title: The Mighty Networks Admin AbuseReports Events API description: An API for managing your Mighty Networks network servers: - url: https://api.mn.co description: Production security: - bearerAuth: [] tags: - name: Events description: Events are scheduled gatherings that members can RSVP to and engage with paths: /admin/v1/networks/{network_id}/events: get: summary: Returns a paginated list of events in the network operationId: list_events tags: - Events parameters: - name: page in: query required: false description: Page number for pagination schema: type: integer format: uint64 - name: per_page in: query required: false description: Items per page (max 100) schema: type: integer format: uint64 - $ref: '#/components/parameters/networkId' responses: '200': description: Returns a paginated list of events content: application/json: schema: $ref: '#/components/schemas/EventResponsePaged' post: summary: Creates a new event in the network operationId: create_events tags: - Events parameters: - $ref: '#/components/parameters/networkId' requestBody: description: Submit results as JSON required: true content: application/json: schema: $ref: '#/components/schemas/EventCreateRequest' responses: '200': description: Returns the created event content: application/json: schema: $ref: '#/components/schemas/EventResponse' '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /admin/v1/networks/{network_id}/events/{id}/: get: summary: Returns details of a specific event operationId: show_event tags: - Events parameters: - name: id in: path required: true description: ID of the event schema: type: integer format: uint64 - $ref: '#/components/parameters/networkId' responses: '200': description: Returns the event details content: application/json: schema: $ref: '#/components/schemas/EventResponse' '404': description: Event not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: summary: Updates an existing event operationId: update_events tags: - Events parameters: - name: id in: path required: true description: ID of the event schema: type: integer format: uint64 - $ref: '#/components/parameters/networkId' requestBody: description: Submit results as JSON required: true content: application/json: schema: description: Request body for updating an event type: object properties: title: type: string description: The event title example: Monthly Community Meetup description: type: string description: The event description example: Join us for our monthly community meetup link: type: string description: External event link URL example: https://zoom.us/j/123456789 starts_at: type: string format: date-time description: The date and time the event starts (ISO8601 format) example: '2025-01-15T14:00:00Z' ends_at: type: string format: date-time description: The date and time the event ends (ISO8601 format) example: '2025-01-15T16:00:00Z' event_type: type: string description: 'Type of event: ''online_meeting'', ''local_meetup'', etc.' example: online_meeting location: type: string description: Physical location of the event example: San Francisco, CA time_zone: type: string description: IANA timezone identifier for the event example: America/Los_Angeles rsvp_enabled: type: boolean description: 'Whether RSVPs are enabled (default: true)' example: true rsvp_closed: type: boolean description: 'Whether RSVPs are closed (default: false)' restricted_event: type: boolean description: 'Whether event is restricted to specific members (default: false)' post_in_feed: type: boolean description: 'Whether event appears in the activity feed (default: true)' example: true frequency: type: string description: 'Recurrence frequency: ''daily'', ''weekly'', ''monthly'', or ''yearly''' example: weekly interval: type: integer format: uint64 description: Recurrence interval (e.g., 1 for every week, 2 for every 2 weeks) example: 1 by_days: type: string description: Comma-separated list of recurrence day abbreviations (SU/MO/TU/WE/TH/FR/SA) example: MO,WE,FR by_month_days: type: string description: Comma-separated list of Nth day-of-the-month for recurrence example: 1,15 recurrence_count: type: integer format: uint64 description: How many times the event should recur recur_until: type: string format: date-time description: End date for recurrence example: '2026-07-05T21:11:42+00:00' responses: '200': description: Returns the updated event content: application/json: schema: $ref: '#/components/schemas/EventResponse' '404': description: Event not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' put: summary: Updates an existing event operationId: replace_events tags: - Events parameters: - name: id in: path required: true description: ID of the event schema: type: integer format: uint64 - $ref: '#/components/parameters/networkId' requestBody: description: Submit results as JSON required: true content: application/json: schema: $ref: '#/components/schemas/EventUpdateRequest' responses: '200': description: Returns the updated event content: application/json: schema: $ref: '#/components/schemas/EventResponse' '404': description: Event not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' delete: summary: Deletes an event operationId: delete_events tags: - Events parameters: - name: id in: path required: true description: ID of the event schema: type: integer format: uint64 - $ref: '#/components/parameters/networkId' responses: '204': description: Event successfully deleted '404': description: Event not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: parameters: networkId: name: network_id in: path description: The Network's unique integer ID, or subdomain required: true schema: oneOf: - type: integer description: Unique numeric network ID format: uint64 - type: string description: Network subdomain format: /^[a-z][a-z0-9-]+$/ schemas: EventResponse: description: Events are scheduled gatherings that members can RSVP to type: object required: - created_at - creator - event_type - id - permalink - post_type - title - updated_at properties: id: type: integer format: uint64 description: The record's integer ID example: '1234' created_at: type: string format: date-time description: The date and time the record was created example: '2026-07-05T21:11:41+00:00' updated_at: type: string format: date-time description: The date and time the record was last modified example: '2026-07-05T21:11:41+00:00' post_type: type: string description: The type of post - always 'event' for this endpoint example: event creator: description: The user who created the event $ref: '#/components/schemas/UserResponse' images: type: array description: Array of image URLs for the event items: type: string permalink: type: string description: Full URL to view the event example: https://example.mn.co/posts/123 title: type: string description: The event title example: Monthly Community Meetup description: type: string description: The event description recurrence_rule: type: string description: RRULE format string for recurring events rsvp_enabled: type: boolean description: Whether RSVPs are enabled for this event rsvp_closed: type: boolean description: Whether RSVPs are closed restricted_event: type: boolean description: Whether this event is restricted to specific members post_in_feed: type: boolean description: Whether this event appears in the activity feed event_type: type: string description: 'Type of event: ''online_meeting'', ''local_meetup'', ''zoom_meeting'', ''zoom_webinar'', etc.' example: online_meeting starts_at: type: string format: date-time description: The date and time the event starts (ISO8601 format in event's timezone) example: '2026-07-05T21:11:42+00:00' ends_at: type: string format: date-time description: The date and time the event ends (ISO8601 format in event's timezone) example: '2026-07-05T21:11:42+00:00' time_zone: type: string description: IANA timezone identifier for the event location: type: string description: Physical location of the event link: type: string description: External event link URL frequency: type: string description: 'Recurrence frequency: ''daily'', ''weekly'', ''monthly'', or ''yearly''' interval: type: integer format: uint64 description: Recurrence interval (e.g., 1 for every week, 2 for every 2 weeks) ErrorResponse: type: object required: - error properties: error: type: string description: An error message explaining the problem encountered EventUpdateRequest: description: Request body for updating an event type: object required: [] properties: title: type: string description: The event title example: Monthly Community Meetup description: type: string description: The event description example: Join us for our monthly community meetup link: type: string description: External event link URL example: https://zoom.us/j/123456789 starts_at: type: string format: date-time description: The date and time the event starts (ISO8601 format) example: '2025-01-15T14:00:00Z' ends_at: type: string format: date-time description: The date and time the event ends (ISO8601 format) example: '2025-01-15T16:00:00Z' event_type: type: string description: 'Type of event: ''online_meeting'', ''local_meetup'', etc.' example: online_meeting location: type: string description: Physical location of the event example: San Francisco, CA time_zone: type: string description: IANA timezone identifier for the event example: America/Los_Angeles rsvp_enabled: type: boolean description: 'Whether RSVPs are enabled (default: true)' example: true rsvp_closed: type: boolean description: 'Whether RSVPs are closed (default: false)' restricted_event: type: boolean description: 'Whether event is restricted to specific members (default: false)' post_in_feed: type: boolean description: 'Whether event appears in the activity feed (default: true)' example: true frequency: type: string description: 'Recurrence frequency: ''daily'', ''weekly'', ''monthly'', or ''yearly''' example: weekly interval: type: integer format: uint64 description: Recurrence interval (e.g., 1 for every week, 2 for every 2 weeks) example: 1 by_days: type: string description: Comma-separated list of recurrence day abbreviations (SU/MO/TU/WE/TH/FR/SA) example: MO,WE,FR by_month_days: type: string description: Comma-separated list of Nth day-of-the-month for recurrence example: 1,15 recurrence_count: type: integer format: uint64 description: How many times the event should recur recur_until: type: string format: date-time description: End date for recurrence example: '2026-07-05T21:11:42+00:00' UserResponse: type: object required: - admin - created_at - email - id - name - short_bio - updated_at properties: id: type: integer format: uint64 description: The record's integer ID example: '1234' created_at: type: string format: date-time description: The date and time the record was created example: '2026-07-05T21:11:41+00:00' updated_at: type: string format: date-time description: The date and time the record was last modified example: '2026-07-05T21:11:41+00:00' name: type: string description: The user's full name email: type: string format: email description: The user's email address example: ada.lovelace@example.com short_bio: type: string description: A short biography of the user admin: type: boolean description: Whether or not the user is an admin of the network EventCreateRequest: description: Request body for creating or updating an event type: object required: - ends_at - event_type - space_id - starts_at - title properties: title: type: string description: The event title example: Monthly Community Meetup description: type: string description: The event description example: Join us for our monthly community meetup link: type: string description: External event link URL example: https://zoom.us/j/123456789 starts_at: type: string format: date-time description: The date and time the event starts (ISO8601 format) example: '2025-01-15T14:00:00Z' ends_at: type: string format: date-time description: The date and time the event ends (ISO8601 format) example: '2025-01-15T16:00:00Z' event_type: type: string description: 'Type of event: ''online_meeting'', ''local_meetup'', etc.' example: online_meeting space_id: type: integer format: uint64 description: ID of the space where the event will be created example: 123 location: type: string description: Physical location of the event example: San Francisco, CA time_zone: type: string description: IANA timezone identifier for the event example: America/Los_Angeles rsvp_enabled: type: boolean description: 'Whether RSVPs are enabled (default: true)' example: true rsvp_closed: type: boolean description: 'Whether RSVPs are closed (default: false)' restricted_event: type: boolean description: 'Whether event is restricted to specific members (default: false)' post_in_feed: type: boolean description: 'Whether event appears in the activity feed (default: true)' example: true frequency: type: string description: 'Recurrence frequency: ''daily'', ''weekly'', ''monthly'', or ''yearly''' example: weekly interval: type: integer format: uint64 description: Recurrence interval (e.g., 1 for every week, 2 for every 2 weeks) example: 1 by_days: type: integer format: uint64 description: Comma-separated list of recurrence day obreviations (SU/MO/TU/WE/TH/FR/SA) example: MO,WE,FR by_month_days: type: integer format: uint64 description: Comma-separated list of Nth day-of-the-month for recurrence) example: 1,15 recurrence_count: type: integer format: uint64 description: How many times the event should recurr recur_until: type: string format: date-time description: End date for recurrence example: '2026-07-05T21:11:42+00:00' securitySchemes: bearerAuth: type: http scheme: bearer