For the complete documentation index, see llms.txt. This page is also available as Markdown.

File Server

Each environment can run a Celigo-hosted SFTP file server. Enabling it claims a permanent identifier that becomes part of every partner login (<username>@<identifier>) and exposes the shared endpoint and host-key fingerprints partners need to connect. Partner accounts are created under the server, each with its own password and a Celigo Storage folder that becomes the account's root, so files a partner uploads appear in that folder and files placed there are what the partner can download. The account's license must include the file server add-on (fileserver.enabled), and every call needs a full-access API token.

File server and account schemas

Get the environment's file server

get
/v1/mft/fileserver

Returns the environment's SFTP file server: whether it is enabled, its permanent identifier, the shared endpoint and host-key fingerprints partners connect with, the loginFormat, and the effective limits. The server is a singleton resolved from the caller's token — there is no id in the URL. An entitled environment whose server was never enabled answers 404; an environment without the file server add-on gets the reduced object (entitled: false, endpoint, limits) with 200. Requires a full-access API token.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

The file server, or the reduced object when the add-on is not licensed.

application/json

The environment's SFTP file server — one per environment, resolved from the caller's token (no id in the URL). Partners connect to endpoint, verify the server against hostKeyFingerprints, and log in as <username>@<identifier> with a partner account's password. On an entitled environment where the server has never been enabled, reads answer 404 rather than returning this object; an environment without the file server add-on gets a reduced object carrying only entitled: false, endpoint, and limits.

_idstring · objectIdRead-onlyOptional

Identifier of the file server record. Absent on the reduced object returned to an environment without the add-on.

Example: 6ab1ef197cf630a06d774cf1
enabledbooleanOptional

When true, partners can connect and every enabled account can log in. Setting it to false on PUT keeps the identifier and all accounts, refuses new logins, and ends any session currently open; the same body sent again is a no-op. Absent on the reduced object returned to an environment without the add-on.

Example: true
identifierstring · min: 3 · max: 30Optional

The environment's name inside every partner login (<username>@<identifier>), unique across the region. Chosen on the PUT that first enables the server, lowercased on save, and permanent afterwards — a later PUT may echo it but a different value is rejected with 422 FILESERVER_IDENTIFIER_IMMUTABLE. Absent on the reduced object returned to an environment without the add-on.

Example: acme-logisticsPattern: ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$
loginFormatstringRead-onlyOptional

Template for partner usernames on this server — the account's username, @, then the server identifier. Absent on the reduced object returned to an environment without the add-on.

Example: <username>@acme-logistics
entitledbooleanRead-onlyRequired

When true, the account's license includes the file server add-on (fileserver.enabled) and the server can be enabled and managed. When false the object is reduced to endpoint and limits, and every PUT and every account write answers 403 FILESERVER_NOT_ENTITLED; existing accounts stay readable.

Example: true
get/v1/mft/fileserver
GET /v1/mft/fileserver HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "6ab1ef197cf630a06d774cf1",
  "enabled": true,
  "identifier": "acme-logistics",
  "endpoint": {
    "hostname": "sftp.integrator.io",
    "port": 22
  },
  "hostKeyFingerprints": [
    {
      "algorithm": "ssh-ed25519",
      "fingerprint": "SHA256:iYC+28MNea2ebwWmUMdnJRx0StabV53gZBmr6pto9fs"
    },
    {
      "algorithm": "rsa-sha2-512",
      "fingerprint": "SHA256:0Qy3l7fJ2Zb1n8VtY4cH6uWkPq9rS2dE5gL7mN1oT3A"
    }
  ],
  "loginFormat": "<username>@acme-logistics",
  "limits": {
    "maxAccounts": 1000,
    "maxConcurrentSessionsPerAccount": 20,
    "maxFileSizeBytes": 10737418240
  },
  "entitled": true
}

Enable or disable the file server

put
/v1/mft/fileserver

Enables the environment's file server — creating it, and claiming the permanent identifier, on the first call — or disables it. The body must carry enabled as a JSON boolean; anything else is refused rather than interpreted, because a disable ends every open partner session. Enabling also checks the environment's Celigo Storage entitlement (partner uploads land there) and returns the current storageUsage alongside the server. Disabling keeps the identifier and every account, refuses new logins, and ends open sessions; repeating a disable is a no-op. Sandbox environments cannot enable a server (403 FILESERVER_NOT_ENTITLED). Requires a full-access API token.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Body of PUT /v1/mft/fileserver. enabled must be an explicit boolean — an absent or non-boolean value is rejected (422 FILESERVER_ENABLED_REQUIRED) rather than read as a disable, because a disable ends every open partner session.

