---
title: "media.avatar-release-request@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/media.avatar-release-request"
updated: null
---

# media.avatar-release-request@1 · OpenVibe.Services

HTML: [media.avatar-release-request@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/media.avatar-release-request)

# MediaAvatarReleaseRequest `media.avatar-release-request@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: media
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/media/avatar-release-request.v1.json`](/docs/contracts/media.avatar-release-request.json)

media.avatar-release-request@1: the body of POST /internal/avatar-release on OpenVibe.Media (capability media.avatar.release). The product says a slot no longer points at its picture (the person removed it), or that one object or one person's references are gone (an account deletion), and the object can then be deleted like any other. It names a slot (product and ref), an object\_id or a subject; with none, Media answers 400 { ok: false, error }.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `object_id` | string \| null |  |  | - `pattern ^med_` |
| `product` | string \| null |  |  | - `pattern ^[a-z][a-z0-9-]{1,31}$` |
| `ref` | string \| null |  |  | - `maxLength 64` |
| `subject` | string \| null |  | The person (usr\_…) when the product knows it; Media refuses an object owned by someone else. | - `pattern ^usr_` |

## Examples

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

 Valid: object

~~~~
{
  "object_id": "med_01JC5Z8K2Q4X7V9B3N6M1R0T2Y"
}
~~~~

Valid: slot

~~~~
{
  "product": "network",
  "ref": "42"
}
~~~~

Rejected: nothing

~~~~
{}
~~~~

Rejected: product-without-ref

~~~~
{
  "product": "network"
}
~~~~

## Validate

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