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

# Make an RPC call to an action

> Makes a remote procedure call to the specified action



## OpenAPI

````yaml post /actions/rpc
openapi: 3.1.0
info:
  title: StackOne
  description: The documentation for the StackOne API
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.stackone.com
security: []
tags:
  - name: Accounts
    description: View and manage linked accounts.
  - name: Actions
    description: Retrieve Actions metadata and definitions.
  - name: AI
    description: AI-powered features.
  - name: Auth Configs
    description: View and manage connector auth configurations for the project.
  - name: Connect Sessions
    description: >-
      Generate connection session tokens or auth URLs to allow your customers to
      connect their accounts.
  - name: Connector Profiles
    description: View and manage connector profiles for the project.
  - name: Connectors
    description: Retrieve metadata for connectors.
  - name: Logs
    description: API request logs and analytics.
  - name: MCP
    description: Model Context Protocol endpoint.
  - name: Proxy
    description: Routing API requests through StackOne directly to the underlying provider.
  - name: Request Logs
    description: API requests and response logs.
  - name: Webhooks
    description: Configure and manage webhooks.
paths:
  /actions/rpc:
    post:
      tags:
        - Actions
      summary: Make an RPC call to an action
      description: Makes a remote procedure call to the specified action
      operationId: stackone_rpc_action
      parameters:
        - name: sync
          required: false
          in: query
          description: >-
            When true, the action result is written to the datasync index and
            the response includes datasync metadata
          schema:
            nullable: true
            example: false
            type: boolean
        - name: debug
          required: false
          in: query
          description: Enable debug mode for the action execution
          schema:
            nullable: true
            example: false
            type: boolean
        - name: x-account-id
          in: header
          description: The account identifier
          required: true
          schema:
            type: string
        - name: x-connector-profile-id
          in: header
          description: >-
            Overrides the connector profile associated with the account for this
            request. The profile must exist in the same project and belong to
            the same connector as the account, otherwise the request is rejected
            with a 400 Bad Request.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActionsRpcRequestDto'
      responses:
        '200':
          description: >-
            Action response. When sync=true, the response is wrapped with a
            `datasync` metadata field.
          content:
            application/json:
              schema:
                oneOf:
                  - 953af614-23eb-4162-83e6-d4925bbfc05a
                  - $ref: '#/components/schemas/ActionsSyncedResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '408':
          description: The request has timed out.
          headers:
            Retry-After:
              description: A time in seconds after which the request can be retried.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimedOutResponse'
        '409':
          description: Conflict with current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictResponse'
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
        '500':
          description: Server error while executing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
        '501':
          description: This functionality is not implemented.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotImplementedResponse'
        '502':
          description: Bad gateway error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayResponse'
      security:
        - basic: []
components:
  schemas:
    ActionsRpcRequestDto:
      type: object
      properties:
        action:
          type: string
          description: The action to execute
          example: create_employee
        path:
          type: object
          description: Path parameters for the action
          example:
            id: '123'
          nullable: true
          additionalProperties: true
        query:
          description: Query parameters for the action
          nullable: true
          additionalProperties: true
          allOf:
            - $ref: '#/components/schemas/ActionsRpcQueryDto'
        headers:
          type: object
          description: Headers for the action
          example:
            Content-Type: application/json
          nullable: true
          additionalProperties: true
        body:
          type: object
          description: Request body for the action
          example:
            data: example
          nullable: true
          additionalProperties: true
        defender_enabled:
          type: boolean
          description: >-
            Override the account-level defender enabled setting for this
            request. Deprecated: use defender_config instead.
          example: true
          nullable: true
          deprecated: true
        defender_config:
          description: >-
            Per-request defender configuration. Takes precedence over
            defender_enabled and project settings.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/DefenderConfigDto'
      required:
        - action
    ActionsSyncedResponse:
      type: object
      properties:
        data:
          type: array
          description: The synced records for the requested action
          items:
            type: object
            additionalProperties: true
          nullable: true
        datasync:
          description: Metadata about the datasync operation
          allOf:
            - $ref: '#/components/schemas/ActionsSyncedDatasync'
      required:
        - datasync
    BadRequestResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Error message
          example: Bad Request
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
        data:
          description: Error details
          nullable: true
          allOf:
            - $ref: '#/components/schemas/UnifiedError'
        provider_errors:
          description: List of provider-specific errors
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ProviderError'
      required:
        - statusCode
        - message
        - timestamp
    UnauthorizedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 401
        message:
          type: string
          description: Error message
          example: Unauthorized
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ForbiddenResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 403
        message:
          type: string
          description: Error message
          example: Forbidden resource
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotFoundResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 404
        message:
          type: string
          description: Error message
          example: Not Found
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    RequestTimedOutResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 408
        message:
          type: string
          description: Error message
          example: Request timed out
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ConflictResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 409
        message:
          type: string
          description: Error message
          example: Conflict
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    UnprocessableEntityResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 422
        message:
          type: string
          description: Error message
          example: Unprocessable Entity
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    TooManyRequestsResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 429
        message:
          type: string
          description: Error message
          example: Too many requests
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    InternalServerErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 500
        message:
          type: string
          description: Error message
          example: Internal server error
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotImplementedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 501
        message:
          type: string
          description: Error message
          example: Not Implemented
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    BadGatewayResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 502
        message:
          type: string
          description: Error message
          example: Bad Gateway
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ActionsRpcQueryDto:
      type: object
      properties:
        debug:
          type: boolean
          description: Enable debug mode for the action execution
          example: false
          nullable: true
    DefenderConfigDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether to run defender at all
          example: true
          nullable: true
        block_high_risk:
          type: boolean
          description: Whether to block tool execution when a HIGH risk score is detected
          example: false
          nullable: true
        use_tier1_classification:
          type: boolean
          description: Whether to run tier 1 pattern-based detection
          example: true
          nullable: true
        use_tier2_classification:
          type: boolean
          description: Whether to run tier 2 ML-based detection
          example: true
          nullable: true
    ActionsSyncedDatasync:
      type: object
      properties:
        last_full_run_id:
          type: string
          description: >-
            Run ID of the last successful full sync — the generation that
            produced the currently-readable data. Informational.
        last_run_id:
          type: string
          description: >-
            Run ID of the most recent run that produced or refreshed data for
            this scope. Informational.
        request_id:
          type: string
          description: The unique request ID for this sync read
        synced_at:
          type: string
          description: ISO 8601 timestamp of when the data was synced
        sync_expires_at:
          type: string
          description: ISO 8601 timestamp of when the synced data expires
        params_hash:
          type: string
          description: >-
            Hash of the canonicalized sync parameters (pagination and undeclared
            keys stripped)
      required:
        - last_full_run_id
        - last_run_id
        - request_id
        - synced_at
        - sync_expires_at
        - params_hash
    UnifiedError:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
          nullable: true
        message:
          type: string
          description: Error message
          example: Bad Request
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
    ProviderError:
      type: object
      properties:
        status:
          type: number
          description: HTTP status code of the provider error
          example: 400
          nullable: true
        url:
          type: string
          description: URL that caused the error
          example: https://api.provider.com/v1/resource
          nullable: true
        raw:
          type: object
          description: Raw error response from the provider
          example:
            message: Invalid input parameters
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
  securitySchemes:
    basic:
      type: http
      scheme: basic

````