enabledbooleanRequired

When true, enables the server (creating it on the first call). When false, disables it: the identifier and all accounts are kept, new logins are refused, and open sessions end.

Example: true
identifierstring · min: 3 · max: 30Optional

Required on the PUT that first enables the server; permanent afterwards. Lowercased on save and unique across the region (409 FILESERVER_IDENTIFIER_TAKEN when another environment holds it). On later calls omit it or echo the current value — any other value answers 422 FILESERVER_IDENTIFIER_IMMUTABLE, even on a disable.

Example: acme-logisticsPattern: ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$
Responses
200

The server after the change. Includes storageUsage when the call enabled it.

application/json

The environment's SFTP file server — one per environment, resolved from the caller's token (no id in the URL). Partners connect to endpoint, verify the server against hostKeyFingerprints, and log in as <username>@<identifier> with a partner account's password. On an entitled environment where the server has never been enabled, reads answer 404 rather than returning this object; an environment without the file server add-on gets a reduced object carrying only entitled: false, endpoint, and limits.

_idstring · objectIdRead-onlyOptional

Identifier of the file server record. Absent on the reduced object returned to an environment without the add-on.

Example: 6ab1ef197cf630a06d774cf1
enabledbooleanOptional

When true, partners can connect and every enabled account can log in. Setting it to false on PUT keeps the identifier and all accounts, refuses new logins, and ends any session currently open; the same body sent again is a no-op. Absent on the reduced object returned to an environment without the add-on.

Example: true
identifierstring · min: 3 · max: 30Optional

The environment's name inside every partner login (<username>@<identifier>), unique across the region. Chosen on the PUT that first enables the server, lowercased on save, and permanent afterwards — a later PUT may echo it but a different value is rejected with 422 FILESERVER_IDENTIFIER_IMMUTABLE. Absent on the reduced object returned to an environment without the add-on.

Example: acme-logisticsPattern: ^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$
loginFormatstringRead-onlyOptional

Template for partner usernames on this server — the account's username, @, then the server identifier. Absent on the reduced object returned to an environment without the add-on.

Example: <username>@acme-logistics
entitledbooleanRead-onlyRequired

When true, the account's license includes the file server add-on (fileserver.enabled) and the server can be enabled and managed. When false the object is reduced to endpoint and limits, and every PUT and every account write answers 403 FILESERVER_NOT_ENTITLED; existing accounts stay readable.

Example: true
put/v1/mft/fileserver
PUT /v1/mft/fileserver HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46

{
  "enabled": true,
  "identifier": "acme-logistics"
}
{
  "_id": "6ab1ef197cf630a06d774cf1",
  "enabled": false,
  "identifier": "acme-logistics",
  "endpoint": {
    "hostname": "sftp.integrator.io",
    "port": 22
  },
  "hostKeyFingerprints": [
    {
      "algorithm": "ssh-ed25519",
      "fingerprint": "SHA256:iYC+28MNea2ebwWmUMdnJRx0StabV53gZBmr6pto9fs"
    }
  ],
  "loginFormat": "<username>@acme-logistics",
  "limits": {
    "maxAccounts": 1000,
    "maxConcurrentSessionsPerAccount": 20,
    "maxFileSizeBytes": 10737418240
  },
  "entitled": true
}

List file server accounts

get
/v1/mft/fileserver/accounts

Returns the environment's partner accounts oldest first, wrapped in an accounts array, with overCap computed for each against the current limits.maxAccounts. Paging is cursor-based: when more accounts follow, the Link header carries a rel="next" URL whose after cursor (and pageSize) fetch the next page, and a page reached through after also offers rel="prev". Cursors are opaque — pass them back exactly as received; anything else answers 400 FILESERVER_INVALID_CURSOR. Accounts stay listable after the add-on is removed from the license; only writes are blocked then. Requires a full-access API token and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pageSizeinteger · min: 1 · max: 1000Optional

Accounts per page. Values outside the range are clamped rather than rejected.

Default: 100Example: 100
afterstringOptional

Opaque cursor from the previous page's rel="next" link. Returns the accounts created after it.

