<!-- enhance-docs page=reference/mcp/recording-start -->
<!-- enhance-docs release-sha256=7ff3d88e90f9dd4fa5ee87960f993597885d25e92abc5665bd2ecbc70cd6621b -->

# recording.start

<span class="reference-badge">mutation</span> <span class="reference-badge">write</span>

Use when the requested change exactly matches recording.start; read the current state first when a version or identifier may have changed.

## Before calling

- Authenticate as the accountable Enhance person.
- Use only resource identifiers returned by an earlier capability result or supplied by the person.
- Reuse clientToken only when retrying this exact mutation input.

## Input

<details class="reference-schema">
<summary>Show complete JSON Schema</summary>

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "sourceUrl": {
   "type": "string",
   "maxLength": 2048
  },
  "viewport": {
   "type": "object",
   "properties": {
    "width": {
     "type": "integer",
     "exclusiveMinimum": 0,
     "maximum": 9007199254740991
    },
    "height": {
     "type": "integer",
     "exclusiveMinimum": 0,
     "maximum": 9007199254740991
    }
   },
   "required": [
    "width",
    "height"
   ],
   "additionalProperties": false
  },
  "pageTitle": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 200
    },
    {
     "type": "null"
    }
   ]
  },
  "audio": {
   "default": null,
   "anyOf": [
    {
     "type": "object",
     "properties": {
      "mimeType": {
       "type": "string",
       "minLength": 1,
       "maxLength": 100
      },
      "sampleRate": {
       "type": "integer",
       "minimum": 8000,
       "maximum": 192000
      }
     },
     "required": [
      "mimeType",
      "sampleRate"
     ],
     "additionalProperties": false
    },
    {
     "type": "null"
    }
   ]
  }
 },
 "required": [
  "sourceUrl",
  "viewport",
  "pageTitle",
  "audio"
 ],
 "additionalProperties": false
}
```
</details>

### Example

<details class="reference-schema">
<summary>Show example input</summary>

```json
{
 "sourceUrl": "x",
 "viewport": {
  "width": 1,
  "height": 1
 },
 "pageTitle": "x",
 "audio": null
}
```
</details>

## Result

Returns a typed recording.start result from the Enhance API without transport-specific prose.

## Recovery

- BAD_REQUEST: correct the named fields and call again.
- UNAUTHORIZED: restore Enhance authentication, then retry once.
- FORBIDDEN or NOT_FOUND: check the supplied resource and selection; do not substitute unrelated content. Ask for corrected access or scope if needed.
- CONFLICT: read the current resource, merge the intended change, and retry with its version.
- INTERNAL: run Enhance diagnostics, report the failure, and stop repeating the call.

## Continue with

- Read the affected recording resource to confirm the result.

Compatibility: `7a9d9a432998d0a0db3f2dae4d4e338bf9819901f7ba1532945eee07bd0de171`.
