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

# Revoke private agent

> Invalidate access and refresh credentials and remove provider routing registrations. Requires Private Agent delete permission plus the Private Agents and AI SRE features. Retains the agent and invocation history. Repeated revocation is safe. An executing customer-side operation is not guaranteed to stop immediately. Use a new enrollment token to re-enroll a revoked installation.



## OpenAPI

````yaml https://rootly-heroku.s3.amazonaws.com/swagger/v1/swagger.json post /v1/private_agents/{id}/revoke
openapi: 3.0.1
info:
  title: Rootly API v1
  version: v1
  license:
    name: Rootly
    url: https://rootly.com
  description: >+
    # How to generate an API Key?

    - **Organization dropdown** > **Organization Settings** > **API Keys**


    # JSON:API Specification

    Rootly is using **JSON:API** (https://jsonapi.org) specification:

    - JSON:API is a specification for how a client should request that resources
    be fetched or modified, and how a server should respond to those requests.

    - JSON:API is designed to minimize both the number of requests and the
    amount of data transmitted between clients and servers. This efficiency is
    achieved without compromising readability, flexibility, or discoverability.

    - JSON:API requires use of the JSON:API media type
    (**application/vnd.api+json**) for exchanging data.


    # Authentication and Requests

    We use standard HTTP Authentication over HTTPS to authorize your requests.

    ```
      curl --request GET \
    --header 'Content-Type: application/vnd.api+json' \

    --header 'Authorization: Bearer YOUR-TOKEN' \

    --url https://api.rootly.com/v1/incidents

    ```


    <br/>


    # Rate limiting

    - There is a default limit of **5** **GET**, **HEAD**, and **OPTIONS** calls
    **per API key** every **60 seconds** (0 hours). The limit is calculated over
    a **0-hour sliding window** looking back from the current time. While the
    limit can be configured to support higher thresholds, you must first contact
    your **Rootly Customer Success Manager** to make any adjustments.

    - There is a default limit of **3** **POST**, **PUT**, **PATCH** or
    **DELETE** calls **per API key** every **60 seconds** (0 hours). The limit
    is calculated over a **0-hour sliding window** looking back from the current
    time. While the limit can be configured to support higher thresholds, you
    must first contact your **Rootly Customer Success Manager** to make any
    adjustments.

    - When rate limits are exceeded, the API will return a **429 Too Many
    Requests** HTTP status code with the response: `{"error": "Rate limit
    exceeded. Try again later."}`

    - **X-RateLimit headers** are included in every API response, providing
    real-time rate limit information:
      - **X-RateLimit-Limit** - The maximum number of requests permitted and the time window (e.g., "1000, 1000;window=3600" for 1000 requests per hour)
      - **X-RateLimit-Remaining** - The number of requests remaining in the current rate limit window
      - **X-RateLimit-Used** - The number of requests already made in the current window
      - **X-RateLimit-Reset** - The time at which the current rate limit window resets, in UTC epoch seconds

    # Pagination

    - Pagination is supported for all endpoints that return a collection of
    items.

    - Pagination is controlled by the **page** query parameter


    ## Example

    ```
      curl --request GET \
    --header 'Content-Type: application/vnd.api+json' \

    --header 'Authorization: Bearer YOUR-TOKEN' \

    --url https://api.rootly.com/v1/incidents?page[number]=1&page[size]=10

    ```

  x-logo:
    url: https://rootly-heroku.s3.us-east-1.amazonaws.com/swagger/v1/logo.png
servers:
  - url: https://api.rootly.com
security: []
paths:
  /v1/private_agents/{id}/revoke:
    parameters:
      - name: id
        in: path
        schema:
          type: string
          format: uuid
        required: true
    post:
      tags:
        - Private Agents
      summary: Revoke private agent
      description: >-
        Invalidate access and refresh credentials and remove provider routing
        registrations. Requires Private Agent delete permission plus the Private
        Agents and AI SRE features. Retains the agent and invocation history.
        Repeated revocation is safe. An executing customer-side operation is not
        guaranteed to stop immediately. Use a new enrollment token to re-enroll
        a revoked installation.
      operationId: revokePrivateAgent
      responses:
        '200':
          description: Agent revoked
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/private_agent_response'
        '401':
          description: Invalid or missing API credential
        '404':
          description: Not found or unauthorized
      security:
        - bearer_auth: []
components:
  schemas:
    private_agent_response:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/private_agent'
    private_agent:
      type: object
      additionalProperties: false
      required:
        - id
        - type
        - attributes
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          enum:
            - private_agents
        attributes:
          type: object
          additionalProperties: false
          required:
            - name
            - description
            - enabled
            - status
            - online
            - deployment_mode
            - agent_version
            - last_seen_at
            - schema_digest
            - providers
            - created_at
            - updated_at
          properties:
            name:
              type: string
            description:
              type: string
              nullable: true
              description: >-
                Non-sensitive routing metadata. Do not include secrets or
                personal data.
            enabled:
              type: boolean
              description: >-
                For active agents, whether Rootly may advertise tools and assign
                new work.
            status:
              type: string
              enum:
                - active
                - revoked
            online:
              type: boolean
              description: >-
                Active agent seen within two minutes; does not imply all
                providers are healthy.
            deployment_mode:
              type: string
              enum:
                - combined
                - split-core
            agent_version:
              type: string
            last_seen_at:
              type: string
              format: date-time
              nullable: true
            schema_digest:
              type: string
              nullable: true
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            providers:
              type: array
              items:
                type: object
                additionalProperties: false
                required:
                  - id
                  - type
                  - version
                  - health
                  - policy
                  - capabilities
                properties:
                  id:
                    type: string
                  type:
                    type: string
                    description: >-
                      Provider adapter type, such as kubernetes, prometheus,
                      loki, tempo, pyroscope, elasticsearch, opensearch,
                      postgresql, mysql, mcp, http, kafka, redis, or valkey.
                  version:
                    type: string
                    nullable: true
                  health:
                    type: object
                    nullable: true
                    additionalProperties: false
                    description: >-
                      Last reported provider health; may be stale when the agent
                      is offline. Invalid or absent fields are omitted.
                    properties:
                      status:
                        type: string
                      observed_at:
                        type: string
                      message:
                        type: string
                  policy:
                    type: object
                    nullable: true
                    additionalProperties: false
                    description: >-
                      Reported local policy, not credentials or provider
                      connection configuration. Fields are provider-type
                      specific: Kubernetes reports namespace scope; search
                      providers report index scope; databases report
                      database/schema scope; HTTP reports method/path/header
                      scope; Kafka reports topic and message-read scope; Redis
                      and Valkey report diagnostic limits; and each provider
                      family normally reports only its applicable numeric
                      limits. Management responses may preserve legacy
                      cross-family fields for backwards compatibility;
                      capability catalog and dispatch use provider-scoped
                      execution metadata. Invalid or absent fields are omitted.
                    properties:
                      digest:
                        type: string
                      cluster_scoped:
                        type: boolean
                      pod_logs:
                        type: boolean
                      maximum_concurrency:
                        type: integer
                        minimum: 1
                      maximum_attribute_values:
                        type: integer
                        minimum: 1
                      maximum_documents:
                        type: integer
                        minimum: 1
                      maximum_entries:
                        type: integer
                        minimum: 1
                      maximum_exemplars:
                        type: integer
                        minimum: 1
                      maximum_indices:
                        type: integer
                        minimum: 1
                      maximum_label_values:
                        type: integer
                        minimum: 1
                      maximum_nodes:
                        type: integer
                        minimum: 1
                      maximum_pattern_points:
                        type: integer
                        minimum: 1
                      maximum_points_per_series:
                        type: integer
                        minimum: 1
                      maximum_profile_types:
                        type: integer
                        minimum: 1
                      maximum_query_bytes:
                        type: integer
                        minimum: 1
                      maximum_request_bytes:
                        type: integer
                        minimum: 1
                      maximum_response_bytes:
                        type: integer
                        minimum: 1
                      maximum_range_seconds:
                        type: integer
                        minimum: 1
                      maximum_rows:
                        type: integer
                        minimum: 1
                      maximum_result_bytes:
                        type: integer
                        minimum: 1
                      maximum_items:
                        type: integer
                        minimum: 1
                      maximum_messages:
                        type: integer
                        minimum: 1
                      maximum_message_bytes:
                        type: integer
                        minimum: 1
                      maximum_scan_records:
                        type: integer
                        minimum: 1
                      maximum_scan_bytes:
                        type: integer
                        minimum: 1
                      maximum_series:
                        type: integer
                        minimum: 1
                      maximum_shards:
                        type: integer
                        minimum: 1
                      maximum_slowlog_entries:
                        type: integer
                        minimum: 1
                      maximum_spans_per_span_set:
                        type: integer
                        minimum: 1
                      maximum_stale_values:
                        type: integer
                        minimum: 1
                      maximum_timeout_seconds:
                        type: integer
                        minimum: 1
                      maximum_traces:
                        type: integer
                        minimum: 1
                      stuck_transaction_seconds:
                        type: integer
                        minimum: 1
                      namespaces:
                        type: array
                        items:
                          type: string
                      allowed_indices:
                        type: array
                        items:
                          type: string
                      timestamp_field:
                        type: string
                      database:
                        type: string
                      allowed_schemas:
                        type: array
                        items:
                          type: string
                      allowed_methods:
                        type: array
                        items:
                          type: string
                      allowed_path_prefixes:
                        type: array
                        items:
                          type: string
                      allowed_request_headers:
                        type: array
                        items:
                          type: string
                      exposed_response_headers:
                        type: array
                        items:
                          type: string
                      allowed_topics:
                        type: array
                        items:
                          type: string
                      denied_topics:
                        type: array
                        items:
                          type: string
                      include_internal_topics:
                        type: boolean
                      allow_message_reads:
                        type: boolean
                      include_message_values:
                        type: boolean
                  capabilities:
                    type: array
                    items:
                      type: object
                      additionalProperties: false
                      required:
                        - name
                        - version
                      properties:
                        name:
                          type: string
                        version:
                          type: string
                        description:
                          type: string
                        sensitivity:
                          type: string
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer

````

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