> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heliyos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List actions

> Returns every action a worker in this workspace can take. The API calls them tools. Use it to
fill `toolNames` and `actionIds` on **Create a worker** and **Update a worker**. The whole list
comes back in one response; it is not paged.

**Two sources.**
- `builtin`: Heliyos's own actions, the same in every workspace. Put the `name` in the worker's
  `toolNames`.
- `action`: your workspace's actions, performed by a connected app, such as sending email or
  booking meetings through the connected mailbox, or working with files in connected storage.
  Put the `action_id` in the worker's `actionIds`.

**What a worker gets.** A worker can use every action with `common: true`, plus the `builtin`
actions named in `toolNames` and the actions in `actionIds`. A name in `toolNames` that is not
in this list is saved but ignored when the worker runs. Each id in `actionIds` must be an action
of this workspace (404 otherwise). Leave out actions with `is_hidden: true`.

**Connected apps.** An action with an `integration` needs that app connected to work.
`integration.connected` says whether it is connected now; the action is listed either way.

**Reviews.** `risk` decides whether a call waits for a person: reads and writes to companies,
people, tasks and notes apply directly; deal changes, sending email, meetings and changes in
connected apps wait for review unless the workspace's autopilot settings allow them, and even
then a call below the confidence threshold waits. `send_email` is only available to workers
while the workspace sends email automatically; otherwise workers draft with
`create_email_draft` and the draft waits for review, where approving it sends it.

`input` holds each action's full JSON Schema, so the response can be large.

