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

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

> List a Serverless endpoint's release history, configuration changes, build IDs, and current worker rollout status, newest release first.

# List serverless endpoint releases



## OpenAPI

````yaml get /v2/serverless/{id}/releases
openapi: 3.1.0
info:
  title: Runpod REST API
  version: 2.0.0
  description: Runpod public REST API — v2
servers:
  - url: https://api.runpod.io
    description: Runpod API v2 production server
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Account-scoped settings and primitives (SSH public keys).
  - name: Pods
    description: GPU and CPU pod lifecycle, configuration, actions, and log streaming.
  - name: Serverless
    description: >-
      Serverless endpoint lifecycle, worker visibility, releases, and worker log
      streaming.
  - name: Templates
    description: Reusable pod and endpoint configuration templates.
  - name: Network Volumes
    description: Persistent network storage volumes for workloads.
  - name: Registries
    description: Container registry credentials used to pull private images.
  - name: Catalog
    description: Available GPU, CPU, data center, and public template catalog metadata.
  - name: Billing
    description: Billing history and usage cost records across resource types.
paths:
  /v2/serverless/{id}/releases:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Serverless endpoint identifier
        example: ep_abc123
    get:
      tags:
        - Serverless
      summary: List serverless endpoint releases
      description: |
        Returns the endpoint's release history (newest first) plus a rollout
        summary of how many workers are running the current version. Each
        release is a versioned configuration snapshot with a `diff` of what
        changed; build-driven releases carry a `buildId` (fetch build detail via
        the builds sub-routes).
      operationId: listEndpointReleases
      responses:
        '200':
          headers:
            RateLimit:
              $ref: '#/components/headers/RateLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEndpointReleasesResponse'
              examples:
                releases:
                  summary: Successful response
                  value:
                    endpointVersion: 4
                    rollout:
                      inProgress: true
                      workersOnLatest: 1
                      workersTotal: 2
                      percentOnLatest: 50
                    releases:
                      - id: 5r9x2m7q
                        version: 4
                        source: MANUAL
                        buildId: null
                        createdByUserId: null
                        workerCount: 2
                        createdAt: '2026-06-01T12:10:00Z'
                        diff:
                          - field: workers.max
                            old: 5
                            new: 10
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
        default:
          headers:
            RateLimit:
              $ref: '#/components/headers/RateLimit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
          description: Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  headers:
    RateLimit:
      schema:
        $ref: '#/components/schemas/RateLimitHeader'
    RateLimit-Policy:
      schema:
        $ref: '#/components/schemas/RateLimitPolicyHeader'
  schemas:
    ListEndpointReleasesResponse:
      type: object
      required:
        - rollout
        - releases
      properties:
        endpointVersion:
          type:
            - integer
            - 'null'
          description: The endpoint's current configuration version. Null if unknown.
          examples:
            - 4
        rollout:
          $ref: '#/components/schemas/RolloutSummary'
        releases:
          type: array
          description: Release history, newest first.
          items:
            $ref: '#/components/schemas/Release'
    ErrorResponse:
      type: object
      required:
        - title
        - status
        - detail
      properties:
        title:
          type: string
          description: Short human-readable summary
          examples:
            - Not Found
        status:
          type: integer
          description: HTTP status code
          examples:
            - 404
        detail:
          type: string
          description: Human-readable explanation
          examples:
            - pod not found
        errors:
          type: array
          description: Individual request-validation failures.
          items:
            type: string
          examples:
            - - '$: additional properties ''bogus'' not allowed'
    RateLimitHeader:
      type: string
      description: |
        Live per-window quota state. Optional — omitted for rate-limit-exempt
        callers.

        A structured-field list with one member per window (`minute`, `hour`,
        `day`), each carrying the remaining request count `r` and seconds until
        the window resets `t`. Returned on responses to authenticated requests,
        not only on 429s.
      examples:
        - '"minute";r=0;t=12, "hour";r=2800;t=1812, "day";r=49500;t=45012'
    RateLimitPolicyHeader:
      type: string
      description: >
        Static per-window quota policy. Optional — omitted for rate-limit-exempt

        callers.


        A structured-field list with one member per window (`minute`, `hour`,

        `day`), each carrying the quota `q` and the window length in seconds
        `w`.

        Returned on responses to authenticated requests, not only on 429s.
      examples:
        - '"minute";q=60;w=60, "hour";q=3000;w=3600, "day";q=50000;w=86400'
    RolloutSummary:
      type: object
      required:
        - inProgress
        - workersOnLatest
        - workersTotal
        - percentOnLatest
      properties:
        inProgress:
          type: boolean
          description: True while any worker is still running an older version.
          examples:
            - true
        workersOnLatest:
          type: integer
          minimum: 0
          description: Workers running the endpoint's current version.
          examples:
            - 2
        workersTotal:
          type: integer
          minimum: 0
          description: All workers currently allocated to the endpoint.
          examples:
            - 3
        percentOnLatest:
          type: integer
          minimum: 0
          maximum: 100
          description: >-
            Percentage of workers on the current version (0 when there are no
            workers).
          examples:
            - 67
    Release:
      type: object
      required:
        - id
        - source
        - createdAt
        - workerCount
        - diff
      properties:
        id:
          type: string
          examples:
            - rel_abc123
        version:
          type:
            - integer
            - 'null'
          description: The endpoint configuration version this release produced.
          examples:
            - 4
        source:
          $ref: '#/components/schemas/ReleaseSource'
        buildId:
          type:
            - string
            - 'null'
          description: |
            The GitHub build that produced this release. Set when `source` is
            `GIT_BUILD`; null for `MANUAL` releases. Fetch build detail/logs via
            `/v2/serverless/{id}/builds/{buildId}`.
          examples:
            - build_abc123
        createdByUserId:
          type:
            - string
            - 'null'
          description: ID of the user who created the release.
        workerCount:
          type: integer
          minimum: 0
          description: Workers currently running this release's version.
          examples:
            - 2
        createdAt:
          type: string
          format: date-time
          examples:
            - '2026-03-13T20:00:00Z'
        diff:
          type: array
          description: Configuration fields that changed in this release.
          items:
            $ref: '#/components/schemas/ReleaseDiffEntry'
    ReleaseSource:
      type: string
      description: |
        What produced the release.
        - `GIT_BUILD` — a completed GitHub build (see `buildId`)
        - `MANUAL`    — a manual configuration change
      x-enum-varnames:
        - ReleaseSourceGitBuild
        - ReleaseSourceManual
      enum:
        - GIT_BUILD
        - MANUAL
    ReleaseDiffEntry:
      type: object
      required:
        - field
        - old
        - new
      properties:
        field:
          type: string
          description: |
            The changed configuration field. Top-level (e.g. `gpuCount`,
            `locations`) or template-scoped (e.g. `template.imageName`,
            `template.env`).
          examples:
            - template.imageName
        old:
          description: Previous value, as raw JSON. Null when the field was added.
        new:
          description: New value, as raw JSON. Null when the field was removed.
  responses:
    UnauthorizedError:
      description: >-
        Authentication failed because the bearer token is missing, malformed,
        expired, or invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingBearerToken:
              summary: Missing bearer token
              value:
                title: Unauthorized
                status: 401
                detail: missing bearer token
    ForbiddenError:
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimit-Policy'
      description: >-
        The bearer token is valid, but it does not grant access to the requested
        resource or action.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficientAccess:
              summary: Insufficient access
              value:
                title: Forbidden
                status: 403
                detail: access denied
    NotFoundError:
      headers:
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimit-Policy'
      description: The requested resource was not found or is not accessible to the caller.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            notFound:
              summary: Resource not found
              value:
                title: Not Found
                status: 404
                detail: resource not found
    TooManyRequestsError:
      description: >
        The caller exceeded its per-user rate limit. The response identifies the
        window that was exceeded and how long to wait. The `RateLimit` and
        `RateLimit-Policy` headers (per the IETF ratelimit-headers draft) also
        accompany successful responses, so clients can track quota before a 429.
      headers:
        Retry-After:
          description: Seconds to wait before retrying, per the exceeded window.
          schema:
            type: integer
          example: 12
        RateLimit:
          $ref: '#/components/headers/RateLimit'
        RateLimit-Policy:
          $ref: '#/components/headers/RateLimit-Policy'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            rateLimited:
              summary: Rate limit exceeded
              value:
                title: Too Many Requests
                status: 429
                detail: rate limit exceeded for the minute window
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Runpod API Key
      description: >
        Runpod API key authentication. Generate an API key in the Runpod console
        and send it in the `Authorization` header as `Bearer <api_key>`. Keys
        are scoped to the permissions granted when created; requests may return
        `403` when a valid key lacks access to the requested resource or action.

````