## Overview
The MK.IO Infrastructure API is the project-level REST API for infrastructure configuration in MK.IO. It focuses on network and site management for operations workflows where infrastructure resources are created, queried, updated, and retired.

## Authentication
All endpoints require a bearer token in the `Authorization` header:
`Authorization: Bearer `

You can create and manage your tokens in your [profile settings](https://app.mk.io/user/profile) under **Your personal API tokens**. Follow the [API tokens guide](https://docs.mediakind.com/mkio/how-to/managing-your-organization/api-tokens) for more information.

## Usage
Base URL: `https://app.mk.io`

Typical usage pattern:
- Create and maintain network and site resources.
- Update or remove resources as requirements change.

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

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`

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

`?$label=studio=paravalley` - Returns networks with the label `studio` set to `paravalley`.

### Listing, Sorting and Filtering Sites
This endpoint returns the list of sites in the specified project.

Sorting is valid on the following fields: `created`, `createdBy`, `displayName`, `id`, `labels`, `metadata/name`, `name`, `status/locationName`, `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.
