---
title: "Create Remote Server"
method: POST
path: "/remote_servers"
tags: ["remote_servers", "Remote Servers"]
---

# Create Remote Server

`POST /remote_servers`

Create Remote Server

## Response `201`

The RemoteServers object.

- RemoteServerEntity — RemoteServerEntity model
  - `id` integer — Remote Server ID
  - `disabled` boolean — If true, this Remote Server has been disabled due to failures. Make any change or set disabled to false to clear this flag.
  - `authentication_method` string — Type of authentication method to use
  - `hostname` string — Hostname or IP address
  - `remote_home_path` string — Initial home folder on remote server
  - `upload_staging_path` string — Upload staging path. Applies to SFTP only. If a path is provided here, files will first be uploaded to this path on the remote folder and the moved into the final correct path via an SFTP move command. This is required by some remote MFT systems to emulate atomic uploads, which are otherwise not supoprted by SFTP.
  - `allow_relative_paths` boolean — Allow relative paths in SFTP. If true, paths will not be forced to be absolute, allowing operations relative to the user's home directory.
  - `name` string — Internal name for your reference
  - `description` string — Internal description for your reference
  - `port` integer — Port for remote server.
  - `buffer_uploads` 'auto' | 'always' | 'never' — If set to always, uploads to this server will be uploaded first to Files.com before being sent to the remote server. This can improve performance in certain access patterns, such as high-latency connections. It will cause data to be temporarily stored in Files.com. If set to auto, we will perform this optimization if we believe it to be a benefit in a given situation.
  - `max_connections` integer — Max number of parallel connections. Ignored for S3 connections (we will parallelize these as much as possible).
  - `pin_to_site_region` boolean — If true, we will ensure that all communications with this remote server are made through the primary region of the site. This setting can also be overridden by a site-wide setting which will force it to true.
  - `pinned_region` string — If set, all communications with this remote server are made through the provided region.
  - `remote_server_credential_id` integer — ID of Remote Server Credential, if applicable.
  - `s3_bucket` string — S3 bucket name
  - `s3_region` string — S3 region
  - `aws_access_key` string — AWS Access Key.
  - `s3_assume_role_arn` string — AWS IAM Role ARN for AssumeRole authentication.
  - `s3_assume_role_duration_seconds` integer — Session duration in seconds for AssumeRole authentication (900-43200).
  - `s3_assume_role_external_id` string — External ID for AssumeRole authentication.
  - `server_certificate` 'require_match' | 'allow_any' — Remote server certificate
  - `server_host_key` string — Remote server SSH Host Key. If provided, we will require that the server host key matches the provided key. Uses OpenSSH format similar to what would go into ~/.ssh/known_hosts
  - `server_type` 'ftp' | 'sftp' | 's3' | 'google_cloud_storage' | 'webdav' | 'wasabi' | 'backblaze_b2' | 'one_drive' | 'box' | 'dropbox' | 'google_drive' | 'azure' | 'sharepoint' | 's3_compatible' | 'azure_files' | 'files_agent' | 'filebase' | 'cloudflare' | 'linode' | 'files_com' — Remote server type.
  - `workspace_id` integer — Workspace ID (0 for default workspace)
  - `ssl` 'if_available' | 'require' | 'require_implicit' | 'never' — Should we require SSL?
  - `username` string — Remote server username.
  - `google_cloud_storage_bucket` string — Google Cloud Storage: Bucket Name
  - `google_cloud_storage_authentication_method` 'json' | 'hmac' | 'oauth' — Google Cloud Storage: Authentication method. Can be json, hmac, or oauth.
  - `google_cloud_storage_oauth_scope` string — Google Cloud Storage: OAuth scope. Can be https://www.googleapis.com/auth/devstorage.read_only or https://www.googleapis.com/auth/devstorage.read_write.
  - `google_cloud_storage_project_id` string — Google Cloud Storage: Project ID
  - `google_cloud_storage_s3_compatible_access_key` string — Google Cloud Storage: S3-compatible Access Key.
  - `backblaze_b2_s3_endpoint` string — Backblaze B2 Cloud Storage: S3 Endpoint
  - `backblaze_b2_bucket` string — Backblaze B2 Cloud Storage: Bucket name
  - `wasabi_bucket` string — Wasabi: Bucket name
  - `wasabi_region` string — Wasabi: Region
  - `wasabi_access_key` string — Wasabi: Access Key.
  - `auth_status` 'not_applicable' | 'in_setup' | 'complete' | 'reauthenticate' — Either `in_setup` or `complete`
  - `auth_account_name` string — Describes the authorized account
  - `one_drive_account_type` 'personal' | 'business_other' — OneDrive: Either personal or business_other account types
  - `sharepoint_tenant_id` string — SharePoint: Microsoft Entra tenant ID for app-only authentication.
  - `sharepoint_client_id` string — SharePoint: Microsoft Entra application client ID for app-only authentication.
  - `sharepoint_app_authentication` boolean — SharePoint: If true, this remote server uses Microsoft Entra app-only authentication.
  - `sharepoint_app_credential_type` string — SharePoint: App-only credential type. Either secret or certificate.
  - `sharepoint_site_url` string — SharePoint: Site URL to scope app-only authentication to a single site. Leave blank to browse all sites.
  - `azure_blob_storage_account` string — Azure Blob Storage: Account name
  - `azure_blob_storage_container` string — Azure Blob Storage: Container name
  - `azure_blob_storage_hierarchical_namespace` boolean — Azure Blob Storage: Does the storage account has hierarchical namespace feature enabled?
  - `azure_blob_storage_dns_suffix` string — Azure Blob Storage: Custom DNS suffix
  - `azure_files_storage_account` string — Azure Files: Storage Account name
  - `azure_files_storage_share_name` string — Azure Files: Storage Share name
  - `azure_files_storage_dns_suffix` string — Azure Files: Custom DNS suffix
  - `s3_compatible_bucket` string — S3-compatible: Bucket name
  - `s3_compatible_endpoint` string — S3-compatible: endpoint
  - `s3_compatible_region` string — S3-compatible: region
  - `s3_compatible_virtual_hosted_style` boolean — S3-compatible: If true, use virtual-hosted-style URLs instead of path-style URLs
  - `s3_compatible_access_key` string — S3-compatible: Access Key
  - `enable_dedicated_ips` boolean — `true` if remote server only accepts connections from dedicated IPs
  - `files_agent_permission_set` 'read_write' | 'read_only' | 'write_only' — Local permissions for files agent. read_only, write_only, or read_write
  - `files_agent_root` string — Agent local root path
  - `files_agent_api_token` string — Files Agent API Token
  - `files_agent_version` string — Files Agent version
  - `files_agent_up_to_date` boolean — If true, the Files Agent is up to date.
  - `files_agent_latest_version` string — Latest available Files Agent version
  - `files_agent_supports_push_updates` boolean — Files Agent supports receiving push updates
  - `direct_transfer_available` boolean — Whether the Files Agent Proxy recently validated a direct transfer connection. `true` means a direct connection was recently validated (actual availability can vary by client network), `false` means direct transfers are enabled but not currently available, and `null` means direct transfers are disabled or unsupported. Only provided for a connected Files Agent when showing a single Remote Server.
  - `outbound_agent_id` integer — Route traffic to outbound on a files-agent
  - `filebase_bucket` string — Filebase: Bucket name
  - `filebase_access_key` string — Filebase: Access Key.
  - `files_api_key_prefix` string — Files.com direct link: paired API key prefix.
  - `cloudflare_bucket` string — Cloudflare: Bucket name
  - `cloudflare_access_key` string — Cloudflare: Access Key.
  - `cloudflare_endpoint` string — Cloudflare: endpoint
  - `dropbox_teams` boolean — Dropbox: If true, list Team folders in root?
  - `linode_bucket` string — Linode: Bucket name
  - `linode_access_key` string — Linode: Access Key
  - `linode_region` string — Linode: region
  - `supports_versioning` boolean — If true, this remote server supports file versioning. This value is determined automatically by Files.com.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `405` — Method Not Allowed
- `409` — Conflict
- `412` — Precondition Failed
- `422` — Unprocessable Entity
- `423` — Locked
- `429` — Too Many Requests

---

[API](https://skmtc.net/files/apis/files-com-api.md) · [All operations](https://skmtc.net/files/apis/files-com-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/files/files-com-api/revisions/c6d6f57e6da8/schema)
