# Clientary

A full-suite platform to manage Clients, Invoices, Projects, Proposals, Estimates, Hours, Payments, Contractors and Staff. The perfect solution to win clients and save time.

- **Category:** project management
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 57
- **Triggers:** 0
- **Slug:** `CLIENTARY`
- **Version:** 20260312_00

## Tools

### Create Client

**Slug:** `CLIENTARY_CREATE_CLIENT`

Tool to create a new client record in Clientary. Use when you need to add a new client to the system with company details and contact information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | Postal code or ZIP code |
| `city` | string | No | City name |
| `name` | string | Yes | The client's company or organization name (required) |
| `state` | string | No | State or province |
| `number` | string | No | A unique identifier for the client. Must be unique across all clients |
| `address` | string | No | Street address of the client |
| `country` | string | No | Country code or country name |
| `website` | string | No | Company website URL |
| `address_2` | string | No | Secondary address line (e.g., suite number, apartment number) |
| `description` | string | No | Additional details or notes about the client |
| `invoice_extra_fields` | object | No | Custom invoice fields as key-value pairs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `CLIENTARY_CREATE_CONTACT`

Tool to create a new contact within a specified client. Use when you need to add a contact to a client account with name and email as required fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_id` | integer | Yes | The ID of the client to which the contact belongs. |
| `client_user` | object | Yes | Client user data containing contact information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Expense

**Slug:** `CLIENTARY_CREATE_EXPENSE`

Tool to create a new expense record in Clientary to track expenditures within your account. Use when you need to record expenses, optionally assigning them to specific clients or projects. Requires an amount field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `amount` | number | Yes | The expenditure amount. This is a required field. |
| `client_id` | integer | No | Assigns the expense to a specific client. Optional field. |
| `project_id` | integer | No | Assigns the expense to a particular project. Optional field. |
| `description` | string | No | Details about the expense. Optional field. |
| `incurred_on` | string | No | The date the expense occurred, in YYYY-MM-DD format. Optional field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice

**Slug:** `CLIENTARY_CREATE_INVOICE`

Tool to create a new invoice in Clientary. Requires date, due_date, and currency_code. Optionally associate with a client using client_id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `po` | string | No | Purchase order reference number |
| `date` | string | Yes | Invoice date in YYYY-MM-DD format (required) |
| `note` | string | No | Additional notes or comments for the invoice |
| `title` | string | No | Invoice title or subject |
| `number` | string | No | Invoice number. Will be auto-incremented if not provided. Must be unique. |
| `due_date` | string | Yes | Payment due date in YYYY-MM-DD format (required) |
| `client_id` | integer | No | Client ID to associate with the invoice (optional) |
| `currency_code` | string | Yes | Three-letter ISO currency code (e.g., USD, EUR, GBP) (required) |
| `invoice_items_attributes` | array | No | Array of invoice items to create |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Lead

**Slug:** `CLIENTARY_CREATE_LEAD`

Tool to create a new lead record in Clientary. Use when you need to add a new lead to the system with company details and contact information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `zip` | string | No | Postal code or ZIP code |
| `city` | string | No | City name |
| `name` | string | Yes | The lead's company or organization name (required) |
| `state` | string | No | State or province |
| `number` | string | No | A unique identifier for the lead. Must be unique across all leads |
| `address` | string | No | Street address of the lead |
| `country` | string | No | Country code or country name |
| `website` | string | No | Company website URL |
| `address_2` | string | No | Secondary address line (e.g., suite number, apartment number) |
| `description` | string | No | Additional details or notes about the lead |
| `invoice_extra_fields` | object | No | Custom invoice fields as key-value pairs |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `CLIENTARY_CREATE_PROJECT`

Tool to create a new project in Clientary with name and rate. Use when you need to set up a new project for tracking time, expenses, or managing client work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project` | object | Yes | Project data containing name, rate, and optional budget/project type fields |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project Hours

**Slug:** `CLIENTARY_CREATE_PROJECT_HOURS`

Tool to create a new time entry for a specific project in Clientary. Use when you need to log hours worked on a project with a title and hours count.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | No | Date the hours were worked in YYYY-MM-DD format. If not provided, current date will be used. |
| `hours` | number | Yes | Number of hours logged for the work performed |
| `title` | string | Yes | Title or brief description of the work performed |
| `project_id` | integer | Yes | The unique identifier of the project to log hours for |
| `description` | string | No | Detailed description of the work performed |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Recurring Schedule

