# List all services of a project

Retrieve a list of voice services in the specified project.

Optionally:
- Filter services by partial match on name or description (filter)
- Return only the default service (default=true)

Endpoint: GET /v2/projects/{projectId}/services
Version: 2.0.58
Security: BasicAuth, SinchOAuth2

## Path parameters:

  - `projectId` (string, required)
    The ID of the project.

## Query parameters:

  - `filter` (string)
    Filter services by name or description.  Returns all services where either the name or description contains the specified value (case-insensitive partial match).

  - `isDefault` (boolean)
    Return the default service only.
    Example: true

  - `pageSize` (integer)
    Number of items to be returned on each page.

  - `page` (integer)
    Page number (1-based)

## Response 200 fields (application/json):

  - `services` (array, required)

  - `services.serviceId` (string, required)
    The ID of the service used.

  - `services.projectId` (string, required)
    The Id of the project associated with the call.

  - `services.createTime` (string, required)
    Timestamp (RFC 3339) indicating when the service was created.
    Example: "2025-01-01 00:00:00+00:00"

  - `services.name` (string, required)
    Name of the service
    Example: "My Voice Service"

  - `services.isDefault` (boolean, required)
    Indicates whether this service is set as the default for the project.
The default service is used when no specific service is specified in API requests.
    Example: true

  - `services.updateTime` (string)
    Timestamp (RFC 3339) indicating when the service was last updated.

Omitted if no updates were performed on this service.
    Example: "2025-01-01 00:00:00+00:00"

  - `services.description` (string)
    Description of the service
    Example: "My Voice Service Description"

  - `links` (object, required)
    Pagination links for navigating through pages of results in a paginated list response.

Available link properties:
- first - Absolute URI of the first page
- last - Absolute URI of the last page
- next - Absolute URI of the next page (omitted if this is the last page)
- prev - Absolute URI of the previous page (omitted if this is the first page)
- self - Absolute URI of the current page

  - `links.first` (string, required)
    Absolute URI of the first page.
    Example: "https://voice.api.sinch.com/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls?page=1&pageSize=20"

  - `links.last` (string, required)
    Absolute URI of the last page.
    Example: "https://voice.api.sinch.com/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls?page=5&pageSize=20"

  - `links.self` (string, required)
    Absolute URI of the current page.
    Example: "https://voice.api.sinch.com/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls?page=2&pageSize=20"

  - `links.next` (string)
    Absolute URI of the next page (omitted if this is the last page).
    Example: "https://voice.api.sinch.com/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls?page=3&pageSize=20"

  - `links.prev` (string)
    Absolute URI of the previous page (omitted if this is the first page).
    Example: "https://voice.api.sinch.com/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls?page=1&pageSize=20"

  - `meta` (object, required)
    Metadata about the paginated list response.

  - `meta.totalCount` (integer, required)
    Total number of items across all pages.
    Example: 100

  - `meta.pageCount` (integer, required)
    Total number of pages.
    Example: 5

## Response 400 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "The request body is invalid or malformed."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls/01ARZ3NDEKTSV4RRFFQ69G5FAA"

## Response 401 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "The token is missing, invalid, or has expired."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls/01ARZ3NDEKTSV4RRFFQ69G5FAA"

## Response 403 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "The request was rejected."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls/01ARZ3NDEKTSV4RRFFQ69G5FAA"

## Response 404 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "The requested resource was not found."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls/01ARZ3NDEKTSV4RRFFQ69G5FAA"

## Response 429 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "Rate limit exceeded. Please slow down your request rate and retry after the indicated period."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls"

## Response 500 fields (application/problem+json):

  - `type` (string, required)
    URI that identifies the problem type and links to the corresponding error documentation.

  - `title` (string, required)
    Human-readable short summary of the problem type.

  - `detail` (string, required)
    Human-readable explanation of the specific problem occurrence.
    Example: "An unexpected error occurred on the server."

  - `instance` (string, required)
    URI reference that identifies the specific occurrence of the problem (typically the request path).
    Example: "/v2/projects/5c5bf2b1-35ae-4825-ab89-457e07bb60e6/calls/01ARZ3NDEKTSV4RRFFQ69G5FAA"