beforestringOptional

Opaque cursor from a page's rel="prev" link. Returns the accounts created before it. Ignored when after is also sent.

Responses
200

One page of accounts.

application/json
get/v1/mft/fileserver/accounts
GET /v1/mft/fileserver/accounts HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "accounts": [
    {
      "_id": "6ab1f2737cf630a06d774d09",
      "username": "northwind-edi",
      "login": "northwind-edi@acme-logistics",
      "_homeFolderId": "6ab1f25daa3e7ed226ea3f25",
      "homeFolderPath": "Partners/Northwind/Inbound",
      "enabled": true,
      "passwordSet": true,
      "overCap": false,
      "lastConnectedAt": "2026-09-22T14:35:31.646Z",
      "createdAt": "2026-09-22T03:13:56.060Z",
      "lastModified": "2026-09-22T14:35:31.648Z"
    }
  ]
}

Create a file server account

post
/v1/mft/fileserver/accounts

Creates an enabled partner account with the given username, password, and Celigo Storage home folder, and returns it (the password is never returned). Checks run in order and the first failure is answered: username shape, password presence, home-folder presence, the enabled-account cap, then the folder is verified to be an active folder in this environment. Requires a full-access API token, the file server add-on on the license, and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Body of POST /v1/mft/fileserver/accounts. The account is created enabled, so all three fields are needed for a partner to be able to log in. Checks run in this order and the first failure is returned: username shape, password presence, _homeFolderId presence, the enabled-account cap, then the folder's existence and type in this environment.

usernamestring · min: 3 · max: 32Required

Partner's name on this server; the SFTP login becomes <username>@<identifier>. Lowercased on save. Unique per environment, including against disabled accounts (409 FILESERVER_USERNAME_TAKEN).

Example: northwind-ediPattern: ^[a-z0-9](?:[a-z0-9-]{1,30}[a-z0-9])$
passwordstring · password · min: 12 · max: 256Required

Partner's password. Needs upper- and lower-case letters, a digit, and a symbol; anything weaker is rejected with 422 FILESERVER_WEAK_PASSWORD and the message names the rule broken. Never returned by any route — rotate or clear it later through POST /v1/mft/fileserver/accounts/{_id}/password.

Example: Nw-Inbound-2026!x
_homeFolderIdstring · objectIdRequired

Celigo Storage folder that becomes the root of the partner's sessions. Must be an active folder in this environment — create one with POST /v1/storage/items first.

Example: 6ab1f25daa3e7ed226ea3f25
Responses
201

The new account.

application/json

A partner login on the environment's file server. The partner authenticates as login with the password set through POST /v1/mft/fileserver/accounts/{_id}/password (never returned — passwordSet only says whether one exists) and sees the Celigo Storage folder _homeFolderId as the root of the session. Disabling the account, deleting it, changing its password, or moving its home folder ends any session it has open.

_idstring · objectIdRead-onlyRequired

Identifier of the account. Not derived from the username, so a rename keeps it.

Example: 6ab1f2737cf630a06d774d09
usernamestring · min: 3 · max: 32Required

Partner's name on this server, unique per environment even while the account is disabled. Lowercased on save; a value outside the pattern is rejected with 422 FILESERVER_USERNAME_INVALID and a name another account already holds with 409 FILESERVER_USERNAME_TAKEN.

Example: northwind-ediPattern: ^[a-z0-9](?:[a-z0-9-]{1,30}[a-z0-9])$
loginstringRead-onlyRequired

The exact SFTP username the partner types — username, @, then the server identifier.

Example: northwind-edi@acme-logistics
_homeFolderIdstring · objectIdRequired

Celigo Storage folder that is the root of every session for this account — the partner can reach nothing outside it. Must be an active folder in the same environment; otherwise the write answers 422 FILESERVER_HOME_FOLDER_NOT_FOUND or FILESERVER_HOME_FOLDER_NOT_FOLDER. Moving an account to another folder ends its open sessions.

Example: 6ab1f25daa3e7ed226ea3f25
homeFolderPathstring · nullableRead-onlyOptional

Breadcrumb path of _homeFolderId from the storage root, for display. Null when the path could not be resolved for this response — the folder id is still authoritative.

Example: Partners/Northwind/Inbound
enabledbooleanRequired

