Skip to content

GPU Studio API

Generate images and short video clips using WAYSCloud GPU Studio.

Base URL: https://api.wayscloud.services

GPU Studio is a job-based API:

  • Create a job with an engine and input prompt
  • Poll job status until it is completed
  • Download results via URLs in output_files

Engines are curated and stable identifiers. Use GET /v1/gpu/engines to discover which engines are available for your account.

Pricing is not hardcoded in this documentation. Always use GET /v1/gpu/pricing for the current price list (supports multiple currencies).

Authentication: Use either X-API-Key header or Authorization: Bearer <key> for protected endpoints.

Endpoints

MethodPathDescription
GET/v1/gpu/enginesList engines
GET/v1/gpu/presetsList presets
GET/v1/gpu/pricingGet pricing
POST/v1/gpu/jobsCreate job
GET/v1/gpu/jobsList jobs
GET/v1/gpu/jobs/{job_id}Get job
DELETE/v1/gpu/jobs/{job_id}Cancel job

GET /v1/gpu/engines

List engines

List available GPU engines for image and video generation. No authentication required.

Response example:

json
[
  {
    "engine": "image-flux-fast",
    "name": "FLUX Fast",
    "description": "Quick image drafts",
    "type": "image",
    "tier_required": null,
    "available": true
  },
  {
    "engine": "image-flux-pro",
    "name": "FLUX Pro",
    "description": "High-quality images",
    "type": "image",
    "tier_required": "pro",
    "available": true
  },
  {
    "engine": "video-veo-pro",
    "name": "Veo Pro",
    "description": "8-sec 1080p video",
    "type": "video",
    "tier_required": "pro",
    "available": true
  }
]

Example:

bash
curl https://api.wayscloud.services/v1/gpu/engines \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"

Response:

json
[
  {
    "engine": "image-flux-fast",
    "name": "FLUX Fast",
    "description": "Quick image drafts",
    "type": "image",
    "tier_required": null,
    "available": true
  },
  {
    "engine": "image-flux-pro",
    "name": "FLUX Pro",
    "description": "High-quality images",
    "type": "image",
    "tier_required": "pro",
    "available": true
  },
  {
    "engine": "video-veo-pro",
    "name": "Veo Pro",
    "description": "8-sec 1080p video",
    "type": "video",
    "tier_required": "pro",
    "available": true
  }
]

GET /v1/gpu/presets

List presets

List available style presets. No authentication required.

Response example:

json
[
  {
    "name": "cinematic_light",
    "type": "image",
    "description": "Cinematic lighting style"
  }
]

Example:

bash
curl https://api.wayscloud.services/v1/gpu/presets \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"

Response:

json
[
  {
    "name": "cinematic_light",
    "type": "image",
    "description": "Cinematic lighting style"
  }
]

GET /v1/gpu/pricing

Get pricing

Returns the current public price list per engine. Availability for your account is determined by GET /v1/gpu/engines. No authentication required.

Response example:

json
[
  {
    "engine": "image-flux-fast",
    "sku": "gpu_image_flux_fast",
    "type": "image",
    "unit": "image",
    "price_per_unit": 2.0,
    "currency": "NOK",
    "display_name": "FLUX Fast",
    "description": "Quick image generation",
    "tier_required": null
  }
]

Example:

bash
curl https://api.wayscloud.services/v1/gpu/pricing \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"

Response:

json
[
  {
    "engine": "image-flux-fast",
    "sku": "gpu_image_flux_fast",
    "type": "image",
    "unit": "image",
    "price_per_unit": 2.0,
    "currency": "NOK",
    "display_name": "FLUX Fast",
    "description": "Quick image generation",
    "tier_required": null
  }
]

POST /v1/gpu/jobs

Create job

Create an image or video generation job.

Image inputs:

  • prompt (required): Image description
  • aspect_ratio: 1:1, 4:5, 16:9, 9:16 (default: 16:9)
  • negative_prompt: What to avoid
  • seed: Random seed for reproducibility

Video inputs:

  • prompt (required): Video description
  • duration_sec: Duration in seconds (engine-limited)
  • negative_prompt: What to avoid
  • seed: Random seed for reproducibility

Request Body:

