Skip to content

Endpoints

All endpoints use the base URL https://api.floimg.com/v1.

Execute a saved workflow with parameters.

POST /workflows/execute

Request Body:

{
"workflowId": "wf_abc123",
"parameters": {
"prompt": "A serene mountain landscape",
"width": 1200,
"height": 630
},
"async": false
}
FieldTypeRequiredDescription
workflowIdstringYesThe workflow ID to execute
parametersobjectNoParameters to pass to the workflow
asyncbooleanNoIf true, returns immediately with execution ID

Response (sync):

{
"executionId": "exec_xyz789",
"status": "completed",
"output": {
"url": "https://storage.floimg.com/images/abc123.png",
"width": 1200,
"height": 630,
"format": "png"
},
"duration": 2340
}

Response (async):

{
"executionId": "exec_xyz789",
"status": "pending"
}

Check the status of an async workflow execution.

GET /workflows/executions/{executionId}

Response:

{
"executionId": "exec_xyz789",
"workflowId": "wf_abc123",
"status": "completed",
"output": {
"url": "https://storage.floimg.com/images/abc123.png"
},
"startedAt": "2026-01-15T10:30:00Z",
"completedAt": "2026-01-15T10:30:02Z"
}

Status values: pending, running, completed, failed

Get all workflows in your account.

GET /workflows

Query Parameters:

ParameterTypeDescription
limitnumberMax results (default: 20, max: 100)
offsetnumberPagination offset
projectIdstringFilter by project

Response:

{
"workflows": [
{
"id": "wf_abc123",
"name": "Social Media Image",
"projectId": "proj_def456",
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-01-14T12:00:00Z"
}
],
"total": 42,
"hasMore": true
}

Get details for a specific workflow.

GET /workflows/{workflowId}

Response:

{
"id": "wf_abc123",
"name": "Social Media Image",
"description": "Generate OG images for blog posts",
"projectId": "proj_def456",
"parameters": [
{
"name": "prompt",
"type": "string",
"required": true
},
{
"name": "width",
"type": "number",
"default": 1200
}
],
"createdAt": "2026-01-10T08:00:00Z"
}

Upload an image to your FloImg storage.

POST /storage/upload
Content-Type: multipart/form-data

Form Fields:

FieldTypeRequiredDescription
filefileYesImage file to upload
projectIdstringNoProject to store in
namestringNoCustom filename

Response:

{
"id": "img_abc123",
"url": "https://storage.floimg.com/images/abc123.png",
"name": "hero-image.png",
"size": 245832,
"format": "png",
"width": 1200,
"height": 630,
"createdAt": "2026-01-15T10:00:00Z"
}

List images in your storage.

GET /storage/images

Query Parameters:

ParameterTypeDescription
limitnumberMax results (default: 20, max: 100)
offsetnumberPagination offset
projectIdstringFilter by project

Response:

{
"images": [
{
"id": "img_abc123",
"url": "https://storage.floimg.com/images/abc123.png",
"name": "hero-image.png",
"size": 245832,
"createdAt": "2026-01-15T10:00:00Z"
}
],
"total": 156,
"hasMore": true
}

Get details for a specific image.

GET /storage/images/{imageId}

Delete an image from storage.

DELETE /storage/images/{imageId}

Response:

{
"deleted": true
}

GET /projects
POST /projects

Request Body:

{
"name": "Marketing Assets",
"description": "Images for marketing campaigns"
}

All errors follow this format:

{
"error": {
"code": "error_code",
"message": "Human-readable description",
"details": {}
}
}
CodeHTTP StatusDescription
unauthorized401Invalid or missing API key
forbidden403Key lacks required permissions
not_found404Resource doesn’t exist
rate_limited429Too many requests
invalid_request400Bad request body or parameters
workflow_failed500Workflow execution error