SteveSteve

Submit a workflow session for processing

Finalizes a `pending` session and queues its linked submission for asynchronous processing. Before transitioning the session, the API verifies that the expected files were actually uploaded to R2 (an `HTTP HEAD` is issued per file). If fewer than the workflow's `minFiles` files are present and non-empty, the request fails with `422` (see that response). Session-state errors return distinct status codes: - `400` — the session cannot be submitted in its current state. This includes a session that was already submitted or completed, a session that has no linked submission or workflow, and any non-`pending` state other than `expired`. - `410` — the session has expired (either already marked `expired` or past its TTL at submit time). - `404` — the session does not exist, is not visible to the caller's API key, or does not belong to the workflow in the path.

POST/api/v1/workflows/{slug}/sessions/{sessionId}/submit

Authorization

AuthorizationRequiredBearer <token>

Company-scoped Steve API key. Format: Authorization: Bearer aok_...

In: header

Path Parameters

slugRequiredstring

Workflow slug.

sessionIdRequiredstring

Steve session identifier.

Header Parameters

X-Request-Idstring

Optional caller-supplied request identifier. Maximum length is 128 characters.

Maximum length: 128
curl -X POST "https://your-deployment.convex.site/api/v1/workflows/<string>/sessions/<string>/submit" \
  -H "X-Request-Id: <string>" \
  -H "Authorization: Bearer <token>"

Session submitted for processing

{
  "sessionId": "string",
  "submissionId": "string",
  "state": "submitted",
  "submissionStatus": "processing",
  "workflow": {
    "slug": "string",
    "version": 0
  }
}