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

# Toggle a service

> Sets whether a service is enabled. When enabling, the stored configuration and secrets are validated against their schemas before the change is persisted and the service is hydrated on its adapter.



## OpenAPI

````yaml /cyrnel/openapi.json post /services/{serviceId}/enabled
openapi: 3.0.0
info:
  title: Cyrnel API
  description: >-
    Cyrnel is a universal layer that connects AI agents and LLM applications to
    any external service, API, or device regardless of protocol or standard. It
    acts as an adaptive bridge between your AI and the outside world, enabling
    seamless integrations through code execution, async operation handling, and
    built-in observability and security controls.
  version: 1.0.0
servers:
  - url: http://localhost:9371
security: []
paths:
  /services/{serviceId}/enabled:
    post:
      tags:
        - Services
      summary: Toggle a service
      description: >-
        Sets whether a service is enabled. When enabling, the stored
        configuration and secrets are validated against their schemas before the
        change is persisted and the service is hydrated on its adapter.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: Service identifier matching the installed manifest id.
          required: true
          description: Service identifier matching the installed manifest id.
          name: serviceId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceEnabledRequest'
      responses:
        '200':
          description: Updated enabled state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceEnabledResponse'
        '400':
          description: >-
            The request body or the stored configuration/secrets failed
            validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: A bearer token was required but missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: The service could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '429':
          description: >-
            Rate limit exceeded. The request was throttled. Check Retry-After
            header.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum requests allowed in the current window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix timestamp when the window resets.
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait before retrying.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: The service enabled state could not be updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '502':
          description: The service could not be hydrated on its adapter module.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
components:
  schemas:
    ServiceEnabledRequest:
      type: object
      properties:
        enabled:
          type: boolean
          description: Desired enabled state for the service.
      required:
        - enabled
      description: Request body used to toggle a service enabled state.
    ServiceEnabledResponse:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: Identifier of the service whose enabled state was updated.
        enabled:
          type: boolean
          description: The new enabled state stored for the service.
      required:
        - id
        - enabled
      description: Response returned after toggling a service enabled state.
    ApiErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message returned by the API.
      required:
        - error
      description: Standard error envelope returned by the HTTP error middleware.
    RateLimitErrorResponse:
      type: object
      properties:
        error:
          type: string
          enum:
            - rate_limit_exceeded
          description: Error code identifying rate-limit rejection.
        message:
          type: string
          description: Human-readable message with retry instructions.
        retryAfter:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          description: Number of seconds to wait before retrying.
      required:
        - error
        - message
        - retryAfter
      description: Error body returned when a request is rate-limited (HTTP 429).

````