Docs

Commands

Specialized write flows — job applications, newsletter signups, uploads, and sync operations.

Commands are specialized, side-effect-heavy write flows that don't map to plain resource CRUD — multi-step processes like a job application with file uploads and email confirmation. They complement the resource write API; for normal record editing prefer resource writes.

Discovering commands

Like resources, commands are granted per credential. List what your credential can execute:

curl https://actions.einblick.xyz/api/v1/commands/schema \
  -H "Authorization: Bearer api_YOUR_KEY"

The response describes each granted command with its input schema.

Executing a command

POST the command name with a plain JSON body (commands use plain JSON, not JSON:API documents):

curl -X POST https://actions.einblick.xyz/api/v1/commands/newsletters.signup \
  -H "Authorization: Bearer api_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "jane@example.com",
    "firstName": "Jane",
    "locale": "de"
  }'

Successful commands return 200 with a command-specific JSON result. Errors return { "error": "…" } with an appropriate status code. Commands also honor the Idempotency-Key header for safe retries.

Available commands

CommandPurpose
jobs.prepareApplicationUploadGet an upload target for an application file (resume, cover letter, attachment)
jobs.submitApplicationSubmit a job application for a public job posting
jobs.confirmApplicationConfirm an application via the emailed token
jobs.withdrawApplicationWithdraw an application via its withdraw token
newsletters.signupSign a contact up for newsletters (double opt-in)
files.prepareExternalUploadGet an upload target for external sync flows
buildings.syncExternalSync building data from an external system
festivals.syncExternalProgramSync a festival program from an external system

Which of these your credential can call depends on its grants — the commands schema endpoint is the source of truth.

Example: job application flow

  1. jobs.prepareApplicationUpload with the job slug and file name → returns an upload URL for the resume.
  2. Upload the file bytes to that URL.
  3. jobs.submitApplication with the applicant data and uploaded file references.
  4. The applicant receives a confirmation email; jobs.confirmApplication is called with the emailed token.