FieldTypeDescription
typestringRequired. Values: image, video
enginestringRequired. Engine to use
inputsobjectRequired.
presetstringStyle preset
webhook_urlstringCallback URL (video only)

Example:

json
{
  "type": "image",
  "engine": "image-flux-fast",
  "inputs": {
    "prompt": "A serene mountain landscape at sunset",
    "aspect_ratio": "16:9"
  }
}

Response:

FieldTypeDescription
idstring
typestringValues: image, video
enginestring
statusstringValues: queued, processing, completed, failed, cancelled
progressinteger
output_filesobjectURLs to generated files
estimated_costGPUJobCost
actual_costGPUJobCost
error_messagestring
created_atstring
completed_atstring

Example:

bash
curl -X POST https://api.wayscloud.services/v1/gpu/jobs \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "image",
  "engine": "image-flux-fast",
  "inputs": {
    "prompt": "A serene mountain landscape at sunset",
    "aspect_ratio": "16:9"
  }
}'

Response:

json
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "image",
  "engine": "image-flux-fast",
  "status": "completed",
  "progress": 100,
  "output_files": {
    "image": "https://storage.wayscloud.services/gpu-studio/tenant/<tenant_id>/jobs/<job_id>/output.png"
  },
  "estimated_cost": {
    "amount": 2.0,
    "currency": "NOK"
  },
  "actual_cost": {
    "amount": 2.0,
    "currency": "NOK"
  },
  "error_message": null,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:12Z"
}

GET /v1/gpu/jobs

List jobs

List jobs for your account.

Response example:

json
[
  {
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "type": "image",
    "engine": "image-flux-fast",
    "status": "completed",
    "progress": 100,
    "output_files": {
      "image": "https://storage.wayscloud.services/gpu-studio/tenant/<tenant_id>/jobs/<job_id>/output.png"
    },
    "estimated_cost": {
      "amount": 2.0,
      "currency": "NOK"
    },
    "actual_cost": {
      "amount": 2.0,
      "currency": "NOK"
    },
    "error_message": null,
    "created_at": "2025-01-15T10:30:00Z",
    "completed_at": "2025-01-15T10:30:12Z"
  }
]

Example:

bash
curl https://api.wayscloud.services/v1/gpu/jobs \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"

Response:

json
[
  {
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "type": "image",
    "engine": "image-flux-fast",
    "status": "completed",
    "progress": 100,
    "output_files": {
      "image": "https://storage.wayscloud.services/gpu-studio/tenant/<tenant_id>/jobs/<job_id>/output.png"
    },
    "estimated_cost": {
      "amount": 2.0,
      "currency": "NOK"
    },
    "actual_cost": {
      "amount": 2.0,
      "currency": "NOK"
    },
    "error_message": null,
    "created_at": "2025-01-15T10:30:00Z",
    "completed_at": "2025-01-15T10:30:12Z"
  }
]

GET /v1/gpu/jobs/

Get job

Get job status and details.

Response:

FieldTypeDescription
idstring
typestringValues: image, video
enginestring
statusstringValues: queued, processing, completed, failed, cancelled
progressinteger
output_filesobjectURLs to generated files
estimated_costGPUJobCost
actual_costGPUJobCost
error_messagestring
created_atstring
completed_atstring

Example:

bash
curl https://api.wayscloud.services/v1/gpu/jobs/{job_id} \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"

Response:

json
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "image",
  "engine": "image-flux-fast",
  "status": "completed",
  "progress": 100,
  "output_files": {
    "image": "https://storage.wayscloud.services/gpu-studio/tenant/<tenant_id>/jobs/<job_id>/output.png"
  },
  "estimated_cost": {
    "amount": 2.0,
    "currency": "NOK"
  },
  "actual_cost": {
    "amount": 2.0,
    "currency": "NOK"
  },
  "error_message": null,
  "created_at": "2025-01-15T10:30:00Z",
  "completed_at": "2025-01-15T10:30:12Z"
}

DELETE /v1/gpu/jobs/

Cancel job

Cancel a job if possible. Only queued or processing jobs can be cancelled.

Example:

bash
curl -X DELETE https://api.wayscloud.services/v1/gpu/jobs/{job_id} \
  -H "X-API-Key: wayscloud_gpu_abc12_YOUR_SECRET"


WAYSCloud AS