TaxDome API & MCP tool catalog (Beta)
Beta
MCP and the API are open to every firm in the beta community. This list grows as we add to them.
This is the full list of what you can do through TaxDome’s MCP and API. See TaxDome API & MCP explained for what MCP and the API are, and how to connect. For request and response details on each endpoint, open the API docs tab in Settings > API & MCP.
Tip
Want an automation but don’t write code? Send this page’s link to your AI assistant, describe what should happen, and ask it to write the automation for you.
What each tool can do
MCP and the API give access to the same set of actions. They’re two different ways to trigger them:
-
Through MCP, ask your AI assistant for the action in plain language. Use the What it does column as a guide. You don’t need to know any endpoint names.
-
Through the API, your program sends requests to the endpoints in the Endpoint (API) column, added to yoursubdomain.taxdome.com/api/v4. For example, GET yoursubdomain.taxdome.com/api/v4/clients lists your clients.
What each key or connection can do also depends on its access rights .
Clients and contacts
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /clients | Lists the firm’s client accounts. | Accepts a search term. Filters: account type, lead, state, tag, assignee (team member), last sign-in, and created, updated, and archived dates. |
| GET /clients/ | Reads one client account. | Contacts are a separate read. |
| POST /clients | Creates a client account. | |
| PATCH /clients/ | Updates a client account. | Only the fields you send change. |
| PATCH /clients/ DELETE /clients/ | Adds a tag to a client or removes one. | The tag itself doesn’t change. |
| GET /contacts GET /contacts/ | Lists and reads contacts. | Accepts a search term. Filter: client (the contacts linked to a client). |
| POST /contacts PATCH /contacts/ | Creates and updates contacts. | |
| GET /contact_links POST /contact_links DELETE /contact_links/ | Lists, links, and unlinks contacts and client accounts. | Unlinking deletes the notes kept on the link; the contact and the client stay. |
| GET /client_assignments GET /client_assignments/ | Shows who is on a client’s team. | Needs a client filter. Read-only: the team is changed in TaxDome. |
| GET /account_role_assignments GET /account_role_assignments/ | Shows which account role each team member holds on a client. | Needs a client filter. Read-only. |
| GET /tags GET /tags/ POST /tags PATCH /tags/ | Lists, reads, creates, and updates tags. | GET /tags/ |
| GET /client_notes POST /client_notes PATCH /client_notes/ DELETE /client_notes/ | Reads and writes notes on client accounts. | Deleting a note archives it, and it can’t be restored through MCP or the API. |
| GET /client_custom_fields POST /client_custom_fields GET /contact_custom_fields POST /contact_custom_fields | Lists and creates client and contact custom fields. | |
| GET /organizers GET /organizers/ | Lists and reads organizers. | Filters: client, archived, finished, sealed, and submitted, created, and updated dates. |
Jobs and pipelines
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /jobs GET /jobs/ | Lists and reads jobs. | Accepts a search term (matches the job name). Filters: client, assignee, pipeline stage, job status, priority, due date, internal deadline, and created and completed dates. |
| POST /jobs | Creates a job for a client in a pipeline. | The job starts at the stage you name, or at the pipeline’s first stage. Stage automations run only if you name each one. |
| PATCH /jobs/ | Edits a job’s name, description, priority, dates, and time budget. | Status, stage, and assignees are changed separately. |
| PATCH /jobs/ | Sets a job’s status. | This is the job status, not the stage. |
| POST /jobs/ | Moves a job to another stage of its pipeline. | Runs that stage’s automations, as in TaxDome. They can email or text the client, send a real invoice, or send an engagement letter to real signers. |
| GET /jobs/ | Shows what’s keeping a job from moving on by itself. | Open tasks, invoices, organizers, proposals, chats, tax returns, and documents waiting for a signature, approval, or payment. |
| GET /job_assignments POST /job_assignments DELETE /job_assignments/ | Lists, adds, and removes job assignees. | |
| GET /jobs/ POST /jobs/ | Lists and adds records linked to a job. | For example, documents, invoices, and tasks. |
| GET /pipelines GET /pipelines/ POST /pipelines POST /pipelines/ | Lists, reads, creates, and copies pipelines. | A copy includes the pipeline’s stages and automations. |
| GET /pipeline_stages GET /job_statuses GET /job_client_statuses | Lists pipeline stages, job statuses, and client-facing job statuses. | |
| GET /job_recurrences GET /job_recurrence_assignments POST /job_recurrence_assignments DELETE /job_recurrence_assignments/ | Lists recurring job rules and manages who their future jobs are assigned to. |
Tasks
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /tasks GET /tasks/ | Lists and reads tasks. | Accepts a search term (matches the task name, not the description). Filters: client, assignee, status, priority, due date, and created and completed dates. |
| POST /tasks | Creates a task. | |
| PATCH /tasks/ | Updates a task. | Only the fields you send change. |
| DELETE /tasks/ | Deletes a task. | Permanent. Tasks don’t go to the trash. |
| GET /task_assignments POST /task_assignments DELETE /task_assignments/ | Lists, adds, and removes task assignees. | Assigned team members are notified, as in TaxDome. |
| GET /tasks/ POST /tasks/ PATCH /tasks/ DELETE /tasks/ | Reads and writes notes on a task. | A deleted note can’t be restored. |
Tax return delivery
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /tax_returns GET /tax_returns/ | Lists the tax returns sent to clients and shows where each one stands. | Includes the client, preparation status, amount owed or refunded and to which tax authority, and when it was sent. For example, ask your AI assistant to message every client who owes tax to California. Filters: client, preparation state, and created and sent-to-client dates. |
| GET /tax_returns/ | Shows how the return’s pages are organized into transmittal letters, e-sign pages, and payment vouchers. | Returns the whole set at once, no paging. |
Invoices and billing
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /bills GET /bills/ | Lists and reads invoices. | Filters: client, status, overdue, amount, and posted, paid, created, and updated dates. |
| GET /bills/ | Reads an invoice’s line items. | |
| GET /payments GET /payments/ | Lists and reads payments. | Filters: client, payment type, state, and paid, created, and updated dates. |
| GET /proposals GET /proposals/ GET /proposals/ GET /proposals/ | Lists and reads proposals, with their services, prices, and packages. | |
| GET /time_entries | Lists time entries. | Filters: client, assignee, task, invoice, invoice status, state, and start and created dates. |
| POST /time_entries/ POST /time_entries/ POST /time_entries/ | Pauses, resumes, or stops a timer. | A finished timer can’t be restarted. |
Documents
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /documents GET /documents/ | Lists and reads document records. | Metadata only: name, client, folder, and approval and e-signature state. The file itself can’t be downloaded or read yet. Filter: e-signature state. |
| POST /blobs GET /blobs/ | Gets a secure link to upload a file. | The first step of adding a document. |
| POST /documents | Adds an uploaded file as a document in a client’s folder. | Can also email the client about it or ask for their approval. |
| PATCH /documents/ | Changes a document’s name, notes, tags, sealing, and approval setting. | Turning on approval emails the client an approval request. |
| POST /documents/ | Moves a document to another folder of the same client. | |
| POST /documents/ | Emails the client about a document, or asks for their approval if it needs one. | |
| DELETE /documents/ POST /documents/ POST /documents/ | Moves a document to the trash, restores it, or deletes it permanently. | Only a document in the trash can be deleted permanently. |
| GET /documents/ | Reads a document’s e-signature request. | Signers, their status, and when each one signed. |
| GET /directories POST /directories PATCH /directories/ POST /directories/ | Lists, creates, renames, and moves client folders, and sets what the client can do in them. | Client access can be set on top-level folders only. Moving a folder into one with the same name merges them. |
| GET /document_checklists GET /document_checklists/ | Lists and reads the document checklists sent to clients. | Filters: client, checklist type, period, status, and created date. Read-only. |
| GET /document_checklist_items | Lists the items of a checklist. | Needs a checklist filter. The attached file is read as a document. |
Communication
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /mailbox_threads GET /mailbox_threads/ | Lists and reads email threads. | Returns the subject, snippet, participants, and read and assignee status. The message body isn’t available yet. |
| POST /mailbox_messages | Sends an email to a client. | Can include uploaded files or be scheduled for later. A sent email can’t be recalled. |
| POST /mailbox_threads/ POST /mailbox_threads/ | Assigns or unassigns an email thread. | |
| POST /mailbox_threads/ PATCH /mailbox_threads/ DELETE /mailbox_threads/ | Adds, edits, and deletes internal comments on an email thread. | Not visible to the client. |
| GET /chat_threads POST /chat_threads | Lists client chat threads or starts a new one. | Filter: unread messages. |
| POST /chat_threads/ | Posts a message into a client chat. | The client sees it right away and is notified. It can’t be taken back. |
| POST /chat_threads/ POST /chat_threads/ POST /chat_threads/ POST /chat_threads/ | Archives, unarchives, assigns, or unassigns a client chat thread. | |
| GET /sms_threads | Lists SMS threads. | |
| POST /sms_threads/ POST /sms_threads/ | Sends a text message, or resends one that failed. | A sent text can’t be recalled. |
| GET /team_channels GET /team_channels/ POST /team_channels | Lists, reads, and creates Team chat channels. | |
| GET /team_channels/ GET /team_channels/ POST /team_channels/ | Reads and posts Team chat messages. | Clients never see Team chat. |
| GET /email_templates GET /email_templates/ GET /message_templates GET /message_templates/ GET /sms_templates GET /sms_templates/ | Lists and reads email, chat, and SMS templates. | Returns each template’s name and settings, such as an email template’s subject, but not the template text. |
Firm
| Endpoint (API) | What it does | Notes |
|---|---|---|
| GET /me | Shows who the key or connection acts as, plus your firm’s details. | Name, subdomain, time zone, currency, and date format. |
| GET /employees | Lists the firm’s employees. | Accepts a search term that matches names and emails. |
| GET /owner | Reads the firm owner’s details. | |
| GET /firm_members | Looks up team members by ID. | Turns the assignee or creator IDs on other records into names and emails. |
| GET /account_roles GET /account_roles/ | Lists the firm’s account roles (the roles a team member can hold on a client). |
Not available yet
These aren’t part of MCP or the API yet:
-
Deleting clients, contacts, or jobs
-
Reading what’s inside documents or emails. Only details like a file’s name or a thread’s subject and status come back, not the file itself or the message text.
-
Creating an e-signature request
-
Marking an email thread as read, or archiving it
-
Unlinking a record from a job
Need one of these, or something else that isn’t here? Tell us what you’re trying to build in the beta community post.
Things to know
Important
There’s no test mode. Emails, chat messages, and texts really send, and they can’t be recalled. Moving a job can email or text a client, send a real invoice payable with a live card, or send an engagement letter to real signers. Test on records you don’t mind clients hearing from.
-
Creating a job doesn’t run automations unless you ask: A new job’s stage automations run only if you name each one. Moving a job to another stage runs that stage’s automations, as in TaxDome.
-
Check the results: Your AI assistant can misread a request or give a wrong answer, and MCP and the API can have bugs in beta. Check results before you act on them, and before anything goes to a client.
If you’re calling the API directly
Through MCP, your AI assistant handles these for you.
-
Text search only works on some lists: Clients, contacts, jobs, tasks, tags, custom fields, employees, and email and chat templates accept a search term. Other lists return an error instead of an unfiltered list.
-
Results are paged: Long lists come back in pages of 50 by default (up to 200). Each response includes a cursor for the next page. Keep passing it back until there isn’t one left. To get the total number of records, ask for the count on the first page.
-
Records you already know can be read together: Send up to 200 IDs in one request instead of reading them one by one.
-
Only declared filters work: Each list accepts specific filter fields and operators. Ask for one it doesn’t support and the call returns an error instead of an unfiltered list.
-
Related records need their own call: A client’s contacts, an invoice’s line items, and a proposal’s packages, among others, each need a separate read.