Workflows
get/v2/consumer/workflows/{workflowId}

Request

  • The document declares no server URL.
  • Auth: none required

Path parameters

workflowIdstring required

Query parameters

waitinteger

Seconds to wait for the workflow to complete before returning. If it has not completed by then a 202 is returned and the client should query the workflow by its id.

until'completion' | 'change'

What a held read of a workflow waits for before it returns.

What wait waits for: completion (the default) returns once the workflow reaches a final status, change as soon as its status or any of its steps changes.

hideMatureContentboolean

When set to true, any blob that has mature won't be available and won't have a URL

Response

OK

idstring nullable
createdAtstring date-time required
metadataobject required
status'unassigned' | 'preparing' | 'scheduled' | 'processing' | 'succeeded' | 'failed' | 'expired' | 'canceled' required
startedAtstring date-time nullable
completedAtstring date-time nullable
tagsstring[] required

Indexed for searching; at most 10 per workflow.

argumentsobject required
nsfwLevel'pg' | 'pg13' | 'r' | 'x' | 'xxx' | 'na'
experimentalboolean nullable

Opts the workflow in to new features or behaviours that are not yet stable.

allowMatureContentboolean nullable
upgradeMode'manual' | 'automatic' required

Specifies how a workflow should be upgraded when mature content is detected and green or blue buzz was used for payment.

currenciesBuzzClientAccount[] required
forceRefundedboolean required

Whether this workflow has been force-refunded. Prevents re-charging on grain recovery.

ephemeralboolean nullable

Not persisted to telemetry/MongoDB; in-flight state lives only in grain state and nothing remains once terminal.

externalIdstring nullable

Client-supplied idempotency key, stored as "{userId}-{clientValue}" so the unique index is single-field yet per-user. See Civitai.Orchestration.Grains.Workflows.WorkflowTemplate.ExternalId.

lostBlobsRefundinteger nullable

Net buzz refunded for deliverable blobs lost in the 2026-06-12 storage incident. Null = not yet checked, 0 = intact; a value > 0 also prevents re-charging on recovery.

deletedAtstring date-time nullable

Soft delete: the telemetry document is kept until its TTL for operators, but consumer reads treat the workflow as gone.

downloadPriority'high' | 'normal' | 'low' | 'idle'
tier'paid' | 'free' required

How a workflow is paid for.

Example response

{
  "callbacks": [
    {
      "type": [
        "workflow:succeeded"
      ]
    }
  ]
}

Changes

    • info

      added liveTextToSpeech promptModeration discriminator mapping keys to the / response property for the response status

    • info

      added liveTextToSpeech promptModeration discriminator mapping keys to the / response property for the response status

    • warning

      added the new idle enum value to the response property for the response status

    • warning

      added the new idle enum value to the response property for the response status

    • warning

      added the new idle enum value to the //// response property for the response status

    • warning

      added the new idle enum value to the //// response property for the response status

    • warning

      added the new idle enum value to the // response property for the response status

    • warning

      added the new idle enum value to the // response property for the response status

    • info

      added liveTranscription merge discriminator mapping keys to the / response property for the response status

    • info

      added liveTranscription merge discriminator mapping keys to the / response property for the response status

    • info

      added the required property to the response with the status

    • info

      added the required property to the response with the status