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
| Command | Purpose |
|---|---|
jobs.prepareApplicationUpload | Get an upload target for an application file (resume, cover letter, attachment) |
jobs.submitApplication | Submit a job application for a public job posting |
jobs.confirmApplication | Confirm an application via the emailed token |
jobs.withdrawApplication | Withdraw an application via its withdraw token |
newsletters.signup | Sign a contact up for newsletters (double opt-in) |
files.prepareExternalUpload | Get an upload target for external sync flows |
buildings.syncExternal | Sync building data from an external system |
festivals.syncExternalProgram | Sync 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
jobs.prepareApplicationUploadwith the job slug and file name → returns an upload URL for the resume.- Upload the file bytes to that URL.
jobs.submitApplicationwith the applicant data and uploaded file references.- The applicant receives a confirmation email;
jobs.confirmApplicationis called with the emailed token.