When true, the partner can log in. Disabling keeps the account and its password but refuses logins and ends open sessions; re-enabling counts against limits.maxAccounts and requires a password to be set (422 FILESERVER_LAST_CREDENTIAL otherwise). New accounts start enabled.

Example: true
passwordSetbooleanRead-onlyRequired

When true, the account has a password. The password itself is never returned by any route; change or clear it through POST /v1/mft/fileserver/accounts/{_id}/password. Clearing is allowed only while the account is disabled.

Example: true
overCapbooleanRead-onlyRequired

When true, this enabled account ranks above the environment's limits.maxAccounts after the cap was lowered, so its logins are refused until enough other accounts are disabled or deleted. Computed on every read; always false while the environment is within its cap.

lastConnectedAtstring · nullableRead-onlyOptional

Timestamp of the partner's most recent successful login. Null until the first one.

Example: 2026-09-22T14:35:31.646Z
createdAtstring · date-timeRead-onlyRequired

Timestamp when the account was created.

Example: 2026-09-22T03:13:56.060Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp of the last change to the account, including logins updating lastConnectedAt.

Example: 2026-09-22T14:35:31.648Z
post/v1/mft/fileserver/accounts
POST /v1/mft/fileserver/accounts HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 102

{
  "username": "northwind-edi",
  "password": "Nw-Inbound-2026!x",
  "_homeFolderId": "6ab1f25daa3e7ed226ea3f25"
}
{
  "_id": "6ab1f2737cf630a06d774d09",
  "username": "northwind-edi",
  "login": "northwind-edi@acme-logistics",
  "_homeFolderId": "6ab1f25daa3e7ed226ea3f25",
  "homeFolderPath": "Partners/Northwind/Inbound",
  "enabled": true,
  "passwordSet": true,
  "overCap": false,
  "lastConnectedAt": null,
  "createdAt": "2026-09-22T03:13:56.060Z",
  "lastModified": "2026-09-22T03:13:56.060Z"
}

Get a file server account

get
/v1/mft/fileserver/accounts/{_id}

Returns one partner account with overCap computed against the current cap. An id that is unknown, belongs to another environment, or is not a valid identifier all answer the same 404. Requires a full-access API token and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The file server account. A malformed value answers 404 like an unknown one.

Example: 6ab1f2737cf630a06d774d09
Responses
200

The account.

application/json

A partner login on the environment's file server. The partner authenticates as login with the password set through POST /v1/mft/fileserver/accounts/{_id}/password (never returned — passwordSet only says whether one exists) and sees the Celigo Storage folder _homeFolderId as the root of the session. Disabling the account, deleting it, changing its password, or moving its home folder ends any session it has open.

_idstring · objectIdRead-onlyRequired

Identifier of the account. Not derived from the username, so a rename keeps it.

Example: 6ab1f2737cf630a06d774d09
usernamestring · min: 3 · max: 32Required

Partner's name on this server, unique per environment even while the account is disabled. Lowercased on save; a value outside the pattern is rejected with 422 FILESERVER_USERNAME_INVALID and a name another account already holds with 409 FILESERVER_USERNAME_TAKEN.

Example: northwind-ediPattern: ^[a-z0-9](?:[a-z0-9-]{1,30}[a-z0-9])$
loginstringRead-onlyRequired

The exact SFTP username the partner types — username, @, then the server identifier.

Example: northwind-edi@acme-logistics
_homeFolderIdstring · objectIdRequired

Celigo Storage folder that is the root of every session for this account — the partner can reach nothing outside it. Must be an active folder in the same environment; otherwise the write answers 422 FILESERVER_HOME_FOLDER_NOT_FOUND or FILESERVER_HOME_FOLDER_NOT_FOLDER. Moving an account to another folder ends its open sessions.

Example: 6ab1f25daa3e7ed226ea3f25
homeFolderPathstring · nullableRead-onlyOptional

Breadcrumb path of _homeFolderId from the storage root, for display. Null when the path could not be resolved for this response — the folder id is still authoritative.

Example: Partners/Northwind/Inbound
enabledbooleanRequired

When true, the partner can log in. Disabling keeps the account and its password but refuses logins and ends open sessions; re-enabling counts against limits.maxAccounts and requires a password to be set (422 FILESERVER_LAST_CREDENTIAL otherwise). New accounts start enabled.

Example: true
passwordSetbooleanRead-onlyRequired

When true, the account has a password. The password itself is never returned by any route; change or clear it through POST /v1/mft/fileserver/accounts/{_id}/password. Clearing is allowed only while the account is disabled.

