{"openapi":"3.1.0","info":{"title":"Brella (BYOK) API","version":"0.1.0","description":"Brella (BYOK) lets an AI assistant read your own Brella data through the Brella API with a key you supply (Brella Core API organization token). Read-only: 12 tools (list_events, list_event_analytics, get_ticket_sales_analytics, get_event_timeline_analytics, get_event_benchmarks, list_content_sessions, list_session_analytics, list_sponsors, list_sponsor_categories, list_tracks, list_ticket_types,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-brella.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-brella/docs"},"termsOfService":"https://connectorbay.com/byok-brella/terms"},"servers":[{"url":"https://byok-brella.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-brella/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List the organization's events. Which fields come back is set by the token's scopes. Returns JSON:API records, paged. Us","description":"List the organization's events. Which fields come back is set by the token's scopes. Returns JSON:API records, paged. Use for \"Which Brella events do we have this year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this type, for example in_person, virtual or hybrid.","title":"Event Type"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id"],"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_event_analytics":{"post":{"operationId":"list_event_analytics","summary":"Aggregate event metrics per event: registrations, networking opt-in, meetings, chat, leads, sessions, sponsors and booth","description":"Aggregate event metrics per event: registrations, networking opt-in, meetings, chat, leads, sessions, sponsors and booth traffic. Counts and rates only. Use for \"How many meetings were accepted at each of our Brella events\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this event.","title":"Event Id"},"event_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this type.","title":"Event Type"},"past":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True limits results to events that already ended.","title":"Past"},"start_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Events starting on or after this date (YYYY-MM-DD).","title":"Start From"},"start_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Events starting on or before this date (YYYY-MM-DD).","title":"Start To"}},"required":["organization_id"],"title":"list_event_analyticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_ticket_sales_analytics":{"post":{"operationId":"get_ticket_sales_analytics","summary":"Ticket sales totals per event: purchase counts by status, revenue per currency in minor units, tickets sold, discount co","description":"Ticket sales totals per event: purchase counts by status, revenue per currency in minor units, tickets sold, discount codes, purchases by type and source. Use for \"How much ticket revenue did our Brella event bring in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this event.","title":"Event Id"},"currency":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this currency, for example EUR.","title":"Currency"},"purchase_completed_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Completed on or after this timestamp (ISO 8601).","title":"Purchase Completed From"},"purchase_completed_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Completed on or before this timestamp (ISO 8601).","title":"Purchase Completed To"}},"required":["organization_id"],"title":"get_ticket_sales_analyticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_event_timeline_analytics":{"post":{"operationId":"get_event_timeline_analytics","summary":"Cumulative registration and engagement points over time for one event, by day, week or month. Points are cumulative and ","description":"Cumulative registration and engagement points over time for one event, by day, week or month. Points are cumulative and should not be summed. Use for \"How did joined registrants build up before the Brella event\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"The event to chart.","minimum":1,"title":"Event Id","type":"integer"},"window_start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First date of the window (YYYY-MM-DD).","title":"Window Start"},"window_end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Last date of the window (YYYY-MM-DD).","title":"Window End"},"step":{"anyOf":[{"enum":["day","week","month"],"type":"string"},{"type":"null"}],"default":null,"description":"Point spacing.","title":"Step"}},"required":["organization_id","event_id"],"title":"get_event_timeline_analyticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_event_benchmarks":{"post":{"operationId":"get_event_benchmarks","summary":"Compare engagement metrics (seat claim rate, networking opt-in, meeting acceptance and similar) across at least two of y","description":"Compare engagement metrics (seat claim rate, networking opt-in, meeting acceptance and similar) across at least two of your events. Use for \"How does the meeting acceptance rate compare across our last three Brella events\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"comparison_event_ids":{"description":"Comma-separated ids of at least two events to compare, for example 101,102,103.","maxLength":200,"title":"Comparison Event Ids","type":"string"},"event_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only return the comparison for this event.","title":"Event Id"},"metric":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this metric, for example meeting-acceptance-rate.","title":"Metric"}},"required":["organization_id","comparison_event_ids"],"title":"get_event_benchmarksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_content_sessions":{"post":{"operationId":"list_content_sessions","summary":"List an event's schedule sessions with title, time, track, capacity and RSVP counts as allowed by the token's scopes. Pa","description":"List an event's schedule sessions with title, time, track, capacity and RSVP counts as allowed by the token's scopes. Paged. Use for \"What sessions are scheduled on the main track of my Brella event\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"track_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sessions on this track.","title":"Track Id"},"uses_rsvp":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only sessions that use RSVP.","title":"Uses Rsvp"},"start_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Sessions starting on or after this timestamp (ISO 8601).","title":"Start From"},"start_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Sessions starting on or before this timestamp (ISO 8601).","title":"Start To"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_content_sessionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_session_analytics":{"post":{"operationId":"list_session_analytics","summary":"Per-session engagement metrics for an event: bookmarks, RSVPs, check-ins, tracked viewers and average rating. Use for \"W","description":"Per-session engagement metrics for an event: bookmarks, RSVPs, check-ins, tracked viewers and average rating. Use for \"Which Brella sessions were rated highest\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"track_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sessions on this track.","title":"Track Id"},"uses_rsvp":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only sessions that use RSVP.","title":"Uses Rsvp"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_session_analyticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sponsors":{"post":{"operationId":"list_sponsors","summary":"List an event's sponsors and exhibitors (company-level data) with category, level and booth settings as allowed by the t","description":"List an event's sponsors and exhibitors (company-level data) with category, level and booth settings as allowed by the token's scopes. Use for \"Which sponsors does my Brella event have at gold level\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sponsors with this name.","title":"Name"},"level":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sponsors at this level.","title":"Level"},"category_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only sponsors in this category.","title":"Category Id"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_sponsorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sponsor_categories":{"post":{"operationId":"list_sponsor_categories","summary":"List an event's sponsor categories with level, position and sponsor count. Use for \"What sponsor categories exist for my","description":"List an event's sponsor categories with level, position and sponsor count. Use for \"What sponsor categories exist for my Brella event\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only categories with this name.","title":"Name"},"level":{"anyOf":[{"enum":["large","medium","small"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this level: large, medium or small.","title":"Level"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_sponsor_categoriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tracks":{"post":{"operationId":"list_tracks","summary":"List an event's content tracks with name, colour, position and whether they are enabled. Use for \"What tracks does my Br","description":"List an event's content tracks with name, colour, position and whether they are enabled. Use for \"What tracks does my Brella event have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only enabled (true) or disabled (false) tracks.","title":"Enabled"},"track_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this track type, for example ContentTrack.","title":"Track Type"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_tracksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_ticket_types":{"post":{"operationId":"list_ticket_types","summary":"List an event's ticket types with attendance type, networking and lead-scanning settings and registrant counts. Use for ","description":"List an event's ticket types with attendance type, networking and lead-scanning settings and registrant counts. Use for \"Which ticket types does my Brella event offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"attendance_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this attendance type, for example virtual or in_person.","title":"Attendance Type"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only the default ticket type (true) or the others (false).","title":"Is Default"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_ticket_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_announcements":{"post":{"operationId":"list_announcements","summary":"List an event's announcements with heading, delivery mode, schedule and sent and seen counts. Use for \"Which announcemen","description":"List an event's announcements with heading, delivery mode, schedule and sent and seen counts. Use for \"Which announcements are scheduled for my Brella event\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Numeric id of your Brella organization (it is in the Admin Panel URL and in token setup).","title":"Organization Id","type":"integer"},"event_id":{"description":"Numeric id of the event, from list_events.","title":"Event Id","type":"integer"},"delivery_mode":{"anyOf":[{"enum":["draft","immediate","scheduled","sent"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this delivery mode.","title":"Delivery Mode"},"released":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only released (true) or unreleased (false).","title":"Released"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Records per page (default 30, maximum 100).","title":"Page Size"}},"required":["organization_id","event_id"],"title":"list_announcementsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}