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

# Send a power action

> Starts a power task and answers 202 with its id; watch it via GET /v1/tasks/{id} or the task stream. Needs operate
access and a manageable billing status. Refused with 409 while another job is running on the box, and 422 when the
server has no TenantOS id or its power controller doesn't support the action.



## OpenAPI

````yaml /api-reference/openapi.yaml post /v1/dedicated/{id}/power
openapi: 3.1.0
info:
  title: Server.Express API
  version: 1.0.0
  description: >-
    The customer-facing Server.Express API: auth, billing, tickets, cloud and
    dedicated servers, hosting, reselling and account management. Every response
    uses the `{ success, data | error }` envelope.
  contact:
    name: Server.Express
    url: https://server.express
servers:
  - url: https://my.server.express/api
    description: Production
security:
  - bearerAuth: []
  - apiToken: []
tags:
  - name: API Tokens
  - name: Account
  - name: Auth
  - name: Cloud
  - name: Coupons
  - name: Credits
  - name: Dashboard
  - name: Dedicated
  - name: Health
  - name: Hosting
  - name: Integrations
  - name: Invoices
  - name: Livechat
  - name: Notifications
  - name: Passkeys
  - name: Payments
  - name: Products
  - name: Public
  - name: Public Invoices
  - name: Public Tools
  - name: Reseller
  - name: SSH Keys
  - name: Services
  - name: Tasks
  - name: Teams
  - name: Tickets
  - name: Web Hosting
  - name: Webhooks
paths:
  /v1/dedicated/{id}/power:
    parameters:
      - name: id
        in: path
        required: true
        description: The dedicated server's service id.
        schema:
          type: string
          format: uuid
    post:
      tags:
        - Dedicated
      summary: Send a power action
      description: >-
        Starts a power task and answers 202 with its id; watch it via GET
        /v1/tasks/{id} or the task stream. Needs operate

        access and a manageable billing status. Refused with 409 while another
        job is running on the box, and 422 when the

        server has no TenantOS id or its power controller doesn't support the
        action.
      operationId: publicDedicatedPower
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - action
              properties:
                action:
                  type: string
                  enum:
                    - start
                    - stop
                    - reboot
                    - reset
      responses:
        '202':
          description: Power task started.
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                properties:
                  success:
                    type: boolean
                    const: true
                  data:
                    type: object
                    required:
                      - taskId
                      - action
                    properties:
                      taskId:
                        type: string
                      action:
                        type: string
                        enum:
                          - start
                          - stop
                          - reboot
                          - reset
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Another job is running on this server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDedicatedBusyError'
        '422':
          description: No TenantOS id, or the power controller can't do this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - bearerAuth: []
        - apiToken: []
components:
  responses:
    BadRequest:
      description: Validation failed or the request is malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing, invalid or expired credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: >-
        Authenticated but not allowed (missing scope, not an admin, or not your
        resource).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The resource doesn't exist or isn't visible to you.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServerError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    PublicDedicatedBusyError:
      description: Refused because a job is already running on the server.
      allOf:
        - $ref: '#/components/schemas/ErrorResponse'
        - type: object
          required:
            - data
          properties:
            data:
              type: object
              required:
                - taskId
              properties:
                taskId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Our task id for the running job, or null when it's a
                    TenantOS-side job.
    ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          const: false
        error:
          type: string
          description: Human-readable error message.
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Session access token (JWT) from POST /v1/auth/login or /v1/auth/refresh.
        A session satisfies every API scope.
    apiToken:
      type: http
      scheme: bearer
      bearerFormat: se_live_<prefix>_<secret>
      description: >-
        Personal API token created under Settings → API tokens. Only routes
        guarded by verifyApiAuth accept it, and the token must carry the scope
        named in the operation's x-required-scope.

````

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