# Create or Update Asset Filter

Put `https://app.mk.io/api/v1/projects/:project_name/media/assets/:asset_name/assetFilters/:filter_name`

Create or Update Asset Filter.

RBAC Capability Required: `ams.assetfilter.create` or `ams.assetfilter.update`

## Authentication

Authorization Bearer

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

## Path parameters

- `project_name` (string, Required)
- `asset_name` (string, Required)
- `filter_name` (string, Required)

## Request

This endpoint expects an object.

### Properties

- **properties** (object) [[MediaFilterProperties](https://docs.mediakind.com/api-reference/media-api/schemas/mediafilterproperties)] Required  
  Properties for the asset filter

- **firstQuality** (object) [[FirstQuality](https://docs.mediakind.com/api-reference/media-api/schemas/firstquality)] Optional  
  This parameter defines the initial quality level when playback starts. This is the first bitrate in the ladder.

- **bitrate** (integer, Required)  
    Denotes the target video bitrate to be used when starting playback of an HLS manifest.

- **presentationTimeRange** (object) [[PresentationTimeRange](https://docs.mediakind.com/api-reference/media-api/schemas/presentationtimerange)] Optional  
  This parameter is used to cut an asset into a smaller asset by specifying a start and end time.
  - **endTime** (string, Optional) format: date-time  
  - **endTimestamp** (integer, Optional) >= 0
  - **forceEndTimestamp** (boolean, Optional)
  - **liveBackoffDuration** (integer, Optional)
  - **presentationWindowDuration** (integer, Optional)
  - **startTime** (string, Optional) format: date-time
  - **startTimestamp** (integer, Optional) >= 0
  - **timescale** (integer, Optional) 1 to 1000000000 Defaults to 10000000
- **tracks** (list of objects) [[FilterTrackSelection](https://docs.mediakind.com/api-reference/media-api/schemas/filtertrackselection)] Optional  
  Defines the tracks to include in the output.
  - **trackSelections** (list of objects) [[FilterTrackPropertyCondition](https://docs.mediakind.com/api-reference/media-api/schemas/filtertrackpropertycondition)] Required  
    Defines the tracks to include in the output.
    ```json
    [{
        "property": "Type",
        "operation": "Equal",
        "value": "Audio"
    },
    {
        "property": "Bitrate",
        "operation": "Equal",
        "value": "3000000-5000000"
    },
    {
        "property": "Language",
        "operation": "NotEqual",
        "value": "en"
    }]
    ```

## Response

### 200

Asset Filter was updated

- **id** (string, Optional)  
  Fully qualified resource ID for the resource.
- **name** (string, Optional)  
  The name of the resource.
- **properties** (object) [[MediaFilterProperties](https://docs.mediakind.com/api-reference/media-api/schemas/mediafilterproperties)] Required

### Errors

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

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

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

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

- **429 Too Many Requests**  
  - **error** (object) [[ErrorDetail](https://docs.mediakind.com/api-reference/media-api/schemas/errordetail)] Required

- **500 Internal Server Error**  
  - **error** (object) [[ErrorDetail](https://docs.mediakind.com/api-reference/media-api/schemas/errordetail)] Required
