# com.atproto.label.defs

> Published by [atproto-lexicons.bsky.social](https://lexicon.garden/identity/did:plc:6msi3pj7krzih5qxqtryxlzw)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.label.defs)
- [Documentation](https://lexicon.garden/lexicon/did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.label.defs/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.label.defs/examples)

## Definitions

### `com.atproto.label.defs#label`

**Type**: `object`

Metadata tag on an atproto resource (eg, repo or record).

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `cid` | `string` (cid) | No | Optionally, CID specifying the specific version of 'uri' resource this label applies to. |
| `cts` | `string` (datetime) | Yes | Timestamp when this label was created. |
| `exp` | `string` (datetime) | No | Timestamp at which this label expires (no longer applies). |
| `neg` | `boolean` | No | If true, this is a negation label, overwriting a previous label. |
| `sig` | `bytes` | No | Signature of dag-cbor encoded label. |
| `src` | `string` (did) | Yes | DID of the actor who created this label. |
| `uri` | `string` (uri) | Yes | AT URI of the record, repository (account), or other resource that this label applies to. |
| `val` | `string` | Yes | The short string name of the value or type of this label. |
| `ver` | `integer` | No | The AT Protocol version of the label object. |

### `com.atproto.label.defs#selfLabel`

**Type**: `object`

Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `val` | `string` | Yes | The short string name of the value or type of this label. |

### `com.atproto.label.defs#labelValue`

**Type**: `string`

**Known Values**:
- `!hide`
- `!warn`
- `!no-unauthenticated`
- `porn`
- `sexual`
- `nudity`
- `graphic-media`
- `bot`

### `com.atproto.label.defs#selfLabels`

**Type**: `object`

Metadata tags on an atproto record, published by the author within the record.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `values` | `array` | Yes |  |

### `com.atproto.label.defs#labelValueDefinition`

**Type**: `object`

Declares a label value and its expected interpretations and behaviors.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `blurs` | `string` | Yes | What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing. |
| `locales` | `array` | Yes |  |
| `severity` | `string` | Yes | How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing. |
| `adultOnly` | `boolean` | No | Does the user need to have adult content enabled in order to configure this label? |
| `identifier` | `string` | Yes | The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+). |
| `defaultSetting` | `string` | No | The default setting for this label. |

### `com.atproto.label.defs#labelValueDefinitionStrings`

**Type**: `object`

Strings which describe the label in the UI, localized into a specific language.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `lang` | `string` (language) | Yes | The code of the language these strings are written in. |
| `name` | `string` | Yes | A short human-readable name for the label. |
| `description` | `string` | Yes | A longer description of what the label means and why it might be applied. |

## Raw Schema

```json
{
  "id": "com.atproto.label.defs",
  "defs": {
    "label": {
      "type": "object",
      "required": [
        "src",
        "uri",
        "val",
        "cts"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid",
          "description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
        },
        "cts": {
          "type": "string",
          "format": "datetime",
          "description": "Timestamp when this label was created."
        },
        "exp": {
          "type": "string",
          "format": "datetime",
          "description": "Timestamp at which this label expires (no longer applies)."
        },
        "neg": {
          "type": "boolean",
          "description": "If true, this is a negation label, overwriting a previous label."
        },
        "sig": {
          "type": "bytes",
          "description": "Signature of dag-cbor encoded label."
        },
        "src": {
          "type": "string",
          "format": "did",
          "description": "DID of the actor who created this label."
        },
        "uri": {
          "type": "string",
          "format": "uri",
          "description": "AT URI of the record, repository (account), or other resource that this label applies to."
        },
        "val": {
          "type": "string",
          "maxLength": 128,
          "description": "The short string name of the value or type of this label."
        },
        "ver": {
          "type": "integer",
          "description": "The AT Protocol version of the label object."
        }
      },
      "description": "Metadata tag on an atproto resource (eg, repo or record)."
    },
    "selfLabel": {
      "type": "object",
      "required": [
        "val"
      ],
      "properties": {
        "val": {
          "type": "string",
          "maxLength": 128,
          "description": "The short string name of the value or type of this label."
        }
      },
      "description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel."
    },
    "labelValue": {
      "type": "string",
      "knownValues": [
        "!hide",
        "!warn",
        "!no-unauthenticated",
        "porn",
        "sexual",
        "nudity",
        "graphic-media",
        "bot"
      ]
    },
    "selfLabels": {
      "type": "object",
      "required": [
        "values"
      ],
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "ref": "#selfLabel",
            "type": "ref"
          },
          "maxLength": 10
        }
      },
      "description": "Metadata tags on an atproto record, published by the author within the record."
    },
    "labelValueDefinition": {
      "type": "object",
      "required": [
        "identifier",
        "severity",
        "blurs",
        "locales"
      ],
      "properties": {
        "blurs": {
          "type": "string",
          "description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
          "knownValues": [
            "content",
            "media",
            "none"
          ]
        },
        "locales": {
          "type": "array",
          "items": {
            "ref": "#labelValueDefinitionStrings",
            "type": "ref"
          }
        },
        "severity": {
          "type": "string",
          "description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
          "knownValues": [
            "inform",
            "alert",
            "none"
          ]
        },
        "adultOnly": {
          "type": "boolean",
          "description": "Does the user need to have adult content enabled in order to configure this label?"
        },
        "identifier": {
          "type": "string",
          "maxLength": 100,
          "description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
          "maxGraphemes": 100
        },
        "defaultSetting": {
          "type": "string",
          "default": "warn",
          "description": "The default setting for this label.",
          "knownValues": [
            "ignore",
            "warn",
            "hide"
          ]
        }
      },
      "description": "Declares a label value and its expected interpretations and behaviors."
    },
    "labelValueDefinitionStrings": {
      "type": "object",
      "required": [
        "lang",
        "name",
        "description"
      ],
      "properties": {
        "lang": {
          "type": "string",
          "format": "language",
          "description": "The code of the language these strings are written in."
        },
        "name": {
          "type": "string",
          "maxLength": 640,
          "description": "A short human-readable name for the label.",
          "maxGraphemes": 64
        },
        "description": {
          "type": "string",
          "maxLength": 100000,
          "description": "A longer description of what the label means and why it might be applied.",
          "maxGraphemes": 10000
        }
      },
      "description": "Strings which describe the label in the UI, localized into a specific language."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
