---
title: "Get All Services"
method: GET
path: "/vendor-services/all"
tags: ["vendor_services"]
---

# Get All Services

`GET /vendor-services/all`

Global, paginated list of services across every vendor for the company.

Each returned service is enriched with its custom field values, internal
POC name, and the owning vendor's display fields so the Services overview
can render without a follow-up fetch per service.

## Query parameters

- `status` 'active' | 'archived'
- `q` string, nullable
- `criticality` string[], nullable
- `inherent_risk` string[], nullable
- `lifecycle_status` string[], nullable
- `vendor_ids` string[], nullable
- `entity_type` EntityType[], nullable
- `internal_poc` string[], nullable
- `custom_field` string[], nullable
- `custom_field_text` string[], nullable
- `custom_field_number` string[], nullable
- `custom_field_date` string[], nullable
- `sort_by` string, nullable
- `sort_dir` string
- `page` integer
- `page_size` integer

## Response `200`

Successful Response

- PaginatedAllServicesResponse
  - `items` AllServicesResponse[], required
    - `service_id` string, uuid, required
    - `company_id` string, uuid, required
    - `vendor_company_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `internal_poc` string, uuid, nullable
    - `internal_poc_name` string, nullable
    - `start_date` string, date, nullable
    - `renewal_date` string, date, nullable
    - `review_date` string, date, nullable
    - `review_key_date_id` string, uuid, nullable
    - `termination_date` string, date, nullable
    - `termination_key_date_id` string, uuid, nullable
    - `status` 'active' | 'archived'
    - `created` string, date-time, nullable
    - `modified` string, date-time, nullable
    - `runs` object[]
    - `custom_field_values` union[]
      - union
        - CustomFieldDropdownValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'DROPDOWN'
          - `option_id` string, uuid, nullable
          - `label` string, nullable
          - `hex_color` string, nullable
          - `order_index` integer, nullable
        - CustomFieldFreeTextValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'FREE_TEXT'
          - `text_value` string, nullable
        - CustomFieldNumberValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'NUMBER'
          - `number_value` integer, nullable
        - CustomFieldDateValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'DATE'
          - `date_value` string, date, nullable
        - CustomFieldBooleanValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'BOOLEAN'
          - `boolean_value` boolean, nullable
        - CustomFieldMultiselectValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'MULTISELECT'
          - `selected_options` CustomFieldMultiselectOptionValue[]
            - `option_id` string, uuid, nullable
            - `label` string, nullable
            - `hex_color` string, nullable
            - `order_index` integer, nullable
        - CustomFieldUserValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'USER'
          - `user_id` string, uuid, nullable
          - `user_first_name` string, nullable
          - `user_last_name` string, nullable
          - `email_address` string, nullable
        - CustomFieldMultiUserValue
          - `custom_field_id` string, uuid, nullable
          - `custom_field_type` 'INHERENT_RISK_LEVEL' | 'RESIDUAL_RISK_LEVEL' | 'CRITICALITY' | 'LIFECYCLE_STATUS'
          - `name` string, nullable
          - `type` 'MULTI_USER'
          - `selected_users` CustomFieldUserRef[]
            - `user_id` string, uuid, nullable
            - `user_first_name` string, nullable
            - `user_last_name` string, nullable
            - `email_address` string, nullable
    - `linked_contract` LinkedContractSummary
      - `contract_id` string, uuid, required
      - `title` string, required
      - `status` 'draft' | 'active' | 'expired' | 'terminated', required — ``DRAFT`` and ``TERMINATED`` are human judgments; the derivation in ``recompute_contract_status`` overwrites neither.
    - `vendor_name` string, required
    - `vendor_website` string, nullable
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/3ff4c0bd276b/schema)
