# List Sites

get ` https://app.mk.io/api/v1/projects/:project_name/infra/sites`

List sites on the specified project. To learn more about sites, read Site Concept.

## Listing, Sorting and Filtering Sites

This endpoint returns the list of sites in the specified project.

### Sorting

The results from this endpoint can be ordered using the `$orderby` query parameter. Specify a list of field names, separated by commas where each one can optionally specify `asc` or `desc`.

Sorting is valid on the following fields: `created`, `createdBy`, `displayName`, `id`, `labels`, `metadata/name`, `name`, `status/owner`, `updated`, `updatedBy`.

### Filtering

There are two ways to filter the set of returned sites from this endpoint - the first is to use the `$filter` query parameter, the second is to use the `$label_key` and `$label` query parameters.

The `$filter` query parameter allows for sites to be filtered on the basis of fields in the schema using OData query syntax. See [this document](https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview#filter) for more details on the syntax used.

Filters are valid on the following fields: `created`, `createdBy`, `createdByEmail`, `createdByName`, `displayName`, `id`, `labels`, `metadata/name`, `name`, `status/locationName`, `status/owner`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`.

`$label_key` and `$label` are specific to querying sites based on their labels. Labels are a set of key-value pairs that can be used to identify sites with any arbitrary metadata you want, specifically for the purpose of retrieving relevant subsets of sites.

### Examples:

- `?$top=10` - Returns only the first 10 sites from the list.
- `?$orderby=name desc` - Sorts sites by name in descending order.
- `?$filter=name eq 'descriptive name'` - Returns sites that match the provided name.
- `?$orderby=created desc` - Sorts sites by creation date in descending order.
- `?$filter=created ge 2021-01-01T00:00:00Z` - Returns sites created after January 1, 2021.
- `?$label=studio=paravalley` - Returns sites with the label `studio` set to `paravalley`.
- `?$label=release-date~2023` - Returns sites with the label `release-date` set to a value that contains `2023`.
- `?$label_key=studio&label_key=release-date` - Returns sites with any value set for the `studio` label and the `release-date` label.

RBAC Capability Required: `infra.site.get`

## Authentication

Authorization Bearer

Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Path parameters

**project_name** `string` Required

## Query parameters

- **$orderby** `string` Optional

Specifies the key by which the result collection should be ordered.

- **$filter** `string` Optional

Restricts the set of items returned.

- **$top** `string` Optional

Specifies a non-negative integer `n` that limits the number of items returned from a collection. The service returns the number of available items up to but not greater than the specified value `n`.

- **$skiptoken** `string` Optional

Specifies a start offset to support paginated results. Use `@odata.nextLink` in the result object to enumerate the collection - it will be present only if there's more than one page of entities.

- **$label_key** `string` Optional

Filters the set to the specified label key. If multiple `$label_keys` are specified, matching items must have all labels.

- **$label** `string` Optional

Filters the set to the specified label key/value pair. Supports equality, inequality, and inexact matching. If multiple values are provided for the same key, items matching either value will be returned.

## Response

**200** A list of sites

- **@odata.nextLink** `string` Optional

**supplemental** `object` [ListResponseSupplementalSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/listresponsesupplementalschema) Required

Supplemental info

- **count** `integer` Required   Number of items returned  
- **kind** `string` Required  Type of items in the list   
- **operation** `string` Required  Operation type. Should always say 'list'
- **pagination** `object` [PaginationInfoSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/paginationinfoschema) Required

Pagination info

- **end** `integer` Required  Position of the last item in the list  
- **records** `integer` Required  Total number of items returned in the list  
- **start** `integer` Required  Position of the first item in the list  
- **total** `integer` Required  Total number of items in the project  
- **subscription** `object` [ProjectInfoSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/projectinfoschema) Optional

Project info

- **id** `string` Required  Project ID  
- **name** `string` Required  Project name  
- **value** `list of objects` [SiteGetSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/sitegetschema) Required

A list of sites.

### Errors

- **400 Bad Request**  
\
 **error** `object` [ErrorDetail](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/errordetail) Required

Pertinent information about the error

- **code** `string` Required  The error code.  
- **detail** `string` Required  The error message.  
- **extraDetail** `map from strings to any` Optional  Extra information regarding this error.

- **401 Unauthorized**  
\
 **error** `object` [ErrorDetail](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/errordetail) Required

Pertinent information about the error

- **403 Forbidden**  
\
 **error** `object` [ErrorDetail](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/errordetail) Required

Pertinent information about the error

- **404 Not Found**  
\
 **error** `object` [ErrorDetail](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/errordetail) Required

Pertinent information about the error
