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

# Discover configured actions

> Requires actions:read. Bounded pages cover integration, published collection, named Sheets and HTTP definitions. Includes inactive/unavailable states. No provider calls. Schemas are returned by get_action. Pages inspect at most ten source definitions and can contain up to thirty integration actions. Concurrent edits are not a point-in-time snapshot; newly inserted definitions can appear on later pages. Unknown versions are null; availableVersions lists the current discoverable version only.



## OpenAPI

````yaml /openapi.json get /actions
openapi: 3.0.3
info:
  title: Visito M2M API
  version: 1.0.0
  description: >-
    Tenant-scoped server-to-server API for channels, conversations, commerce,
    custom AI tools, and WhatsApp templates. Send operations are asynchronous
    and return queued acknowledgements. Expansion adds conversation controls,
    knowledge, sales opportunities, delivery status, reporting, and signed
    webhooks.
servers:
  - url: https://platform-api.visitoai.com/m2m/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Channels
  - name: Conversations
  - name: Commerce
  - name: Custom tools
  - name: WhatsApp templates
  - name: Properties
  - name: Knowledge
  - name: Sales CRM
  - name: Delivery
  - name: Reporting
  - name: Webhooks
paths:
  /actions:
    get:
      tags:
        - Actions
      summary: Discover configured actions
      description: >-
        Requires actions:read. Bounded pages cover integration, published
        collection, named Sheets and HTTP definitions. Includes
        inactive/unavailable states. No provider calls. Schemas are returned by
        get_action. Pages inspect at most ten source definitions and can contain
        up to thirty integration actions. Concurrent edits are not a
        point-in-time snapshot; newly inserted definitions can appear on later
        pages. Unknown versions are null; availableVersions lists the current
        discoverable version only.
      operationId: listActions
      parameters:
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque signed tenant-bound cursor. Continue until null, including
            empty pages.
      responses:
        '200':
          description: Successful read
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionsPage'
              example:
                actions:
                  - actionId: http:example-tool
                    integrationId: null
                    family: http
                    name:
                      en: Check a request
                      es: Consultar una solicitud
                    version: null
                    availableVersions: []
                    provider: custom
                    propertyIds:
                      - example-business
                    availability: configured
                    blockers: []
                    playgroundOnly: false
                    operations:
                      - name: check_request
                        readOnly: true
                nextCursor: null
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '409':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ActionsPage:
      type: object
      additionalProperties: false
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveredAction'
        nextCursor:
          type: string
          nullable: true
      required:
        - actions
        - nextCursor
    DiscoveredAction:
      type: object
      additionalProperties: false
      properties:
        actionId:
          type: string
        integrationId:
          type: string
          nullable: true
        family:
          type: string
          enum:
            - integration
            - collection
            - sheets
            - http
        name:
          type: object
          additionalProperties: false
          properties:
            en:
              type: string
            es:
              type: string
          required:
            - en
            - es
        version:
          type: integer
          nullable: true
        availableVersions:
          type: array
          items:
            type: integer
        provider:
          type: string
          nullable: true
        propertyIds:
          type: array
          items:
            type: string
        availability:
          type: string
          enum:
            - configured
            - unavailable
        blockers:
          type: array
          items:
            type: string
        playgroundOnly:
          type: boolean
        operations:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              name:
                type: string
              readOnly:
                type: boolean
              inputSchema:
                type: object
                additionalProperties: true
            required:
              - name
        scopeMode:
          type: string
          enum:
            - tenant
            - businesses
          description: >-
            tenant applies throughout this workspace and requires empty
            propertyIds; businesses uses explicitly selected active business
            IDs. Omission preserves legacy scope semantics. Scope is not an
            execution permission.
      required:
        - actionId
        - integrationId
        - family
        - name
        - version
        - availableVersions
        - propertyIds
        - availability
        - blockers
        - operations
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: M2M_AUTH_INSUFFICIENT_SCOPE
            message:
              type: string
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: M2M_AUTH_INSUFFICIENT_SCOPE
          message: M2M credential does not have required scope.
          details:
            requiredScopes:
              - conversations:write
            missingScopes:
              - conversations:write
  responses:
    Error:
      description: Structured error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Visito M2M API key
      description: Server-side tenant-scoped credential created from Build > API Keys.

````

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