Extole SFTP Servers API
The SFTP Servers API from Extole — 4 operation(s) for sftp servers.
The SFTP Servers API from Extole — 4 operation(s) for sftp servers.
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/extole-sftp-servers-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:
description: 'Server-to-Extole integration endpoints: event submission, person lookup, zone rendering, token management, and reward retrieval for backend services authenticating with client credentials.'
title: Integration API - Server to Extole SFTP Servers API
version: '1.0'
servers:
- description: Production
url: https://api.extole.io
security:
- HEADER: []
- QUERY: []
- COOKIE: []
tags:
- name: SFTP Servers
paths:
/v6/sftp-destinations:
get:
description: Returns all SFTP destination connection profiles configured for the client.
operationId: listSftpDestinations
parameters:
- in: query
name: type
schema:
enum:
- EXTERNAL
- LOCAL
type: string
- in: query
name: name
schema:
type: string
- in: query
name: username
schema:
type: string
- in: query
name: host
schema:
type: string
- in: query
name: limit
schema:
format: int32
type: integer
- in: query
name: offset
schema:
format: int32
type: integer
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/SftpDestinationResponse'
type: array
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: List SFTP destinations
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
post:
description: Creates a new SFTP destination connection profile used for automated report file delivery. Returns the created destination with its server-assigned id.
operationId: createSftpDestination
requestBody:
content:
application/json:
example:
dropbox_path: dropbox_path
extole_key_id: extole_key_id
host: host
key_id: key_id
name: name
partner_key_id: partner_key_id
port: 1
type: EXTERNAL
username: username
schema:
$ref: '#/components/schemas/SftpDestinationCreateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
external_sftp_destination_invalid_username:
$ref: '#/components/examples/external_sftp_destination_invalid_username'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
local_sftp_destination_invalid_username:
$ref: '#/components/examples/local_sftp_destination_invalid_username'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_client_key_not_found:
$ref: '#/components/examples/sftp_destination_client_key_not_found'
sftp_destination_duplicated_name:
$ref: '#/components/examples/sftp_destination_duplicated_name'
sftp_destination_duplicated_username:
$ref: '#/components/examples/sftp_destination_duplicated_username'
sftp_destination_invalid_dropbox_path:
$ref: '#/components/examples/sftp_destination_invalid_dropbox_path'
sftp_destination_invalid_host:
$ref: '#/components/examples/sftp_destination_invalid_host'
sftp_destination_invalid_key_content:
$ref: '#/components/examples/sftp_destination_invalid_key_content'
sftp_destination_invalid_key_type:
$ref: '#/components/examples/sftp_destination_invalid_key_type'
sftp_destination_invalid_name:
$ref: '#/components/examples/sftp_destination_invalid_name'
sftp_destination_invalid_port:
$ref: '#/components/examples/sftp_destination_invalid_port'
sftp_destination_missing_host:
$ref: '#/components/examples/sftp_destination_missing_host'
sftp_destination_missing_key_id:
$ref: '#/components/examples/sftp_destination_missing_key_id'
sftp_destination_missing_username:
$ref: '#/components/examples/sftp_destination_missing_username'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Create an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
/v6/sftp-destinations/{sftpDestinationId}:
get:
description: Returns the SFTP destination for the specified id.
operationId: getSftpDestination
parameters:
- in: path
name: sftpDestinationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_not_found:
$ref: '#/components/examples/sftp_destination_not_found'
unsupported_operation:
$ref: '#/components/examples/unsupported_operation'
username_exists_on_sftp_server:
$ref: '#/components/examples/username_exists_on_sftp_server'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Get an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
put:
description: Updates the SFTP destination connection profile. Only fields present in the request body are changed. Returns the updated destination.
operationId: updateSftpDestination
parameters:
- in: path
name: sftpDestinationId
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
dropbox_path: dropbox_path
extole_key_id: extole_key_id
host: host
key_id: key_id
name: name
partner_key_id: partner_key_id
port: 1
type: EXTERNAL
username: username
schema:
$ref: '#/components/schemas/SftpDestinationUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
external_sftp_destination_invalid_username:
$ref: '#/components/examples/external_sftp_destination_invalid_username'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_null:
$ref: '#/components/examples/invalid_null'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
local_sftp_destination_invalid_username:
$ref: '#/components/examples/local_sftp_destination_invalid_username'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_client_key_not_found:
$ref: '#/components/examples/sftp_destination_client_key_not_found'
sftp_destination_duplicated_name:
$ref: '#/components/examples/sftp_destination_duplicated_name'
sftp_destination_duplicated_username:
$ref: '#/components/examples/sftp_destination_duplicated_username'
sftp_destination_invalid_dropbox_path:
$ref: '#/components/examples/sftp_destination_invalid_dropbox_path'
sftp_destination_invalid_host:
$ref: '#/components/examples/sftp_destination_invalid_host'
sftp_destination_invalid_key_content:
$ref: '#/components/examples/sftp_destination_invalid_key_content'
sftp_destination_invalid_key_type:
$ref: '#/components/examples/sftp_destination_invalid_key_type'
sftp_destination_invalid_name:
$ref: '#/components/examples/sftp_destination_invalid_name'
sftp_destination_invalid_port:
$ref: '#/components/examples/sftp_destination_invalid_port'
sftp_destination_missing_host:
$ref: '#/components/examples/sftp_destination_missing_host'
sftp_destination_missing_key_id:
$ref: '#/components/examples/sftp_destination_missing_key_id'
sftp_destination_missing_username:
$ref: '#/components/examples/sftp_destination_missing_username'
sftp_destination_not_found:
$ref: '#/components/examples/sftp_destination_not_found'
unsupported_operation:
$ref: '#/components/examples/unsupported_operation'
username_exists_on_sftp_server:
$ref: '#/components/examples/username_exists_on_sftp_server'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Update an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
delete:
description: Removes the SFTP destination connection profile. Returns the deleted destination.
operationId: deleteSftpDestination
parameters:
- in: path
name: sftpDestinationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_not_found:
$ref: '#/components/examples/sftp_destination_not_found'
unsupported_operation:
$ref: '#/components/examples/unsupported_operation'
username_exists_on_sftp_server:
$ref: '#/components/examples/username_exists_on_sftp_server'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Delete an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
/v6/sftp-destinations/{sftpDestinationId}/sync:
post:
description: Triggers an immediate synchronisation of the SFTP destination with its external server. Returns the updated destination after sync.
operationId: syncSftpDestination
parameters:
- in: path
name: sftpDestinationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_not_found:
$ref: '#/components/examples/sftp_destination_not_found'
unsupported_operation:
$ref: '#/components/examples/unsupported_operation'
username_exists_on_sftp_server:
$ref: '#/components/examples/username_exists_on_sftp_server'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Sync an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
/v6/sftp-destinations/{sftpDestinationId}/validate:
post:
description: Validates the SFTP destination connection profile without persisting any changes. Returns any connectivity or configuration errors.
operationId: validateSftpDestination
parameters:
- in: path
name: sftpDestinationId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SftpDestinationValidationResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
sftp_destination_not_found:
$ref: '#/components/examples/sftp_destination_not_found'
unsupported_operation:
$ref: '#/components/examples/unsupported_operation'
username_exists_on_sftp_server:
$ref: '#/components/examples/username_exists_on_sftp_server'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Bad Request
'401':
content:
application/json:
examples:
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unauthorized
'402':
content:
application/json:
examples:
payment_required:
$ref: '#/components/examples/payment_required'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Payment Required
'403':
content:
application/json:
examples:
access_denied:
$ref: '#/components/examples/access_denied'
method_unauthorized:
$ref: '#/components/examples/method_unauthorized'
missing_access_token:
$ref: '#/components/examples/missing_access_token'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Forbidden
'415':
content:
application/json:
examples:
unsupported_media_type:
$ref: '#/components/examples/unsupported_media_type'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Unsupported Media Type
'429':
content:
application/json:
examples:
too_many_requests:
$ref: '#/components/examples/too_many_requests'
schema:
$ref: '#/components/schemas/RestExceptionResponse'
description: Too Many Requests
summary: Validate an SFTP destination
tags:
- SFTP Servers
x-extole-bundle: integration-server-to-extole
x-extole-visibility: visible
components:
schemas:
ZonedDateTime:
description: '[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.'
example: '2025-10-24T02:00:00-07:00'
pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$
type: string
ExternalSftpDestinationResponse:
allOf:
- $ref: '#/components/schemas/SftpDestinationResponseBase'
- properties:
id:
readOnly: true
type: string
key_id:
type: string
partner_key_id:
type:
- string
- 'null'
type:
enum:
- EXTERNAL
type: string
type: object
description: External sftp destination response.
required:
- created_date
- dropbox_path
- extole_key_id
- host
- id
- key_id
- name
- partner_key_id
- port
- type
- updated_date
- username
type: object
SftpDestinationCreateRequestBase:
properties:
extole_key_id:
type: string
name:
type: string
partner_key_id:
type: string
type:
enum:
- EXTERNAL
- LOCAL
type: string
type: object
RestExceptionResponse:
description: Represents the API error response
properties:
code:
description: Specific error code for this error type, documented per endpoint
type: string
http_status_code:
description: HTTP status code that was returned with this error, useful if client get response code
format: int32
type: integer
message:
description: User readable English description of the error
type: string
parameters:
additionalProperties:
description: Attributes related to the error, varies be error code, documented per endpoint
type: object
description: Attributes related to the error, varies be error code, documented per endpoint
type: object
unique_id:
description: Unique id associated with this error, useful for discussions with Extole
type: string
required:
- code
- http_status_code
- message
- parameters
- unique_id
type: object
SftpDestinationResponseBase:
properties:
created_date:
$ref: '#/components/schemas/ZonedDateTime'
dropbox_path:
type: string
extole_key_id:
type: string
host:
type: string
id:
type: string
name:
type: string
partner_key_id:
type: string
port:
format: int32
type: integer
type:
enum:
- EXTERNAL
- LOCAL
type: string
updated_date:
$ref: '#/components/schemas/ZonedDateTime'
username:
type: string
type: object
LocalSftpDestinationCreateRequest:
allOf:
- $ref: '#/components/schemas/SftpDestinationCreateRequestBase'
- properties:
file_proces
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/extole/refs/heads/main/openapi/extole-sftp-servers-api-openapi.yml