> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Rocketlane

The Rocketlane connector lets your AI agent act in each user's Rocketlane account. Each user connects their own Rocketlane API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 70 tools.

**Authentication:** API Key
**Categories:** Project Management
**Tools:** 70: 30 read, 31 write, 9 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=ROCKETLANE)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Rocketlane connection

   In **AgentKit > Connections**, create a Rocketlane connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'rocketlane'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Rocketlane:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'rocketlane_budgets_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "rocketlane"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Rocketlane:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="rocketlane_budgets_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Rocketlane credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'rocketlane_budget_get',
  toolInput: {
    budget_id: 601,
  },
  connector: 'rocketlane',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="rocketlane_budget_get",
    tool_input={
        "budget_id": 601,
    },
    connection_name="rocketlane",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `rocketlane_budget_get`

Get Budget · Read-only

Get one Rocketlane project budget by its ID.
Returns the budget with project, name, dates, status, currency, billing type, revenue recognition type, amount and hours.
Use rocketlane_budget_get when you have the budgetId. Use rocketlane_budgets_list to find budgets.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `budget_id` (`integer`, required): ID of the budget. Get it from the budgetId field returned by rocketlane_budgets_list. Example: 601.
- `include_all_fields` (`boolean`, optional): Set to true to return every budget property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional budget properties to add to the response. Valid values: manualRevenueRecognitionConfigs, milestoneRevenueRecognitionConfigs. Leave empty for the default properties. Example: "manualRevenueRecognitionConfigs,milestoneRevenueRecognitionConfigs".

Example input: `{"budget_id":601}`

### `rocketlane_budgets_list`

List Budgets · Read-only

List project budgets in Rocketlane financials, filtered by project, customer company, name, billing type, status or dates.
Returns a page of budgets (budgetId, projectId, budgetName, dates, status, currency, billingType, budgetAmount, budgetHours) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_budgets_list to find budgets. Use rocketlane_budget_get when you have the budgetId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `billing_type` (`string`, optional): Only return budgets with this billing type. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "FIXED_FEE". One of: `FIXED_FEE`, `TIME_AND_MATERIAL`, `SUBSCRIPTION`, `NON_BILLABLE`.
- `budget_name_contains` (`string`, optional): Only return budgets whose name contains this text. Example: "Q1".
- `company_id` (`integer`, optional): Only return budgets for this customer company ID. Example: 301.
- `end_date_to` (`string`, optional): Only return budgets ending on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `include_all_fields` (`boolean`, optional): Set to true to return every budget property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional budget properties to add to the response. Valid values: manualRevenueRecognitionConfigs, milestoneRevenueRecognitionConfigs. Leave empty for the default properties. Example: "manualRevenueRecognitionConfigs,milestoneRevenueRecognitionConfigs".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `project_id` (`integer`, optional): Only return budgets of this project. Get the ID from rocketlane_projects_list. Example: 201.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: createdAt, budgetId, projectId, budgetName, budgetHours, budgetAmount, startDate, endDate. Example: "createdAt". One of: `createdAt`, `budgetId`, `projectId`, `budgetName`, `budgetHours`, `budgetAmount`, `startDate`, `endDate`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `start_date_from` (`string`, optional): Only return budgets starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `status_value` (`integer`, optional): Only return budgets with this numeric status ID. Example: 1.

Example input: `{}`

### `rocketlane_companies_list`

List Companies · Read-only

List customer companies (accounts) in Rocketlane, filtered by name, website or account owner.
Returns a page of companies (companyId, companyName, companyUrl, visibility, accountOwner) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_companies_list to find a company. Use rocketlane_company_get when you have the companyId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_owner_id` (`integer`, optional): Only return companies owned by this user ID. Get it from rocketlane_users_list. Example: 201.
- `company_name` (`string`, optional): Only return the company with exactly this name. Example: "Acme Inc".
- `company_name_contains` (`string`, optional): Only return companies whose name contains this text. Example: "Acme".
- `company_url_contains` (`string`, optional): Only return companies whose website URL contains this text. Example: "acme.com".
- `include_all_fields` (`boolean`, optional): Set to true to return every company property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional company properties to add to the response. Valid values: companyUrl, notes. Leave empty for the default properties. Example: "companyUrl,notes".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: companyName, createdAt, updatedAt. Example: "companyName". One of: `companyName`, `createdAt`, `updatedAt`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.

Example input: `{}`

### `rocketlane_company_get`

Get Company · Read-only

Get one Rocketlane customer company by its ID.
Returns the company with name, website, visibility, description, account owner and custom fields, plus notes when requested.
Use rocketlane_company_get when you have the companyId. Use rocketlane_companies_list to search companies.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company_id` (`integer`, required): ID of the company. Get it from the companyId field returned by rocketlane_companies_list. Example: 301.
- `include_all_fields` (`boolean`, optional): Set to true to return every company property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional company properties to add to the response. Valid values: companyUrl, notes. Leave empty for the default properties. Example: "companyUrl,notes".

Example input: `{"company_id":301}`

### `rocketlane_field_get`

Get Custom Field · Read-only

Get one Rocketlane custom field definition by its ID.
Returns the field's label, description, type, object type, enabled and private flags, and its options when requested.
Use rocketlane_field_get to read a field's option values. Use rocketlane_fields_list to find fields.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `field_id` (`integer`, required): ID of the field. Get it from the fieldId field returned by rocketlane_fields_list. Example: 55.
- `include_all_fields` (`boolean`, optional): Set to true to return every field property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional field properties to add to the response. Valid values: options. Leave empty for the default properties. Example: "options".

Example input: `{"field_id":55}`

### `rocketlane_fields_list`

List Custom Fields · Read-only

List the custom field definitions in Rocketlane, filtered by object type, field type, enabled or private flags.
Returns a page of fields (fieldId, fieldLabel, fieldType, objectType, fieldOptions when requested) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_fields_list to find field IDs and option values for the fields input of create and update tools. Use rocketlane_field_get for one field.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `enabled` (`boolean`, optional): Set to true for enabled fields only, false for disabled only. Example: true.
- `field_type` (`string`, optional): Only return fields of this type. Valid values: TEXT, MULTI_LINE_TEXT, YES_OR_NO, DATE, SINGLE_CHOICE, MULTIPLE_CHOICE, SINGLE_USER, MULTIPLE_USER, NUMBER, NOTE, RATING. Example: "SINGLE_CHOICE". One of: `TEXT`, `MULTI_LINE_TEXT`, `YES_OR_NO`, `DATE`, `SINGLE_CHOICE`, `MULTIPLE_CHOICE`, `SINGLE_USER`, `MULTIPLE_USER`, `NUMBER`, `NOTE`, `RATING`.
- `include_all_fields` (`boolean`, optional): Set to true to return every field property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional field properties to add to the response. Valid values: options. Leave empty for the default properties. Example: "options".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `object_type` (`string`, optional): Only return fields on this object type. Valid values: PROJECT, TASK, USER, BUDGET, COMPANY. Example: "PROJECT". One of: `PROJECT`, `TASK`, `USER`, `BUDGET`, `COMPANY`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `private` (`boolean`, optional): Set to true for private fields only, false for shared only. Example: false.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: fieldLabel. Example: "fieldLabel". One of: `fieldLabel`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.

Example input: `{}`

### `rocketlane_invoice_get`

Get Invoice · Read-only

Get one Rocketlane invoice by its ID.
Returns the invoice with number, dates, currency, status, amounts (total, tax, subtotal, outstanding, paid, written off) and, when requested, notes and attachments.
Use rocketlane_invoice_get for invoice totals. Use rocketlane_invoice_line_items_list for its lines and rocketlane_invoice_payments_list for its payments.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`integer`, required): ID of the invoice. Get it from the invoiceId field returned by rocketlane_invoices_list. Example: 1201.
- `include_all_fields` (`boolean`, optional): Set to true to return every invoice property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional invoice properties to add to the response. Valid values: notes, attachments. Leave empty for the default properties. Example: "notes,attachments".

Example input: `{"invoice_id":1201}`

### `rocketlane_invoice_line_items_list`

List Invoice Line Items · Read-only

List the line items of a Rocketlane invoice.
Returns a page of line items (invoiceLineItemId, description, quantity, unitPrice, amount, source, tax, budget) in data.
Use rocketlane_invoice_line_items_list for what was billed. Use rocketlane_invoice_payments_list for what was paid.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`integer`, required): ID of the invoice. Get it from the invoiceId field returned by rocketlane_invoices_list. Example: 1201.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".

Example input: `{"invoice_id":1201}`

### `rocketlane_invoice_payments_list`

List Invoice Payments · Read-only

List the payments recorded against a Rocketlane invoice.
Returns a page of payments (paymentId, paymentRecordType, currency, paymentDate, amount, notes) in data.
Use rocketlane_invoice_payments_list for payment history. Use rocketlane_invoice_get for the outstanding balance.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `invoice_id` (`integer`, required): ID of the invoice. Get it from the invoiceId field returned by rocketlane_invoices_list. Example: 1201.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".

Example input: `{"invoice_id":1201}`

### `rocketlane_invoices_list`

List Invoices · Read-only