**Slug:** `CLIENTARY_CREATE_RECURRING_SCHEDULE`

Tool to create a new recurring schedule for automatic invoice generation in Clientary. Use when you need to set up recurring invoices for a client at regular intervals (weekly, monthly, quarterly, etc.). Requires client_id, next_date, time_interval, currency_code, and due_period.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Title or name for the recurring schedule |
| `action` | string ("send" | "draft" | "autobill") | No | Action to perform when generating recurring invoices. |
| `number` | string | No | Custom schedule number identifier |
| `client_id` | integer | Yes | ID of the client for whom the recurring schedule is created (required) |
| `next_date` | string | Yes | Next invoice generation date in YYYY-MM-DD format (required) |
| `due_period` | integer | Yes | Payment due period in days from invoice generation date. Required field. |
| `currency_code` | string | Yes | Currency code for the recurring schedule (e.g., USD, EUR, GBP). Required field. |
| `time_interval` | string ("weekly" | "every_2_weeks" | "semimonthly" | "monthly" | "quarterly" | "annually") | Yes | Frequency of recurring invoice generation: weekly (1), every_2_weeks (2), semimonthly (3), monthly (5), quarterly (7), or annually (9) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task (v2)

**Slug:** `CLIENTARY_CREATE_TASK2`

Tool to create a new task in Clientary using API v2. Use when you need to create a task with a title, optionally associating it with a project, client, or assignee.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The task title (required) |
| `due_date` | string | No | When the task should be completed (date format: YYYY-MM-DD) |
| `client_id` | integer | No | ID of the associated client |
| `project_id` | integer | No | ID of the project to assign the task to |
| `assignee_id` | integer | No | ID of the staff member to assign the task to |
| `description` | string | No | Task details and additional information |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Client

**Slug:** `CLIENTARY_DELETE_CLIENT`

Tool to remove a client and all associated projects, invoices, estimates, and contacts. Use when you need to permanently delete a client from Clientary. WARNING: Deletions are permanent and not reversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the client to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact

**Slug:** `CLIENTARY_DELETE_CLIENTARY_CONTACT`

Tool to permanently delete a contact and all associated comments. Use when you need to remove a contact that is no longer needed. Warning: This action is irreversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Expense

**Slug:** `CLIENTARY_DELETE_CLIENTARY_EXPENSE`

Tool to permanently remove an expense record from Clientary. Use when you need to delete an expense entry. WARNING: Deletions are permanent and not reversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the expense to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Project

**Slug:** `CLIENTARY_DELETE_CLIENTARY_PROJECT`

Tool to permanently delete a project and all associated resources including tasks, hours, expenses, invoices, and estimates. Use when you need to remove a project from Clientary. WARNING: Deletions are permanent and not reversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the project to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Hour Entry

**Slug:** `CLIENTARY_DELETE_HOUR`

Tool to permanently delete a time entry (hour) from Clientary. Use when you need to remove a logged hour entry by its unique identifier. Warning: Deletions are permanent and cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the hour/time entry to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Lead

**Slug:** `CLIENTARY_DELETE_LEAD`

Tool to permanently delete a lead and all associated Estimates and Contacts. Use when you need to remove a lead that is no longer needed. Warning: This action is irreversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the lead to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Payment

**Slug:** `CLIENTARY_DELETE_PAYMENT`

Tool to remove an existing payment from an invoice. Use when you need to permanently delete a payment record. WARNING: Deletions are permanent and not reversible.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the payment record to delete |
| `invoice_id` | string | Yes | The unique identifier of the invoice containing the payment |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Payment Profile

**Slug:** `CLIENTARY_DELETE_PAYMENT_PROFILE`

Tool to remove a specific payment profile from a client's account. Use when you need to delete a payment profile. Note: Client must have an active payment integration with Stripe to manage payment profiles.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the payment profile to delete |
| `client_id` | integer | Yes | The unique identifier of the client who owns the payment profile |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Recurring Schedule

**Slug:** `CLIENTARY_DELETE_RECURRING_SCHEDULE`

Tool to remove a recurring schedule by its identifier. Use when you need to permanently delete a recurring schedule from Clientary. Once deleted, the recurring schedule will no longer generate periodic invoices.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the recurring schedule to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Client

**Slug:** `CLIENTARY_GET_CLIENT`

