Functions, Cron & Queues

Functions

Run your code on demand. Each execution runs in an isolated container; your code exports a handler that receives the request and returns a result.

Create & execute
curl -X POST "https://base.finiteskills.com/v1/functions" -H "X-Appwrite-Project: <YOUR_PROJECT_ID>" \
  -H "X-Appwrite-Key: <API_KEY>" -H "Content-Type: application/json" \
  -d '{"functionId":"double","name":"Double","code":"module.exports=({req})=>({n:(req.body.n||0)*2})"}'

curl -X POST "https://base.finiteskills.com/v1/functions/double/executions" \
  -H "X-Appwrite-Project: <YOUR_PROJECT_ID>" -H "X-Appwrite-Key: <API_KEY>" \
  -H "Content-Type: application/json" -d '{"body":{"n":21}}'

The handler signature is ({ req, res, log }) => result. Return a value or call res.json(obj, statusCode). Executions record status, logs, errors and duration.

Cron

POST /cron schedules a recurring job targeting a function or a webhook. Schedules: @every 30s|5m|1h, @hourly, @daily, or a */n * * * * cadence.

Queues

A durable, Postgres-native message queue:

Send / receive / ack
POST /queues/{queue}/messages          { body }              # enqueue
POST /queues/{queue}/receive           { max, visibilityTimeout }  # claim
POST /queues/{queue}/messages/{id}/ack                        # delete (done)
POST /queues/{queue}/messages/{id}/nack                       # return to the queue

A received message becomes invisible for its visibility timeout; ack removes it, nack makes it immediately visible again.