Skip to content

Estimate workflow price

POST
/v1/workspaces/{workspace_id}/workflows/{workflow_id}/estimate
curl --request POST \
--url https://api.app.layer.ai/api/v1/workspaces/:workspace_id/workflows/:workflow_id/estimate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"inputs": {}
}'

Estimate the Creative Units cost of running a workflow with given inputs.

workspace_id
required
Workspace Id
string format: uuid
workflow_id
required
Workflow Id
string format: uuid
Media typeapplication/json
EstimateWorkflowPriceRequest
object
inputs
required
Inputs

Workflow inputs matching the workflow’s input schema.

object
key
additional properties
any
Examplegenerated
{
"inputs": {}
}

Successful Response

Media typeapplication/json
EstimateWorkflowPriceOutput
object
estimated_price_creative_units
required
Estimated Price Creative Units

Total estimated Creative Units price for this run.

number
output_counts
required
Output Counts

Expected output count for each workflow output parameter.

Array<object>
EstimateWorkflowOutputCount
object
output
required
WorkflowOutput

The output parameter definition.

object
name
required
Name

Output parameter name

string
type
required
Type

Output type: file, string, etc.

string
value_schema
Any of:
object
key
additional properties
any
description
required
Description

What this output contains

string
display_name
Any of:
string
count
required
Count

The expected number of outputs

integer
workspace_balance_creative_units
required
Workspace Balance Creative Units

Usable Creative Units balance (total balance minus reserved by in-progress generations).

number
estimated_remaining_balance_creative_units
required
Estimated Remaining Balance Creative Units

Usable balance after subtracting the estimated price. Can be negative.

number
has_sufficient_creative_units
required
Has Sufficient Creative Units

Whether the workspace has enough available Creative Units to cover the estimated price.

boolean
Examplegenerated
{
"estimated_price_creative_units": 1,
"output_counts": [
{
"output": {
"name": "example",
"type": "example",
"value_schema": {},
"description": "example",
"display_name": "example"
},
"count": 1
}
],
"workspace_balance_creative_units": 1,
"estimated_remaining_balance_creative_units": 1,
"has_sufficient_creative_units": true
}

Unauthenticated — missing or invalid Bearer token.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Forbidden — insufficient permissions.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Resource not found.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Invalid input parameters.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Rate limited — too many concurrent requests.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Internal server error.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}