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