---
title: "cam.settings@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/cam.settings"
updated: null
---

# cam.settings@1 · OpenVibe.Services

HTML: [cam.settings@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/cam.settings)

# CamSettings `cam.settings@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: cam
- Visibility: public
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/cam/settings.v1.json`](/docs/contracts/cam.settings.json)

cam.settings@1: a person's camera choices. Lens and mic are hints because browser device ids may differ across devices.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `facing` | enum | yes |  | - `one of "user", "environment"` |
| `lens` | string | yes |  | - `minLength 1`<br>- `maxLength 120` |
| `mic` | string | yes |  | - `minLength 1`<br>- `maxLength 120` |
| `resolution` | enum | yes |  | - `one of "480", "720", "1080"` |
| `mirror` | boolean | yes |  |  |
| `updated_at` | string \| null | yes |  | - `format date-time` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: default

~~~~
{
  "facing": "user",
  "lens": "main",
  "mic": "default",
  "resolution": "720",
  "mirror": true,
  "updated_at": null
}
~~~~

Rejected: facing

~~~~
{
  "facing": "side",
  "lens": "main",
  "mic": "default",
  "resolution": "720",
  "mirror": true,
  "updated_at": null
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('cam.settings@1', value);   // { valid, errors: [{ path, message }] }
~~~~
