Skip to content

REST API

Everything the console does is a REST call. The node exposes two surfaces, both backed by the same store. Responses are JSON.

Authentication

The admin API is guarded by an API key: send X-API-Key: <PESIT_API_KEY> on every request. If PESIT_API_KEY is unset the admin API is open (development only). The operational endpoints (/actuator/health, /metrics, /ocsp) and the transfer API need no key.

Admin API — --api-port (default 8080)

Method & pathPurpose
GET/POST /api/v1/config/partners · …/{id}Partners (PI 3)
GET/POST /api/v1/config/files · …/{id}Virtual files (PI 12)
GET/POST /api/v1/config/remote-partners · …/{id}Remote partner policy
GET/POST /api/v1/config/connectors · …/{id} · …/{id}/testStorage connectors
GET/POST /api/v1/servers · …/{id}/start|stop|statusListeners
GET /api/v1/transfers · …/{id} · …/active · …/statsInbound transfer records
GET/POST /api/v1/certificates/*Keystores, truststores, local CA, Vault, rotation, CRL
GET/POST /api/v1/schedules · …/{id} · …/{id}/runScheduled transfers
GET /api/v1/cluster · …/transfersCluster membership and aggregated history
GET /api/v1/audit · GET /api/v1/backup · POST /api/v1/backup/restoreAudit log, backup / restore

The transfer API below is also mounted here under /client/api/v1/... for the single-origin console.

Transfer API — --transfer-port (default 9081)

Method & pathPurpose
GET/POST /api/v1/servers · …/{id}Remote servers to connect out to
POST /api/v1/transfers/send|receive|messageStart an outgoing transfer or message
GET /api/v1/transfers · …/{id}Outbound history
POST /api/v1/transfers/{id}/cancel|retryCancel or restart a transfer

Operational endpoints (unauthenticated, admin port)

PathPurpose
GET /actuator/health (+ /liveness, /readiness)Kubernetes probes
GET /metricsPrometheus metrics
POST /ocsp · GET /ocsp/{b64}OCSP responder (RFC 6960)

Example

bash
KEY=secret; A=http://localhost:8080
# create a partner
curl -s -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
  "$A/api/v1/config/partners" -X POST -d '{"id":"BANK_A","enabled":true,"accessType":"BOTH"}'
# start an outgoing transfer (transfer API mounted under /client)
curl -s -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
  "$A/client/api/v1/transfers/send" -X POST \
  -d '{"server":"bank-a","partnerId":"PWSRV01","filename":"/data/send/f.dat","remoteFilename":"PAYMENTS"}'

PeSIT Wizard — open source under Apache-2.0