Tool to fetch details for a specific client using its ID. Use when you need to retrieve complete information about a client from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the client to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contact

**Slug:** `CLIENTARY_GET_CONTACT`

Tool to retrieve a single contact by its ID. Use when you need to fetch detailed information about a specific contact from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Estimate

**Slug:** `CLIENTARY_GET_ESTIMATE`

Tool to retrieve details for a single estimate by ID. Use when you need to obtain comprehensive estimate information including line items, tax details, and financial data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the estimate to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Expense

**Slug:** `CLIENTARY_GET_EXPENSE`

Tool to retrieve details for a single expense record in Clientary. Use when you need to get specific information about an expense by its unique identifier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the expense to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Hour Entry

**Slug:** `CLIENTARY_GET_HOUR`

Tool to obtain details about a specific time entry in Clientary. Use when you need to retrieve information about a logged hour entry by its unique identifier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the hours entry to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Invoice

**Slug:** `CLIENTARY_GET_INVOICE`

Tool to retrieve detailed information for a specific invoice by ID. Use when you need to fetch invoice details including line items, payments, tax information, and current status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the invoice to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Lead

**Slug:** `CLIENTARY_GET_LEAD`

Tool to retrieve a single lead by its ID. Use when you need to fetch detailed information about a specific lead from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the lead to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Project

**Slug:** `CLIENTARY_GET_PROJECT`

Tool to retrieve a single project by its identifier. Use when you need to fetch detailed information about a specific project in Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the project to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Staff

**Slug:** `CLIENTARY_GET_STAFF`

Tool to retrieve a single staff member by their ID. Use when you need to fetch detailed information about a specific staff member from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the staff member to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Task

**Slug:** `CLIENTARY_GET_TASK`

Tool to retrieve a specific task by its ID. Use when you need to fetch detailed information about a task from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the task to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Contacts

**Slug:** `CLIENTARY_LIST_CLIENT_CONTACTS`

Tool to retrieve all contacts for a specific client with pagination support. Use when you need to fetch the list of contacts associated with a particular client in Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Default is 1. |
| `client_id` | integer | Yes | The unique identifier for the client whose contacts you want to retrieve. |
| `page_size` | integer | No | Number of results per page. Default is 10, maximum is 100. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Estimates

**Slug:** `CLIENTARY_LIST_CLIENT_ESTIMATES`

Tool to retrieve all estimates for a specific client with pagination support (30 results per page). Use when you need to fetch estimates associated with a particular client from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Returns 30 results per page. Defaults to page 1 |
| `client_id` | integer | Yes | The unique identifier of the client whose estimates to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Expenses

**Slug:** `CLIENTARY_LIST_CLIENT_EXPENSES`

Tool to retrieve all expenses for a specific client within an optional date range. Use when you need to fetch expense records associated with a particular client from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End date for expense range in YYYY-MM-DD format. Defaults to current fiscal year end if omitted |
| `client_id` | integer | Yes | The unique identifier of the client whose expenses to retrieve |
| `from_date` | string | No | Start date for expense range in YYYY-MM-DD format. Defaults to current fiscal year start if omitted |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Invoices

**Slug:** `CLIENTARY_LIST_CLIENT_INVOICES`

Tool to retrieve all invoices for a specific client with pagination support (30 results per page). Use when you need to fetch invoices associated with a particular client from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Returns 30 results per page |
| `client_id` | integer | Yes | The unique identifier of the client whose invoices to retrieve |
| `updated_since` | string | No | Filter invoices by update timestamp. Format: YYYY-MM-DD |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Payment Profiles

**Slug:** `CLIENTARY_LIST_CLIENT_PAYMENT_PROFILES`

Tool to retrieve payment profiles for a specific client. Payment profiles store credit card information securely via Stripe integration. Use when you need to fetch payment methods associated with a client account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `client_id` | integer | Yes | The unique identifier of the client whose payment profiles to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Client Projects

**Slug:** `CLIENTARY_LIST_CLIENT_PROJECTS`

Tool to retrieve all projects associated with a specific client with pagination support (10 results per page). Use when you need to fetch projects for a particular client from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Defaults to page 1 with 10 results per page |
| `client_id` | integer | Yes | The unique identifier of the client whose projects you want to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Clients

**Slug:** `CLIENTARY_LIST_CLIENTS`

