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

# Renew Server

> Renew a server using your account balance. The cost is `plan.price *
duration` with the duration discount tier applied (3 months: 5%, 6
months: 10%, 12 months: 15%). A 10% surcharge applies to suspended
servers and stacks with the duration discount.




## OpenAPI

````yaml post /servers/{server}/renew
openapi: 3.1.0
info:
  title: APIFiddle Sample Definition
  version: 0.0.0
  description: Example workspace
servers:
  - url: https://rdp.sh/api/v1
    description: Default production endpoint.
security: []
paths:
  /servers/{server}/renew:
    post:
      summary: Renew a server
      description: |
        Renew a server using your account balance. The cost is `plan.price *
        duration` with the duration discount tier applied (3 months: 5%, 6
        months: 10%, 12 months: 15%). A 10% surcharge applies to suspended
        servers and stacks with the duration discount.
      operationId: renewServer
      parameters:
        - $ref: '#/components/parameters/server'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                duration:
                  type: integer
                  minimum: 1
                  maximum: 12
                  default: 1
                  description: |
                    Number of months to renew (1-12). The duration discount
                    tier is automatically applied:
                    - 3 months: 5% off
                    - 6 months: 10% off
                    - 12 months: 15% off

                    Other durations receive no discount.
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                title: RenewServerOk
                required:
                  - status
                  - message
                  - invoice_id
                  - amount_charged
                  - new_expiry_date
                  - server
                properties:
                  status:
                    type: boolean
                    examples:
                      - true
                  message:
                    type: string
                    examples:
                      - Server renewed for 1 month(s)
                  invoice_id:
                    type: integer
                    examples:
                      - 123
                  amount_charged:
                    type: number
                    examples:
                      - 10
                  new_expiry_date:
                    type: string
                    examples:
                      - '2026-02-16T00:00:00.000Z'
                  server:
                    type: object
                    properties:
                      id:
                        type: integer
                      ip_address:
                        type: string
                      expiry_date:
                        type: string
                      suspended:
                        type: boolean
          description: Server renewed successfully.
        '400':
          content:
            application/json:
              schema:
                type: object
                title: RenewServerInsufficientBalance
                properties:
                  status:
                    type: boolean
                    examples:
                      - false
                  error:
                    type: string
                    examples:
                      - Insufficient balance
                  required:
                    type: number
                    examples:
                      - 10
                  available:
                    type: number
                    examples:
                      - 5
          description: Insufficient balance to renew the server.
        '403':
          content:
            application/json:
              schema:
                type: object
                title: RenewServerUnauthorized
                properties:
                  status:
                    type: boolean
                    examples:
                      - false
                  error:
                    type: string
                    examples:
                      - This action is unauthorized
          description: User does not own the server.
      security:
        - Authorization: []
components:
  parameters:
    server:
      in: path
      name: server
      schema:
        type: string
      required: true
  securitySchemes:
    Authorization:
      in: header
      name: Authorization
      type: apiKey

````