Example: true
overCapbooleanRead-onlyRequired

When true, this enabled account ranks above the environment's limits.maxAccounts after the cap was lowered, so its logins are refused until enough other accounts are disabled or deleted. Computed on every read; always false while the environment is within its cap.

lastConnectedAtstring · nullableRead-onlyOptional

Timestamp of the partner's most recent successful login. Null until the first one.

Example: 2026-09-22T14:35:31.646Z
createdAtstring · date-timeRead-onlyRequired

Timestamp when the account was created.

Example: 2026-09-22T03:13:56.060Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp of the last change to the account, including logins updating lastConnectedAt.

Example: 2026-09-22T14:35:31.648Z
get/v1/mft/fileserver/accounts/{_id}
GET /v1/mft/fileserver/accounts/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "6ab1f2737cf630a06d774d09",
  "username": "northwind-edi",
  "login": "northwind-edi@acme-logistics",
  "_homeFolderId": "6ab1f25daa3e7ed226ea3f25",
  "homeFolderPath": "Partners/Northwind/Inbound",
  "enabled": true,
  "passwordSet": true,
  "overCap": false,
  "lastConnectedAt": "2026-09-22T14:35:31.646Z",
  "createdAt": "2026-09-22T03:13:56.060Z",
  "lastModified": "2026-09-22T14:35:31.648Z"
}

Update a file server account

put
/v1/mft/fileserver/accounts/{_id}

Changes the fields sent and returns the account; fields left out keep their values, and {} returns the account unchanged. Renaming keeps _id and updates login. Moving the home folder is verified against Celigo Storage and ends the account's open sessions, as does disabling it. Re-enabling counts against limits.maxAccounts and requires a password to be set. The password cannot be changed here — use POST /v1/mft/fileserver/accounts/{_id}/password. Requires a full-access API token, the file server add-on on the license, and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The file server account. A malformed value answers 404 like an unknown one.

Example: 6ab1f2737cf630a06d774d09
Body

Body of PUT /v1/mft/fileserver/accounts/{_id}. Partial: only the fields sent change, and an empty object is a no-op that returns the current account. The password is not part of this body — use the dedicated password route.

usernamestring · min: 3 · max: 32Optional

New name for the partner; login changes with it and _id does not. Same shape and uniqueness rules as on create.

Example: northwind-edi-2Pattern: ^[a-z0-9](?:[a-z0-9-]{1,30}[a-z0-9])$
_homeFolderIdstring · objectIdOptional

Move the account to another active folder in this environment. Ends the account's open sessions, which were rooted in the old folder.

Example: 6ab1f25daa3e7ed226ea3f25
enabledbooleanOptional

Must be a JSON boolean when present (422 FILESERVER_ENABLED_REQUIRED for "false" or other non-booleans). False keeps the account but refuses logins and ends open sessions. True re-enables it — subject to limits.maxAccounts (403 FILESERVER_MAX_ACCOUNTS_EXCEEDED) and only if a password is set (422 FILESERVER_LAST_CREDENTIAL).

Responses
200

The account after the change.

application/json

A partner login on the environment's file server. The partner authenticates as login with the password set through POST /v1/mft/fileserver/accounts/{_id}/password (never returned — passwordSet only says whether one exists) and sees the Celigo Storage folder _homeFolderId as the root of the session. Disabling the account, deleting it, changing its password, or moving its home folder ends any session it has open.

_idstring · objectIdRead-onlyRequired

Identifier of the account. Not derived from the username, so a rename keeps it.

Example: 6ab1f2737cf630a06d774d09
usernamestring · min: 3 · max: 32Required

Partner's name on this server, unique per environment even while the account is disabled. Lowercased on save; a value outside the pattern is rejected with 422 FILESERVER_USERNAME_INVALID and a name another account already holds with 409 FILESERVER_USERNAME_TAKEN.

Example: northwind-ediPattern: ^[a-z0-9](?:[a-z0-9-]{1,30}[a-z0-9])$
loginstringRead-onlyRequired

The exact SFTP username the partner types — username, @, then the server identifier.

Example: northwind-edi@acme-logistics
_homeFolderIdstring · objectIdRequired

