Personal Data Portability Archive (PDPArchive) format for mail, contacts, calendar, tasks

Added on June 3, 2026Managed by Data Transfer Initiative

PDPArchive folder metadata schema

{
  "$id": "https://id.schemas.pub/o/DTI/PDPArchive/folder",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Schema for Personal Data Portability Archive (pdparchive) Folder Manifest",

  "$defs": {
    "mod-sequence-value": {
      "type": "integer",
      "minimum": 0,
      "exclusiveMaximum": 18446744073709551616,
      "$comment": "Per RFC4551, a 'mod-sequence-value' is a positive unsigned 64-bit integer"
    },
    "imap-number": {
      "type": "integer",
      "minimum": 0,
      "exclusiveMaximum": 4294967296,
      "$comment": "IMAP unsigned 32-bit integer"
    },
    "imap-nz-number": {
      "type": "integer",
      "minimum": 1,
      "exclusiveMaximum": 4294967296,
      "$comment": "IMAP non-zero unsigned 32-bit integer"
    }
  },

  "type": "object",
  "required": ["name", "items"],
  "properties": {
    "name": {
      "type": "string"
    },
    "uid": {
      "type": "string"
    },
    "removed": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "comment": {
      "type": "string"
    },
    "original_name": {
      "type": "string"
    },
    "sort_order": {
      "type": "integer",
      "minimum": 1,
      "exclusiveMaximum": 2147483648
    },
    "modseqs": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/mod-sequence-value"
      }
    },
    "highest_modseq": {
      "$ref": "#/$defs/mod-sequence-value"
    },
    "special_use": {
      "type": "string",
      "description": "Can be \\All, \\Archive, \\Drafts, \\Flagged, \\Junk, \\Sent or \\Trash as per RFC6154.",
      "pattern": "^\\\\"
    },
    "myrights": {
      "type": "string"
    },
    "is_subscribed": {
      "type": "boolean"
    },
    "deleted_at": {
      "type": "string",
      "format": "date-time"
    },
    "last_uid": {
      "description": "Follows the IMAP4 requirements for unsigned 32-bit int",
      "$ref": "#/$defs/imap-number"
    },
    "recent_uid": {
      "description": "Follows the IMAP4 requirements for unsigned 32-bit int",
      "$ref": "#/$defs/imap-number"
    },
    "uidvalidity": {
      "description": "Follows the IMAP4 requirements for non-zero unsigned 32-bit int",
      "$ref": "#/$defs/imap-nz-number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["uid", "filename"],
        "properties": {
          "uid": {
            "description": "Either an IMAP UID (non-zero unsigned 32-bit integer) or a string identifier such as a UUID",
            "oneOf": [
              {
                "$ref": "#/$defs/imap-nz-number"
              },
              {
                "type": "string"
              }
            ]
          },
          "filename": {
            "type": "string"
          },
          "flags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "flags": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "allowed_keywords": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

View source