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

# List services

> Paginated list of customer-visible services owned by the authenticated token's user, optionally filtered by `type` and `status`. Requires the `vms:read` scope.



## OpenAPI

````yaml https://api.vmarea.com/api/public/v1/openapi.json get /api/public/v1/services
openapi: 3.1.0
info:
  title: VMArea Public API
  version: 1.0.0
  description: >-
    The VMArea Public API lets you provision and manage VMs, firewalls, SSH
    keys, backups, and webhooks programmatically. Authenticate every request
    with an API token (`x-api-key` header). API access is in early access:
    tokens are not yet self-service in every account; contact hello@vmarea.com
    to request access. Tokens carry coarse scopes (e.g. `vms:write`); endpoints
    reject calls that lack the scope they require.
  contact:
    name: VMArea Support
    url: https://vmarea.com/support
servers:
  - url: https://api.vmarea.com
    description: Production
security:
  - ApiKey: []
paths:
  /api/public/v1/services:
    get:
      tags:
        - Services
      summary: List services
      description: >-
        Paginated list of customer-visible services owned by the authenticated
        token's user, optionally filtered by `type` and `status`. Requires the
        `vms:read` scope.
      operationId: listServices
      parameters:
        - schema:
            type: integer
            minimum: 1
            default: 1
          in: query
          name: page
          required: false
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          in: query
          name: limit
          required: false
        - schema:
            type: string
            enum:
              - VM
              - DEDICATED
              - HOSTING
              - STORAGE_BOX
              - OBJECT_STORAGE
          in: query
          name: type
          required: false
        - schema:
            type: string
            enum:
              - PENDING
              - PROVISIONING
              - ACTIVE
              - SUSPENDED
              - COOLDOWN
              - TERMINATED
              - ERROR
          in: query
          name: status
          required: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        type:
                          type: string
                          enum:
                            - VM
                            - DEDICATED
                            - HOSTING
                            - STORAGE_BOX
                            - OBJECT_STORAGE
                        displayName:
                          type: string
                        status:
                          type: string
                          enum:
                            - PENDING
                            - PROVISIONING
                            - ACTIVE
                            - SUSPENDED
                            - COOLDOWN
                            - TERMINATED
                            - ERROR
                        statusChangedAt:
                          type: string
                          format: date-time
                        productId:
                          type: string
                        planId:
                          type: string
                          nullable: true
                        locationId:
                          type: string
                          nullable: true
                        capabilities:
                          type: array
                          items:
                            type: string
                        createdAt:
                          type: string
                          format: date-time
                        activatedAt:
                          type: string
                          format: date-time
                          nullable: true
                        terminatedAt:
                          type: string
                          format: date-time
                          nullable: true
                        billing:
                          type: object
                          properties:
                            status:
                              type: string
                            priceMonthly:
                              type: string
                            currency:
                              type: string
                            cycleDays:
                              type: integer
                            nextRenewalAt:
                              type: string
                              format: date-time
                          required:
                            - status
                            - priceMonthly
                            - currency
                            - cycleDays
                            - nextRenewalAt
                          additionalProperties: false
                          nullable: true
                        vm:
                          type: object
                          properties:
                            hostname:
                              type: string
                            status:
                              type: string
                            ip:
                              type: string
                              nullable: true
                          required:
                            - hostname
                            - status
                            - ip
                          additionalProperties: false
                          nullable: true
                        lifecycle:
                          type: object
                          properties:
                            state:
                              type: string
                              enum:
                                - ACTIVE
                                - ENDING
                                - SUSPENDED
                                - RECENTLY_DELETED
                                - GONE
                            reason:
                              type: string
                              nullable: true
                            nextStep:
                              type: string
                              enum:
                                - POWER_OFF
                                - FINAL_WARNING
                                - DELETE
                                - PURGE
                                - PERIOD_END
                              nullable: true
                            nextStepAt:
                              type: string
                              format: date-time
                              nullable: true
                            suspendAt:
                              type: string
                              format: date-time
                              nullable: true
                            finalWarningAt:
                              type: string
                              format: date-time
                              nullable: true
                            deleteAt:
                              type: string
                              format: date-time
                              nullable: true
                            restorableUntil:
                              type: string
                              format: date-time
                              nullable: true
                            paused:
                              type: boolean
                            paidUntil:
                              type: string
                              format: date-time
                              nullable: true
                            restorableDays:
                              type: integer
                              nullable: true
                            restorable:
                              type: boolean
                          required:
                            - state
                            - reason
                            - nextStep
                            - nextStepAt
                            - suspendAt
                            - finalWarningAt
                            - deleteAt
                            - restorableUntil
                            - paused
                            - paidUntil
                            - restorableDays
                            - restorable
                          additionalProperties: false
                          nullable: true
                      required:
                        - id
                        - type
                        - displayName
                        - status
                        - statusChangedAt
                        - productId
                        - planId
                        - locationId
                        - capabilities
                        - createdAt
                        - activatedAt
                        - terminatedAt
                        - billing
                        - vm
                      additionalProperties: false
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                      limit:
                        type: integer
                      total:
                        type: integer
                      totalPages:
                        type: integer
                    required:
                      - page
                      - limit
                      - total
                      - totalPages
                    additionalProperties: false
                required:
                  - success
                  - data
                  - pagination
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - success
                  - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - success
                  - error
                additionalProperties: false
      security:
        - ApiKey: []
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: >-
        Long-lived API token (early access; contact hello@vmarea.com). Tokens
        are scope-restricted; this spec lists the scope each endpoint requires.

````

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