Filen Items: Files API
The Items: Files API from Filen — 9 operation(s) for items: files.
The Items: Files API from Filen — 9 operation(s) for items: files.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/filen:filen-items-files-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: 'Filen Items: Files API'
description: 'The Filen API is used by Filen clients for uploading and downloading files, managing files and directories, sharing items, accessing notes and contacts, having chat conversations, managing user-specific settings, and more.
If you need a more in depth documentation, please refer to our generated OpenAPI specs.
### API hosts
The Filen API is located at `gateway.filen.io`.
For file transfers, there''s `ingest.filen.io` and `egest.filen.io`. `ingest.filen.io` is used for uploads while `egest.filen.io` is used for downloads.
### API responses
All API responses follow the schema (TypeScript type definition):
```ts
{
status: boolean, // indicates whether the request was successful
message: string, // additional information
code: string, // a status code
data: any? // optionally, response data
}
```
### Format of timestamps
Some endpoints (where noted) provide timestamps that are *either in milliseconds or in seconds*. To handle them correctly, a calculation like this might be helpful: A timestamp is in milliseconds if `Math.abs(millisecondsNow - timestamp) for a full description of the realtime events API, see the SDK''s implementations
- `/versions` (get current client versions)
- `/mobile/offline/files` (get offline files info)'
version: v3
servers:
- url: https://gateway.filen.io/v3
tags:
- name: 'Items: Files'
paths:
/file:
post:
summary: Get file info
tags:
- 'Items: Files'
description: Retrieve file info
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
data:
type: object
properties:
uuid:
type: string
example: uuidv4
region:
type: string
example: string
bucket:
type: string
example: string
nameEncrypted:
type: string
example: string
nameHashed:
type: string
example: string
sizeEncrypted:
type: string
example: string
mimeEncrypted:
type: string
example: string
metadata:
type: string
example: string
size:
type: string
example: number
parent:
type: string
example: uuidv4
versioned:
type: string
example: boolean
trash:
type: string
example: boolean
version:
type: string
example: number
xml:
name: main
x-codegen-request-body-name: body
operationId: postFile
x-operation-id-source: derived
/upload/done:
post:
summary: Mark an upload completed
tags:
- 'Items: Files'
description: Marks an upload as completed. Use this after you've uploaded file chunks to the Ingest API.
requestBody:
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
description: the UUID of the uploaded file
example: (file uuid)
name:
type: string
description: the file name (metadata-encrypted **using the encryption key**)
example: (file name, metadata-encrypted using the encryption key)
nameHashed:
type: string
description: the hex-encoded SHA-512 hash of the file name
example: (SHA-512 hash of file name, as hex)
size:
type: string
description: the file's total size in bytes (metadata-encrypted **using the encryption key**)
example: (file size in bytes, metadata-encrypted using the encryption key)
chunks:
type: integer
description: the number of chunks uploaded
example: (number of chunks uploaded)
mime:
type: string
description: the file's MIME type
example: (file MIME type)
rm:
type: string
description: a cryptographically-secure random string of length 32
example: (random string of length 32)
metadata:
type: string
description: "the file's metadata (metadata-encrypted **using the master key**) following the schema (TypeScript type definition):\n```ts\n{\n name: string, // the file name\n size: number, // the file size in bytes\n mime: string, // the file's MIME type\n key: string, // the key used to encrypt the file chunks\n lastModified: number, // the file's modification timestamp in seconds\n creation: number, // the file's creation timestamp in seconds\n}\n```"
example: (-> see description)
version:
type: string
description: the file encryption version, currently `2`
example: 2
uploadKey:
type: string
description: a cryptographically-secure random string of length 32, which had been passed along with each file chunk
example: (upload key from chunk uploads)
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response'
- type: object
properties:
chunks:
type: number
description: the number of chunks uploaded
example: (number of chunks uploaded)
size:
type: number
description: the file's total size in bytes
example: (file size in bytes)
operationId: postUploadDone
x-operation-id-source: derived
/file/present:
post:
summary: Check if file exists
tags:
- 'Items: Files'
description: Check if a file exists
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
data:
type: object
properties:
present:
type: string
example: boolean
versioned:
type: string
example: boolean | undefined
trash:
type: string
example: boolean | undefined
xml:
name: main
x-codegen-request-body-name: body
operationId: postFilePresent
x-operation-id-source: derived
/file/exists:
post:
summary: Check if file exists by name
tags:
- 'Items: Files'
description: Check if a file exists inside a parent with a given name
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
parent:
type: string
example: uuidv4
nameHashed:
type: string
example: string
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
data:
type: object
properties:
exists:
type: string
example: boolean
uuid:
type: string
example: string?
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileExists
x-operation-id-source: derived
/file/move:
post:
summary: Move file
tags:
- 'Items: Files'
description: Move a file
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
to:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileMove
x-operation-id-source: derived
/file/rename:
post:
summary: Rename file
tags:
- 'Items: Files'
description: Rename a file
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
name:
type: string
example: string
metadata:
type: string
example: string
nameHashed:
type: string
example: string
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileRename
x-operation-id-source: derived
/file/trash:
post:
summary: Trash file
tags:
- 'Items: Files'
description: Move a file to the trash
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileTrash
x-operation-id-source: derived
/file/restore:
post:
summary: Restore file
tags:
- 'Items: Files'
description: Restore a file from the trash
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileRestore
x-operation-id-source: derived
/file/delete/permanent:
post:
summary: Delete file permanently
tags:
- 'Items: Files'
description: Delete a file permanently
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
example: uuidv4
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: boolean
message:
type: string
example: string
code:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postFileDeletePermanent
x-operation-id-source: derived
components:
schemas:
response:
type: object
properties:
status:
type: boolean
message:
type: string
code:
type: string
securitySchemes:
api_key:
type: apiKey
name: API Key
in: header
externalDocs:
description: Get general information about usage of the Filen API at docs.filen.io
url: https://docs.filen.io/docs/api