Tool to retrieve all clients with pagination support (10 results per page). Use when you need to fetch a list of clients from Clientary with optional filtering by modification date or custom sorting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve. Default is page 1 with 10 results per page |
| `sort` | string | No | Sort order for results. Use 'date' to retrieve most recently created clients instead of default alphabetical name-based sorting |
| `updated_since` | string | No | Filter clients modified after this date. Format: YYYY-MM-DD |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Estimates

**Slug:** `CLIENTARY_LIST_ESTIMATES`

Tool to retrieve all estimates with pagination support (30 results per page). Use when you need to fetch a list of estimates from Clientary, which serve as proposals or quotes to be sent to clients.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Returns 30 results per page. Defaults to page 1 |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Expenses

**Slug:** `CLIENTARY_LIST_EXPENSES`

Tool to retrieve expenses by date range (defaults to current fiscal year). Use when you need to fetch a list of expenses from Clientary with optional filtering by start and end dates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End date for expense range in YYYY-MM-DD format. If not specified, defaults to the end of the current fiscal year |
| `from_date` | string | No | Start date for expense range in YYYY-MM-DD format. If not specified, defaults to the beginning of the current fiscal year |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Leads

**Slug:** `CLIENTARY_LIST_LEADS`

Tool to retrieve all leads with pagination support. Use when you need to fetch a list of leads from Clientary with optional sorting by name or date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve. Pagination through more results, you can use the page parameter |
| `sort` | string | No | Sort order options: 'name' (alphabetical) or 'oldest' (chronological ascending); default sorts by newest first |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payments

**Slug:** `CLIENTARY_LIST_PAYMENTS`

Tool to retrieve all payments with pagination support (30 results per page). Use when you need to fetch a list of payments from Clientary with optional pagination and custom sorting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve. Default is page 1 with 30 results per page |
| `sort` | string | No | Sort field. Accepts 'created_at' to sort by creation date. Defaults to reverse chronological order by 'received_on' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Estimates

**Slug:** `CLIENTARY_LIST_PROJECT_ESTIMATES`

Tool to retrieve estimates scoped to a particular project with pagination support (30 results per page). Use when you need to fetch all estimates associated with a specific project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Returns 30 results per page. Defaults to page 1 |
| `project_id` | integer | Yes | The unique identifier of the project whose estimates you want to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Expenses

**Slug:** `CLIENTARY_LIST_PROJECT_EXPENSES`

Tool to retrieve all expenses for a specific project within an optional date range. Use when you need to fetch expense records associated with a particular project from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Use this to retrieve additional pages if the result set is large |
| `to_date` | string | No | End date for expense range in YYYY-MM-DD format. Defaults to current fiscal year end if omitted |
| `from_date` | string | No | Start date for expense range in YYYY-MM-DD format. Defaults to current fiscal year start if omitted |
| `project_id` | integer | Yes | The unique identifier of the project whose expenses to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Hours

**Slug:** `CLIENTARY_LIST_PROJECT_HOURS`

Tool to retrieve all time tracking entries logged against a specific project. Use when you need to fetch hour entries for a particular project, optionally filtering by billed or unbilled status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | Narrows results to either 'billed' or 'unbilled' hours. Note: The user associated with the API token must have appropriate permissions to view billed/unbilled hour information |
| `project_id` | integer | Yes | The unique identifier of the project for which to retrieve hour entries |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Invoices

**Slug:** `CLIENTARY_LIST_PROJECT_INVOICES`

Tool to retrieve all invoices linked to a specific project with pagination support (30 results per page). Use when you need to fetch invoices associated with a particular project from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Returns 30 results per page. Defaults to page 1 |
| `project_id` | integer | Yes | The unique identifier of the project whose invoices to retrieve |
| `updated_since` | string | No | Filter invoices by update timestamp. Format: YYYY-MM-DD |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `CLIENTARY_LIST_PROJECTS`

Tool to retrieve all projects with pagination support (10 results per page). Use when you need to fetch a list of projects from Clientary with optional filtering for closed projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve. Default is page 1 with 10 results per page |
| `filter` | string | No | Use 'all' to include closed projects alongside active/billable ones. By default, only active and billable projects are returned |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Project Tasks

**Slug:** `CLIENTARY_LIST_PROJECT_TASKS`

Tool to retrieve all tasks for a specific project. Use when you need to fetch a list of tasks associated with a particular project in Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `project_id` | integer | Yes | The ID of the project to get tasks for |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recurring Schedule Invoices