> [!NOTE]
>
> In the Heliyos MCP server: [`heliyos_triggers_list`](https://docs.heliyos.ai/mcp/tools/workers-triggers-and-tools#heliyos-triggers-list), [`heliyos_workers_tools_list`](https://docs.heliyos.ai/mcp/tools/workers-triggers-and-tools#heliyos-workers-tools-list).


## OpenAPI

````yaml /api-reference/openapi.json get /v1/platform/workers/tools
openapi: 3.0.3
info:
  title: Heliyos API
  version: 1.0.0
  description: >-
    The REST API for Heliyos, the AI operating system for revenue. Every request
    is scoped to the workspace that owns the API key. Responses are JSON in a `{
    meta, data }` envelope; errors use `{ message, error: { code, message,
    details } }`.
  contact:
    name: Heliyos support
    email: soham@heliyos.ai
    url: https://www.heliyos.ai
servers:
  - url: https://api-prod.heliyos.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Workspace
    description: >-
      The workspace your API key belongs to, and the log of credits it has used.
      Every other call in this API is scoped to this workspace.
  - name: Schemas
    description: >-
      Objects are your record types: companies, people, deal pipelines and any
      custom objects you add. Each object has fields, and a field's type decides
      what its records can hold.
  - name: Records
    description: >-
      Records are the rows of an object (base schema): companies, people, deals
      and custom objects. A record holds field values keyed by the object's
      field keys and links to other records.
  - name: Timeline
    description: >-
      The AI-written timeline of a company, person or deal: summary entries
      Heliyos writes on a schedule. For the exact change history see Activities,
      and for emails and meetings see Interactions.
  - name: Activities
    description: >-
      The change history of records and tasks: who created, changed or deleted
      what, and when. People, workers and the system each appear as the actor on
      the changes they make.
  - name: Interactions
    description: >-
      Email threads and meetings synced from connected mailboxes and calendars,
      linked to the people and companies they involve.
  - name: Notes
    description: >-
      Free-text notes, optionally linked to records, tasks and interactions.
      Notes show up on the timeline of every record they are linked to, and
      workers read them as customer memory.
  - name: Tasks
    description: >-
      Work items for people and workers, optionally linked to records. A task
      can be assigned to people, to workers, or both, and workers can be started
      on it directly.
  - name: Workers and runs
    description: >-
      Workers are the AI teammates of your workspace (the API calls them
      agents). Define what each one does and what starts it, ask Heliyos to do
      work, and follow every run, its steps and the reviews it waits on.
  - name: Reviews
    description: >-
      Reviews keep the team in control of consequential work. When a worker
      wants to send an email, change a deal, book a meeting, act in a connected
      app or needs a person's answer, the action waits as a review until someone
      approves or rejects it.
  - name: Scouts
    description: >-
      Scouts watch companies and the web for events such as funding rounds,
      product launches, leadership changes or press coverage, and record each
      finding as a signal. A workspace Scout defines what to look for; company
      Scouts are its copies running on individual companies.
  - name: Signals
    description: >-
      Signals are what Scouts find: one event, such as a funding round or a new
      executive, with a summary, its sources and the company it is about. New
      signals are unread until you mark them read.
  - name: Watchlist
    description: >-
      The watchlist is the set of companies your workers monitor. Each watched
      company uses one Watcher from your plan: the workers keep it enriched,
      pull in its emails and meetings, and run Scouts on it.
  - name: Knowledge base
    description: >-
      What your workers know about the business: the business context, four
      fixed texts (products, pain points, value proposition, qualification
      criteria) and any custom entries your team adds. Workers read it on their
      next run. Files your workers read live under Files, with kind
      `knowledge_base`.
  - name: Files
    description: >-
      Knowledge base files that workers read, and files attached to records,
      tasks and other resources. The API calls them attachments. Uploading takes
      three calls: get an upload URL, send the bytes to it, then create the
      file.
  - name: Labels
    description: >-
      Label groups that sort your email threads, for example Intent or Pricing
      questions. Heliyos files each classified thread under a group, and each
      group holds the more specific labels it brings together. The API calls
      them classification labels.
  - name: Team
    description: >-
      The people in your workspace and their roles: joined members and pending
      invitations. Inviting someone sends them an email.
  - name: Notification settings
    description: >-
      Which workspace events send notification emails, how often, and to whom.
      There is one settings document per workspace, shared by everyone in it.
paths:
  /v1/platform/workers/tools:
    get:
      tags:
        - Workers and runs
      summary: List actions
      description: >-
        Returns every action a worker in this workspace can take. The API calls
        them tools. Use it to

        fill `toolNames` and `actionIds` on **Create a worker** and **Update a
        worker**. The whole list

        comes back in one response; it is not paged.


        **Two sources.**

        - `builtin`: Heliyos's own actions, the same in every workspace. Put the
        `name` in the worker's
          `toolNames`.
        - `action`: your workspace's actions, performed by a connected app, such
        as sending email or
          booking meetings through the connected mailbox, or working with files in connected storage.
          Put the `action_id` in the worker's `actionIds`.

        **What a worker gets.** A worker can use every action with `common:
        true`, plus the `builtin`

        actions named in `toolNames` and the actions in `actionIds`. A name in
        `toolNames` that is not

        in this list is saved but ignored when the worker runs. Each id in
        `actionIds` must be an action

        of this workspace (404 otherwise). Leave out actions with `is_hidden:
        true`.


        **Connected apps.** An action with an `integration` needs that app
        connected to work.

        `integration.connected` says whether it is connected now; the action is
        listed either way.


        **Reviews.** `risk` decides whether a call waits for a person: reads and
        writes to companies,

        people, tasks and notes apply directly; deal changes, sending email,
        meetings and changes in

        connected apps wait for review unless the workspace's autopilot settings
        allow them, and even

        then a call below the confidence threshold waits. `send_email` is only
        available to workers

        while the workspace sends email automatically; otherwise workers draft
        with

        `create_email_draft` and the draft waits for review, where approving it
        sends it.


        `input` holds each action's full JSON Schema, so the response can be
        large.
      operationId: listWorkerTools
      parameters: []
      responses:
        '200':
          description: Every action a worker can take.
          content:
            application/json:
              schema:
                type: object
                required:
                  - meta
                  - data
                properties:
                  meta:
                    type: object
                    required:
                      - message
                    properties:
                      message:
                        type: string
                        description: A human-readable summary of the result.
                  data:
                    type: object
                    properties:
                      tools:
                        type: array
                        description: Heliyos's own actions first, then the workspace's.
                        items:
                          $ref: '#/components/schemas/WorkerAction'
              example:
                meta:
                  message: Successful request
                data:
                  tools:
                    - name: create_task
                      label: Created task
                      display_name: null
                      description: >-
                        Create a follow-up task for the organization, linked to
                        the company, people and deal.
                      source: builtin
                      is_internal: true
                      action_id: null
                      provider: null
                      risk: write_crm
                      review_type: task
                      common: false
                      is_hidden: false
                      input:
                        type: object
                        properties:
                          title:
                            type: string
                            description: >-
                              Short imperative title, e.g. 'Send revised quote
                              to Contoso'
                            minLength: 2
                            maxLength: 200
                          priority:
                            type: string
                            enum:
                              - low
                              - medium
                              - high
                              - urgent
                              - none
                            default: medium
                        required:
                          - title
                      output:
                        type: object
                        properties:
                          ok:
                            type: boolean
                            default: true
                            description: Whether the change was applied
                          id:
                            type: string
                            nullable: true
                            description: Id of the record created or changed
                    - name: web_search
                      label: Searched the web
                      display_name: null
                      description: >-
                        Search the web and read pages to answer a question with
                        sources.
                      source: builtin
                      is_internal: true
                      action_id: null
                      provider: null
                      risk: read
                      review_type: web_search
                      common: false
                      is_hidden: false
                      input:
                        type: object
                      output:
                        type: object
                    - name: schedule_meeting
                      label: Scheduled meeting
                      display_name: Schedule Meeting
                      description: >-
                        Put a meeting on the calendar and invite the guests: a
                        one-time or a repeating event, timed or all day, with a
                        video call link created with it unless it is in person.
                      source: action
                      is_internal: false
                      action_id: 6721b2c3d4e5f6a7b8c9d0e1
                      risk: schedule_meeting
                      review_type: meeting_scheduled
                      common: false
                      is_hidden: false
                      integration:
                        title: Gmail
                        iconSrc: https://cdn.example.com/icons/gmail.svg
                        connected: true
                      input:
                        type: object
                      output:
                        type: object
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: 'FORBIDDEN_ACTION: you cannot view workers.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    WorkerAction:
      type: object
      additionalProperties: true
      description: >-
        One action a worker can take. The API calls actions tools: `toolNames`
        and `actionIds` on a worker hold them.
      properties:
        name:
          type: string
          description: >-
            The action's stable snake_case name, for example `create_task` or
            `send_email`. For a `builtin` action, this is the value you put in a
            worker's `toolNames`.
        label:
          type: string
          description: >-
            A short, readable name, as a run's activity shows it (for example
            `Created task`).
        display_name:
          type: string
          nullable: true
          description: >-
            `action` only: the action's name as the connected app's set of
            actions defines it, for example `Send Email`. `null` for `builtin`.
        description:
          type: string
          description: >-
            What the action does, as the worker reads it when deciding whether
            to use it. Can be long.
        source:
          type: string
          enum:
            - builtin
            - action
          description: >
            - `builtin`: one of Heliyos's own actions (reading and writing
            records, tasks and notes, web
              research, files, charts, follow-ups). Put `name` in the worker's `toolNames`.
            - `action`: an action of your workspace, performed by a connected
            app (email, calendar, file
              storage and so on). Put `action_id` in the worker's `actionIds`.
        is_internal:
          type: boolean
          description: '`true` for `builtin`, `false` for `action`.'
        action_id:
          type: string
          nullable: true
          description: >-
            `action` only: the action's id, the value for `actionIds`. `null`
            for `builtin`.
        provider:
          type: string
          nullable: true
          description: >-
            `action` only: a key for the app that performs it. Read
            `integration` for the app's name and status. `null` for `builtin`.
        integration:
          $ref: '#/components/schemas/WorkerIntegrationLink'
        risk:
          type: string
          enum:
            - read
            - write_crm
            - write_deal
            - communicate
            - schedule_meeting
            - external
            - schedule
            - plan
            - confirm
          description: >
            What kind of action it is, which decides whether a call waits for a
            person's review:

            - `read`: reads only. Never waits.

            - `write_crm`: writes companies, people, tasks, notes, documents,
            email drafts and thread or
              meeting analysis. Applies directly, never waits. A saved email draft then waits for review
              before it is sent.
            - `write_deal`: creates or changes a deal. Waits unless autopilot
            approves deal changes.

            - `communicate`: sends email. Waits unless autopilot sends email.

            - `schedule_meeting`: books, moves or cancels a meeting. Waits
            unless autopilot schedules meetings.

            - `external`: changes something in a connected app. Waits unless
            autopilot allows external
              actions (off by default).
            - `schedule`: schedules or cancels a follow-up run. Runs unless
            autopilot follow-ups are turned off (on by default).

            - `plan`: submits a plan. Waits only when the workspace requires
            plan approval.

            - `confirm`: asks a person a question or for approval. Always waits.


            Even with autopilot on for a kind of action, a call waits when the
            worker's stated confidence

            is below the threshold set for it (80 by default) or when it states
            none.
        review_type:
          type: string
          description: >-
            The kind of review a call raises when it waits, for example
            `email_draft`, `deal_update` or `meeting_scheduled`. Defaults to the
            action's `name`.
        common:
          type: boolean
          description: >-
            `true`: every worker has this action, whatever its `toolNames` say.
            You do not need to list it.
        is_hidden:
          type: boolean
          description: >-
            `true`: Heliyos wires this action in where it is needed. It is not
            offered for picking in the Heliyos app; leave it out of a worker's
            configuration.
        input:
          type: object
          additionalProperties: true
          description: The JSON Schema of the action's input, as the worker fills it in.
        output:
          type: object
          additionalProperties: true
          description: The JSON Schema of the action's result.
    ErrorEnvelope:
      type: object
      required:
        - message
        - error
      properties:
        message:
          type: string
          description: Same as error.message.
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - VALIDATION_FAILED
                - UNAUTHENTICATED
                - FORBIDDEN_ACTION
                - NOT_FOUND
                - RATE_LIMITED
                - CONFLICT
                - INTERNAL
            message:
              type: string
            details: {}
    WorkerIntegrationLink:
      type: object
      description: >-
        The connected app that delivers this trigger or performs this action.
        Present only when one does; Heliyos's own triggers and tools have none.
      properties:
        title:
          type: string
          description: >-
            The app's name, for example `Gmail`, `Outlook`, `Google Drive`,
            `OneDrive`, `HubSpot` or `Typeform`. Where two apps can do the job
            (email and calendar through Gmail or Outlook), the connected one is
            named; with neither connected, the first one is.
        iconSrc:
          type: string
          description: The app's logo URL. Absent when Heliyos has no logo for it.
        connected:
          type: boolean
          description: >-
            `true` when the workspace has this app connected and working now.
            While it is `false`, the trigger does not fire and the action cannot
            work. Connect the app in Heliyos first.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        A workspace API key, sent as `Authorization: Bearer heliyos_...`. Create
        one in Heliyos under Settings → API keys. A key acts as a workspace
        admin in the one workspace it was created in.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.