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

# Perform an action on a site

> Sends a command to a site to perform a specific, predefined action. This is used for remote operations like rebooting or clearing firewall rules.

Available actions: - `site.upgrade`: Triggers a software upgrade on the device. - `site.clear_firewall`: Clears the device's firewall rules. - `site.reboot`: Reboots the device. - `site.recreate_management_filter`: Re-applies the Altostrat management firewall rules. - `site.recreate_tunnel`: Tears down and rebuilds the secure tunnel to the platform. - `site.resend_api_user`: Pushes the current API user credentials to the device again.




## OpenAPI

````yaml /api/en/control-plane.yaml post /control-plane/{siteId}/action
openapi: 3.0.3
info:
  title: Altostrat Control Plane API
  version: 1.0.0
  description: >-
    The Altostrat Control Plane API is the microservice responsible for managing
    the configuration, security policies, and on-demand access for individual
    MikroTik network sites.


    It serves as the central orchestration layer within the Altostrat SDX
    platform, translating high-level user configurations into actionable
    commands and secure access rules for managed network devices.


    This API allows you to programmatically manage:

    - **Policies:** Centralized firewall and service management rules that
    define how sites behave and what traffic is permitted.

    - **Transient Access:** Secure, time-limited SSH and Winbox connections to
    your devices for remote diagnostics and maintenance, without exposing them
    permanently to the internet.

    - **API Credentials:** The unique credentials used by the Altostrat platform
    to securely communicate with and manage each of your network sites.


    Developers use this API to automate network security configurations, manage
    device access policies, and create temporary, secure connections for remote
    operations.
servers:
  - url: https://v1.api.altostrat.io
    description: Production API Server
security:
  - bearerAuth: []
tags:
  - name: Policies
    description: Manage firewall and service access policies for sites.
  - name: Transient Access
    description: Create and manage temporary, secure administrative access to sites.
  - name: Transient Port Forwarding
    description: >-
      Create and manage temporary, secure port forwards to devices behind a
      site.
  - name: Site Operations
    description: Perform actions and manage configurations for specific sites.
  - name: Site Notes
    description: Read and update the note attached to a managed site.
paths:
  /control-plane/{siteId}/action:
    parameters:
      - $ref: '#/components/parameters/SiteId'
    post:
      tags:
        - Site Operations
      summary: Perform an action on a site
      description: >
        Sends a command to a site to perform a specific, predefined action. This
        is used for remote operations like rebooting or clearing firewall rules.


        Available actions: - `site.upgrade`: Triggers a software upgrade on the
        device. - `site.clear_firewall`: Clears the device's firewall rules. -
        `site.reboot`: Reboots the device. - `site.recreate_management_filter`:
        Re-applies the Altostrat management firewall rules. -
        `site.recreate_tunnel`: Tears down and rebuilds the secure tunnel to the
        platform. - `site.resend_api_user`: Pushes the current API user
        credentials to the device again.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - action
              properties:
                action:
                  type: string
                  description: The action to perform on the site.
                  enum:
                    - site.upgrade
                    - site.clear_firewall
                    - site.reboot
                    - site.recreate_management_filter
                    - site.recreate_tunnel
                    - site.resend_api_user
                  example: site.reboot
      responses:
        '200':
          description: The action command was successfully sent to the device.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Action sent to SNS
        '400':
          description: Bad Request - Invalid action specified.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found - The specified site does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    SiteId:
      name: siteId
      in: path
      required: true
      description: The unique identifier for the site.
      schema:
        type: string
        format: uuid
        example: d290f1ee-6c54-4b01-90e6-d701748f0851
  schemas:
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category for the error (e.g., 'invalid_request_error').
          example: invalid_request_error
        code:
          type: string
          description: A short, unique string identifying the specific error.
          example: parameter_missing
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The 'name' parameter is required for this request.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_missing
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Enter your JWT bearer token.

````