**Slug:** `CLIENTARY_LIST_RECURRING_SCHEDULE_INVOICES`

Tool to retrieve all invoices generated by a specific recurring schedule with pagination support (30 results per page). Use when you need to fetch invoices associated with a particular recurring schedule from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the recurring schedule whose invoices to retrieve |
| `page` | integer | No | Page number for pagination. Returns 30 results per page |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Staff

**Slug:** `CLIENTARY_LIST_STAFF`

Tool to retrieve all staff members for an account. Use when you need to fetch a complete list of staff members from Clientary.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Tasks

**Slug:** `CLIENTARY_LIST_TASKS`

Tool to retrieve all tasks with pagination support (50 results per page). Use when you need to fetch a list of tasks from Clientary.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number to retrieve. Default is page 1 with 50 results per page |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Invoice Message

**Slug:** `CLIENTARY_SEND_INVOICE_MESSAGE`

Tool to send an invoice message to recipients via email. Use when you need to email an invoice to clients with customizable subject, message content, and options to send a copy to yourself or attach a PDF.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the invoice to send |
| `message` | string | No | Email body content. If not provided, a default message will be used. |
| `subject` | string | No | Email subject line. If not provided, a default subject will be used. |
| `send_copy` | integer | No | Set to 1 to send a copy of the email to the API token user. Set to 0 or omit to not send a copy. |
| `attach_pdf` | integer | No | Set to 1 to include a PDF attachment of the invoice with the email. Set to 0 or omit to not attach PDF. |
| `recipients` | array | Yes | An array of email addresses to receive the invoice. At least one recipient is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Client

**Slug:** `CLIENTARY_UPDATE_CLIENT`

Tool to update an existing client record in Clientary with partial or complete field modifications. Use when you need to modify client details such as name, address, description, or custom fields. All fields except ID are optional.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the client to update |
| `zip` | string | No | Postal code. Include to update the postal code. |
| `city` | string | No | City location. Include to update the city. |
| `name` | string | No | Client company or organization name. Include to update the name. |
| `state` | string | No | State or province. Include to update the state. |
| `number` | string | No | Client reference number. Must be unique across all clients. Returns HTTP 422 on duplicate. |
| `address` | string | No | Primary street address. Include to update the address. |
| `country` | string | No | Country code (e.g., 'US'). Include to update the country. |
| `website` | string | No | Client website URL. Include to update the website. |
| `address_2` | string | No | Secondary address line (suite, unit, etc.). Include to update the secondary address. |
| `description` | string | No | Additional client notes or details. Include to update the description. |
| `invoice_extra_fields` | object | No | Custom invoice field data as key-value pairs. Include to update custom fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact

**Slug:** `CLIENTARY_UPDATE_CLIENTARY_CONTACT`

Tool to update an existing contact in Clientary with partial or complete field modifications. Use when you need to modify contact details such as name, email, title, or phone numbers. Supports partial updates via the client_user wrapper object.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the contact to update. |
| `client_user` | object | Yes | Client user data containing contact fields to update. All fields are optional for partial updates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Lead

**Slug:** `CLIENTARY_UPDATE_CLIENTARY_LEAD`

Tool to update an existing lead record in Clientary with partial or complete field modifications. Use when you need to modify lead details such as name, address, website, description, or custom fields. All fields except ID are optional.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the lead to update |
| `zip` | string | No | Postal code. Include to update the postal code. |
| `city` | string | No | City location. Include to update the city. |
| `name` | string | No | Lead company or organization name. Include to update the name. |
| `state` | string | No | State or province. Include to update the state. |
| `number` | string | No | Lead reference number. Must be unique across all leads. Returns HTTP 422 on duplicate. |
| `address` | string | No | Primary street address. Include to update the address. |
| `country` | string | No | Country code (e.g., 'US'). Include to update the country. |
| `website` | string | No | Lead website URL. Include to update the website. |
| `address_2` | string | No | Secondary address line (suite, unit, etc.). Include to update the secondary address. |
| `description` | string | No | Additional lead notes or details. Include to update the description. |
| `invoice_extra_fields` | object | No | Custom invoice field data as key-value pairs. Include to update custom fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Expense

**Slug:** `CLIENTARY_UPDATE_EXPENSE`

