# systems.witchcraft.archive.capture

> Published by [kira.pds.witchcraft.systems](https://lexicon.garden/identity/did:plc:2tqqxubv2lu4ahj35ysjer2r)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:2tqqxubv2lu4ahj35ysjer2r/systems.witchcraft.archive.capture)
- [Documentation](https://lexicon.garden/lexicon/did:plc:2tqqxubv2lu4ahj35ysjer2r/systems.witchcraft.archive.capture/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:2tqqxubv2lu4ahj35ysjer2r/systems.witchcraft.archive.capture/examples)

## Definitions

### `systems.witchcraft.archive.capture`

**Type**: `record`

A single-page web archive capture with content hash and optional IPFS/PDS blob storage.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `url` | `string` (uri) | Yes | The URL that was archived. |
| `title` | `string` | No | Page title at time of capture. |
| `pinned` | `boolean` | No | Whether the content is pinned to IPFS. |
| `ipfsCid` | `string` | No | IPFS Content Identifier (CIDv1) for the pinned content. |
| `htmlBlob` | `blob` | No | The captured HTML uploaded as a PDS blob. |
| `createdAt` | `string` (datetime) | Yes | When this record was created. |
| `capturedAt` | `string` (datetime) | Yes | When the capture was made. |
| `contentHash` | `string` | Yes | SHA-256 hash of captured content, prefixed with 'sha256:'. |

## Raw Schema

```json
{
  "id": "systems.witchcraft.archive.capture",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "url",
          "contentHash",
          "capturedAt",
          "createdAt"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The URL that was archived."
          },
          "title": {
            "type": "string",
            "maxLength": 1000,
            "description": "Page title at time of capture."
          },
          "pinned": {
            "type": "boolean",
            "description": "Whether the content is pinned to IPFS."
          },
          "ipfsCid": {
            "type": "string",
            "description": "IPFS Content Identifier (CIDv1) for the pinned content."
          },
          "htmlBlob": {
            "type": "blob",
            "accept": [
              "text/html"
            ],
            "description": "The captured HTML uploaded as a PDS blob."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "When this record was created."
          },
          "capturedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the capture was made."
          },
          "contentHash": {
            "type": "string",
            "description": "SHA-256 hash of captured content, prefixed with 'sha256:'."
          }
        }
      },
      "description": "A single-page web archive capture with content hash and optional IPFS/PDS blob storage."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
