{"openapi":"3.1.0","info":{"title":"Buildium (BYOK) API","version":"0.1.0","description":"Buildium (BYOK) lets an AI assistant read your own Buildium data through the Buildium API with a key you supply (API key client ID). Read-only: 12 tools (list_rental_properties, get_rental_property, list_rental_units, list_leases, list_lease_transactions, list_tenants, list_outstanding_balances, list_work_orders, list_tasks, list_vendors, list_rental_owners, list_bills). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-buildium.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-buildium/docs"},"termsOfService":"https://connectorbay.com/byok-buildium/terms"},"servers":[{"url":"https://byok-buildium.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-buildium/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_rental_properties":{"post":{"operationId":"list_rental_properties","summary":"List rental properties with name, type, number of units, active flag, city and state, year built and manager. Use for \"W","description":"List rental properties with name, type, number of units, active flag, city and state, year built and manager. Use for \"Which rental properties do I manage in Buildium\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["Active","InActive"],"type":"string"},{"type":"null"}],"default":null,"description":"Active or InActive (default both).","title":"Status"},"location":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only properties whose city or state contains this text.","title":"Location"},"last_updated_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated on or after this UTC time, for example 2026-01-01T00:00:00Z.","title":"Last Updated 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_rental_propertiesArguments","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_rental_property":{"post":{"operationId":"get_rental_property","summary":"Get one rental property by id: structure, units, address, manager, reserve and bank account. Use for \"Show Buildium rent","description":"Get one rental property by id: structure, units, address, manager, reserve and bank account. Use for \"Show Buildium rental property 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"description":"Buildium rental property id.","title":"Property Id","type":"integer"}},"required":["property_id"],"title":"get_rental_propertyArguments","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_rental_units":{"post":{"operationId":"list_rental_units","summary":"List rental units with property, unit number, market rent, bedrooms, bathrooms, size and whether listed or occupied. Use","description":"List rental units with property, unit number, market rent, bedrooms, bathrooms, size and whether listed or occupied. Use for \"Which Buildium units are vacant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this rental property id.","title":"Property Id"},"last_updated_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records updated on or after this UTC time, for example 2026-01-01T00:00:00Z.","title":"Last Updated 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_rental_unitsArguments","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_leases":{"post":{"operationId":"list_leases","summary":"List leases with property, unit, dates, type, status, rent, security deposit and eviction flag; filter by property, stat","description":"List leases with property, unit, dates, type, status, rent, security deposit and eviction flag; filter by property, status or tenant name. Use for \"Which Buildium leases end soon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"property_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this rental property id.","title":"Property Id"},"lease_status":{"anyOf":[{"enum":["Active","Past","Future"],"type":"string"},{"type":"null"}],"default":null,"description":"Active, Past or Future.","title":"Lease Status"},"tenant_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of a tenant name.","title":"Tenant Name"},"lease_date_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only leases ending on or before this date, YYYY-MM-DD.","title":"Lease Date To"},"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_leasesArguments","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_lease_transactions":{"post":{"operationId":"list_lease_transactions","summary":"List the transactions of one lease (charges, payments, credits, refunds) with date, type and amount. Use for \"What payme","description":"List the transactions of one lease (charges, payments, credits, refunds) with date, type and amount. Use for \"What payments did Buildium lease 777 make\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lease_id":{"description":"Buildium lease id.","title":"Lease Id","type":"integer"},"transaction_date_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions on or after this date, YYYY-MM-DD.","title":"Transaction Date From"},"transaction_date_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions on or before this date, YYYY-MM-DD.","title":"Transaction Date To"},"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"}},"required":["lease_id"],"title":"list_lease_transactionsArguments","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_tenants":{"post":{"operationId":"list_tenants","summary":"List tenants with name, e-mail, creation date and sms opt-in status; filter by name, e-mail, property or unit number. Us","description":"List tenants with name, e-mail, creation date and sms opt-in status; filter by name, e-mail, property or unit number. Use for \"Find the Buildium tenant named Johnson\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the tenant name.","title":"Name"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Tenant e-mail address.","title":"Email"},"property_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this rental property id.","title":"Property 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_tenantsArguments","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_outstanding_balances":{"post":{"operationId":"list_outstanding_balances","summary":"List leases with unpaid balances split by age (0-30, 31-60, 61-90, over 90 days) and the total. Use for \"Which Buildium ","description":"List leases with unpaid balances split by age (0-30, 31-60, 61-90, over 90 days) and the total. Use for \"Which Buildium tenants are behind on rent\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lease_status":{"anyOf":[{"enum":["Active","Past","Future"],"type":"string"},{"type":"null"}],"default":null,"description":"Active, Past or Future.","title":"Lease Status"},"balance_duration":{"anyOf":[{"enum":["TotalBalance","Balance0to30Days","Balance31to60Days","Balance61to90Days","BalanceOver90Days"],"type":"string"},{"type":"null"}],"default":null,"description":"Only balances in this age bucket.","title":"Balance Duration"},"eviction_status":{"anyOf":[{"enum":["NotEvictionPending","EvictionPending"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter by eviction state.","title":"Eviction Status"},"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_outstanding_balancesArguments","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_work_orders":{"post":{"operationId":"list_work_orders","summary":"List maintenance work orders with title, status, priority, due date, vendor and amount. Use for \"Which Buildium work ord","description":"List maintenance work orders with title, status, priority, due date, vendor and amount. Use for \"Which Buildium work orders are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["New","InProgress","Completed","Deferred","Closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Work order status.","title":"Status"},"priority":{"anyOf":[{"enum":["Low","Normal","High"],"type":"string"},{"type":"null"}],"default":null,"description":"Priority.","title":"Priority"},"due_date_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only work orders due on or before this date, YYYY-MM-DD.","title":"Due Date To"},"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_work_ordersArguments","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_tasks":{"post":{"operationId":"list_tasks","summary":"List tasks (resident requests, contact requests, to-dos, owner requests) with title, status, priority, due date and prop","description":"List tasks (resident requests, contact requests, to-dos, owner requests) with title, status, priority, due date and property. Use for \"What resident requests are open in Buildium\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"enum":["ContactRequest","ResidentRequest","Todo","RentalOwnerRequest"],"type":"string"},{"type":"null"}],"default":null,"description":"Task type.","title":"Type"},"status":{"anyOf":[{"enum":["New","InProgress","Completed","Deferred","Closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Task status.","title":"Status"},"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_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/list_vendors":{"post":{"operationId":"list_vendors","summary":"List vendors with name, category, e-mail, active flag and insurance expiry. Use for \"Which Buildium vendors have expired","description":"List vendors with name, category, e-mail, active flag and insurance expiry. Use for \"Which Buildium vendors have expired insurance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["Active","Inactive"],"type":"string"},{"type":"null"}],"default":null,"description":"Active or Inactive.","title":"Status"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the vendor name.","title":"Name"},"insurance_expiration":{"anyOf":[{"enum":["Expired","ThirtyDaysOrLess","SixtyDaysOrLess","NinetyDaysOrLess","None","Any"],"type":"string"},{"type":"null"}],"default":null,"description":"Insurance state.","title":"Insurance Expiration"},"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_vendorsArguments","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_rental_owners":{"post":{"operationId":"list_rental_owners","summary":"List rental property owners with name, e-mail, active flag, management agreement dates and property ids. Use for \"Who ar","description":"List rental property owners with name, e-mail, active flag, management agreement dates and property ids. Use for \"Who are the owners of my Buildium rentals\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["Active","Inactive"],"type":"string"},{"type":"null"}],"default":null,"description":"Active or Inactive.","title":"Status"},"owner_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the owner name.","title":"Owner Name"},"property_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this rental property id.","title":"Property 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_rental_ownersArguments","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_bills":{"post":{"operationId":"list_bills","summary":"List vendor bills with date, due date, paid date, vendor, reference number and approval status. Use for \"Which Buildium ","description":"List vendor bills with date, due date, paid date, vendor, reference number and approval status. Use for \"Which Buildium bills are unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"paid_status":{"anyOf":[{"enum":["Paid","Unpaid","UncollectedMarkups"],"type":"string"},{"type":"null"}],"default":null,"description":"Paid, Unpaid or UncollectedMarkups.","title":"Paid Status"},"vendor_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only bills of this vendor id.","title":"Vendor 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_billsArguments","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}}}}