Celigo Storage folder that is the root of every session for this account — the partner can reach nothing outside it. Must be an active folder in the same environment; otherwise the write answers 422 FILESERVER_HOME_FOLDER_NOT_FOUND or FILESERVER_HOME_FOLDER_NOT_FOLDER. Moving an account to another folder ends its open sessions.

Example: 6ab1f25daa3e7ed226ea3f25
homeFolderPathstring · nullableRead-onlyOptional

Breadcrumb path of _homeFolderId from the storage root, for display. Null when the path could not be resolved for this response — the folder id is still authoritative.

Example: Partners/Northwind/Inbound
enabledbooleanRequired

When true, the partner can log in. Disabling keeps the account and its password but refuses logins and ends open sessions; re-enabling counts against limits.maxAccounts and requires a password to be set (422 FILESERVER_LAST_CREDENTIAL otherwise). New accounts start enabled.

Example: true
passwordSetbooleanRead-onlyRequired

When true, the account has a password. The password itself is never returned by any route; change or clear it through POST /v1/mft/fileserver/accounts/{_id}/password. Clearing is allowed only while the account is disabled.

Example: true
overCapbooleanRead-onlyRequired

When true, this enabled account ranks above the environment's limits.maxAccounts after the cap was lowered, so its logins are refused until enough other accounts are disabled or deleted. Computed on every read; always false while the environment is within its cap.

lastConnectedAtstring · nullableRead-onlyOptional

Timestamp of the partner's most recent successful login. Null until the first one.

Example: 2026-09-22T14:35:31.646Z
createdAtstring · date-timeRead-onlyRequired

Timestamp when the account was created.

Example: 2026-09-22T03:13:56.060Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp of the last change to the account, including logins updating lastConnectedAt.

Example: 2026-09-22T14:35:31.648Z
put/v1/mft/fileserver/accounts/{_id}
PUT /v1/mft/fileserver/accounts/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "enabled": false
}
{
  "_id": "6ab1f2737cf630a06d774d09",
  "username": "northwind-edi",
  "login": "northwind-edi@acme-logistics",
  "_homeFolderId": "6ab1f25daa3e7ed226ea3f25",
  "homeFolderPath": "Partners/Northwind/Inbound",
  "enabled": false,
  "passwordSet": true,
  "overCap": false,
  "lastConnectedAt": "2026-09-22T14:35:31.646Z",
  "createdAt": "2026-09-22T03:13:56.060Z",
  "lastModified": "2026-09-25T01:40:12.004Z"
}

Delete a file server account

delete
/v1/mft/fileserver/accounts/{_id}

Permanently removes the account and ends any session it has open. The home folder and its files are untouched. There is no recycle bin for accounts — recreate one to restore access. Requires a full-access API token, the file server add-on on the license, and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The file server account. A malformed value answers 404 like an unknown one.

Example: 6ab1f2737cf630a06d774d09
Responses
204

Account deleted.

No content

delete/v1/mft/fileserver/accounts/{_id}
DELETE /v1/mft/fileserver/accounts/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Set or clear an account's password

post
/v1/mft/fileserver/accounts/{_id}/password

Sets a new password for the partner account, or clears it when password is null. Clearing is refused while the account is enabled, because an enabled account must keep a credential — disable it first. Either change ends the account's open sessions and stamps the change for session revalidation. The route answers 204 and never echoes a credential; passwordSet on the account reflects the result. Requires a full-access API token, the file server add-on on the license, and a server that has been enabled at least once.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The file server account. A malformed value answers 404 like an unknown one.

Example: 6ab1f2737cf630a06d774d09
Body

Body of POST /v1/mft/fileserver/accounts/{_id}/password. Sets a new password or, with null, clears the current one. Either change ends the account's open sessions. Nothing is echoed back — the route answers 204.

passwordstring · nullableRequired

The new password, meeting the same policy as on create (422 FILESERVER_WEAK_PASSWORD otherwise), or null to remove the password — allowed only while the account is disabled, because an enabled account must keep a credential (422 FILESERVER_LAST_CREDENTIAL). Any other type answers 422 FILESERVER_WEAK_PASSWORD with the message "Password must be a string (or null to clear)."

Example: Nw-Inbound-2026!y
Responses
204

Password set or cleared. No body.

No content

post/v1/mft/fileserver/accounts/{_id}/password
POST /v1/mft/fileserver/accounts/{_id}/password HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 32

{
  "password": "Nw-Inbound-2026!y"
}

No content

Last updated

Was this helpful?