openapi: 3.1.0 info: title: Wealthbox CRM API description: | REST API for Wealthbox, a CRM built for financial advisors. Provides CRUD endpoints for contacts, tasks, events, opportunities, notes, workflows, users, and teams. Authenticate either with a personal Access Token sent in the `ACCESS_TOKEN` header, or with an OAuth 2.0 bearer token sent in the standard `Authorization: Bearer ...` header. version: "1.0.0" contact: name: Wealthbox Developers url: https://dev.wealthbox.com license: name: Proprietary servers: - url: https://api.crmworkspace.com/v1 description: Wealthbox CRM production API security: - accessToken: [] - oauth2: [] tags: - name: Profile - name: Contacts - name: Tasks - name: Events - name: Opportunities - name: Notes - name: Workflows - name: Users - name: Teams - name: Activity paths: /me: get: tags: [Profile] summary: Retrieve login profile information operationId: getMe responses: "200": description: Logged-in user profile. /activity: get: tags: [Activity] summary: Retrieve the activity stream operationId: getActivity responses: "200": description: Activity stream entries. /contacts: get: tags: [Contacts] summary: List all contacts operationId: listContacts responses: "200": description: A list of contacts. post: tags: [Contacts] summary: Create a new contact operationId: createContact requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Contact" responses: "201": description: Contact created. /contacts/{id}: parameters: - $ref: "#/components/parameters/IdPath" get: tags: [Contacts] summary: Retrieve a contact operationId: getContact responses: "200": description: A contact record. put: tags: [Contacts] summary: Update a contact operationId: updateContact requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Contact" responses: "200": description: Updated contact. delete: tags: [Contacts] summary: Delete a contact operationId: deleteContact responses: "204": description: Contact deleted. /tasks: get: tags: [Tasks] summary: List all tasks operationId: listTasks responses: "200": description: A list of tasks. post: tags: [Tasks] summary: Create a new task operationId: createTask requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Task" responses: "201": description: Task created. /tasks/{id}: parameters: - $ref: "#/components/parameters/IdPath" get: tags: [Tasks] summary: Retrieve a task operationId: getTask responses: "200": description: A task record. put: tags: [Tasks] summary: Update a task operationId: updateTask requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Task" responses: "200": description: Updated task. delete: tags: [Tasks] summary: Delete a task operationId: deleteTask responses: "204": description: Task deleted. /events: get: tags: [Events] summary: List all events operationId: listEvents responses: "200": description: A list of events. post: tags: [Events] summary: Create an event operationId: createEvent requestBody: required: true content: application/json: schema: type: object responses: "201": description: Event created. /opportunities: get: tags: [Opportunities] summary: List all opportunities operationId: listOpportunities responses: "200": description: A list of opportunities. post: tags: [Opportunities] summary: Create an opportunity operationId: createOpportunity requestBody: required: true content: application/json: schema: type: object responses: "201": description: Opportunity created. /notes: get: tags: [Notes] summary: List all notes operationId: listNotes responses: "200": description: A list of notes. post: tags: [Notes] summary: Create a note operationId: createNote requestBody: required: true content: application/json: schema: type: object responses: "201": description: Note created. /workflows: get: tags: [Workflows] summary: List all workflows operationId: listWorkflows responses: "200": description: A list of workflows. post: tags: [Workflows] summary: Create a workflow operationId: createWorkflow requestBody: required: true content: application/json: schema: type: object responses: "201": description: Workflow created. /workflows/{id}: parameters: - $ref: "#/components/parameters/IdPath" get: tags: [Workflows] summary: Retrieve a workflow operationId: getWorkflow responses: "200": description: A workflow record. delete: tags: [Workflows] summary: Delete a workflow operationId: deleteWorkflow responses: "204": description: Workflow deleted. /users: get: tags: [Users] summary: List all users operationId: listUsers responses: "200": description: A list of users. /teams: get: tags: [Teams] summary: List all teams operationId: listTeams responses: "200": description: A list of teams. components: parameters: IdPath: in: path name: id required: true schema: type: integer format: int64 description: Wealthbox resource identifier. schemas: Contact: type: object properties: id: type: integer format: int64 first_name: type: string last_name: type: string email_addresses: type: array items: type: object properties: address: type: string format: email kind: type: string phone_numbers: type: array items: type: object properties: address: type: string kind: type: string Task: type: object properties: id: type: integer format: int64 name: type: string due_date: type: string complete: type: boolean linked_to: type: array items: type: object properties: id: type: integer type: type: string securitySchemes: accessToken: type: apiKey in: header name: ACCESS_TOKEN description: Personal Access Token issued from the Wealthbox account settings. oauth2: type: oauth2 description: OAuth 2.0 authorization code flow for third-party integrations. flows: authorizationCode: authorizationUrl: https://app.crmworkspace.com/oauth/authorize tokenUrl: https://app.crmworkspace.com/oauth/token scopes: login: Access basic profile information data: Read and write CRM data externalDocs: description: Wealthbox API Reference url: https://dev.wealthbox.com