{"openapi":"3.1.0","info":{"title":"Wealthbox (BYOK) API","version":"0.1.0","description":"Wealthbox (BYOK) lets an AI assistant read your own Wealthbox data through the Wealthbox API with a key you supply (Wealthbox API access token). Read-only: 11 tools (list_opportunities, list_tasks, list_events, list_projects, list_workflows, list_workflow_templates, list_tags, list_custom_fields, list_users, list_user_groups, list_teams). The BYOK key travels with each request, is used for that...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-wealthbox.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-wealthbox/docs"},"termsOfService":"https://connectorbay.com/byok-wealthbox/terms"},"servers":[{"url":"https://byok-wealthbox.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-wealthbox/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_opportunities":{"post":{"operationId":"list_opportunities","summary":"List opportunities with name, stage, probability, target close date, manager, next step and fee amounts. Won and lost on","description":"List opportunities with name, stage, probability, target close date, manager, next step and fee amounts. Won and lost ones are left out unless asked for. Use for \"Which Wealthbox opportunities are open and when do they close\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"ID of a linked record (use together with resource_type).","title":"Resource Id"},"resource_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Type of the linked record, for example Contact.","title":"Resource Type"},"include_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include won and lost opportunities.","title":"Include Closed"},"order":{"anyOf":[{"enum":["asc","desc","recent","created"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: asc, desc, recent or created.","title":"Order"},"updated_since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or after this timestamp (for example 2026-10-01 00:00:00 -0400).","title":"Updated Since"},"updated_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or before this timestamp.","title":"Updated Before"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (default 25, up to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_opportunitiesArguments","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 with name, due date, completion, category, priority and visibility. Completed tasks are left out unless asked","description":"List tasks with name, due date, completion, category, priority and visibility. Completed tasks are left out unless asked for. Use for \"Which Wealthbox tasks are due and who owns them\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"ID of a linked record (use together with resource_type).","title":"Resource Id"},"resource_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Type of the linked record, for example Contact.","title":"Resource Type"},"assigned_to":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks assigned to this user ID.","title":"Assigned To"},"assigned_to_team":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks assigned to this team ID.","title":"Assigned To Team"},"created_by":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks created by this user ID.","title":"Created By"},"completed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include completed tasks.","title":"Completed"},"task_type":{"anyOf":[{"enum":["all","parents","subtasks"],"type":"string"},{"type":"null"}],"default":null,"description":"all, parents or subtasks.","title":"Task Type"},"updated_since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or after this timestamp (for example 2026-10-01 00:00:00 -0400).","title":"Updated Since"},"updated_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or before this timestamp.","title":"Updated Before"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (default 25, up to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"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_events":{"post":{"operationId":"list_events","summary":"List calendar events with title, start and end, all-day flag, location, state and category. Descriptions and invitees ar","description":"List calendar events with title, start and end, all-day flag, location, state and category. Descriptions and invitees are left out. Use for \"What Wealthbox meetings are on the calendar this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"ID of a linked record (use together with resource_type).","title":"Resource Id"},"resource_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Type of the linked record, for example Contact.","title":"Resource Type"},"start_date_min":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest event start (for example 2026-10-01 00:00:00 -0400).","title":"Start Date Min"},"start_date_max":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Latest event start.","title":"Start Date Max"},"order":{"anyOf":[{"enum":["asc","desc","recent","created"],"type":"string"},{"type":"null"}],"default":null,"description":"Order: asc, desc, recent or created.","title":"Order"},"updated_since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or after this timestamp (for example 2026-10-01 00:00:00 -0400).","title":"Updated Since"},"updated_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or before this timestamp.","title":"Updated Before"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (default 25, up to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"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_projects":{"post":{"operationId":"list_projects","summary":"List projects with name, description, organizer and visibility. Use for \"Which projects are running in Wealthbox\".","description":"List projects with name, description, organizer and visibility. Use for \"Which projects are running in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"updated_since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or after this timestamp (for example 2026-10-01 00:00:00 -0400).","title":"Updated Since"},"updated_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or before this timestamp.","title":"Updated Before"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (default 25, up to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_projectsArguments","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_workflows":{"post":{"operationId":"list_workflows","summary":"List workflows (running process instances) with label, template and visibility. Use for \"Which Wealthbox workflows are a","description":"List workflows (running process instances) with label, template and visibility. Use for \"Which Wealthbox workflows are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"resource_id":{"anyOf":[{"maximum":999999999999,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"ID of a linked record (use together with resource_type).","title":"Resource Id"},"resource_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Type of the linked record, for example Contact.","title":"Resource Type"},"status":{"anyOf":[{"enum":["active","completed","scheduled"],"type":"string"},{"type":"null"}],"default":null,"description":"Workflow status.","title":"Status"},"updated_since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or after this timestamp (for example 2026-10-01 00:00:00 -0400).","title":"Updated Since"},"updated_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only items updated on or before this timestamp.","title":"Updated Before"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Results per page (default 25, up to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_workflowsArguments","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_workflow_templates":{"post":{"operationId":"list_workflow_templates","summary":"List workflow templates with name, description, whether steps are sequential and whether the template is ready to use. U","description":"List workflow templates with name, description, whether steps are sequential and whether the template is ready to use. Use for \"Which workflow templates do we have in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workflow_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_tags":{"post":{"operationId":"list_tags","summary":"List the tags defined in the workspace for contacts and notes. Use for \"Which tags are used in Wealthbox\".","description":"List the tags defined in the workspace for contacts and notes. Use for \"Which tags are used in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"document_type":{"anyOf":[{"enum":["Contact","Note"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tags for this record type.","title":"Document Type"}},"title":"list_tagsArguments","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_custom_fields":{"post":{"operationId":"list_custom_fields","summary":"List custom fields with name, record type, field type and select options. Use for \"Which custom fields are set up in Wea","description":"List custom fields with name, record type, field type and select options. Use for \"Which custom fields are set up in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"document_type":{"anyOf":[{"enum":["Contact","Opportunity","Project","Task","Event"],"type":"string"},{"type":"null"}],"default":null,"description":"Only fields for this record type.","title":"Document Type"}},"title":"list_custom_fieldsArguments","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_users":{"post":{"operationId":"list_users","summary":"List workspace users with name, status and whether they are excluded from assignments. Email addresses are left out. Use","description":"List workspace users with name, status and whether they are excluded from assignments. Email addresses are left out. Use for \"Who is on our Wealthbox team\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["active","invited","inactive","legacy","all"],"type":"string"},{"type":"null"}],"default":null,"description":"User status.","title":"Status"}},"title":"list_usersArguments","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_user_groups":{"post":{"operationId":"list_user_groups","summary":"List user groups with name and member user IDs. Use for \"Which user groups exist in Wealthbox\".","description":"List user groups with name and member user IDs. Use for \"Which user groups exist in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_user_groupsArguments","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_teams":{"post":{"operationId":"list_teams","summary":"List teams by ID and name. Use for \"Which teams are set up in Wealthbox\".","description":"List teams by ID and name. Use for \"Which teams are set up in Wealthbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_teamsArguments","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}}}}