{"openapi":"3.1.0","info":{"title":"Buildium Communications (BYOK) API","version":"0.1.0","description":"Buildium Communications (BYOK) lets an AI assistant read your own Buildium Communications data through the Buildium Communications API with a key you supply (API key client ID). Read-only: 5 tools (list_announcements, list_message_templates, list_architectural_requests, list_todo_tasks, get_partial_payment_settings). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-buildium-communications.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-buildium-communications/docs"},"termsOfService":"https://connectorbay.com/byok-buildium-communications/terms"},"servers":[{"url":"https://byok-buildium-communications.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-buildium-communications/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_announcements":{"post":{"operationId":"list_announcements","summary":"List announcements with subject, body, announcement and expiration dates and channels; filter by date range or by rental","description":"List announcements with subject, body, announcement and expiration dates and channels; filter by date range or by rental or association. Use for \"Which announcements did I send in Buildium this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only announcements created on or after this date, YYYY-MM-DD.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only announcements created on or before this date, YYYY-MM-DD.","title":"Date To"},"entity_type":{"anyOf":[{"enum":["Rental","RentalOwner","Association"],"type":"string"},{"type":"null"}],"default":null,"description":"What entity_id refers to: Rental, RentalOwner or Association.","title":"Entity Type"},"entity_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only announcements of this entity id.","title":"Entity Id"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 1000; the provider default is 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based position of the first record to return, for paging.","title":"Offset"}},"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}},"/v1/tools/list_message_templates":{"post":{"operationId":"list_message_templates","summary":"List communication templates with name, description and the type of recipient they are written for. Use for \"Which messa","description":"List communication templates with name, description and the type of recipient they are written for. Use for \"Which message templates exist in Buildium for tenants\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 1000; the provider default is 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based position of the first record to return, for paging.","title":"Offset"}},"title":"list_message_templatesArguments","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_architectural_requests":{"post":{"operationId":"list_architectural_requests","summary":"List association architectural requests with association, ownership account, name, submission date, status and decision.","description":"List association architectural requests with association, ownership account, name, submission date, status and decision. Use for \"Which architectural requests are pending in Buildium\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"association_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only requests of this association id.","title":"Association Id"},"status":{"anyOf":[{"enum":["New","InProgress","Completed"],"type":"string"},{"type":"null"}],"default":null,"description":"New, InProgress or Completed.","title":"Status"},"decision":{"anyOf":[{"enum":["Pending","Approved","Denied"],"type":"string"},{"type":"null"}],"default":null,"description":"Pending, Approved or Denied.","title":"Decision"},"submitted_from":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only requests submitted on or after this UTC time.","title":"Submitted From"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 1000; the provider default is 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based position of the first record to return, for paging.","title":"Offset"}},"title":"list_architectural_requestsArguments","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_todo_tasks":{"post":{"operationId":"list_todo_tasks","summary":"List to-do tasks with title, description, category, property, status, priority and due date. Use for \"Which Buildium to-","description":"List to-do tasks with title, description, category, property, status, priority and due date. Use for \"Which Buildium to-dos are due this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"entity_type":{"anyOf":[{"enum":["Rental","RentalOwner","Association"],"type":"string"},{"type":"null"}],"default":null,"description":"What entity_id refers to: Rental, RentalOwner or Association.","title":"Entity Type"},"entity_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks of this entity id.","title":"Entity Id"},"status":{"anyOf":[{"enum":["New","InProgress","Completed","Deferred","Closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Task status.","title":"Status"},"priority":{"anyOf":[{"enum":["Low","Normal","High"],"type":"string"},{"type":"null"}],"default":null,"description":"Priority.","title":"Priority"},"due_date_to":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks due on or before this date, YYYY-MM-DD.","title":"Due Date To"},"title":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the task title.","title":"Title"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many records to return (1 to 1000; the provider default is 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based position of the first record to return, for paging.","title":"Offset"}},"title":"list_todo_tasksArguments","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_partial_payment_settings":{"post":{"operationId":"get_partial_payment_settings","summary":"Show whether Buildium requires resident online payments to be made in full. Use for \"Does Buildium require residents to ","description":"Show whether Buildium requires resident online payments to be made in full. Use for \"Does Buildium require residents to pay in full\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_partial_payment_settingsArguments","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}}}}