# lol.dids.manage.purge

> Published by [ngerakines.me](https://lexicon.garden/identity/did:plc:cbkjy5n7bk3ax2wplmtjofq2)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/lol.dids.manage.purge)
- [Documentation](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/lol.dids.manage.purge/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:cbkjy5n7bk3ax2wplmtjofq2/lol.dids.manage.purge/examples)

## Definitions

### `lol.dids.manage.purge`

**Type**: `procedure`

Drop the domain's cached pointer and snapshot from every origin replica by broadcasting an invalidation. There is no shared HTTP cache to purge; this is an operator escape hatch for a suspected stale in-process cache, not part of the publish path. Rate-limited.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `paths` | `array` | No | Accepted and ignored: invalidation is whole-domain. |
| `domain` | `string` | Yes | The registered hostname. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `purged` | `boolean` | Yes |  |

#### Errors

- **DomainNotFound**: No registration for that domain belongs to the caller.
- **RateLimitExceeded**: Too many purge requests.

## Raw Schema

```json
{
  "id": "lol.dids.manage.purge",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "required": [
            "domain"
          ],
          "properties": {
            "paths": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Accepted and ignored: invalidation is whole-domain."
            },
            "domain": {
              "type": "string",
              "maxLength": 253,
              "description": "The registered hostname."
            }
          }
        },
        "encoding": "application/json"
      },
      "errors": [
        {
          "name": "DomainNotFound",
          "description": "No registration for that domain belongs to the caller."
        },
        {
          "name": "RateLimitExceeded",
          "description": "Too many purge requests."
        }
      ],
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "purged"
          ],
          "properties": {
            "purged": {
              "type": "boolean"
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Drop the domain's cached pointer and snapshot from every origin replica by broadcasting an invalidation. There is no shared HTTP cache to purge; this is an operator escape hatch for a suspected stale in-process cache, not part of the publish path. Rate-limited."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