List Rocketlane invoices, filtered by invoice number, status, customer company or dates.
Returns a page of invoices (invoiceId, invoiceNumber, dateOfIssue, dueDate, currency, status, amount, amountOutstanding) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_invoices_list to find invoices. Use rocketlane_invoice_get, rocketlane_invoice_line_items_list or rocketlane_invoice_payments_list for one invoice's details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company_id` (`integer`, optional): Only return invoices for this customer company ID. Get it from rocketlane_companies_list. Example: 301.
- `due_date_from` (`string`, optional): Only return invoices due on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `due_date_to` (`string`, optional): Only return invoices due on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `include_all_fields` (`boolean`, optional): Set to true to return every invoice property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional invoice properties to add to the response. Valid values: notes, attachments. Leave empty for the default properties. Example: "notes,attachments".
- `invoice_number_contains` (`string`, optional): Only return invoices whose number contains this text. Example: "INV-10".
- `issued_from` (`string`, optional): Only return invoices issued on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `issued_to` (`string`, optional): Only return invoices issued on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: createdAt, invoiceNumber. Example: "createdAt". One of: `createdAt`, `invoiceNumber`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `status` (`string`, optional): Only return invoices with this status, such as DRAFT. Example: "DRAFT".

Example input: `{}`

### `rocketlane_phase_get`

Get Phase · Read-only

Get one Rocketlane project phase by its ID.
Returns the phase with its name, project, description, dates and status.
Use rocketlane_phase_get when you have the phaseId. Use rocketlane_phases_list to find phases in a project.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `phase_id` (`integer`, required): ID of the phase. Get it from the phaseId field returned by rocketlane_phases_list. Example: 201.
- `include_all_fields` (`boolean`, optional): Set to true to return every phase property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional phase properties to add to the response. Valid values: startDateActual, dueDateActual, budgets. Leave empty for the default properties. Example: "startDateActual,dueDateActual".

Example input: `{"phase_id":201}`

### `rocketlane_phases_list`

List Phases · Read-only

List the phases of one Rocketlane project, optionally filtered by name or dates.
Returns a page of phases (phaseId, phaseName, dates, status) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_phases_list to browse a project's phases. Use rocketlane_phase_get when you have the phaseId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project whose phases to list. Get it from rocketlane_projects_list. Example: 201.
- `due_date_to` (`string`, optional): Only return phases due on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `include_all_fields` (`boolean`, optional): Set to true to return every phase property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional phase properties to add to the response. Valid values: startDateActual, dueDateActual, budgets. Leave empty for the default properties. Example: "startDateActual,dueDateActual".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `phase_name_contains` (`string`, optional): Only return phases whose name contains this text. Example: "Kickoff".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: phaseName, startDate, dueDate, startDateActual, dueDateActual. Example: "phaseName". One of: `phaseName`, `startDate`, `dueDate`, `startDateActual`, `dueDateActual`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `start_date_from` (`string`, optional): Only return phases starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `updated_after` (`integer`, optional): Only return phases updated at or after this time, as Unix epoch milliseconds. Example: 1767225600000 (2026-01-01 00:00 UTC).

Example input: `{"project_id":201}`

### `rocketlane_project_get`

Get Project · Read-only

Get one Rocketlane project by its ID.
Returns the project with its name, dates, owner, team members, customer, status and custom fields, plus any optional properties requested.
Use rocketlane_project_get when you have the projectId. Use rocketlane_projects_list to search by name or other filters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `include_all_fields` (`boolean`, optional): Set to true to return every project property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional project properties to add to the response. Valid values: annualizedRecurringRevenue, projectFee, allocatedHours, allocatedMinutes, budgetedHours, percentageBudgetedHoursConsumed, percentageBudgetConsumed, billableHours, billableMinutes, nonBillableHours, nonBillableMinutes, trackedHours, trackedMinutes, progressPercentage, startDateActual, dueDateActual, currentPhase, autoAllocation, sources, inferredProgress, plannedDuration, projectAgeInDays, customersInvited, customersJoined, externalReferenceId, metrics, remainingMinutes, remainingHours. Leave empty for the default properties. Example: "annualizedRecurringRevenue,projectFee".

Example input: `{"project_id":201}`

### `rocketlane_project_placeholders_list`

List Project Placeholders · Read-only

List the role placeholders in a Rocketlane project (unfilled roles that tasks can be assigned to before a person is chosen).
Returns placeholders with placeholderId, placeholderName, role and placeholderType in data. A project with no placeholders returns only its projectId.
Use rocketlane_project_placeholders_list before rocketlane_project_placeholders_assign or rocketlane_task_assignees_add. Placeholders usually come from a project template.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.

Example input: `{"project_id":201}`

### `rocketlane_projects_list`

List Projects · Read-only

List projects in the Rocketlane workspace, optionally filtered by name, customer company, team member, status, dates or archive state.
Returns a page of projects (projectId, projectName, dates, owner, customer, status, team members) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_projects_list to find projects. Use rocketlane_project_get when you already have the projectId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contract_type` (`string`, optional): Only return projects with this financial contract type. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "FIXED_FEE". One of: `FIXED_FEE`, `TIME_AND_MATERIAL`, `SUBSCRIPTION`, `NON_BILLABLE`.
- `customer_company_id` (`integer`, optional): Only return projects for this customer company ID. Get it from rocketlane_companies_list. Example: 301.
- `due_date_from` (`string`, optional): Only return projects due on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `due_date_to` (`string`, optional): Only return projects due on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `external_reference_id` (`string`, optional): Only return the project with this external reference ID (the ID you stored from another system). Example: "CRM-1042".
- `include_all_fields` (`boolean`, optional): Set to true to return every project property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_archived` (`boolean`, optional): Set to true to include archived projects in the results. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional project properties to add to the response. Valid values: annualizedRecurringRevenue, projectFee, allocatedHours, allocatedMinutes, budgetedHours, percentageBudgetedHoursConsumed, percentageBudgetConsumed, billableHours, billableMinutes, nonBillableHours, nonBillableMinutes, trackedHours, trackedMinutes, progressPercentage, startDateActual, dueDateActual, currentPhase, autoAllocation, sources, inferredProgress, plannedDuration, projectAgeInDays, customersInvited, customersJoined, externalReferenceId, metrics, remainingMinutes, remainingHours. Leave empty for the default properties. Example: "annualizedRecurringRevenue,projectFee".
- `inferred_progress` (`string`, optional): Only return projects with this inferred progress. Valid values: ON_TRACK, AHEAD_OF_TIME, RUNNING_LATE, NONE. Example: "RUNNING_LATE". One of: `ON_TRACK`, `AHEAD_OF_TIME`, `RUNNING_LATE`, `NONE`.
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `project_name` (`string`, optional): Only return projects whose name exactly matches this value. Example: "Acme Onboarding".
- `project_name_contains` (`string`, optional): Only return projects whose name contains this text. Example: "Onboarding".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: projectName, startDate, dueDate, startDateActual, dueDateActual, annualizedRecurringRevenue, projectFee. Example: "projectName". One of: `projectName`, `startDate`, `dueDate`, `startDateActual`, `dueDateActual`, `annualizedRecurringRevenue`, `projectFee`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `start_date_from` (`string`, optional): Only return projects starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `start_date_to` (`string`, optional): Only return projects starting on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `status_value` (`integer`, optional): Only return projects whose status option value equals this number. Read status values from an existing project's status.value. Example: 2.
- `team_member_id` (`integer`, optional): Only return projects that have this user as a team member. Get the ID from rocketlane_users_list. Example: 201.
- `updated_after` (`integer`, optional): Only return projects updated at or after this time, as Unix epoch milliseconds. Example: 1767225600000 (2026-01-01 00:00 UTC).

Example input: `{}`

### `rocketlane_resource_allocations_list`

List Resource Allocations · Read-only

