The action queue. Read, edit, complete, cancel, and reopen, with notes.
Create or update tasks in a batch
Creates or updates up to 100 tasks in one request. Each item is the body of POST /v1/tasks for a new task, or of PATCH /v1/tasks/{id} for a task that exists. Send external_id with namespace, and the next batch with that id updates the same task. The items are not one transaction: an item that fails does not stop the others. Each item counts as one request against the rate limit. Refer to Migrate from another CRM.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Create or update tasks in a batch › Request Body
From 1 to 100 records. BrokerPlus writes them in this order.
namespace^[A-Za-z0-9_.-]+$The name of the system that your external_id values come from, for example zoho. It is not case-sensitive. It is necessary when an item has an external_id. Two systems can then use the same id without a conflict.
Create or update tasks in a batch › Responses
Success
successAlways true on a successful response.
The requested record.
List tasks
The action queue, newest first. Filter by status to fetch only what is still open.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
statusFilter by task status.
deal_idOnly tasks on this deal.
contact_idOnly tasks for this contact.
List tasks › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Create a task
File a manual task for the broker's queue. The task takes the team of its deal or contact, or the broker's own team. Set assignee_user_id to assign it on creation, or leave it blank to file it unassigned. Supports Idempotency-Key.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Create a task › Request Body
titleShort summary shown to the broker.
bodyLonger detail.
deal_idAttach the task to this deal. The task takes the deal's team.
contact_idAttach the task to this contact. With a deal, the contact must be on the same team.
assignee_user_idThe broker who owns the task. Must be an active user of the brokerage who is eligible for the task's team and deal. Null leaves the task unassigned. An ineligible assignee fails with INVALID_ASSIGNEE.
due_date^(?:(?:\d\d[2468][04…ISO 8601 timestamp. When the task is due.
priorityRank in the broker's queue from 0 (lowest) to 1 (highest). Defaults to 0.5.
categoryOverride the category derived from the task type. Mutually exclusive with custom_category_id.
custom_category_idAttach to a custom category created by the brokerage. Mutually exclusive with category.
Create a task › Responses
Success
successAlways true on a successful response.
The requested record.
Update a task
Edit a task's fields or reassign it. Reassignment checks the new assignee's eligibility for the task's team and deal, the same as the dashboard. Sending the current assignee again is not a reassignment.
path Parameters
idResource id.
Update a task › Request Body
titleNew summary.
bodyNew detail, or null to clear it.
due_date^(?:(?:\d\d[2468][04…ISO 8601. New due date, or null to clear it.
pinnedPin the task to the top of the broker's queue.
progressHow far along it is, a whole percent from 0 to 100.
snoozed_until^(?:(?:\d\d[2468][04…ISO 8601. Put the task aside until this time, or null to bring it back now.
assignee_user_idThe broker who owns the task. Must be an active user of the brokerage who is eligible for the task's team and deal. Null leaves the task unassigned. An ineligible assignee fails with INVALID_ASSIGNEE.
categoryOverride the task type's category, or null to use the type's default. Mutually exclusive with custom_category_id.
custom_category_idAssign to a custom category, or null to clear and use the type's default. Mutually exclusive with category.
Update a task › Responses
Success
successAlways true on a successful response.
The requested record.
List who deals are waiting on
What each deal is waiting for and who owes the next move, as the waiting-on chips on a deal card show it. BrokerPlus starts, escalates, and ends each watch from what happens on the deal, so this is read-only. Without status, every watch is listed, oldest wait first; send status=active for what is still waiting.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
deal_idOnly the watches on this deal.
statusOnly watches in this state.
waiting_onOnly watches waiting on this party.
List who deals are waiting on › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Complete a task
Marks the task done. Send resolution to record why. The body is optional.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Complete a task › Request Body optional
resolutionOptional. Why the task is done, e.g. Client sent the paystub. Text past 2,000 characters is cut.
Complete a task › Responses
Success
successAlways true on a successful response.
The requested record.
Cancel a task
Takes the task out of the queue without completing it. Undo it with POST /tasks/{id}/reopen.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Cancel a task › Responses
Success
successAlways true on a successful response.
The requested record.
Reopen a task
Puts a completed or cancelled task back in the queue as pending. Its completion is cleared.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Reopen a task › Responses
Success
successAlways true on a successful response.
The requested record.
Complete, cancel or reopen many tasks
Applies one action to up to 200 tasks at once, as a select-all in the broker's queue does. A task that is already in that state is skipped rather than failing the request, and so is an approval, which only the broker can decide. The response lists what changed and what was skipped.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Complete, cancel or reopen many tasks › Request Body
actionWhat to do to every task in the list: complete, cancel, or reopen.
task_idsThe tasks to change, up to 200.
Complete, cancel or reopen many tasks › Responses
Success
successAlways true on a successful response.
The requested record.
List a task's notes
Pinned notes first, then the newest. Task notes are internal to the brokerage. A client never sees them.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
List a task's notes › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Add a note to a task
A teammate named with a mention gets a notification, as in BrokerPlus. Supports Idempotency-Key.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Add a note to a task › Request Body
bodyThe note body. Plain text or HTML. Unsafe HTML is removed. The result must contain visible content.
pinnedDefaults to false.
parent_idReply to this note. Must belong to the same record, and cannot itself be a reply.
Add a note to a task › Responses
Success
successAlways true on a successful response.
The requested record.
Delete a note from a task
Deletes the note. You cannot undo this. Only the broker who wrote the note can delete it, and a note that the BrokerPlus assistant wrote cannot be deleted (403 NOT_AUTHOR).
path Parameters
idResource id.
noteIdResource id.
Delete a note from a task › Responses
Success
successAlways true on a successful response.
The requested record.
Update a note on a task
Edit the words, pin or unpin the note. Only the fields you send change. A teammate newly named with a mention gets a notification, as in BrokerPlus.
path Parameters
idResource id.
noteIdResource id.
Update a note on a task › Request Body
bodyThe new note body. Plain text or HTML. Unsafe HTML is removed. The result must contain visible content.
pinnedtrue pins the note to the top of the record. A pin does not change updated_at.
Update a note on a task › Responses
Success
successAlways true on a successful response.
The requested record.
List task categories
The built-in task categories, then the custom categories of the key's team in the team's order. A built-in category that the team hides has hidden: true.
List task categories › Responses
Success
successAlways true on a successful response.
Every category available on a task, built-in and custom.
Create a task category
Adds a custom category to the key's team, after its other categories. Only the team's broker or a brokerage admin can change the team's categories. A team can have 25 custom categories.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Create a task category › Request Body
nameThe category's name. It must be different from the team's other categories, in any letter case.
Create a task category › Responses
Success
successAlways true on a successful response.
The requested record.
Hide built-in task categories
Sets which built-in categories the team takes out of its pickers. A hidden category still collects the tasks that BrokerPlus makes, and filters still show it. Only the team's broker or a brokerage admin can do this. Returns every category.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Hide built-in task categories › Request Body
hiddenThe key of every built-in category to take out of the team's pickers. It replaces the list. Send an empty list to show them all. You cannot hide admin, because a new task starts in it.
Hide built-in task categories › Responses
Success
successAlways true on a successful response.
Every category available on a task, built-in and custom.
Delete a task category
Deletes a custom category of the key's team, the same as in BrokerPlus. The tasks in it go back to their built-in category. Only the team's broker or a brokerage admin can do this.
path Parameters
idResource id.
Delete a task category › Responses
Success
successAlways true on a successful response.
The requested record.
Rename a task category
Renames a custom category of the key's team. The tasks in the category keep it. Only the team's broker or a brokerage admin can do this.
path Parameters
idResource id.
Rename a task category › Request Body
nameThe category's name. It must be different from the team's other categories, in any letter case.
Rename a task category › Responses
Success
successAlways true on a successful response.
The requested record.