REST /api/v1/declaration-storage 6 endpoints
GET /api/v1/declaration-storage/api/v1/declaration-storage

List stored declaration objects for an organisation

Public

Response Example

{
  "data": [
    {
      "org_id": "org_812",
      "declaration_id": "decl_88A1",
      "storage_key": "org_812/declarations/decl_88A1.enc",
      "size_bytes": 4096,
      "uploaded_at": "2026-03-21T09:56:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 9
  }
}
GET /api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id

Download the encrypted declaration blob

Public

Response Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "encrypted_blob": "AQIDAHiZ...base64encoded...==",
  "size_bytes": 4096,
  "downloaded_at": "2026-03-26T09:10:00Z"
}
POST /api/v1/declaration-storage/api/v1/declaration-storage

Upload an encrypted declaration blob to storage

Public

Request Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "encrypted_blob": "AQIDAHiZ...base64encoded...=="
}

Response Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "storage_key": "org_812/declarations/decl_88A1.enc",
  "size_bytes": 4096,
  "uploaded_at": "2026-03-26T09:00:00Z"
}
PUT /api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id

Replace stored encrypted blob (e.g. after key rotation)

Public

Request Example

{
  "encrypted_blob": "BRJDEXkZ...re-encrypted...=="
}

Response Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "storage_key": "org_812/declarations/decl_88A1.enc",
  "size_bytes": 4112,
  "updated_at": "2026-03-26T10:00:00Z"
}
DELETE /api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id

Permanently delete a declaration blob from storage

Public

Response Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "deleted": true,
  "deleted_at": "2026-03-26T11:00:00Z"
}
POST /api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id/signed-url

Generate a time-limited pre-signed URL for direct declaration access

Public

Request Example

{
  "expires_in_seconds": 900
}

Response Example

{
  "org_id": "org_812",
  "declaration_id": "decl_88A1",
  "signed_url": "https://storage.example.com/org_812/declarations/decl_88A1.enc?token=eyJ...&expires=1743082800",
  "expires_at": "2026-03-26T09:15:00Z"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}