List resource allocations (people or placeholders booked on projects) in a date range, optionally for one member, project or placeholder.
Returns a page of allocations (allocationId, startDate, endDate, hours or minutes per day, allocationType, project) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_resource_allocations_list for capacity and staffing questions. Use rocketlane_time_entries_list for time actually logged.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end_date` (`string`, required): Return allocations that end on or before this date, in YYYY-MM-DD format. Example: "2026-03-31".
- `start_date` (`string`, required): Return allocations that start on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `include_all_fields` (`boolean`, optional): Set to true to return every allocation property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional allocation properties to add to the response. Valid values: member, task, placeholder, duration. Leave empty for the default properties. Example: "member,task".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `member_id` (`integer`, optional): Only return allocations for this user ID. Get it from rocketlane_users_list. Example: 201.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `placeholder_id` (`integer`, optional): Only return allocations for this placeholder. Get the ID from rocketlane_project_placeholders_list. Example: 801.
- `project_id` (`integer`, optional): Only return allocations on this project. Get the ID from rocketlane_projects_list. Example: 201.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: startDate, endDate, allocationType, allocationFor. Example: "startDate". One of: `startDate`, `endDate`, `allocationType`, `allocationFor`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.

Example input: `{"end_date":"2026-03-31","start_date":"2026-01-01"}`

### `rocketlane_space_document_get`

Get Space Document · Read-only

Get one Rocketlane space document by its ID.
Returns the document's name, space, type, embedded URL, source template and audit fields.
Use rocketlane_space_document_get when you have the spaceDocumentId. Use rocketlane_space_documents_list to find documents.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `space_document_id` (`integer`, required): ID of the space document. Get it from the spaceDocumentId field returned by rocketlane_space_documents_list. Example: 951.

Example input: `{"space_document_id":951}`

### `rocketlane_space_documents_list`

List Space Documents · Read-only

List the documents in a Rocketlane project's spaces, optionally for one space or by name.
Returns a page of space documents (spaceDocumentId, spaceDocumentName, space, spaceDocumentType, url) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_space_documents_list to find documents. Use rocketlane_space_document_get when you have the spaceDocumentId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project whose space documents to list. Get it from rocketlane_projects_list. Example: 201.
- `document_name_contains` (`string`, optional): Only return documents whose name contains this text. Example: "Plan".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: spaceTabName. Example: "spaceTabName". One of: `spaceTabName`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `space_id` (`integer`, optional): Only return documents in this space. Get the ID from rocketlane_spaces_list. Example: 901.

Example input: `{"project_id":201}`

### `rocketlane_space_get`

Get Space · Read-only

Get one Rocketlane space by its ID.
Returns the space with its name, project and privacy setting.
Use rocketlane_space_get when you have the spaceId. Use rocketlane_spaces_list to list a project's spaces.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `space_id` (`integer`, required): ID of the space. Get it from the spaceId field returned by rocketlane_spaces_list. Example: 901.

Example input: `{"space_id":901}`

### `rocketlane_spaces_list`

List Spaces · Read-only

List the spaces (shared customer-facing pages) in a Rocketlane project.
Returns a page of spaces (spaceId, spaceName, project, private) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_spaces_list to find a space. Use rocketlane_space_documents_list for the documents inside spaces.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project whose spaces to list. Get it from rocketlane_projects_list. Example: 201.
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: spaceName. Example: "spaceName". One of: `spaceName`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `space_name_contains` (`string`, optional): Only return spaces whose name contains this text. Example: "Resources".

Example input: `{"project_id":201}`

### `rocketlane_task_get`

Get Task · Read-only

Get one Rocketlane task by its ID.
Returns the task with its name, description, dates, effort, progress, project and status. Assignees, followers, dependencies and phase are only included when include_all_fields is true.
Use rocketlane_task_get when you have the taskId. Use rocketlane_tasks_list to search for tasks.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `include_all_fields` (`boolean`, optional): Set to true to return every task property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional task properties to add to the response. Valid values: startDateActual, dueDateActual, type, phase, assignees, followers, dependencies, billable, csatEnabled, priority, timeEntryCategory, budgets, taskPrivateNote, parent, externalReferenceId. Leave empty for the default properties. Example: "startDateActual,dueDateActual".

Example input: `{"task_id":201}`

### `rocketlane_tasks_list`

List Tasks · Read-only

List Rocketlane tasks across projects, filtered by project, phase, name, status, assignees, dates or archive state.
Returns a page of tasks (taskId, taskName, dates, progress, project, status) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_tasks_list to find tasks. Use rocketlane_task_get when you have the taskId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `assignee_user_ids` (`string`, optional): Comma-separated user IDs; only return tasks assigned to at least one of these users. Get IDs from rocketlane_users_list. Example: "201,202".
- `due_date_from` (`string`, optional): Only return tasks due on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `due_date_to` (`string`, optional): Only return tasks due on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `external_reference_id` (`string`, optional): Only return the task with this external reference ID. Example: "JIRA-77".
- `include_all_fields` (`boolean`, optional): Set to true to return every task property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_archived` (`boolean`, optional): Set to true to include archived tasks in the results. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional task properties to add to the response. Valid values: startDateActual, dueDateActual, type, phase, assignees, followers, dependencies, billable, csatEnabled, priority, timeEntryCategory, budgets, taskPrivateNote, parent, externalReferenceId. Leave empty for the default properties. Example: "startDateActual,dueDateActual".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `phase_id` (`integer`, optional): Only return tasks in this phase. Get the ID from rocketlane_phases_list. Example: 401.
- `project_id` (`integer`, optional): Only return tasks in this project. Get the ID from rocketlane_projects_list. Example: 201.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: taskName, startDate, dueDate, startDateActual, dueDateActual. Example: "taskName". One of: `taskName`, `startDate`, `dueDate`, `startDateActual`, `dueDateActual`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `start_date_from` (`string`, optional): Only return tasks starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `start_date_to` (`string`, optional): Only return tasks starting on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `status_value` (`integer`, optional): Only return tasks whose status option value equals this number. Read status values from an existing task's status.value. Example: 2.
- `task_name` (`string`, optional): Only return tasks whose name exactly matches this value. Example: "Schedule kickoff call".
- `task_name_contains` (`string`, optional): Only return tasks whose name contains this text. Example: "kickoff".
- `updated_after` (`integer`, optional): Only return tasks updated at or after this time, as Unix epoch milliseconds. Example: 1767225600000 (2026-01-01 00:00 UTC).

Example input: `{}`

### `rocketlane_templates_list`

List Templates · Read-only

List the templates in a Rocketlane account: project templates and document templates.
Returns a page of templates (templateId, templateName, objectType, createdAt, createdBy) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_templates_list to find a templateId for rocketlane_project_template_import or rocketlane_project_create. Set object_type to PROJECT for project templates.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `object_type` (`string`, optional): Only return templates of this kind: PROJECT for project templates, DOCUMENT for document templates. Leave empty for both. Example: "PROJECT". One of: `PROJECT`, `DOCUMENT`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".

Example input: `{}`

### `rocketlane_time_entries_list`

List Time Entries · Read-only

List Rocketlane time entries, filtered by date range, project, task, phase, user, category, billable flag or approval status.
Returns a page of time entries (timeEntryId, date, minutes, activityName, project, task, user, billable) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_time_entries_list for timesheets and reporting. Use rocketlane_time_entry_get when you have the timeEntryId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `activity_name_contains` (`string`, optional): Only return ad hoc time entries whose activity name contains this text. Example: "Pre-sales".
- `approval_status` (`string`, optional): Only return time entries with this approval status. Valid values: NOT_SUBMITTED, SUBMITTED, APPROVED, REJECTED. Example: "SUBMITTED". One of: `NOT_SUBMITTED`, `SUBMITTED`, `APPROVED`, `REJECTED`.
- `billable` (`boolean`, optional): Set to true for billable time entries only, false for non-billable only. Example: true.
- `category_id` (`integer`, optional): Only return time entries in this category. Get the ID from rocketlane_time_entry_categories_list. Example: 11.
- `date_from` (`string`, optional): Only return time entries on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `date_to` (`string`, optional): Only return time entries on or before this date, in YYYY-MM-DD format. Example: "2026-01-31".
- `include_deleted` (`boolean`, optional): Set to true to include deleted time entries. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional time entry properties to add to the response. Valid values: notes, sourceType, deleted, status, submittedBy, submittedAt, approvedBy, approvedAt, rejectedBy, rejectedAt, costRate, billRate. Leave empty for the default properties. Example: "notes,sourceType".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `phase_id` (`integer`, optional): Only return time entries logged against this project phase. Get the ID from rocketlane_phases_list. Example: 401.
- `project_id` (`integer`, optional): Only return time entries logged against this project. Get the ID from rocketlane_projects_list. Example: 201.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: minutes, date, id, billable. Example: "minutes". One of: `minutes`, `date`, `id`, `billable`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `source_type` (`string`, optional): Only return time entries from this source. Valid values: GOOGLE_CALENDAR, OUTLOOK_CALENDAR, TASK, PROJECT, PHASE, ADHOC, MILESTONE. Example: "TASK". One of: `GOOGLE_CALENDAR`, `OUTLOOK_CALENDAR`, `TASK`, `PROJECT`, `PHASE`, `ADHOC`, `MILESTONE`.
- `task_id` (`integer`, optional): Only return time entries logged against this task. Get the ID from rocketlane_tasks_list. Example: 1001.
- `updated_after` (`integer`, optional): Only return time entries updated at or after this time, as Unix epoch milliseconds. Example: 1767225600000 (2026-01-01 00:00 UTC).
- `user_email` (`string`, optional): Only return time entries of the user with this email. Example: "jane.doe@example.com".
- `user_id` (`integer`, optional): Only return time entries of this user. Get the ID from rocketlane_users_list. Example: 201.

Example input: `{}`

### `rocketlane_time_entry_categories_list`

List Time Entry Categories · Read-only

List the time entry categories defined in the Rocketlane workspace.
Returns categories with categoryId and categoryName in data.
Use rocketlane_time_entry_categories_list to get a category_id for rocketlane_time_entry_create or rocketlane_time_entries_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".

Example input: `{}`

### `rocketlane_time_entry_get`

Get Time Entry · Read-only

Get one Rocketlane time entry by its ID.
Returns the time entry with its date, minutes, activity, project, task, phase, user and billable flag. Notes are only included when include_all_fields is true.
Use rocketlane_time_entry_get when you have the timeEntryId. Use rocketlane_time_entries_list to search time entries.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): ID of the time entry. Get it from the timeEntryId field returned by rocketlane_time_entries_list. Example: 3001.
- `include_all_fields` (`boolean`, optional): Set to true to return every time entry property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional time entry properties to add to the response. Valid values: notes, sourceType, deleted, status, submittedBy, submittedAt, approvedBy, approvedAt, rejectedBy, rejectedAt, costRate, billRate. Leave empty for the default properties. Example: "notes,sourceType".

Example input: `{"time_entry_id":3001}`

### `rocketlane_time_off_get`

Get Time-Off · Read-only

Get one Rocketlane time-off by its ID.
Returns the time-off with its user, dates, type, duration and, when requested, note and notified users.
Use rocketlane_time_off_get when you have the timeOffId. Use rocketlane_time_offs_list to search time-offs.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `time_off_id` (`integer`, required): ID of the time-off. Get it from the timeOffId field returned by rocketlane_time_offs_list. Example: 701.
- `include_all_fields` (`boolean`, optional): Set to true to return every time-off property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional time-off properties to add to the response. Valid values: note, notifyUsers. Leave empty for the default properties. Example: "note,notifyUsers".

