Collov Enterprise API

    Virtual Staging API

    The Collov Virtual Staging API enables developers to integrate AI-powered room transformations into their applications, allowing you to virtually redesign spaces or clear rooms entirely from uploaded images.

    An empty room after AI declutter — bare walls, floors, and windows

    Room Declutter

    Automatically remove all furniture and decorations while preserving walls, floors, and architectural features.

    A photorealistic AI-staged bedroom with bed, nightstands, and decor

    Virtual Staging

    Render photorealistic, professionally staged interiors in any room type and design style from a single photo.

    These APIs are designed to support asynchronous task processing:

    • You initiate a task with a Send Task API.
    • You periodically poll the Get Result API using the returned uuid (for staging) or id (for empty room tasks) until the status is SUCCESS.

    This workflow ensures you can process high-quality AI-generated results without blocking client operations, while respecting rate limits and concurrency limits.

    Rate limit · 10 requests/secConcurrency · 2 active tasksAsync by design

    Whether you're building a real estate platform, an interior design tool, or a property management solution, the Collov Virtual Staging API provides a scalable, programmatic way to create photorealistic room transformations at scale.

    Tutorial

    Before you start

    • Auth: send apiKey: YOUR_API_KEY in headers.
    • Content-Type: multipart/form-data for both send-task and get-result endpoints (per spec).
    • Async task process: send → get a task token (uuid or id) → poll until status: SUCCESS or FAILED.
    • Rate limit: 10 requests per second; concurrency limit: 2. If you receive HTTP 429, implement exponential back-off and retry.

    You can retrieve your API key from the Enterprise API center in your Collov console. Keep it secret — never ship it in client-side code.

    Virtual staging: render a designed room

    1. Send task

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/generateImgOnCommon

    Form fields

    • uploadUrl (string, required) — public URL to the original image
    • roomType (enum, required) — one of the supported room types
    • style (enum, required) — one of the supported styles
    • emptyRoomUrl (string, optional) — if you already cleared the room, pass its URL to stage on top of it
    # Set API_KEY in the environment first
    export API_KEY="XXXXXXXXXXX"
    
    curl -X POST "https://api.collov.ai/flair/enterpriseApi/vst/generateImgOnCommon" \
      -H "apiKey: $API_KEY" \
      -H "Content-Type: multipart/form-data" \
      -F "uploadUrl=https://example.com/your/original.jpg" \
      -F "roomType=living room" \
      -F "style=modern"
    import time, requests
    
    API_KEY = "YOUR_API_KEY"
    BASE = "https://api.collov.ai"
    headers = {"apiKey": API_KEY}
    
    # 1) Send task
    data = {
        "uploadUrl": "https://example.com/your/original.jpg",
        "roomType": "living room",
        "style": "modern",
        # "emptyRoomUrl": "https://example.com/cleared.webp"  # optional
    }
    
    r = requests.post(f"{BASE}/flair/enterpriseApi/vst/generateImgOnCommon",
                      headers=headers, files=data)  # multipart/form-data
    r.raise_for_status()
    task = r.json()["data"]
    uuid = task["uuid"]
    print("Task UUID:", uuid)
    import FormData from "form-data";
    import fetch from "node-fetch";
    
    const API_KEY = process.env.API_KEY;
    const form = new FormData();
    form.append("uploadUrl", "https://example.com/your/original.jpg");
    form.append("roomType", "living room");
    form.append("style", "modern");
    
    const res = await fetch(
      "https://api.collov.ai/flair/enterpriseApi/vst/generateImgOnCommon",
      {
        method: "POST",
        headers: {
          apiKey: API_KEY,
          ...form.getHeaders(),
        },
        body: form,
      }
    );
    
    const json = await res.json();
    const uuid = json.data.uuid;
    console.log("Task UUID:", uuid);

    2. Poll for result

    GEThttps://api.collov.ai/flair/enterpriseApi/vst/getRecord

    Query parameter

    • uuid (string, required) — from the send-task response
    export API_KEY="XXXXXXXXXXX"
    
    curl -X GET 'https://api.collov.ai/flair/enterpriseApi/vst/getRecord' \
      -H "apiKey: $API_KEY" \
      -F 'uuid="YYYYYYYY"'
    def poll_vst(uuid, timeout=180, interval=3):
        start = time.time()
        while True:
            res = requests.get(f"{BASE}/flair/enterpriseApi/vst/getRecord",
                               headers=headers, params={"uuid": uuid})
            res.raise_for_status()
            j = res.json()
            data = j.get("data", {})
            status = data.get("status")
    
            if status == "SUCCESS":
                out = data["aiGenerateRecord"]["generateUrl"]
                print("Result URL:", out)
                return out, data
    
            if status == "FAILED":
                raise RuntimeError(f"Task failed: {data}")
    
            if time.time() - start > timeout:
                raise TimeoutError("VST polling timed out")
    
            time.sleep(interval)
    
    result_url, data = poll_vst(uuid)
    async function pollVst(uuid, { timeoutMs = 180000, intervalMs = 3000 } = {}) {
      const start = Date.now();
      while (true) {
        const r = await fetch(
          `https://api.collov.ai/flair/enterpriseApi/vst/getRecord?uuid=${encodeURIComponent(uuid)}`,
          {
            method: "GET",
            headers: {
              "apiKey": process.env.API_KEY,
            },
          }
        );
    
        const j = await r.json();
        const data = j.data || {};
        const status = data.status;
    
        if (status === "SUCCESS") {
          return data.aiGenerateRecord.generateUrl;
        }
    
        if (status === "FAILED") {
          throw new Error(`Task failed: ${JSON.stringify(data)}`);
        }
    
        if (Date.now() - start > timeoutMs) {
          throw new Error("VST polling timed out");
        }
    
        await new Promise(s => setTimeout(s, intervalMs));
      }
    }

    What you'll use from the result

    • data.statusSUCCESS / PENDING / FAILED
    • data.aiGenerateRecord.generateUrl → final rendered image URL
    • data.prompt, data.roomType, data.style, data.durationTime → metadata

    Room clearing: create an empty room

    1. Send task

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/generateEmptyRoom

    Form fields

    • uploadUrl (string, required) — public URL to the original image
    export API_KEY="XXXXXXXXXXX"
    
    curl -X POST "https://api.collov.ai/flair/enterpriseApi/vst/generateEmptyRoom" \
      -H "apiKey: $API_KEY" \
      -H "Content-Type: multipart/form-data" \
      -F "uploadUrl=https://example.com/your/original.jpg"

    The response gives you a numeric id — store this; you'll poll with it.

    2. Poll for result

    GEThttps://api.collov.ai/flair/enterpriseApi/vst/getEmptyRoomRecord

    Query parameter

    • id (integer, required) — from the send-task response
    export API_KEY="XXXXXXXXXXX"
    
    curl -X GET 'https://api.collov.ai/flair/enterpriseApi/vst/getEmptyRoomRecord' \
      -H "apiKey: $API_KEY" \
      -F 'id=101382'
    def poll_empty_room(task_id, timeout=180, interval=3):
        start = time.time()
        while True:
            res = requests.get(f"{BASE}/flair/enterpriseApi/vst/getEmptyRoomRecord",
                               headers=headers, params={"id": str(task_id)})
            res.raise_for_status()
            j = res.json()
            data = j.get("data", {})
            status = data.get("status")
    
            if status == "SUCCESS":
                print("Empty room URL:", data["emptyRoomUrl"])
                return data["emptyRoomUrl"], data
    
            if status == "FAILED":
                raise RuntimeError(f"Empty room task failed: {data}")
    
            if time.time() - start > timeout:
                raise TimeoutError("Empty room polling timed out")
    
            time.sleep(interval)

    Robustness & production tips

    • Backoff on 429: exponential backoff (e.g., 1s, 2s, 4s, … up to 30s).
    • Timeouts: client-side timeout per poll (e.g., 3–5 minutes) and a total job timeout.
    • Validate enums: force lowercase & whitelist room types/styles; reject early if invalid.
    • Id/UUID storage: the room design API polls with uuid; the empty room API polls with a numeric id.
    • Security: uploadUrl / emptyRoomUrl should be on a public CDN/S3 with read access. Don't pass private URLs that require signed headers (unless they're presigned).
    • Watermark & mode: responses may include watermark, proMode, etc. — log them if you need auditing.
    • Concurrency: keep at most 2 active tasks per account to avoid throttling; queue client-side if needed.

    API reference

    Async AI-rendered room design (Send Task)

    Initiate a task to take a picture and render a given type of room with the instructed design style. The process will modify the furniture and decorations in the room, but will keep the room structure unchanged.

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/generateImgOnCommon

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredThe image provided for the process.
    roomTypestring enumRequiredOne of the values below, must be lowercase:
    game roomkitchenliving roomoutdoorbedroomstudioconference roomhome officehome gymdining roomlaundry roombathroomspa roomkids roomopen living and dining room
    stylestring enumRequiredOne of the values below, must be lowercase:
    scandinavianluxuryindustrialcoastaltransitionalfarmhousemid-centurymodern
    emptyRoomUrlstringOptionalProvide if you'd like the generation to happen in a cleared room.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "roomType": "living room",
            "style": "modern",
            "recordId": 76474,
            "enterpriseId": 8,
            "id": 5321,
            "uuid": "41021e83-52c3-433b-8fc0-9961eefa90be",
            "watermark": false,
            "proMode": "soft",
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20250811/404ea691-6757-4ec1-b8a9-86926c9f777a.webp",
            "emptyRoomUrl": "https://d1hmb1rfgjccys.cloudfront.net/3ac80051-7886-49b8-8586-dcecd51eeae5.webp",
            "apiRoomType": "living room",
            "apiStyle": "modern",
            "createBy": 189641,
            "updateBy": 189641,
            "createTime": "Aug 11, 2025 8:45:39 AM",
            "updateTime": "Aug 11, 2025 8:45:39 AM"
        },
        "message": "",
        "statusCode": 0
    }

    Async regenerate AI-rendered room design (Send Task)

    Re-render a previously processed room image with the same parameters (e.g., style, seed) while preserving the original room structure.

    Each source image initially submitted to the Async AI-Rendered Room Design API receives up to 20 free calls to this regeneration API. After that, further requests fail and you must restart a series of generations with a call to the Async AI-Rendered Room Design API.

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/reGenerateImgOnCommon

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uuidstringRequiredThe uuid generated from the initial AI-generation API call for the source image.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "roomType": "living room",
            "style": "modern",
            "recordId": 76474,
            "enterpriseId": 8,
            "id": 5321,
            "uuid": "41021e83-52c3-433b-8fc0-9961eefa90be",
            "watermark": false,
            "proMode": "soft",
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20250811/404ea691-6757-4ec1-b8a9-86926c9f777a.webp",
            "emptyRoomUrl": "https://d1hmb1rfgjccys.cloudfront.net/3ac80051-7886-49b8-8586-dcecd51eeae5.webp",
            "apiRoomType": "living room",
            "apiStyle": "modern",
            "createBy": 189641,
            "updateBy": 189641,
            "createTime": "Aug 11, 2025 8:45:39 AM",
            "updateTime": "Aug 11, 2025 8:45:39 AM"
        },
        "message": "",
        "statusCode": 0
    }

    Design result retrieval (Get Result)

    This endpoint allows repeated queries to retrieve results from both generation APIs:

    • The Async AI-Rendered Room Design endpoint;
    • The Async Regeneration AI-Rendered Room Design endpoint.

    The response bodies from the getRecord call are nearly identical for both generation scenarios, with one key difference:

    • For the initial Async AI-Rendered Room Design, the generateRecordList field contains only a single GenerateRecord.
    • For each subsequent Async Regeneration call, an additional GenerateRecord is appended to this list, ordered by request time.
    GEThttps://api.collov.ai/flair/enterpriseApi/vst/getRecord

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.

    Query parameter

    FieldTypeRequiredDescription
    uuidstringRequiredThe UUID returned from the earlier task initiation API call.

    Sample response

    Async AI-powered room clearing (Send Task)

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/generateEmptyRoom

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredThe image provided for the process.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 10,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20240806/099bbd0e-4c05-4dbe-a009-eb99b944ff27.webp",
            "requestId": "0df88b79-143f-43ed-880d-6cdb6bf2c864",
            "status": "PENDING",
            "id": 101382,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Apr 27, 2025 8:14:57 AM",
            "updateTime": "Apr 27, 2025 8:14:58 AM"
        },
        "message": "",
        "statusCode": 0
    }

    Room clearing result retrieval (Get Result)

    Retrieve the result of the room clearing task by repeatedly querying this API.

    GEThttps://api.collov.ai/flair/enterpriseApi/vst/getEmptyRoomRecord

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.

    Query parameter

    FieldTypeRequiredDescription
    idintegerRequiredThe id returned from the earlier task initiation API call.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "id": 101382,
            "enterpriseId": 8,
            "requestId": "0df88b79-143f-43ed-880d-6cdb6bf2c864",
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20240806/099bbd0e-4c05-4dbe-a009-eb99b944ff27.webp",
            "emptyRoomUrl": "https://d1hmb1rfgjccys.cloudfront.net/95746b84-4977-4ddd-905c-0f0a36df9766.webp",
            "status": "SUCCESS",
            "createBy": 8,
            "updateBy": 0,
            "createTime": "Apr 27, 2025 8:14:58 AM",
            "updateTime": "Apr 27, 2025 8:15:08 AM"
        },
        "message": "",
        "statusCode": 0
    }

    AI-powered photo enhancement

    Enhance the quality and resolution of an existing image. The enhanced image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/vst/doEnhance

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    imgUrlstringRequiredPublic URL of the image to enhance.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260722/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "mode": "ENHANCE",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/HIGH_RES/20260722/dcc5f720-3208-4006-91c4-fd26486461b7.png",
            "startTime": "Jul 22, 2026 1:52:59 AM",
            "id": 182218,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Jul 22, 2026 1:53:07 AM",
            "updateTime": "Jul 22, 2026 1:53:07 AM"
        },
        "message": "",
        "statusCode": 200
    }

    Async AI-powered photo chat editing (Send Task)

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/generate

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredThe image provided for the process.
    promptstringRequiredPhoto editing instructions.

    Sample response

    JSON
    {
      "success": true,
      "data": {
        "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20251220/6a2b2ef8-27fc-4f16-b73b-022ecf49ac22.jpg",
        "prompt": "remove all trees",
        "enterpriseId": 10,
        "uuid": "f3e43ff9-2064-4717-a7c2-e60999920407",
        "startTime": "Feb 6, 2026 9:11:28 AM",
        "status": "PENDING"
      },
      "message": "",
      "statusCode": 200
    }

    Photo chat edit result retrieval (Get Result)

    Retrieve the result of the photo chat edit task by repeatedly querying this API.

    GEThttps://api.collov.ai/flair/enterpriseApi/edit/getRecord

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.

    Query parameter

    FieldTypeRequiredDescription
    uuidstringRequiredThe uuid returned from the earlier task initiation API call.

    Sample response

    JSON
    {
      "success": true,
      "data": {
        "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20251220/6a2b2ef8-27fc-4f16-b73b-022ecf49ac22.jpg",
        "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260206/chatEditImages/984df5ba-ef03-4114-8e65-e9ab98784903.jpeg",
        "prompt": "remove all trees",
        "enterpriseId": 10,
        "uuid": "f3e43ff9-2064-4717-a7c2-e60999920407",
        "startTime": "Feb 6, 2026 9:11:29 AM",
        "endTime": "Feb 6, 2026 9:11:56 AM",
        "status": "SUCCESS"
      },
      "message": "",
      "statusCode": 200
    }

    Async AI virtual tool (Send Task)

    POSThttps://api.collov.ai/flair/enterpriseApi/vgs/task

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typeapplication/jsonData exchange format.

    Request body

    FieldTypeRequiredDescription
    imagesarrayRequiredArray of image objects, e.g. {"imageUrl": "https://…/image.png", "width": 768, "height": 769}. No more than 20 photos.
    resolutionstringRequiredOne of:
    1080p720p
    orientationstringRequiredOne of the values below, with aspect ratios 4:3 / 16:9 / 9:16 / 1:1 respectively:
    StandardLandscapePortraitSquare
    fontstringOptionalOne of:
    OswaldAmaticGreatVibesOpenSansMontserratPlayfair
    musicstringOptionalOne of:
    EmbraceFuture_DesignWaterfallHappy_HolidaySummer_Ukulele
    introstringOptionalText overlay on video. Must not exceed 500 characters.
    profileUrlstringOptionalPersonal profile picture.
    logoUrlstringOptionalCompany logo image.
    agentNamestringOptionalAgent name.
    phoneNumberstringOptionalMobile phone number.
    emailstringOptionalEmail.

    Sample response

    AI virtual tool result retrieval (Get Result)

    Retrieve the result of the AI virtual tool task by repeatedly querying this API.

    GEThttps://api.collov.ai/flair/enterpriseApi/vgs/loadVideoInfo

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.

    Query parameter

    FieldTypeRequiredDescription
    taskIdstringRequiredThe taskId returned from the earlier task initiation API call.

    Sample response

    AI-powered furniture addition

    Add furniture or decor to an existing room photo using a natural-language prompt. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/addFurniture

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the room photo to edit.
    promptstringRequiredNatural-language description of the furniture to add, e.g. "a floor lamp".
    stylestringRequiredThe design style of the furniture, e.g. "modern".

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260815/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "prompt": "a floor lamp",
            "style": "modern",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260815/chatEditImages/9a1c2b3d-4e5f-6789-abcd-ef0123456789.jpeg",
            "startTime": "Aug 15, 2026 2:12:07 PM",
            "id": 184567,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 15, 2026 2:12:12 PM",
            "updateTime": "Aug 15, 2026 2:12:12 PM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered material overlay

    Overlay a new material finish onto a surface in the photo — floors, walls, cabinet doors, countertops, and backsplashes. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/materialOverlay

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the room photo to edit.
    surfaceTypestring enumRequiredThe surface to overlay, one of:
    floorwallcabinet doorscountertopbacksplash
    promptstringRequiredThe material to overlay, one of the presets matching the chosen surfaceType (see the table below).

    surfaceType & prompt presets

    surfaceTypeprompt presets
    floor
    Warm Oak HardwoodPolished White MarbleSoft Beige Carpet
    wall
    Soft Dove Gray PaintWhite Brick WallTextured Linen Wallpaper
    cabinet doors
    Matte Black Flat-PanelClassic White ShakerNatural Walnut Veneer
    countertop
    White Quartz with Gray VeinsBlack Granite PolishedButcher Block Wood
    backsplash
    White Subway TileMoroccan Blue MosaicMarble Backsplash

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260820/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "surfaceType": "floor",
            "prompt": "Warm Oak Hardwood",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260820/chatEditImages/3c4d5e6f-7a8b-9c0d-ef12-3456789abcde.jpeg",
            "startTime": "Aug 20, 2026 10:45:11 AM",
            "id": 185432,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 20, 2026 10:45:16 AM",
            "updateTime": "Aug 20, 2026 10:45:16 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered season change

    Transform an outdoor photo to a different season. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/changingSeason

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.
    targetSeasonstring enumRequiredThe season to transform the photo into, one of:
    springsummerfallwinter

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260822/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "targetSeason": "spring",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260822/chatEditImages/7f8a9b0c-1d2e-3f4a-5b6c-7d8e9f0a1b2c.jpeg",
            "startTime": "Aug 22, 2026 3:18:42 PM",
            "id": 186001,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 22, 2026 3:18:47 PM",
            "updateTime": "Aug 22, 2026 3:18:47 PM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered virtual twilight

    Transform a daytime exterior photo into a dramatic virtual twilight scene. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/virtualTwilight

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260825/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260825/chatEditImages/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d.jpeg",
            "startTime": "Aug 25, 2026 9:05:11 AM",
            "id": 186101,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 25, 2026 9:05:16 AM",
            "updateTime": "Aug 25, 2026 9:05:16 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered pool water enhancement

    Enhance the water in a pool photo to look crystal clear and inviting. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/poolWaterEnhancement

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260825/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260825/chatEditImages/2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e.jpeg",
            "startTime": "Aug 25, 2026 9:12:33 AM",
            "id": 186102,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 25, 2026 9:12:38 AM",
            "updateTime": "Aug 25, 2026 9:12:38 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered lawn replacement

    Replace the lawn in an exterior photo with fresh, healthy grass. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/lawnReplacement

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f.jpeg",
            "startTime": "Aug 26, 2026 10:04:22 AM",
            "id": 186103,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 26, 2026 10:04:27 AM",
            "updateTime": "Aug 26, 2026 10:04:27 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered night to day

    Convert a night-time exterior photo into a bright daytime scene. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/nightToDay

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a.jpeg",
            "startTime": "Aug 26, 2026 10:21:45 AM",
            "id": 186104,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 26, 2026 10:21:51 AM",
            "updateTime": "Aug 26, 2026 10:21:51 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered rain to shine

    Transform a rainy photo into a sunny, clear-sky scene. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/rainToShine

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260826/chatEditImages/5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b.jpeg",
            "startTime": "Aug 26, 2026 11:02:19 AM",
            "id": 186105,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 26, 2026 11:02:24 AM",
            "updateTime": "Aug 26, 2026 11:02:24 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered natural twilight

    Apply a soft, natural twilight effect to an exterior photo. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/naturalTwilight

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260827/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260827/chatEditImages/6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9a0b1c.jpeg",
            "startTime": "Aug 27, 2026 8:48:56 AM",
            "id": 186106,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 27, 2026 8:49:01 AM",
            "updateTime": "Aug 27, 2026 8:49:01 AM"
        },
        "message": "",
        "statusCode": 200
    }

    AI-powered add water to empty pool

    Add crystal-clear water to an empty pool photo. The generated image URL is returned in data.generateUrl.

    POSThttps://api.collov.ai/flair/enterpriseApi/edit/addWaterToAnEmptyPool

    Request headers

    FieldValueDescription
    apiKeyYOUR_API_KEYThe API key you retrieved from the enterprise API center.
    Content-Typemultipart/form-dataData exchange format.

    Request body

    FieldTypeRequiredDescription
    uploadUrlstringRequiredPublic URL of the photo to edit.

    Sample response

    JSON
    {
        "success": true,
        "data": {
            "enterpriseId": 8,
            "uploadUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260827/chatEditImages/a746ae09-6fce-4873-8dae-4613c325a362.jpeg",
            "generateUrl": "https://d37vt2dds2nfmk.cloudfront.net/20260827/chatEditImages/7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d.jpeg",
            "startTime": "Aug 27, 2026 9:30:08 AM",
            "id": 186107,
            "createBy": 8,
            "updateBy": 8,
            "createTime": "Aug 27, 2026 9:30:13 AM",
            "updateTime": "Aug 27, 2026 9:30:13 AM"
        },
        "message": "",
        "statusCode": 200
    }

    Resources

    Limits

    Rate limit

    All enterprise APIs are rate limited to 10 requests per second. Exceeding this rate limit will result in an HTTP error 429.

    Concurrency limit

    All enterprise APIs have a concurrency limit of 2 active tasks per account.