# List Networks

Get `https://app.mk.io/api/v1/projects/:project_name/infra/networks`

List networks on the specified project. To learn more about networks, read Network Concept.

## Listing, Sorting and Filtering Networks

This endpoint returns the list of networks 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`, `status/scope`, `updated`, `updatedBy`

### Filtering

There are two ways to filter the set of returned networks 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 networks 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/owner`, `status/scope`, `updated`, `updatedBy`, `updatedByEmail`, `updatedByName`

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

### Examples:

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

RBAC Capability Required: `infra.network.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 - List of networks.

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

`@odata.nextLink` URL if the page length and number of items match.

- `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
    - `records` **integer** Required
    - `start` **integer** Required
    - `total` **integer** Required

- `subscription` **object** [ProjectInfoSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/projectinfoschema) Optional

Project info

- `id` **string** Required
  - `name` **string** Required

- `value` **list of objects** [NetworkGetSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/networkgetschema) Required

A list of networks.

- `kind` **string** Required
  - `metadata` **object** [MetadataSchema](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/metadataschema) Required

Network metadata.

- `created` **string** Optional format: date-time
    - `createdBy` **string** Optional format: uuid
    - `createdByEmail` **string** Optional
    - `displayName` **string** Optional
    - `id` **string** Required format: uuid
    - `labels` **map from strings to string** Optional
    - `name` **string** Optional
    - `updated` **string** Optional format: date-time
    - `updatedBy` **string** Optional format: uuid
    - `updatedByEmail` **string** Optional

- `spec` **object** [NetworkBodySpec](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/networkbodyspec) Required
  
  - `status` **object** [NetworkBodyStatus](https://docs.mediakind.com/api-reference/infrastructure-api/schemas/networkbodystatus) Required

- `owner` **enum** Required
    
      Indicates whether the network was automatically created by the system. System owned networks cannot be deleted, but they can be modified.
      Allowed values: User System
    - `scope` **enum** Required
    
      Indicates whether the network is a local network within a site. Local networks are always system owned and therefore cannot be deleted, however they can be modified.
      Allowed values: Connecting Local

## 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
  - `detail` **string** Required
  - `extraDetail` **map from strings to any** Optional
  - `ref` **string** Required
  - `status` **integer** Required

### 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

### 429 Too Many Requests

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

Pertinent information about the error

### 500 Internal Server Error

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

Pertinent information about the error