Example input: `{"time_off_id":701}`

### `rocketlane_time_offs_list`

List Time-Offs · Read-only

List time-offs (leave) recorded in Rocketlane, filtered by user, type or dates.
Returns a page of time-offs (timeOffId, user, startDate, endDate, type, durationInMinutes) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_time_offs_list to check availability. Use rocketlane_time_off_get when you have the timeOffId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `end_date_to` (`string`, optional): Only return time-offs ending on or before this date, in YYYY-MM-DD format. Example: "2026-12-31".
- `include_all_fields` (`boolean`, optional): Set to true to return every time-off property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional time-off properties to add to the response. Valid values: note, notifyUsers. Leave empty for the default properties. Example: "note,notifyUsers".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: startDate, endDate, createdAt. Example: "startDate". One of: `startDate`, `endDate`, `createdAt`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `start_date_from` (`string`, optional): Only return time-offs starting on or after this date, in YYYY-MM-DD format. Example: "2026-01-01".
- `type` (`string`, optional): Only return time-offs of this type. Valid values: FULL_DAY, HALF_DAY, CUSTOM. Example: "FULL_DAY". One of: `FULL_DAY`, `HALF_DAY`, `CUSTOM`.
- `user_email` (`string`, optional): Only return time-offs of the user with this email. Example: "jane.doe@example.com".
- `user_id` (`integer`, optional): Only return time-offs of this user. Get the ID from rocketlane_users_list. Example: 201.

Example input: `{}`

### `rocketlane_user_get`

Get User · Read-only

Get one Rocketlane user by their user ID.
Returns the user with email, name, type, status, role, company, permission and capacity details.
Use rocketlane_user_get when you have the userId. Use rocketlane_users_list to find users by name or email.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`integer`, required): ID of the user. Get it from the userId field returned by rocketlane_users_list. Example: 201.
- `include_all_fields` (`boolean`, optional): Set to true to return every user property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional user properties to add to the response. Valid values: role, company, permission, holidayCalendar, capacityInMinutes, profilePictureUrl. Leave empty for the default properties. Example: "role,company".

Example input: `{"user_id":201}`

### `rocketlane_users_list`

List Users · Read-only

