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

# List all services



## OpenAPI

````yaml GET /services
openapi: 3.1.0
info:
  title: Caspen
  version: 0.0.1
servers:
  - url: https://api.caspen.com/v1
    description: Production
security: []
paths:
  /services:
    get:
      tags:
        - Service
      operationId: service.index
      parameters:
        - name: cursor
          in: query
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Paginated set of `ServiceResource`
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ServiceCollection'
                  links:
                    type: object
                    properties:
                      prev:
                        type:
                          - string
                          - 'null'
                      next:
                        type:
                          - string
                          - 'null'
                    required:
                      - prev
                      - next
                required:
                  - data
                  - links
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    ServiceCollection:
      type: array
      items:
        $ref: '#/components/schemas/ServiceResource'
      title: ServiceCollection
    ServiceResource:
      type: object
      properties:
        id:
          type: string
          description: The service's unique identifier.
          examples:
            - ser_01HQFQ9QWTNNPY58FZ8CB3FWWK
        category_id:
          type: string
          description: The service category identifier.
          examples:
            - cat_01HQFQ9QWTNNPY58FZ8CB3FWWK
        appointment_notification_set_id:
          type:
            - string
            - 'null'
          description: The appointment notification set identifier.
          examples:
            - ans_01HQFQ9QWTNNPY58FZ8CB3FWWK
        tax_id:
          type: string
          description: The tax identifier.
          examples:
            - tax_01HQFQ9QWTNNPY58FZ8CB3FWWK
        name:
          type: string
          description: The service's name.
          examples:
            - Initial Consultation
        description:
          type:
            - string
            - 'null'
          description: The service's description.
          examples:
            - Comprehensive initial assessment and treatment planning session.
        item_code:
          type:
            - string
            - 'null'
          description: The service's item code.
          examples:
            - IC001
        duration:
          type: integer
          description: The service duration in minutes.
          examples:
            - 60
        buffer_before_duration:
          type: integer
          description: The buffer time before the service in minutes.
          examples:
            - 5
        buffer_after_duration:
          type: integer
          description: The buffer time after the service in minutes.
          examples:
            - 10
        price:
          type: number
          description: The service price.
          examples:
            - 150
        price_unit:
          $ref: '#/components/schemas/ServicePriceUnit'
          description: The service price unit.
          examples:
            - hourly
        price_per_client:
          type: boolean
          description: Whether the price is per client (true) or per appointment (false).
          examples:
            - false
        online_appointment_booking:
          type: boolean
          description: Whether online appointment booking is enabled for this service.
          examples:
            - true
        online_payment:
          type: boolean
          description: Whether online payment is enabled for this service.
          examples:
            - false
        online_payment_basis:
          anyOf:
            - $ref: '#/components/schemas/ServiceOnlinePaymentBasis'
              description: The online payment basis (percentage or fixed).
              examples:
                - percentage
            - type: 'null'
        online_payment_amount:
          type: integer
          description: >-
            The online payment amount (percentage 0-100 or fixed amount in
            cents).
          examples:
            - 100
        online_payment_required:
          type: boolean
          description: Whether online payment is required or optional.
          examples:
            - true
        online_payment_amount_formatted:
          type:
            - string
            - 'null'
          description: The formatted online payment amount for display.
          examples:
            - 100%
        travel:
          type: boolean
          description: Whether billable travel time applies to this service.
          examples:
            - false
        travel_name:
          type:
            - string
            - 'null'
          description: The travel name.
          examples:
            - Travel
        travel_item_code:
          type:
            - string
            - 'null'
          description: The travel item code.
          examples:
            - TRV001
        travel_price:
          type:
            - integer
            - 'null'
          description: The travel price.
          examples:
            - 5000
        travel_before_duration:
          type:
            - integer
            - 'null'
          description: The billable travel time before the appointment in minutes.
          examples:
            - 15
        travel_after_duration:
          type:
            - integer
            - 'null'
          description: The billable travel time after the appointment in minutes.
          examples:
            - 15
        travel_tax_id:
          type:
            - string
            - 'null'
          description: The travel tax identifier.
          examples:
            - tax_01HQFQ9QWTNNPY58FZ8CB3FWWK
        travel_expenses:
          type: boolean
          description: Whether travel expenses apply to this service.
          examples:
            - false
        travel_expenses_name:
          type:
            - string
            - 'null'
          description: The travel expenses name.
          examples:
            - Mileage
        travel_expenses_item_code:
          type:
            - string
            - 'null'
          description: The travel expenses item code.
          examples:
            - TRVEXP001
        travel_expenses_price:
          type:
            - integer
            - 'null'
          description: The travel expenses price per unit.
          examples:
            - 99
        travel_expenses_price_unit:
          anyOf:
            - $ref: '#/components/schemas/ServiceExpensePriceUnit'
              description: The travel expenses price unit (km, mile or each).
              examples:
                - km
            - type: 'null'
        travel_expenses_quantity:
          type:
            - string
            - 'null'
          description: The travel expenses quantity.
          examples:
            - '12.50'
        travel_expenses_tax_id:
          type:
            - string
            - 'null'
          description: The travel expenses tax identifier.
          examples:
            - tax_01HQFQ9QWTNNPY58FZ8CB3FWWK
        transport:
          type: boolean
          description: Whether transport applies to this service.
          examples:
            - false
        transport_name:
          type:
            - string
            - 'null'
          description: The transport name.
          examples:
            - Transport
        transport_item_code:
          type:
            - string
            - 'null'
          description: The transport item code.
          examples:
            - TRN001
        transport_price:
          type:
            - integer
            - 'null'
          description: The transport price per unit.
          examples:
            - 99
        transport_price_unit:
          anyOf:
            - $ref: '#/components/schemas/ServiceExpensePriceUnit'
              description: The transport price unit (km, mile or each).
              examples:
                - km
            - type: 'null'
        transport_quantity:
          type:
            - string
            - 'null'
          description: The transport quantity.
          examples:
            - '12.50'
        transport_tax_id:
          type:
            - string
            - 'null'
          description: The transport tax identifier.
          examples:
            - tax_01HQFQ9QWTNNPY58FZ8CB3FWWK
        practitioner_ids:
          type: array
          description: The IDs of practitioners who can provide this service.
          examples:
            - - pra_01HYHYQHA682J0K1RW7B2HVA9F
              - pra_01HYHYW37MTYJPMT5JV4RN99GK
          items:
            type: string
        location_ids:
          type: array
          description: The IDs of locations where this service is available.
          examples:
            - - loc_01HYHYQHA682J0K1RW7B2HVA9F
              - loc_01HYHYW37MTYJPMT5JV4RN99GK
          items:
            type: string
        tag_ids:
          type: array
          description: The IDs of tags attached to this service.
          examples:
            - - tag_01HYHYQHA682J0K1RW7B2HVA9F
              - tag_01HYHYW37MTYJPMT5JV4RN99GK
          items:
            type: string
        created_at:
          type: string
          description: The timestamp when the service was created (ISO 8601).
          examples:
            - '2024-01-01T12:00:00Z'
      title: ServiceResource
    ServicePriceUnit:
      type: string
      enum:
        - hourly
        - fixed
      title: ServicePriceUnit
    ServiceOnlinePaymentBasis:
      type: string
      enum:
        - fixed
        - percentage
      title: ServiceOnlinePaymentBasis
    ServiceExpensePriceUnit:
      type: string
      enum:
        - km
        - mile
        - each
      title: ServiceExpensePriceUnit
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors

````