tessera

Describes a share without spending one of its retrievals.

GET
/api/v1/shares/{code}

This is what the share page reads to decide what to render. It never consumes, so a link preview, a prefetch or a mail-scanner following the URL cannot destroy a one-time share.

Errors

404 when nothing has that code, 410 when it has expired or run out, 401 when it is password-protected and the password given was wrong.

code*string

The retrieval code. Normalised before lookup: O reads as 0, I and L read as 1, case is folded, spaces and hyphens are dropped, so 0ZPQ4M7K, ozpq-4m7k and OZPQ4M7K are the same share.

X-Share-Password?|

The share's password, if it has one

Response Body

What this share is

application/json
  1. response

A share as a public visitor sees it.

Everything but code, kind and has_password is withheld until the share is unlocked. A file name and a size describe the content, and a password-protected share should not describe itself before the password is presented. Its link preview is withheld for the same reason.

code*string

The retrieval code.

created_at?|

When it was created, RFC 3339.

encryption?|

link or password for an end-to-end encrypted share, null otherwise.

Sent before unlocking, with the salt below, since a client whose key comes from the password must derive it before presenting the password.

expires_at?|

When it stops being served, RFC 3339.

files*array<>

Every file this share holds. Empty for text and for a locked share.

has_password*boolean

Whether a password must be presented before anything else is revealed.

key_salt?|

The salt a password-derived key is stretched with, for password.

kind*string

text or file.

language?|

Syntax-highlighting hint.

scanning*boolean

Whether it is waiting for the malware scanner and so cannot be downloaded yet. false while locked, since a locked share reveals nothing about its content.

sealed_details?|

The title and a note's language, sealed, on an encrypted share.

size_bytes?|

Size of the content in bytes.

Formatint64
Range0 <= value
title?|

Display name.

unlocked*boolean

Whether the fields below are filled in.

uses_remaining?|

How many retrievals remain, or null for unlimited.

Formatint32
Range0 <= value
curl -X GET 'https://example.com/api/v1/shares/string'
{  "code": "string",  "created_at": "string",  "encryption": "string",  "expires_at": "string",  "files": [    {      "filename": "string",      "position": 0,      "sealed_name": "string",      "size_bytes": 0    }  ],  "has_password": true,  "key_salt": "string",  "kind": "string",  "language": "string",  "scanning": true,  "sealed_details": "string",  "size_bytes": 0,  "title": "string",  "unlocked": true,  "uses_remaining": 0}