{"openapi":"3.1.0","info":{"title":"Rocketlane (BYOK) API","version":"0.1.0","description":"Rocketlane (BYOK) lets an AI assistant read your own Rocketlane data through the Rocketlane API with a key you supply (Rocketlane API key). Read-only: 9 tools (list_projects, list_tasks, list_phases, list_time_entries, list_users, list_companies, list_time_offs, list_spaces, list_custom_fields). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-rocketlane.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rocketlane/docs"},"termsOfService":"https://connectorbay.com/byok-rocketlane/terms"},"servers":[{"url":"https://byok-rocketlane.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rocketlane/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List customer projects with name, status, owner, customer company, dates, progress, tracked and budgeted hours. Filter b","description":"List customer projects with name, status, owner, customer company, dates, progress, tracked and budgeted hours. Filter by name, customer, team member or due date; token-paged. Use for \"Which Rocketlane projects are due before the end of June\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects whose name contains this text.","title":"Name Contains"},"customer_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects of this customer company id.","title":"Customer Id"},"team_member_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects that include this user id as a team member.","title":"Team Member Id"},"due_on_or_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects due on or before this date (YYYY-MM-DD).","title":"Due On Or Before"},"due_on_or_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects due on or after this date (YYYY-MM-DD).","title":"Due On Or After"},"sort_by":{"anyOf":[{"enum":["projectName","startDate","dueDate","startDateActual","dueDateActual"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tasks":{"post":{"operationId":"list_tasks","summary":"List tasks and milestones with name, project, phase, status, assignees, dates, effort and progress. Filter by project, a","description":"List tasks and milestones with name, project, phase, status, assignees, dates, effort and progress. Filter by project, assignee, name or due date; token-paged. Use for \"What tasks are assigned to user 7 in Rocketlane\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks of this project id.","title":"Project Id"},"phase_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only tasks of this phase id.","title":"Phase Id"},"assignee_user_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks assigned to this user id.","title":"Assignee User Id"},"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks whose name contains this text.","title":"Name Contains"},"due_on_or_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks due on or before this date (YYYY-MM-DD).","title":"Due On Or Before"},"sort_by":{"anyOf":[{"enum":["taskName","startDate","dueDate","startDateActual","dueDateActual"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_phases":{"post":{"operationId":"list_phases","summary":"List project phases with name, project, dates and status. Optionally limited to one project; token-paged. Use for \"What ","description":"List project phases with name, project, dates and status. Optionally limited to one project; token-paged. Use for \"What phases does Rocketlane project 11 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only phases of this project id.","title":"Project Id"},"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only phases whose name contains this text.","title":"Name Contains"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_phasesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_time_entries":{"post":{"operationId":"list_time_entries","summary":"List logged time entries with date, minutes, user, project, task, phase, category, billable flag and approval status. Fi","description":"List logged time entries with date, minutes, user, project, task, phase, category, billable flag and approval status. Filter by date range, project or user; token-paged. Use for \"How much time did user 7 log in Rocketlane last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries on or after this date (YYYY-MM-DD).","title":"Date From"},"date_to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries on or before this date (YYYY-MM-DD).","title":"Date To"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries on this project id.","title":"Project Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only entries logged by this user id.","title":"User Id"},"billable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for billable entries only, false for non-billable only.","title":"Billable"},"approval_status":{"anyOf":[{"enum":["NOT_SUBMITTED","SUBMITTED","APPROVED","REJECTED"],"type":"string"},{"type":"null"}],"default":null,"description":"Approval state of the entry.","title":"Approval Status"},"sort_by":{"anyOf":[{"enum":["minutes","date","id","billable"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_time_entriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_users":{"post":{"operationId":"list_users","summary":"List workspace users (team members, partners and customers) with name, email, type, status, role, company and weekly cap","description":"List workspace users (team members, partners and customers) with name, email, type, status, role, company and weekly capacity. Filter by name, email, status or type; token-paged. Use for \"Who are the active team members in Rocketlane\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"first_name_contains":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only users whose first name contains this text.","title":"First Name Contains"},"last_name_contains":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only users whose last name contains this text.","title":"Last Name Contains"},"email_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only users whose email contains this text.","title":"Email Contains"},"status":{"anyOf":[{"enum":["INACTIVE","INVITED","ACTIVE","PASSIVE"],"type":"string"},{"type":"null"}],"default":null,"description":"User status.","title":"Status"},"type":{"anyOf":[{"enum":["TEAM_MEMBER","PARTNER","CUSTOMER","EXTERNAL_PARTNER"],"type":"string"},{"type":"null"}],"default":null,"description":"User type.","title":"Type"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_usersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_companies":{"post":{"operationId":"list_companies","summary":"List customer and partner companies with URL, visibility, account owner and description. Filter by name or URL; token-pa","description":"List customer and partner companies with URL, visibility, account owner and description. Filter by name or URL; token-paged. Use for \"Which customer companies are in Rocketlane\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only companies whose name contains this text.","title":"Name Contains"},"url_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only companies whose URL contains this text.","title":"Url Contains"},"sort_by":{"anyOf":[{"enum":["companyName","createdAt","updatedAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort By"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_companiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_time_offs":{"post":{"operationId":"list_time_offs","summary":"List time-offs (leave) with user, start and end date, type and duration. Filter by user or date range; token-paged. Use ","description":"List time-offs (leave) with user, start and end date, type and duration. Filter by user or date range; token-paged. Use for \"Who is on leave in Rocketlane next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only time-offs of this user id.","title":"User Id"},"starts_on_or_after":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only time-offs starting on or after this date (YYYY-MM-DD).","title":"Starts On Or After"},"starts_on_or_before":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only time-offs starting on or before this date (YYYY-MM-DD).","title":"Starts On Or Before"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_time_offsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_spaces":{"post":{"operationId":"list_spaces","summary":"List collaboration spaces of projects with name, project and privacy flag. Optionally limited to one project; token-page","description":"List collaboration spaces of projects with name, project and privacy flag. Optionally limited to one project; token-paged. Use for \"What spaces exist in Rocketlane project 11\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only spaces of this project id.","title":"Project Id"},"name_contains":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only spaces whose name contains this text.","title":"Name Contains"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_spacesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_custom_fields":{"post":{"operationId":"list_custom_fields","summary":"List the custom fields defined in the workspace with label, type, object they belong to and whether they are enabled. Fi","description":"List the custom fields defined in the workspace with label, type, object they belong to and whether they are enabled. Filter by object or field type; token-paged. Use for \"Which custom fields does Rocketlane have for projects\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"object_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Object the field belongs to, for example TASK or PROJECT.","title":"Object Type"},"field_type":{"anyOf":[{"enum":["TEXT","MULTI_LINE_TEXT","YES_OR_NO","DATE","SINGLE_CHOICE","MULTIPLE_CHOICE","SINGLE_USER","MULTIPLE_USER","NUMBER","NOTE","RATING"],"type":"string"},{"type":"null"}],"default":null,"description":"Field type.","title":"Field Type"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for enabled fields only.","title":"Enabled"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: ASC or DESC.","title":"Sort Order"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return per page (1 to 100, default 100).","title":"Page Size"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"The pagination.nextPageToken of the previous answer (valid for 15 minutes); leave empty for the first page.","title":"Page Token"}},"title":"list_custom_fieldsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}