Skip to content

Create a file from an upload

POST
/files
curl --request POST \
--url https://example.com/api/v1/files \
--header 'Content-Type: application/json' \
--data '{ "content": "example", "content_type": "example", "name": "example", "sensitive": true }'

Stores the uploaded bytes as a content-addressed blob (identical bytes dedup to one blob) and writes the file handle pointing at it. Gated by file:create; a sensitive file additionally needs the admin tier (file:create:admin).

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
content
required

The file bytes, base64-encoded

string
content_type
required

The MIME type used to serve the file

string
>= 1 characters
name
required

The file’s display name (a label, no path separators)

string
>= 1 characters
sensitive

Admin-only visibility; defaults false. Setting true requires the admin tier

boolean

Created

Media type application/json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
content_type
required
string
created_at
required
string
id
required
string
name
required
string
sensitive
required

When true, only the admin tier may see or download this file

boolean
sha256
required

The content hash of the blob this handle points at

string
size
required
integer format: int64
Example
{
"$schema": "/api/v1/schemas/FileBody.json"
}

Error

Media type application/problem+json
object
$schema

A URL to the JSON Schema for this object.

string format: uri
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
Example
{
"$schema": "/api/v1/schemas/ErrorModel.json",
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}