Page Navigation

epress world protocol

Open

Collapsed while browsing epress node docs.

epress node REST API

REST endpoints include operational setup APIs and application-level endpoints under /api.

Endpoint Inventory

Snapshot generated from /api route modules and GraphQL mount definition.

MethodPath / OperationScopeAuthSummary
POST/api/graphqlPublic/AppOperation dependentGraphQL transport endpoint for queries and mutations.
GET/api/installInternal/OperationalNoneRead installation lock and status.
POST/api/installInternal/OperationalTyped-data signatureRun installation and initialize schema/data.
POST/api/smtp_checkInternal/OperationalNoneValidate SMTP transport string.
GET/api/visitorsPublic/AppNoneList current online visitors from memory state.
POST/api/visitorsPublic/AppNoneUpsert visitor activity heartbeat.
DELETE/api/visitorsPublic/AppNoneRemove visitor from online set.
GET/api/installInternal/Operational

Installation Status

Returns installation status and lock metadata for setup flow.

Auth

None

Params

  • No params

Body

  • No request body

Response

  • 200 with installed boolean and lock details

Error Codes

  • 500 internal install status error

Example

curl https://node.example.com/api/install

Implementation reference: server/routes/api/install.mjs

POST/api/installInternal/Operational

Run Installation

Executes first-time installation, migration, and seed with typed-data verification.

Auth

Typed-data signature in request payload

Params

  • No params

Body

  • typedData.message with node and settings
  • signature

Response

  • 200 with step result list

Error Codes

  • 500 with step failure report

Example

curl -X POST https://node.example.com/api/install -H 'Content-Type: application/json' -d '{"typedData":{},"signature":"0x..."}'

Implementation reference: server/routes/api/install.mjs

POST/api/smtp_checkInternal/Operational

SMTP Validation

Validates SMTP transport config using nodemailer verify before persisting settings.

Auth

None

Params

  • No params

Body

  • mailTransport string

Response

  • 200 { valid: true } or 400 { valid: false, error }

Error Codes

  • 400 invalid SMTP config
  • 500 server error

Example

curl -X POST https://node.example.com/api/smtp_check -H 'Content-Type: application/json' -d '{"mailTransport":"smtp://user:pass@smtp.example.com:587"}'

Implementation reference: server/routes/api/smtp_check.mjs

POST/api/visitorsPublic/App

Visitors Tracking

Upserts online visitor heartbeat and triggers optional notification for new visitors.

Auth

None; payload address validation

Params

  • No params

Body

  • address (Ethereum address)

Response

  • 200 with success, address, lastActive

Error Codes

  • 400 invalid address
  • 500 internal server error

Example

curl -X POST https://node.example.com/api/visitors -H 'Content-Type: application/json' -d '{"address":"0x..."}'

Implementation reference: server/routes/api/visitors.mjs

POST/api/graphqlPublic/App

GraphQL Transport

GraphQL endpoint for queries and mutations; context includes JWT user and request cache.

Auth

Operation dependent

Params

  • No params

Body

  • GraphQL query/mutation payload

Response

  • 200 GraphQL response envelope

Error Codes

  • 503 NOT_INSTALLED for GraphQL before installation

Example

curl -X POST https://node.example.com/api/graphql -H 'Content-Type: application/json' -d '{"query":"{ nodeStatus { version startedAt } }"}'

Implementation reference: server/graphql/index.mjs