Filen User API
The User API from Filen — 7 operation(s) for user.
The User API from Filen — 7 operation(s) for user.
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-user-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 User 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: User
paths:
/auth/info:
post:
tags:
- User
summary: Get auth info
description: Returns user-specific authentication info.
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: the user's email
example: (user email)
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/response'
operationId: postAuthInfo
x-operation-id-source: derived
/login:
post:
tags:
- User
summary: Login
description: Returns the API Key. See the documentation.
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: the user's email
example: (user email)
password:
type: string
description: a key derived from the user's password, see the documentation
example: (-> see description)
twoFactorCode:
type: string
description: the user's two-factor authentication code, or `"XXXXXX"` if 2FA is disabled
example: (two-factor authentication code or 'XXXXXX')
authVersion:
type: number
description: the auth version, which is `2`
example: 2
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response'
- type: object
properties:
data:
type: object
properties:
apiKey:
type: string
description: the API Key
example: (API key)
masterKeys:
type: string
description: the master keys
example: (master keys)
publicKey:
type: string
description: the public key
example: (public key)
privateKey:
type: string
description: the private key
example: (private key)
operationId: postLogin
x-operation-id-source: derived
/user/masterKeys:
post:
tags:
- User
summary: Retrieve and update user master keys
description: Returns the user's master keys. If this is the user's first login, there are no master keys yet and the passed `masterKeys` are saved.
requestBody:
content:
application/json:
schema:
type: object
properties:
masterKeys:
type: string
description: the master key that was derived from the raw password (metadata-encrypted)
example: (master key derived from raw password)
required: true
security:
- api_key: []
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/response'
- type: object
properties:
data:
type: object
properties:
keys:
type: string
description: the user's saved master keys, joined with `"|"` (metadata-encrypted)
example: (master keys joined with '|', metadata-encrypted)
operationId: postUserMasterKeys
x-operation-id-source: derived
/user/keyPair/info:
get:
summary: Get encrypted user keypair
tags:
- User
description: Retrieve encrypted user keypair
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:
publicKey:
type: string
example: string
privateKey:
type: string
example: string
xml:
name: main
operationId: getUserKeyPairInfo
x-operation-id-source: derived
/user/keyPair/update:
post:
summary: Update user keypair
tags:
- User
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
publicKey:
type: string
example: string
privateKey:
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: postUserKeyPairUpdate
x-operation-id-source: derived
/user/keyPair/set:
post:
summary: Set user keypair
tags:
- User
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
publicKey:
type: string
example: string
privateKey:
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: postUserKeyPairSet
x-operation-id-source: derived
/user/publicKey:
post:
summary: Get user public key
tags:
- User
description: Retrieve a user's public key
requestBody:
description: Body JSON
content:
application/json:
schema:
type: object
properties:
email:
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:
publicKey:
type: string
example: string
xml:
name: main
x-codegen-request-body-name: body
operationId: postUserPublicKey
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