Propose an action that needs approval
Gets a short id (A1, A2, ...) and status 'pending'. Reusing an idempotency_key with the same payload returns the existing action, in whatever status it is now, including denied; with a different payload it is a 409. To ask again after a denial, use a new key.
AuthorizationBearer <token>Your space key (om_...). Create one with POST /v1/spaces.
application/json- body
class*stringKind of action, e.g. email_reply, calendar_hold.
1 <= length <= 64summary*stringOne line the owner reads when approving.
1 <= length <= 1000payload*Exactly what will be executed.
preconditions?array<unknown>items <= 20[]meta?{}idempotency_key*stringSame key + same payload returns the existing action, in whatever status it is now, including denied. To ask again after a denial, use a new key.
1 <= length <= 200expires_at?|date-timeAlready proposed with this key
application/json- response
action*created*booleancurl -X POST 'https://api.openmemory.sh/v1/actions' \ -H 'Content-Type: application/json' \ -d '{ "class": "string", "summary": "string", "payload": { "property1": null, "property2": null }, "idempotency_key": "string"}'{ "action": { "id": "string", "class": "string", "summary": "string", "payload": { "property1": null, "property2": null }, "payload_hash": "string", "preconditions": [ null ], "meta": { "property1": null, "property2": null }, "idempotency_key": "string", "status": "pending", "receipt": { "property1": null, "property2": null }, "expires_at": "string", "created_at": "string", "updated_at": "string" }, "created": true}List actions, newest first (default: open ones) GET
Previous Page
Move an action to a new status, only if it is still in `from` POST
Compare-and-set: two callers cannot both move A7 from approved to executing. Allowed: pending→approved|executing|denied|expired|superseded|blocked, approved→executing|denied|expired|superseded, executing→done|failed, blocked→pending|denied|superseded, failed→pending. Expired actions cannot be approved or executed.