Tool to update an existing expense record in Clientary with partial or complete field modifications. Use when you need to modify expense details such as amount, description, client assignment, project assignment, or incurred date. All fields except ID are optional.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the expense to update |
| `amount` | number | No | The monetary value of the expense. Include to update the amount. |
| `client_id` | integer | No | Client assignment identifier. Include to update the associated client. |
| `project_id` | integer | No | Project assignment identifier. Include to update the associated project. |
| `description` | string | No | Expense description. Include to update the description. |
| `incurred_on` | string | No | Date when expense was incurred in YYYY-MM-DD format. Include to update the date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Hour Entry

**Slug:** `CLIENTARY_UPDATE_HOUR`

Tool to modify an existing time entry in Clientary with partial or complete field updates. Use when you need to update hours, title, date, description, rate, or billing status of a logged hour entry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the hours entry to update |
| `date` | string | No | Work date in YYYY/MM/DD format. Optional for partial updates. |
| `rate` | number | No | Billing rate per hour. Optional for partial updates. |
| `hours` | number | No | Duration of work logged in hours. Optional for partial updates. |
| `title` | string | No | Name or label for the time entry. Optional for partial updates. |
| `billed` | boolean | No | Billing status indicator. Optional for partial updates. |
| `description` | string | No | Detailed notes about work performed. Optional for partial updates. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Invoice

**Slug:** `CLIENTARY_UPDATE_INVOICE`

Tool to update an existing invoice in Clientary with partial or complete field modifications. Use when you need to modify invoice details such as number, dates, currency, or line items. For invoice_items_attributes: include item ID to edit existing items, omit ID to create new items, or set destroy=true with ID to delete items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the invoice to update |
| `po` | string | No | Purchase order reference number |
| `date` | string | No | Invoice date in YYYY-MM-DD format |
| `note` | string | No | Additional notes or comments for the invoice |
| `title` | string | No | Invoice title or subject |
| `number` | string | No | Invoice number. Must be unique across all invoices. Returns HTTP 422 on duplicate. |
| `due_date` | string | No | Payment due date in YYYY-MM-DD format |
| `currency_code` | string | No | Three-letter ISO currency code (e.g., USD, EUR, GBP) |
| `invoice_items_attributes` | array | No | Array of invoice items to create, update, or delete. Include item ID to edit or delete existing items, omit ID to create new items, or set destroy=true with ID to delete items. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Project

**Slug:** `CLIENTARY_UPDATE_PROJECT`

Tool to update an existing project in Clientary with partial or complete field modifications. Use when you need to modify project details such as name, rate, description, budget, status, or other project attributes. All fields except ID are optional - only provided fields will be updated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the project to update |
| `name` | string | No | The project name. Include to update the project name. |
| `rate` | number | No | Project rate (hourly rate or total cost depending on project type). Include to update the rate. |
| `budget` | number | No | Budget amount. Include to update the budget. |
| `number` | string | No | Unique project number. Include to update the project number. Note: triggers HTTP 422 if duplicate. |
| `status` | integer | No | Project status code. Include to update the status. |
| `end_date` | string | No | Project end date in YYYY-MM-DD format. Include to update the end date. |
| `budget_type` | integer | No | Budget type: 0 = total budgeted hours; 1 = total budgeted amount. Include to update the budget type. |
| `description` | string | No | Project description. Include to update the description. |
| `project_type` | integer | No | Project type: 0 = hourly rate project; 2 = fixed amount project. Include to update the project type. |
| `currency_code` | string | No | Currency code (e.g., USD, EUR, GBP). Include to update the currency code. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Task

**Slug:** `CLIENTARY_UPDATE_TASK`

Tool to update an existing task in Clientary with partial or complete field modifications. Use when you need to modify task details such as title, description, completion status, assignee, or due date. All fields except ID are optional.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the task to update |
| `title` | string | No | Task title/name. Include to update the title. |
| `complete` | boolean | No | Task completion status (true/false). Include to update completion status. |
| `due_date` | string | No | Task deadline in date format (e.g., YYYY-MM-DD). Include to update due date. |
| `client_id` | integer | No | Related client ID. Include to update client association. |
| `project_id` | integer | No | Associated project ID. Include to update project association. |
| `assignee_id` | integer | No | Staff member ID assigned to task. Include to update assignee. |
| `description` | string | No | Detailed task information. Include to update the description. |
| `completed_at` | string | No | Timestamp when task was marked complete. Include to update completion timestamp. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
