> ## 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.

# Cancel a Pending Job

> Deletes a job that has not yet started execution. Jobs that are in progress, completed, or failed cannot be deleted.



## OpenAPI

````yaml /api/en/mikrotik-api.yaml delete /site/{siteId}/job/{jobId}
openapi: 3.0.3
info:
  title: Altostrat MikroTik Devices API
  version: 1.0.0
  description: >-
    The Altostrat MikroTik Devices API is the microservice responsible for
    managing the lifecycle, configuration, and real-time state of MikroTik
    devices within the SDX platform.


    It acts as the command and control plane for individual network endpoints,
    receiving heartbeats, dispatching jobs, and providing observability into
    device health. This service is the bridge between the Altostrat SDX
    automation layer and the physical network hardware.


    This API allows you to programmatically manage:

    - **Sites:** The digital twin of a physical MikroTik router, representing
    its identity, configuration, and current online status.

    - **Jobs:** Asynchronous commands or scripts sent to a Site for execution,
    enabling remote configuration changes, troubleshooting, and automation.

    - **Device Stats:** Time-series performance data, including CPU load, memory
    usage, and uptime, collected from each Site.


    Developers use this API to programmatically list, monitor, and interact with
    their fleet of MikroTik devices, forming the basis for building custom
    network automation and management tools.
servers:
  - url: https://v1.api.altostrat.io
    description: Production API Server
security:
  - BearerAuth: []
tags:
  - name: Sites
    description: Manage and monitor MikroTik devices, referred to as "Sites".
  - name: Jobs
    description: Create and manage asynchronous commands to be executed on Sites.
  - name: Device Stats
    description: Retrieve time-series performance metrics from Sites.
  - name: Runbooks
    description: Access device onboarding configurations.
  - name: Developer API
    description: >-
      Run synchronous RouterOS commands or queue asynchronous RouterOS scripts
      through SDX.
  - name: Developer Routers
    description: Read router-level summaries exposed by the SDX developer API.
paths:
  /site/{siteId}/job/{jobId}:
    delete:
      tags:
        - Jobs
      summary: Cancel a Pending Job
      description: >-
        Deletes a job that has not yet started execution. Jobs that are in
        progress, completed, or failed cannot be deleted.
      parameters:
        - name: siteId
          in: path
          required: true
          description: The UUID of the site.
          schema:
            type: string
            format: uuid
        - name: jobId
          in: path
          required: true
          description: The UUID of the job to delete.
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: The job was successfully deleted.
        '404':
          description: Not Found - The requested job or site does not exist.
        '429':
          description: Conflict - Cannot delete a job that has already started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: invalid_request_error
                code: job_already_started
                message: Cannot delete a job that has already started.
                doc_url: https://docs.altostrat.io/errors/job_already_started
        '500':
          $ref: '#/components/responses/ServerError'
components:
  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_invalid
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The 'lat' parameter must be between -90 and 90.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_invalid
  responses:
    ServerError:
      description: Internal Server Error - An unexpected error occurred on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
            example:
              type: api_error
              code: internal_server_error
              message: An internal server error occurred. Please try again later.
              doc_url: https://docs.altostrat.io/errors/api_error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authenticate requests by providing a JSON Web Token (JWT) in the
        `Authorization` header. Example: `Authorization: Bearer <YOUR_JWT>`

````