List users in the Rocketlane workspace (team members, partners and customer users), filtered by name, email, status, type or role.
Returns a page of users (userId, email, firstName, lastName, type, status) in data, with pagination.nextPageToken when more pages exist.
Use rocketlane_users_list to look up user IDs and emails. Use rocketlane_user_get when you have the userId.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email` (`string`, optional): Only return the user with exactly this email. Example: "jane.doe@example.com".
- `email_contains` (`string`, optional): Only return users whose email contains this text, such as a domain. Example: "@acme.com".
- `first_name_contains` (`string`, optional): Only return users whose first name contains this text. Example: "Jane".
- `include_all_fields` (`boolean`, optional): Set to true to return every user property, including the optional ones. Leave empty for the default properties. Example: true.
- `include_fields` (`string`, optional): Comma-separated list of optional user properties to add to the response. Valid values: role, company, permission, holidayCalendar, capacityInMinutes, profilePictureUrl. Leave empty for the default properties. Example: "role,company".
- `last_name_contains` (`string`, optional): Only return users whose last name contains this text. Example: "Doe".
- `match` (`string`, optional): How to combine the filters: all (every filter must match, the default) or any (at least one filter must match). Example: "all". One of: `all`, `any`.
- `page_size` (`integer`, optional): Maximum number of records to return in one page. Rocketlane defaults to 100, which is also the maximum. Example: 50.
- `page_token` (`string`, optional): Token for the next page of results, taken from pagination.nextPageToken in the previous response. Tokens expire 15 minutes after they are issued. Example: "59c12a42-dd10-11ed-afa1-0242ac120002".
- `role_id` (`integer`, optional): Only return users with this role ID. Example: 31.
- `sort_by` (`string`, optional): Field to sort the results by. Valid values: email, firstName, lastName, type, status, capacityInMinutes. Example: "email". One of: `email`, `firstName`, `lastName`, `type`, `status`, `capacityInMinutes`.
- `sort_order` (`string`, optional): Sort direction: ASC (ascending) or DESC (descending). Rocketlane defaults to DESC. Example: "ASC". One of: `ASC`, `DESC`.
- `status` (`string`, optional): Only return users with this status. Valid values: INACTIVE, INVITED, ACTIVE, PASSIVE. Example: "ACTIVE". One of: `INACTIVE`, `INVITED`, `ACTIVE`, `PASSIVE`.
- `type` (`string`, optional): Only return users of this type. Valid values: TEAM_MEMBER, PARTNER, CUSTOMER, EXTERNAL_PARTNER. Example: "TEAM_MEMBER". One of: `TEAM_MEMBER`, `PARTNER`, `CUSTOMER`, `EXTERNAL_PARTNER`.

Example input: `{}`

### `rocketlane_budget_create`

Create Budget · Write

Create a financials budget for a Rocketlane project.
Returns the new budget with its budgetId.
Use rocketlane_budget_create to add a budget. Use rocketlane_budget_update to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `billing_type` (`string`, required): Contract type of the budget. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "FIXED_FEE". One of: `FIXED_FEE`, `TIME_AND_MATERIAL`, `SUBSCRIPTION`, `NON_BILLABLE`.
- `budget_name` (`string`, required): Name of the budget. Example: "Q1 Implementation".
- `end_date` (`string`, required): Budget period end, in YYYY-MM-DD format. Example: "2026-03-31".
- `project_id` (`integer`, required): ID of the project the budget belongs to. Get it from rocketlane_projects_list. Example: 201.
- `start_date` (`string`, required): Budget period start, in YYYY-MM-DD format. Example: "2026-01-01".
- `budget_amount` (`number`, optional): Budget amount in the project's currency. Example: 25000.
- `budget_hours` (`number`, optional): Budgeted hours as a decimal with up to two places; the fraction is minutes (1.65 = 1 hour 39 minutes). Example: 120.5.
- `custom_revenue_recognition_config_id` (`integer`, optional): ID of the custom revenue recognition configuration. Required when revenue_recognition_type is CUSTOM_REVENUE_RECOGNITION. Example: 41.
- `fields` (`array`, optional): Custom field values to set on the budget. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `rate_card_id` (`integer`, optional): ID of the rate card for a TIME_AND_MATERIAL budget. Example: 12.
- `revenue_recognition_type` (`string`, optional): Revenue recognition method, such as TRACKED_HOURS_BY_PERIOD_HOURS, MANUAL or MILESTONE_BASED, or CUSTOM_REVENUE_RECOGNITION together with custom_revenue_recognition_config_id. Example: "MANUAL".
- `status_value` (`integer`, optional): Numeric value of the budget status option to set. Status values are workspace-specific; read them from an existing budget (status.value) or from the budget status field returned by rocketlane_fields_list. Example: 2.
- `subscription_contract` (`object`, optional): Subscription terms for a SUBSCRIPTION budget: subscriptionFrequency (MONTHLY, QUARTERLY, HALF_YEARLY or YEARLY), subscriptionStartDate (YYYY-MM-DD), periodMinutes, periodBudget and noOfPeriods. Example: {"subscriptionFrequency": "MONTHLY", "subscriptionStartDate": "2026-01-01", "periodMinutes": 2400, "periodBudget": 5000, "noOfPeriods": 12}.

Example input: `{"billing_type":"FIXED_FEE","budget_name":"Q1 Implementation","end_date":"2026-03-31","project_id":201,"start_date":"2026-01-01"}`

### `rocketlane_budget_update`

Update Budget · Write

Update a Rocketlane budget's name, dates, status, billing type, revenue recognition, amount, hours or custom fields. Only the inputs you set are changed.
Returns the updated budget.
Use rocketlane_budget_update to edit a budget. Use rocketlane_budget_delete to remove it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `budget_id` (`integer`, required): ID of the budget. Get it from the budgetId field returned by rocketlane_budgets_list. Example: 601.
- `billing_type` (`string`, optional): New contract type. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "TIME_AND_MATERIAL". One of: `FIXED_FEE`, `TIME_AND_MATERIAL`, `SUBSCRIPTION`, `NON_BILLABLE`.
- `budget_amount` (`number`, optional): Budget amount in the project's currency. Example: 25000.
- `budget_hours` (`number`, optional): Budgeted hours as a decimal with up to two places; the fraction is minutes (1.65 = 1 hour 39 minutes). Example: 120.5.
- `budget_name` (`string`, optional): New name of the budget. Example: "Q1 Implementation".
- `custom_revenue_recognition_config_id` (`integer`, optional): ID of the custom revenue recognition configuration. Required when revenue_recognition_type is CUSTOM_REVENUE_RECOGNITION. Example: 41.
- `end_date` (`string`, optional): New period end, in YYYY-MM-DD format. Example: "2026-03-31".
- `fields` (`array`, optional): Custom field values to set on the budget. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `rate_card_id` (`integer`, optional): ID of the rate card for a TIME_AND_MATERIAL budget. Example: 12.
- `revenue_recognition_type` (`string`, optional): Revenue recognition method, such as TRACKED_HOURS_BY_PERIOD_HOURS, MANUAL or MILESTONE_BASED, or CUSTOM_REVENUE_RECOGNITION together with custom_revenue_recognition_config_id. Example: "MANUAL".
- `start_date` (`string`, optional): New period start, in YYYY-MM-DD format. Example: "2026-01-01".
- `status_value` (`integer`, optional): Numeric value of the budget status option to set. Status values are workspace-specific; read them from an existing budget (status.value) or from the budget status field returned by rocketlane_fields_list. Example: 2.
- `subscription_contract` (`object`, optional): Subscription terms for a SUBSCRIPTION budget: subscriptionFrequency (MONTHLY, QUARTERLY, HALF_YEARLY or YEARLY), subscriptionStartDate (YYYY-MM-DD), periodMinutes, periodBudget and noOfPeriods. Example: {"subscriptionFrequency": "MONTHLY", "subscriptionStartDate": "2026-01-01", "periodMinutes": 2400, "periodBudget": 5000, "noOfPeriods": 12}.

Example input: `{"budget_id":601}`

### `rocketlane_company_create`

Create Company · Write

Create a customer company (account) in Rocketlane with an account owner. Give account_owner_email or account_owner_user_id.
Returns the new company with its companyId.
Use rocketlane_company_create before creating projects for a new customer. Use rocketlane_company_update to edit an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `company_name` (`string`, required): Name of the company. Example: "Acme Inc".
- `account_owner_email` (`string`, optional): Email of the user who owns the account. Example: "jane.doe@example.com".
- `account_owner_user_id` (`integer`, optional): User ID of the account owner. Get it from rocketlane_users_list. Example: 201.
- `company_url` (`string`, optional): Website URL of the company. Example: "https://acme.com".
- `description` (`string`, optional): Description or notes about the company. Example: "Enterprise customer in retail.".
- `fields` (`array`, optional): Custom field values to set on the company. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `visibility` (`string`, optional): Who can see the company: EVERYONE in the workspace or only MEMBERS. Example: "EVERYONE". One of: `EVERYONE`, `MEMBERS`.

Example input: `{"company_name":"Acme Inc"}`

### `rocketlane_company_note_create`

Create Company Note · Write

Add a note to a Rocketlane company, stored in one of the company's NOTE-type custom fields.
Returns the new note with noteId, field, title, text and tags.
Use rocketlane_company_note_create to log account notes. Find the NOTE field ID with rocketlane_fields_list (object_type COMPANY, field_type NOTE).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `company_id` (`integer`, required): ID of the company. Get it from the companyId field returned by rocketlane_companies_list. Example: 301.
- `field_id` (`integer`, required): ID of the company's NOTE-type field the note belongs to. Get it from rocketlane_fields_list with object_type COMPANY and field_type NOTE. Example: 55.
- `note_text` (`string`, required): Plain-text content of the note. Example: "Renewal call scheduled for March.".
- `note_title` (`string`, optional): Optional title for the note. Example: "Renewal".
- `tag_ids` (`array`, optional): IDs of tags to put on the note, from the NOTE field's options (rocketlane_field_get with include_fields options). Example: [3].

Example input: `{"company_id":301,"field_id":55,"note_text":"Renewal call scheduled for March."}`

### `rocketlane_company_update`

Update Company · Write

Update a Rocketlane company's name, website, visibility, description, account owner or custom fields. Only the inputs you set are changed.
Returns the updated company.
Use rocketlane_company_update to edit a company. Use rocketlane_company_note_create to add a note to it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `company_id` (`integer`, required): ID of the company. Get it from the companyId field returned by rocketlane_companies_list. Example: 301.
- `account_owner_email` (`string`, optional): Email of the user who owns the account. Example: "jane.doe@example.com".
- `account_owner_user_id` (`integer`, optional): User ID of the account owner. Get it from rocketlane_users_list. Example: 201.
- `company_name` (`string`, optional): New name for the company. Example: "Acme Inc".
- `company_url` (`string`, optional): Website URL of the company. Example: "https://acme.com".
- `description` (`string`, optional): Description or notes about the company. Example: "Enterprise customer in retail.".
- `fields` (`array`, optional): Custom field values to set on the company. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `visibility` (`string`, optional): Who can see the company: EVERYONE in the workspace or only MEMBERS. Example: "EVERYONE". One of: `EVERYONE`, `MEMBERS`.

Example input: `{"company_id":301}`

### `rocketlane_phase_create`

Create Phase · Write

Create a phase in a Rocketlane project.
Returns the new phase with its phaseId.
Use rocketlane_phase_create to add a stage to a project. Use rocketlane_task_create to add tasks to the phase afterwards.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `due_date` (`string`, required): Date the phase is due, in YYYY-MM-DD format, on or after start_date. Example: "2026-01-30".
- `phase_name` (`string`, required): Name of the phase. Example: "Kickoff".
- `project_id` (`integer`, required): ID of the project the phase belongs to. Get it from rocketlane_projects_list. Example: 201.
- `start_date` (`string`, required): Date the phase starts, in YYYY-MM-DD format. Example: "2026-01-05".
- `phase_description` (`string`, optional): Description of the phase. Example: "Align on goals and timeline.".
- `private` (`boolean`, optional): Set to true to make the phase private to your team (hidden from customers). Example: false.
- `status_value` (`integer`, optional): Numeric value of the phase status option to set. Status values are workspace-specific; read them from an existing phase (status.value) or from the phase status field returned by rocketlane_fields_list. Example: 2.

Example input: `{"due_date":"2026-01-30","phase_name":"Kickoff","project_id":201,"start_date":"2026-01-05"}`

### `rocketlane_phase_update`

Update Phase · Write

Update a Rocketlane phase's name, description, dates, status or privacy. Only the inputs you set are changed.
Returns the updated phase.
Use rocketlane_phase_update to edit a phase. Use rocketlane_task_move_phase to move a task between phases.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `phase_id` (`integer`, required): ID of the phase. Get it from the phaseId field returned by rocketlane_phases_list. Example: 201.
- `due_date` (`string`, optional): New due date, in YYYY-MM-DD format, on or after the start date. Example: "2026-01-30".
- `phase_description` (`string`, optional): New description for the phase. Example: "Align on goals and timeline.".
- `phase_name` (`string`, optional): New name for the phase. Example: "Kickoff".
- `private` (`boolean`, optional): Set to true to make the phase private to your team, false to share it with customers. Example: false.
- `start_date` (`string`, optional): New start date, in YYYY-MM-DD format. Example: "2026-01-05".
- `status_value` (`integer`, optional): Numeric value of the phase status option to set. Status values are workspace-specific; read them from an existing phase (status.value) or from the phase status field returned by rocketlane_fields_list. Example: 2.

Example input: `{"phase_id":201}`

### `rocketlane_project_archive`

Archive Project · Write

Archive a Rocketlane project so it leaves the active project list. The project and its data are kept.
Returns no content on success (HTTP 204). Afterwards rocketlane_project_get returns not found, and rocketlane_projects_list only shows the project with include_archived set to true.
Use rocketlane_project_archive to close out a finished project. Use rocketlane_project_delete only to remove a project permanently.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.

Example input: `{"project_id":201}`

### `rocketlane_project_create`

Create Project · Write

Create a Rocketlane project for a customer company, optionally from one or more project templates.
Returns the new project with its projectId, dates, owner, team members and customer.
Use rocketlane_project_create for a new project. Use rocketlane_project_template_import to add a template to an existing project.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `customer_company_name` (`string`, required): Exact name of the customer company (case-sensitive). The company must already exist unless auto_create_company is true. It can't be changed after the project is created. Example: "Acme Inc".
- `project_name` (`string`, required): Name of the project. Example: "Acme Onboarding".
- `annualized_recurring_revenue` (`integer`, optional): Annual recurring revenue of the customer's subscriptions, as a whole number. Example: 120000.
- `assign_project_owner` (`boolean`, optional): When the project is created from templates, set to true to assign every unassigned task to the project owner. Example: true.
- `auto_allocation` (`boolean`, optional): Set to true to turn on auto allocation of resources for the project. Example: true.
- `auto_create_company` (`boolean`, optional): Set to true to create the customer company if no company with that name exists (an existing one is reused). Example: true.
- `budgeted_hours` (`number`, optional): Total hours budgeted for the project. Example: 120.5.
- `currency` (`string`, optional): Three-letter ISO currency code for the project's financials, for workspaces with financials enabled. Example: "USD".
- `customer_champion_email` (`string`, optional): Email of the customer champion, the customer-side lead for the project. Example: "sam.lee@acme.com".
- `customer_emails` (`array`, optional): Email addresses of the customer users to add to the project. Example: ["jane.doe@example.com"].
- `customer_user_ids` (`array`, optional): Rocketlane user IDs of the customer users to add to the project. Get them from rocketlane_users_list. Example: [201, 202].
- `due_date` (`string`, optional): Date the project is due, in YYYY-MM-DD format. Must be on or after start_date. Example: "2026-03-31".
- `external_reference_id` (`string`, optional): Your own ID for the project from another system, such as a CRM deal ID. Example: "CRM-1042".
- `fields` (`array`, optional): Custom field values to set on the project. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `financials` (`object`, optional): Financial settings for the project in a financials-enabled workspace. Set contractType (FIXED_FEE, TIME_AND_MATERIAL, NON_BILLABLE or SUBSCRIPTION) plus the matching block: fixedFeeContract with fixedFee, timeAndMaterialContract with a rateCard id, or subscriptionContract with its frequency, start date, period minutes, period budget and number of periods. Example: {"contractType": "FIXED_FEE", "fixedFeeContract": {"fixedFee": 25000}}.
- `member_emails` (`array`, optional): Email addresses of the team members to add to the project. Example: ["jane.doe@example.com"].
- `member_user_ids` (`array`, optional): Rocketlane user IDs of the team members to add to the project. Get them from rocketlane_users_list. Example: [201, 202].
- `owner_email` (`string`, optional): Email of the project owner, an existing team member. Give owner_email or owner_user_id. Example: "jane.doe@example.com".
- `owner_user_id` (`integer`, optional): User ID of the project owner. Give owner_email or owner_user_id; the user ID wins if both are set. Get it from rocketlane_users_list. Example: 201.
- `project_fee` (`integer`, optional): Total fee charged for the project, as a whole number. Example: 25000.
- `sources` (`array`, optional): Project templates to build the project from. Each item needs a templateId and the startDate (YYYY-MM-DD) the template takes effect; an optional prefix labels that template's phases and tasks. Example: [{"templateId": 501, "startDate": "2026-01-05"}].
- `start_date` (`string`, optional): Date the project starts, in YYYY-MM-DD format. Required when templates are given in sources. Example: "2026-01-05".
- `status_value` (`integer`, optional): Numeric value of the project status option to set. Status values are workspace-specific; read them from an existing project (status.value) or from the project status field returned by rocketlane_fields_list. Example: 2.
- `visibility` (`string`, optional): Who can see the project: EVERYONE in the workspace or only project MEMBERS. Example: "MEMBERS". One of: `EVERYONE`, `MEMBERS`.

Example input: `{"customer_company_name":"Acme Inc","project_name":"Acme Onboarding"}`

### `rocketlane_project_members_add`

Add Project Members · Write

Add team members and customer users to a Rocketlane project by email or user ID. Give at least one of the four inputs.
Returns the updated project with its teamMembers.
Use rocketlane_project_members_add to grow the team. Use rocketlane_project_members_remove to take team members off.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `customer_emails` (`array`, optional): Email addresses of the customer users to add. Example: ["jane.doe@example.com"].
- `customer_user_ids` (`array`, optional): Rocketlane user IDs of the customer users to add. Get them from rocketlane_users_list. Example: [201, 202].
- `member_emails` (`array`, optional): Email addresses of the team members to add. Example: ["jane.doe@example.com"].
- `member_user_ids` (`array`, optional): Rocketlane user IDs of the team members to add. Get them from rocketlane_users_list. Example: [201, 202].

Example input: `{"project_id":201}`

### `rocketlane_project_members_remove`

Remove Project Members · Write

Remove team members from a Rocketlane project by email or user ID. Give member_emails, member_user_ids or both.
Returns the updated project with its teamMembers.
Use rocketlane_project_members_remove to take people off a project. Use rocketlane_project_members_add to add them.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `member_emails` (`array`, optional): Email addresses of the team members to remove. Example: ["jane.doe@example.com"].
- `member_user_ids` (`array`, optional): Rocketlane user IDs of the team members to remove. Get them from rocketlane_users_list. Example: [201, 202].

Example input: `{"project_id":201}`

### `rocketlane_project_placeholders_assign`

Assign Project Placeholder · Write

Assign a person to a role placeholder in a Rocketlane project, so the placeholder's tasks go to that person. Give user_email or user_id.
Returns the updated project.
Use rocketlane_project_placeholders_assign to fill a role. Use rocketlane_project_placeholders_unassign to clear it.
Get placeholder IDs from rocketlane_project_placeholders_list first.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `placeholder_id` (`integer`, required): ID of the placeholder to fill. Get it from rocketlane_project_placeholders_list. Example: 801.
- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `user_email` (`string`, optional): Email of the project member to assign. A CUSTOMER placeholder needs a customer user. Example: "jane.doe@example.com".
- `user_id` (`integer`, optional): User ID of the project member to assign. Get it from rocketlane_users_list. Example: 201.

Example input: `{"placeholder_id":801,"project_id":201}`

### `rocketlane_project_placeholders_unassign`

Unassign Project Placeholders · Write

Clear the people assigned to one or more role placeholders in a Rocketlane project.
Returns the updated project.
Use rocketlane_project_placeholders_unassign to free a role. Use rocketlane_project_placeholders_assign to fill it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `placeholder_ids` (`array`, required): IDs of the placeholders to clear. Get them from rocketlane_project_placeholders_list. Example: [801, 802].
- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.

Example input: `{"placeholder_ids":[801,802],"project_id":201}`

### `rocketlane_project_template_import`

Import Template into Project · Write

Import a project template's phases and tasks into an existing Rocketlane project.
Returns the updated project.
Use rocketlane_project_template_import to add a template after creation. Use the sources input of rocketlane_project_create to start a project from templates.
Large templates can take over a minute to import. If the call times out, check rocketlane_phases_list for the imported phases before retrying, because a retry imports the template again.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `start_date` (`string`, required): Date the template's schedule starts in the project, in YYYY-MM-DD format. Example: "2026-02-02".
- `template_id` (`integer`, required): ID of the project template to import. Get it from the templateId field returned by rocketlane_templates_list with object_type PROJECT. Example: 501.
- `prefix` (`string`, optional): Optional label added to the imported phases and tasks to tell templates apart. Example: "APAC".

Example input: `{"project_id":201,"start_date":"2026-02-02","template_id":501}`

### `rocketlane_project_update`

Update Project · Write

Update a Rocketlane project's name, dates, visibility, owner, status, custom fields or financial values. Only the inputs you set are changed.
Returns the updated project.
Use rocketlane_project_update to edit project properties. Use rocketlane_project_members_add or rocketlane_project_members_remove to change the team.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.
- `annualized_recurring_revenue` (`integer`, optional): Annual recurring revenue of the customer's subscriptions, as a whole number. Example: 120000.
- `auto_allocation` (`boolean`, optional): Set to true to turn on auto allocation of resources for the project. Example: true.
- `budgeted_hours` (`number`, optional): Total hours budgeted for the project. Example: 120.5.
- `due_date` (`string`, optional): Date the project is due, in YYYY-MM-DD format. Must be on or after start_date. Example: "2026-03-31".
- `external_reference_id` (`string`, optional): Your own ID for the project from another system, such as a CRM deal ID. Example: "CRM-1042".
- `fields` (`array`, optional): Custom field values to set on the project. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `owner_email` (`string`, optional): Email of the project owner, an existing team member. Give owner_email or owner_user_id. Example: "jane.doe@example.com".
- `owner_user_id` (`integer`, optional): User ID of the project owner. Give owner_email or owner_user_id; the user ID wins if both are set. Get it from rocketlane_users_list. Example: 201.
- `project_fee` (`integer`, optional): Total fee charged for the project, as a whole number. Example: 25000.
- `project_name` (`string`, optional): New name for the project. Example: "Acme Onboarding - Phase 2".
- `start_date` (`string`, optional): Date the project starts, in YYYY-MM-DD format. Required when templates are given in sources. Example: "2026-01-05".
- `status_value` (`integer`, optional): Numeric value of the project status option to set. Status values are workspace-specific; read them from an existing project (status.value) or from the project status field returned by rocketlane_fields_list. Example: 2.
- `visibility` (`string`, optional): Who can see the project: EVERYONE in the workspace or only project MEMBERS. Example: "MEMBERS". One of: `EVERYONE`, `MEMBERS`.

Example input: `{"project_id":201}`

### `rocketlane_space_create`

Create Space · Write

Create a space (a shared page area) in a Rocketlane project.
Returns the new space with its spaceId.
Use rocketlane_space_create to add a space. Use rocketlane_space_document_create to add documents to it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): ID of the project to create the space in. Get it from rocketlane_projects_list. Example: 201.
- `space_name` (`string`, required): Name of the space. Example: "Customer Resources".
- `private` (`boolean`, optional): Set to true to make the space private to your team. Example: false.

Example input: `{"project_id":201,"space_name":"Customer Resources"}`

### `rocketlane_space_document_create`

Create Space Document · Write

Create a document in a Rocketlane space: a Rocketlane document (optionally from a document template) or an embedded link.
Returns the new space document with its spaceDocumentId.
Use rocketlane_space_document_create to add a document. Use rocketlane_space_create first if the space doesn't exist.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `space_document_type` (`string`, required): ROCKETLANE_DOCUMENT for a native document, or EMBEDDED_DOCUMENT to embed a link given in url. Example: "EMBEDDED_DOCUMENT". One of: `ROCKETLANE_DOCUMENT`, `EMBEDDED_DOCUMENT`.
- `space_id` (`integer`, required): ID of the space to add the document to. Get it from rocketlane_spaces_list. Example: 901.
- `space_document_name` (`string`, optional): Name of the document. Rocketlane uses "Untitled" if empty. Example: "Project Plan".
- `template_id` (`integer`, optional): ID of a document template to create a ROCKETLANE_DOCUMENT from. Example: 77.
- `url` (`string`, optional): URL to embed, for an EMBEDDED_DOCUMENT. Rocketlane checks that the page can be embedded and rejects URLs it cannot embed. Example: "https://docs.google.com/document/d/abc123".

Example input: `{"space_document_type":"EMBEDDED_DOCUMENT","space_id":901}`

### `rocketlane_space_document_update`

Update Space Document · Write

Rename a Rocketlane space document or change its embedded URL.
Returns the updated space document.
Use rocketlane_space_document_update to edit a document. Use rocketlane_space_document_delete to remove it.
For an EMBEDDED_DOCUMENT, always send url (its current value if unchanged).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `space_document_id` (`integer`, required): ID of the space document. Get it from the spaceDocumentId field returned by rocketlane_space_documents_list. Example: 951.
- `space_document_name` (`string`, optional): New name for the document. Example: "Project Plan v2".
- `url` (`string`, optional): URL to embed. Required on every update of an EMBEDDED_DOCUMENT, even when only renaming: pass the document's current url (from rocketlane_space_document_get) together with space_document_name. If url is sent without space_document_name, Rocketlane renames the document to the linked page's title. Not used for ROCKETLANE_DOCUMENT. Example: "https://docs.google.com/document/d/abc123".

Example input: `{"space_document_id":951}`

### `rocketlane_space_update`

Rename Space · Write

Rename a Rocketlane space.
Returns the updated space.
Use rocketlane_space_update to change a space's name. Use rocketlane_space_document_update to edit a document in it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `space_id` (`integer`, required): ID of the space. Get it from the spaceId field returned by rocketlane_spaces_list. Example: 901.
- `space_name` (`string`, required): New name for the space. Example: "Customer Resources".

Example input: `{"space_id":901,"space_name":"Customer Resources"}`

### `rocketlane_task_assignees_add`

Add Task Assignees · Write

Add assignees to a Rocketlane task by email, user ID or role placeholder. Give at least one of the three inputs.
Returns the updated task.
Use rocketlane_task_assignees_add to change who does the task. Use rocketlane_task_followers_add to add watchers instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `assignee_emails` (`array`, optional): Email addresses of the people to add as assignees. Example: ["jane.doe@example.com"].
- `assignee_user_ids` (`array`, optional): Rocketlane user IDs of the people to add as assignees. Get them from rocketlane_users_list. Example: [201, 202].
- `placeholder_ids` (`array`, optional): IDs of role placeholders to add as assignees. Get them from rocketlane_project_placeholders_list. Example: [801].

Example input: `{"task_id":201}`

### `rocketlane_task_assignees_remove`

Remove Task Assignees · Write

Remove assignees from a Rocketlane task by email, user ID or role placeholder. Give at least one of the three inputs.
Returns the updated task.
Use rocketlane_task_assignees_remove to change who does the task. Use rocketlane_task_followers_add to add watchers instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `assignee_emails` (`array`, optional): Email addresses of the people to remove as assignees. Example: ["jane.doe@example.com"].
- `assignee_user_ids` (`array`, optional): Rocketlane user IDs of the people to remove as assignees. Get them from rocketlane_users_list. Example: [201, 202].
- `placeholder_ids` (`array`, optional): IDs of role placeholders to remove as assignees. Get them from rocketlane_project_placeholders_list. Example: [801].

Example input: `{"task_id":201}`

### `rocketlane_task_create`

Create Task · Write

Create a task or milestone in a Rocketlane project, optionally in a phase, with assignees, followers and a parent task.
Returns the new task with its taskId.
Use rocketlane_task_create for new work items. Use rocketlane_task_update to change an existing task.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `project_id` (`integer`, required): ID of the project the task belongs to. Get it from rocketlane_projects_list. Example: 201.
- `task_name` (`string`, required): Name of the task. Example: "Schedule kickoff call".
- `assignee_emails` (`array`, optional): Email addresses of the people to assign the task to. Example: ["jane.doe@example.com"].
- `assignee_user_ids` (`array`, optional): Rocketlane user IDs of the people to assign the task to. Get them from rocketlane_users_list. Example: [201, 202].
- `at_risk` (`boolean`, optional): Set to true to flag the task as at risk. Example: true.
- `due_date` (`string`, optional): Date the task is due, in YYYY-MM-DD format, on or after start_date. Example: "2026-01-09".
- `effort_in_minutes` (`integer`, optional): Expected effort to complete the task, in minutes. Example: 120.
- `external_reference_id` (`string`, optional): Your own ID for the task from another system. Example: "JIRA-77".
- `fields` (`array`, optional): Custom field values to set on the task. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `follower_emails` (`array`, optional): Email addresses of the people who follow the task. Example: ["jane.doe@example.com"].
- `follower_user_ids` (`array`, optional): Rocketlane user IDs of the people who follow the task. Get them from rocketlane_users_list. Example: [201, 202].
- `parent_task_id` (`integer`, optional): ID of a parent task, to create this task as a subtask. Example: 1001.
- `phase_id` (`integer`, optional): ID of a phase in the same project to put the task in. Get it from rocketlane_phases_list. Example: 401.
- `private` (`boolean`, optional): Set to true to make the task private to your team (hidden from customers). Example: false.
- `progress` (`integer`, optional): Task progress as a percentage from 0 to 100. Example: 50.
- `start_date` (`string`, optional): Date the task starts, in YYYY-MM-DD format. Example: "2026-01-05".
- `status_value` (`integer`, optional): Numeric value of the task status option to set. Status values are workspace-specific; read them from an existing task (status.value) or from the task status field returned by rocketlane_fields_list. Example: 2.
- `task_description` (`string`, optional): Task description as HTML. Example: "Schedule the kickoff call with stakeholders.
".
- `task_private_note` (`string`, optional): Private note visible only to your team, as HTML. Example: "Customer prefers mornings.
".
- `type` (`string`, optional): Task type: TASK, or MILESTONE for a key task that can collect customer CSAT. Example: "MILESTONE". One of: `TASK`, `MILESTONE`.

Example input: `{"project_id":201,"task_name":"Schedule kickoff call"}`

### `rocketlane_task_dependencies_add`

Add Task Dependency · Write

Make a Rocketlane task depend on another task, with an optional dependency type and lag in days.
Returns the updated task.
Use rocketlane_task_dependencies_add to link tasks. Use rocketlane_task_dependencies_remove to unlink them.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `dependency_task_id` (`integer`, required): ID of the task this task depends on. Get it from rocketlane_tasks_list. Example: 1002.
- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `dependency_type` (`string`, optional): How the two tasks are linked. Valid values: FINISH_TO_START, START_TO_START, FINISH_TO_FINISH, START_TO_FINISH. Example: "FINISH_TO_START". One of: `FINISH_TO_START`, `START_TO_START`, `FINISH_TO_FINISH`, `START_TO_FINISH`.
- `lag` (`integer`, optional): Lag in days between the two tasks. Example: 2.

Example input: `{"dependency_task_id":1002,"task_id":201}`

### `rocketlane_task_dependencies_remove`

Remove Task Dependencies · Write

Remove one or more dependencies from a Rocketlane task.
Returns the updated task.
Use rocketlane_task_dependencies_remove to unlink tasks. Use rocketlane_task_dependencies_add to link them.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `dependency_task_ids` (`array`, required): IDs of the tasks this task should no longer depend on. Example: [1002].
- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.

Example input: `{"dependency_task_ids":[1002],"task_id":201}`

### `rocketlane_task_followers_add`

Add Task Followers · Write

Add followers to a Rocketlane task by email or user ID. Followers get updates on the task without being assigned.
Returns the updated task.
Use rocketlane_task_followers_add for watchers. Use rocketlane_task_assignees_add for the people doing the work.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `follower_emails` (`array`, optional): Email addresses of the followers to add. Example: ["jane.doe@example.com"].
- `follower_user_ids` (`array`, optional): Rocketlane user IDs of the followers to add. Get them from rocketlane_users_list. Example: [201, 202].

Example input: `{"task_id":201}`

### `rocketlane_task_followers_remove`

Remove Task Followers · Write

Remove followers from a Rocketlane task by email or user ID. Followers get updates on the task without being assigned.
Returns the updated task.
Use rocketlane_task_followers_remove for watchers. Use rocketlane_task_assignees_add for the people doing the work.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `follower_emails` (`array`, optional): Email addresses of the followers to remove. Example: ["jane.doe@example.com"].
- `follower_user_ids` (`array`, optional): Rocketlane user IDs of the followers to remove. Get them from rocketlane_users_list. Example: [201, 202].

Example input: `{"task_id":201}`

### `rocketlane_task_move_phase`

Move Task to Phase · Write

Move a Rocketlane task into another phase of the same project.
Returns the updated task.
Use rocketlane_task_move_phase to change a task's phase. Use rocketlane_task_update for other task properties.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `phase_id` (`integer`, required): ID of the phase to move the task into. Get it from rocketlane_phases_list. Example: 402.
- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.

Example input: `{"phase_id":402,"task_id":201}`

### `rocketlane_task_update`

Update Task · Write

Update a Rocketlane task's name, description, dates, effort, progress, status, type or custom fields. Only the inputs you set are changed.
Returns the updated task.
Use rocketlane_task_update to edit task properties. Use rocketlane_task_assignees_add, rocketlane_task_followers_add or rocketlane_task_move_phase for assignees, followers and phase.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.
- `at_risk` (`boolean`, optional): Set to true to flag the task as at risk. Example: true.
- `due_date` (`string`, optional): Date the task is due, in YYYY-MM-DD format, on or after start_date. Example: "2026-01-09".
- `effort_in_minutes` (`integer`, optional): Expected effort to complete the task, in minutes. Example: 120.
- `external_reference_id` (`string`, optional): Your own ID for the task from another system. Example: "JIRA-77".
- `fields` (`array`, optional): Custom field values to set on the task. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `private` (`boolean`, optional): Set to true to make the task private to your team (hidden from customers). Example: false.
- `progress` (`integer`, optional): Task progress as a percentage from 0 to 100. Example: 50.
- `start_date` (`string`, optional): Date the task starts, in YYYY-MM-DD format. Example: "2026-01-05".
- `status_value` (`integer`, optional): Numeric value of the task status option to set. Status values are workspace-specific; read them from an existing task (status.value) or from the task status field returned by rocketlane_fields_list. Example: 2.
- `task_description` (`string`, optional): Task description as HTML. Example: "Schedule the kickoff call with stakeholders.
".
- `task_name` (`string`, optional): New name for the task. Example: "Schedule kickoff call".
- `task_private_note` (`string`, optional): Private note visible only to your team, as HTML. Example: "Customer prefers mornings.
".
- `type` (`string`, optional): Task type: TASK, or MILESTONE for a key task that can collect customer CSAT. Example: "MILESTONE". One of: `TASK`, `MILESTONE`.

Example input: `{"task_id":201}`

### `rocketlane_time_entry_create`

Create Time Entry · Write

Log time in Rocketlane against a project, task or phase, or as an ad hoc activity, for yourself or another user.
Returns the new time entry with its timeEntryId.
Use rocketlane_time_entry_create to log hours. Use rocketlane_time_entry_update to correct an existing entry.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `date` (`string`, required): Date the work was done, in YYYY-MM-DD format. Example: "2026-01-15".
- `minutes` (`integer`, required): Time spent, in minutes. Example: 90.
- `activity_name` (`string`, optional): Name of the ad hoc activity, for time not logged against a project or task. Do not combine with task_id or phase_id; Rocketlane rejects that with "multiple sources". Example: "Pre-sales call".
- `billable` (`boolean`, optional): Whether the time is billable. Rocketlane defaults to true. Example: false.
- `budget_id` (`integer`, optional): ID of the financials budget to log the time against. Get it from rocketlane_budgets_list. Example: 601.
- `category_id` (`integer`, optional): ID of the time entry category. Get it from rocketlane_time_entry_categories_list. Example: 11.
- `fields` (`array`, optional): Custom field values to set on the time entry. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `notes` (`string`, optional): Notes for the time entry. Example: "Reviewed onboarding checklist with the customer.".
- `phase_id` (`integer`, optional): ID of the project phase the time is for. Get it from rocketlane_phases_list. Example: 401.
- `project_id` (`integer`, optional): ID of the project the time is for. Get it from rocketlane_projects_list. Example: 201.
- `task_id` (`integer`, optional): ID of the task the time is for. Get it from rocketlane_tasks_list. Example: 1001.
- `user_email` (`string`, optional): Email of the user the time belongs to. Leave empty to log time for the API key's user. Example: "jane.doe@example.com".
- `user_id` (`integer`, optional): User ID of the user the time belongs to. Get it from rocketlane_users_list. Example: 201.

Example input: `{"date":"2026-01-15","minutes":90}`

### `rocketlane_time_entry_update`

Update Time Entry · Write

Update a Rocketlane time entry's minutes, activity name, notes, category, billable flag or custom fields. The date can't be changed.
Returns the updated time entry.
Use rocketlane_time_entry_update to correct logged time. Use rocketlane_time_entry_delete to remove it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): ID of the time entry. Get it from the timeEntryId field returned by rocketlane_time_entries_list. Example: 3001.
- `activity_name` (`string`, optional): Name of the ad hoc activity, for time not logged against a project or task. Example: "Pre-sales call".
- `billable` (`boolean`, optional): Whether the time is billable. Rocketlane defaults to true. Example: false.
- `category_id` (`integer`, optional): ID of the time entry category. Get it from rocketlane_time_entry_categories_list. Example: 11.
- `fields` (`array`, optional): Custom field values to set on the time entry. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
- `minutes` (`integer`, optional): New duration, in minutes. Example: 60.
- `notes` (`string`, optional): Notes for the time entry. Example: "Reviewed onboarding checklist with the customer.".

Example input: `{"time_entry_id":3001}`

### `rocketlane_time_off_create`

Create Time-Off · Write

Record a time-off (leave) for a Rocketlane user, optionally notifying project owners and other users. Give user_email or user_id.
Returns the new time-off with its timeOffId.
Use rocketlane_time_off_create to block a user's availability. Use rocketlane_time_off_delete to cancel it.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `end_date` (`string`, required): Last day of the time-off, in YYYY-MM-DD format, on or after start_date. Example: "2026-02-12".
- `start_date` (`string`, required): First day of the time-off, in YYYY-MM-DD format. Example: "2026-02-10".
- `type` (`string`, required): Time-off type: FULL_DAY, HALF_DAY, or CUSTOM (needs duration_in_minutes). Example: "FULL_DAY". One of: `FULL_DAY`, `HALF_DAY`, `CUSTOM`.
- `duration_in_minutes` (`integer`, optional): Length of the time-off per day in minutes. Required when type is CUSTOM. Example: 120.
- `note` (`string`, optional): Note about the time-off. Example: "Family vacation".
- `notify_project_owners` (`boolean`, optional): Set to true to notify the owners of the user's projects. Example: true.
- `notify_user_ids` (`array`, optional): User IDs of other people to notify. Example: [202].
- `user_email` (`string`, optional): Email of the user taking time off. Give user_email or user_id. Example: "jane.doe@example.com".
- `user_id` (`integer`, optional): User ID of the user taking time off. Get it from rocketlane_users_list. Example: 201.

Example input: `{"end_date":"2026-02-12","start_date":"2026-02-10","type":"FULL_DAY"}`

### `rocketlane_budget_delete`

Delete Budget · Destructive

Delete a Rocketlane project budget.
Returns no content on success (HTTP 204).
Use rocketlane_budget_delete to remove a budget. Use rocketlane_budget_update to change it instead. A project's default budget (isDefault true) cannot be deleted; Rocketlane returns not found.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `budget_id` (`integer`, required): ID of the budget. Get it from the budgetId field returned by rocketlane_budgets_list. Example: 601.

Example input: `{"budget_id":601}`

### `rocketlane_company_delete`

Delete Company · Destructive

Delete a customer company from Rocketlane.
Returns no content on success (HTTP 204).
Use rocketlane_company_delete to remove a company. Use rocketlane_company_update to edit it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `company_id` (`integer`, required): ID of the company. Get it from the companyId field returned by rocketlane_companies_list. Example: 301.

Example input: `{"company_id":301}`

### `rocketlane_phase_delete`

Delete Phase · Destructive

Delete a phase from a Rocketlane project.
Returns no content on success (HTTP 204).
Use rocketlane_phase_delete to remove a phase. Use rocketlane_phase_update to rename or reschedule it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `phase_id` (`integer`, required): ID of the phase. Get it from the phaseId field returned by rocketlane_phases_list. Example: 201.

Example input: `{"phase_id":201}`

### `rocketlane_project_delete`

Delete Project · Destructive

Permanently delete a Rocketlane project.
Returns no content on success (HTTP 204).
Use rocketlane_project_delete to remove a project for good. Use rocketlane_project_archive to keep its history.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `project_id` (`integer`, required): ID of the project. Get it from the projectId field returned by rocketlane_projects_list. Example: 201.

Example input: `{"project_id":201}`

### `rocketlane_space_delete`

Delete Space · Destructive

Delete a Rocketlane space and its documents.
Returns no content on success (HTTP 204).
Use rocketlane_space_delete to remove a whole space. Use rocketlane_space_document_delete to remove one document.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `space_id` (`integer`, required): ID of the space. Get it from the spaceId field returned by rocketlane_spaces_list. Example: 901.

Example input: `{"space_id":901}`

### `rocketlane_space_document_delete`

Delete Space Document · Destructive

Delete a document from a Rocketlane space.
Returns no content on success (HTTP 204).
Use rocketlane_space_document_delete to remove one document. Use rocketlane_space_delete to remove a whole space.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `space_document_id` (`integer`, required): ID of the space document. Get it from the spaceDocumentId field returned by rocketlane_space_documents_list. Example: 951.

Example input: `{"space_document_id":951}`

### `rocketlane_task_delete`

Delete Task · Destructive

Delete a Rocketlane task.
Returns no content on success (HTTP 204).
Use rocketlane_task_delete to remove a task. Use rocketlane_task_update to change its status instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): ID of the task. Get it from the taskId field returned by rocketlane_tasks_list. Example: 201.

Example input: `{"task_id":201}`

### `rocketlane_time_entry_delete`

Delete Time Entry · Destructive

Delete a Rocketlane time entry.
Returns no content on success (HTTP 204).
Use rocketlane_time_entry_delete to remove logged time. Use rocketlane_time_entry_update to correct it.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `time_entry_id` (`integer`, required): ID of the time entry. Get it from the timeEntryId field returned by rocketlane_time_entries_list. Example: 3001.

Example input: `{"time_entry_id":3001}`

### `rocketlane_time_off_delete`

Delete Time-Off · Destructive

Delete a Rocketlane time-off.
Returns no content on success (HTTP 204).
Use rocketlane_time_off_delete to cancel recorded leave. Use rocketlane_time_off_create to record it.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `time_off_id` (`integer`, required): ID of the time-off. Get it from the timeOffId field returned by rocketlane_time_offs_list. Example: 701.

Example input: `{"time_off_id":701}`

## Related

Other Project Management connectors ([all 40](/agentkit/connectors/?category=project-management)):

- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools
- [Linear](/agentkit/connectors/linear/): Scalekit connector, OAuth, 62 tools
- [Airtable](/agentkit/connectors/airtable/): Scalekit connector, OAuth, 26 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
