Dead Drop History API

Drop version history

OpenAPI Specification

dead-drop-history-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: dead-drop API v1 Documentation History API
  version: 1.0.0
  description: Privacy-focused, ephemeral data-sharing API v1
  contact:
    name: dead-drop.xyz
    url: https://dead-drop.xyz
  termsOfService: https://dead-drop.xyz/terms
  license:
    name: MIT
    url: https://github.com/davorinrusevljan/dead-drop/blob/main/LICENSE
servers:
- url: /api/v1
  description: v1 API
- url: https://api.dead-drop.xyz/api/v1
  description: Production v1 API
tags:
- name: History
  description: Drop version history
paths:
  /drops/{id}/history:
    get:
      tags:
      - History
      summary: List Drop History
      description: Get a list of all versions of a drop.
      parameters:
      - name: id
        in: path
        required: true
        description: SHA-256 hash of the drop name
        schema:
          type: string
      - name: I_agree_with_terms_and_conditions
        in: query
        required: true
        description: Must be true to confirm agreement to terms and conditions
        schema:
          type: boolean
      responses:
        '200':
          description: List of versions
          content:
            application/json:
              schema:
                type: object
                properties:
                  versions:
                    type: array
                    items:
                      type: object
                      properties:
                        version:
                          type: integer
                          minimum: 0
                          exclusiveMinimum: true
                          description: Version number
                          example: 1
                        createdAt:
                          type: string
                          format: date-time
                          description: ISO 8601 timestamp
                          example: '2026-04-18T10:00:00.000Z'
                      required:
                      - version
                      - createdAt
                    description: List of drop versions
                  current:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                    description: Current version number
                    example: 3
                  maxVersions:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                    description: Maximum number of versions allowed
                    example: 10
                required:
                - versions
                - current
                - maxVersions
        '403':
          description: Terms not agreed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Error code (machine-readable)
                        example: NOT_FOUND
                      message:
                        type: string
                        description: Error message (human-readable)
                        example: Drop not found
                    required:
                    - code
                    - message
                required:
                - error
        '404':
          description: Drop not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Error code (machine-readable)
                        example: NOT_FOUND
                      message:
                        type: string
                        description: Error message (human-readable)
                        example: Drop not found
                    required:
                    - code
                    - message
                required:
                - error
  /drops/{id}/history/{version}:
    get:
      tags:
      - History
      summary: Get Specific Drop Version
      description: Get a specific version of a drop.
      parameters:
      - name: id
        in: path
        required: true
        description: SHA-256 hash of the drop name
        schema:
          type: string
      - name: version
        in: path
        required: true
        description: Version number
        schema:
          type: integer
          minimum: 1
      - name: I_agree_with_terms_and_conditions
        in: query
        required: true
        description: Must be true to confirm agreement to terms and conditions
        schema:
          type: boolean
      responses:
        '200':
          description: Drop version data
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: integer
                    minimum: 0
                    exclusiveMinimum: true
                    description: Version number
                    example: 2
                  payload:
                    type: string
                    description: 'For private drops: hex-encoded AES-GCM ciphertext (opaque). For public drops: raw content string, interpreted by mimeType.'
                  iv:
                    type: string
                    nullable: true
                    format: hex
                    pattern: ^[a-f0-9]{24}$
                    description: Hex-encoded IV (12 bytes = 24 hex chars), null for public drops
                    example: 00112233445566778899aabb
                  createdAt:
                    type: string
                    format: date-time
                    description: ISO 8601 timestamp when this version was created
                    example: '2026-04-18T10:30:00.000Z'
                required:
                - version
                - payload
                - iv
                - createdAt
        '403':
          description: Terms not agreed
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Error code (machine-readable)
                        example: NOT_FOUND
                      message:
                        type: string
                        description: Error message (human-readable)
                        example: Drop not found
                    required:
                    - code
                    - message
                required:
                - error
        '404':
          description: Drop or version not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Error code (machine-readable)
                        example: NOT_FOUND
                      message:
                        type: string
                        description: Error message (human-readable)
                        example: Drop not found
                    required:
                    - code
                    - message
                required:
                - error
externalDocs:
  url: https://dead-drop.xyz
  description: dead-drop website