Table of Contents(9)
What changed in this update
- Updated the API section: free API images now carry a Roomagen watermark until a pack is bought, and every tool is documented
- Updated the slug guide: day-to-dusk-exterior is now documented alongside the interior day-to-dusk slug
Earlier updates(1)
- Corrected Roomagen's API details: self-serve keys since August 30, 2026 (no waitlist), 50 free images on the first key, 20–60 second jobs, and the separate day-to-dusk-exterior slug for facades
- Added Virtual Staging AI and Collov, with their Enterprise plan prices, to the provider comparison and updated AI HomeDesign (signup with free credits, $0.24 per photo on yearly billing) and InstantDeco plan prices
- Replaced twilight statistics we could not trace to a primary source (66% more views, 3x showings, 8% of listings) with HomeJab order data, PhotoUp 2026 shoot prices and BoxBrownie’s current day-to-dusk list prices
- Added a webhook signature-verification example, idempotency and rate-limit guidance, an integration checklist, and the exact AB 723 wording on altered images
A day-to-dusk API converts a daytime exterior photo into a twilight version over HTTP: you submit the image and receive the result, typically by webhook or polling. AI HomeDesign, InstantDeco, Virtual Staging AI, Collov and Roomagen document one.
Day to Dusk Photo Editing
Turn a daytime exterior or room photo into a sunset, dusk or night photo with warm window glow. Pick the hour on a 24-hour slider; 2 credits per photo.
What a Day-to-Dusk API Does — and Who Needs One
A day-to-dusk API takes a daytime photo of a building and returns a twilight version: a darker, graduated evening sky, interior lights switched on, and ambient light that matches the new hour. You send the image in an HTTP request, the provider runs a generative image model on it, and you collect the result by webhook or by polling. No editor touches the file, which is the point: the conversion becomes a pipeline step instead of a purchase order.
Twilight images have always been awkward to produce. A real dusk shoot needs a second visit at the right hour and cooperative weather, and manual editing runs on a human queue. Demand is growing anyway. At the real estate photography company HomeJab, virtual twilight was "the fastest-growing enhancement in 2025", and its "average order volume rose from just 1% in mid-2024 to over 7% by September 2025" (HomeJab). That is one company's order mix, not an industry census, but it shows where photography buyers are spending.
You will also see widely shared figures claiming that twilight photos lift listing views or showings by a fixed percentage. We have left them out: the ones we traced did not lead back to a primary study.
For one agent with one listing, a web app is enough. The API question comes up when twilight has to happen hundreds of times a month without anyone clicking: real estate photography companies selling twilight as a per-listing add-on, listing portals upgrading cover images across a catalogue, brokerage marketing teams generating assets automatically, hotel and short-let platforms that want an evening hero shot for every property, architects showing a finished building in evening light, and proptech products that want twilight as a feature rather than a vendor relationship.
Three Ways to Get a Twilight Shot: At a Glance
| Method | Cost per image | Turnaround | How it scales | Weather risk |
|---|---|---|---|---|
| Real twilight shoot | $200–$750 for a twilight photo (PhotoUp's 2026 estimate) | A return visit at dusk | Limited by one short dusk window per evening | High |
| Manual editing service | US$4–5 per day-to-dusk edit at BoxBrownie (October 2026) | Within 24 hours (BoxBrownie's stated commitment) | A human editing queue | None |
| Day-to-dusk API | About $0.05–$0.25 at most of the published rates compared below; some plans and monthly billing cost more | Seconds to minutes per job (Roomagen's docs: typically 20–60 seconds) | Parallel jobs, up to each provider's rate limits | None |
A real twilight shoot is still the reference. A photographer on site at dusk records real ambient light, real reflections and the lights actually in the house; nothing has to be predicted. It costs more because it is a separate trip at a fixed hour: PhotoUp's 2026 pricing guide says "a basic daytime shoot might cost $200 to $400 for a set of stills, compared to $200 to $750 for a twilight photo" (PhotoUp). An overcast evening means rescheduling.
Manual editing services have a person convert the daytime photo. BoxBrownie's pricing page showed day to dusk at US$4.00 per image in some of our October 2026 checks and US$5 in others, so confirm the price you are shown (BoxBrownie pricing). Its service page says "we guarantee to complete your images within 24 hours" for day-to-dusk projects (BoxBrownie). That suits a single listing; a human queue does not work as a same-day step across thousands of photos.
API conversion runs a generative model on the photo programmatically. It is the only one of the three that behaves like infrastructure: you can wire it into an upload flow, batch it overnight and price it into a per-listing margin. The trade-off is that the model predicts light it never saw, so you need a quality check and a disclosure plan.
What a Good Day-to-Dusk Conversion Requires
Day-to-dusk is one of the harder edits to automate convincingly, because the model has to light sources that were dark in the source image and relight everything around them. Whether you are evaluating a provider or auditing your own output, check five things.
Window glow. Lit windows are the "someone is home" signal of a twilight photo. A good conversion uses a warm, consistent color temperature, varies brightness between rooms, and leaves some windows dark. Every window glowing at exactly the same brightness is a typical tell of a weak conversion.
Sky gradient. A dusk sky graduates from deep blue overhead to warm tones near the horizon, on the side where the sun went down. Watch for flat single-color skies and horizon glow that contradicts the shadows.
Ambient and reflection consistency. When the sky changes, everything it touches must change with it: paving darkens, glass and water pick up the new sky, and hard midday shadows soften. A dusk sky over a noon-lit lawn is a sky replacement, not a day-to-dusk conversion.
Structure preservation. The building must not change: no shifted rooflines, repainted siding, or new porch lights and garden fixtures. For listing photos this is a compliance issue as well as a quality one, because an edit that changes the physical property crosses from enhancement into misrepresentation.
View and surroundings. What is visible through the windows and around the building should stay what it is. Some APIs can render a different view or season on purpose; for marketing a real property, leave those options off.
As a review checklist for vendor trials and ongoing audits:
| Check | Pass looks like | Fail looks like |
|---|---|---|
| Window glow | Warm, varied brightness; some windows dark | Every window equally bright |
| Sky gradient | Deep blue overhead, warm horizon, one sun direction | Flat single-color sky; glow contradicts shadows |
| Ambient consistency | Ground, glass and water reflect the new sky | Noon-lit lawn under a sunset sky |
| Structure | Building and fixtures as in the source | New lights, changed siding or geometry |
| View and surroundings | Same view, trees and neighbors as the source | New view, different season, missing poles or wires |
For automated pipelines, sample-audit a fixed share of outputs every week against this table and decide your regeneration policy before launch, so a bad render has a programmatic path instead of a support ticket. The sky is the easy part; window glow and ambient consistency are where conversions differ.
The Day-to-Dusk API Landscape in 2026
Many tools convert day to dusk in a web interface. Fewer document it as an API you can build on. These five do, with prices as published in October 2026:
| Provider | How day-to-dusk is exposed | Result delivery | Published price | Notes |
|---|---|---|---|---|
| AI HomeDesign | One of five services on its REST API | Webhooks | $0.24 per photo on yearly billing ($588 a year for 200 photos a month); yearly billing "saves 51% versus monthly" | Free credits at signup; outputs carry no AI HomeDesign branding |
| InstantDeco | day_to_dusk transformation type: "Darkens the image, turns on interior lights, and changes the sky to dusk" |
webhook_url callback with a link to the image |
$49 a month on annual billing or $79 monthly for 500 photos; $99 or $139 for 2,000; extra photos $0.05–$0.15 | Roughly $0.05–$0.16 per photo at full plan use; cancel any time |
| Virtual Staging AI | Day-to-dusk render type in its v2 API, with Dusk, Golden and Blue sky styles | Webhooks (recommended for production) or a synchronous wait | API access comes with the Enterprise plan: $79 a month on yearly billing for 150 photos; no day-to-dusk rate is listed | Staging and enhancement on the same API |
| Collov | "Virtual twilight" and "natural twilight" endpoints on its Enterprise API | Twilight calls return the generated image URL; its async tasks are polled | API access comes with the Enterprise plan: $127 a month on yearly billing for 526 photo credits; extra photos $0.24 | Documented limits: 10 requests per second, 2 concurrent tasks |
| Roomagen day-to-dusk API | day-to-dusk and day-to-dusk-exterior, both documented, on one jobs API |
Signed webhooks or polling | $0.20–$0.25 per image in prepaid packs: 500 for $125, 2,500 for $550, 10,000 for $2,000 | 50 free images on the first key, watermarked until you buy a pack; failed jobs refunded automatically |
Roomagen is our own API, so here is where it stands: keys have been self-serve since August 30, 2026, packs never expire and they stack, one key covers every documented tool, and our image tools run on Google's Gemini image models. The worked example below explains which of the two day-to-dusk slugs to use.
How to narrow the list:
- Need push delivery? AI HomeDesign, InstantDeco, Virtual Staging AI and Roomagen document webhooks; Collov's docs describe polling, and its limit of two concurrent tasks matters for large backfills.
- Lowest published rate? InstantDeco has the lowest per-photo rates in this table and offers monthly billing; budget for quality testing and regenerations before committing volume.
- No subscription? Roomagen sells prepaid packs; the other four sell plans, and the AI HomeDesign, Virtual Staging AI and Collov prices above assume yearly billing.
- Control over the look? Roomagen takes a target hour from 0 to 23, Virtual Staging AI offers three sky styles, and Collov offers two twilight variants.
- Always: run the same 20–50 of your own exteriors through every shortlisted API and score them with the checklist above.
Watch for an adjacent category in the same searches. A sky replacement swaps the sky, sometimes for a dusk-colored one, and leaves windows, ground and reflections as they were. If a vendor's demo shows a changed sky but unchanged windows and shadows, you are looking at sky replacement priced as twilight conversion.
Automating It: A Worked Example
Here is the automation loop on Roomagen's API. The shape (submit a job, receive a callback, store the result, handle failures) carries over to the other providers with different field names. The full reference is in the Roomagen API quickstart.
Step 0: pick the right slug. GET /v1/tools returns every slug your key can call; read it rather than hardcoding names. Two matter here:
day-to-duskis the interior slug. It runs the same tool as Time Shift Interior in our web app: a target hour from 0 to 23 (timeShift, default 20), an optional window view (viewType, defaultnone, which keeps the real view), aseasonthat only applies to a rendered view, andhasWindowsfor rooms without windows.day-to-dusk-exterioris the facade tool behind Time Shift Exterior. It analyzes the photo first, then applies the hour (timeShift, default 20) and an optionalseason. It has been documented since October 3, 2026; test it on your own exteriors before you depend on it.
Step 1: submit the job. Send the daytime exterior by URL:
curl -X POST https://api.roomagen.com/api/v1/jobs \
-H "X-Api-Key: $ROOMAGEN_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: listing-1042-front-dusk" \
-d '{
"tool": "day-to-dusk-exterior",
"image_url": "https://cdn.example.com/listing-1042/front.jpg",
"options": { "timeShift": 20 },
"webhook_url": "https://example.com/hooks/roomagen"
}'
The API answers 201 straight away with a job_id, "status": "processing" and images_charged: one image at the default 2K, two if you add "resolution": "4K" to options. The source must be a public https URL serving JPEG, PNG or WebP up to 20 MB, or the file inline as image_base64. The Idempotency-Key makes retries safe: the same key and body after a timeout return the original job, with no second charge. Derive it from your own records, such as listing and photo IDs, never from a random value you do not store.
Step 2: receive the result. Roomagen's docs say jobs are typically ready in 20–60 seconds. With a webhook_url on the job (or an account-wide endpoint set in the developer portal), Roomagen POSTs the finished job to you: the object GET /v1/jobs/{id} returns, plus an event field set to job.completed or job.failed. Verify the signature first. It is an HMAC-SHA256 over the timestamp and the raw request body, signed with your whsec_ secret:
import crypto from "node:crypto";
import express from "express";
const app = express();
app.post("/hooks/roomagen", express.raw({ type: "application/json" }), async (req, res) => {
const ts = req.get("X-Roomagen-Timestamp") ?? "";
const sig = req.get("X-Roomagen-Signature") ?? "";
const expected = "v1=" + crypto
.createHmac("sha256", process.env.ROOMAGEN_WEBHOOK_SECRET)
.update(`${ts}.${req.body}`)
.digest("hex");
const got = Buffer.from(sig);
const want = Buffer.from(expected);
const fresh = Math.abs(Date.now() / 1000 - Number(ts)) < 300;
// Compare byte lengths first: timingSafeEqual throws when they differ.
if (!fresh || got.length !== want.length || !crypto.timingSafeEqual(got, want)) {
return res.sendStatus(401);
}
const job = JSON.parse(req.body);
await enqueueResult(job); // your code: de-duplicate on job.job_id, then store
res.sendStatus(200);
});
Delivery is at-least-once with no ordering guarantee, and a failed delivery is retried, for up to five attempts over about 36 minutes. Treat webhooks as an optimization, not a system of record: reconcile anything you never received with GET /v1/jobs/{id}. For low-volume scripts, polling every 2–5 seconds is fine; stop on completed or failed.
Step 3: store the pair. Download the render from result_urls and attach it to the listing. Results are served from Roomagen storage under retention limits, so keep your own copy rather than hot-linking, and keep the original daytime photo, the job ID and an "altered" flag in the same record. The job object returns results, not originals, and you will need the original for disclosure and QA. Renders carry a Roomagen watermark until the account buys a pack; after that, API output carries no Roomagen branding or watermark.
Step 4: handle failures in code. Some jobs are rejected at submission (invalid_image, image_fetch_failed), and a few fail during generation (generation_failed), ending with status: "failed", a human-readable error and an automatic refund. A sensible policy: retry once, then publish the daytime photo and flag the listing for review. With any provider, find out what a failed generation costs, because failures without refunds quietly raise your real per-image price.
That is the entire integration: one POST, one webhook handler, a storage step and an error branch. The same request shape covers Roomagen's other documented tools, such as virtual staging, virtual renovation, image enhancement, item removal and floor plan to 3D, so adding one is a new tool value and options, not a new integration. For a longer walk-through with a front end, see our virtual staging API tutorial.
Batch Strategy for Photo Companies and Portals
Single-photo conversion is the demo; batch conversion is the business case. Four patterns make batch conversion work for media companies and listing platforms.
Convert the cover exterior, not the library. Put the twilight version where it is seen first, the cover photo in search results and listing cards, and convert one front exterior per listing. That keeps the cost to one image per listing and is the simplest way for a photography company to price twilight as an add-on.
Run backfills as a nightly job. Query listings without a twilight cover, submit jobs with idempotency keys built from listing and photo IDs, collect the webhooks, and publish in the morning. Stay inside the rate limits: Roomagen accepts 60 job submissions per minute per key, so a 1,000-photo backfill needs about 17 minutes just to submit. Call GET /v1/account first, which returns how many images the key can still render, and alert on a low balance before the run rather than halfway through it.
Do the margin math per usable image, not per API call. On Roomagen's packs an image costs $0.20–$0.25. A photography company converting 500 covers a month spends $125, against US$2,000–2,500 for the same 500 edits at BoxBrownie's US$4–5 list prices. Then add your regeneration rate: if one image in five needs a second attempt, a $0.25 image costs $0.30 per usable result. Even with QA time on top, the gap to manual editing, and to $200–$750 twilight shoots, stays wide. The first key comes with 50 free images for testing.
No code? Use batch in the web app. Teams that do not want to integrate can run Time Shift on several photos at once in Roomagen's web app. On paid plans, tick photos in the Library or drop them in together: Starter takes 3 photos per batch, Pro 7 and Business 20, with one tool per batch. Each batch gets its own Library folder with live progress and a ZIP download, failed photos are refunded, and Time Shift Interior lets you set windows, view and season per photo. The API has no batch endpoint; there you send one job per image.
When Not to Convert a Photo
An automated pipeline needs explicit skip and routing rules, because not every photo should become a twilight photo.
Skip photos that are already dusk or night shots. There is nothing to gain from converting a real twilight photo again, and a second pass can over-darken it. If your pipeline cannot reliably tell the time of capture from EXIF data or brightness, send ambiguous images to human review instead of converting blind.
Route interiors and exteriors to the right tool. An exterior conversion is about the facade, the sky and the windows seen from outside; an interior conversion is about room light and the view through the glass. Classify photos first and send each to the matching tool (on Roomagen, day-to-dusk-exterior or day-to-dusk). Skip rooms without windows, or send hasWindows: false, which tells the model there are no windows to fill.
Skip poor source material. Heavily backlit facades, motion blur and low-resolution photos tend to give weak twilight renders, because the model amplifies whatever is ambiguous in the source. Fix them first with image enhancement or HDR photo editing, or reshoot.
Do not change the view of a real listing. Some APIs, ours included, can render a different view through the windows or a different season. Our own docs put it plainly: "Change the light freely; change the facts deliberately." For listing photos, keep viewType and season at none.
Know where the compliance line sits. California's AB 723 added Business and Professions Code §10140.8, and the state's real estate regulator says: "As of January 1, 2026, licensees must also comply with Bus. & Prof. Code section 10140.8 when using digitally altered images in real estate advertising" (California DRE). The statute covers images altered "to add, remove, or change elements", including "elements outside of, or visible from, the property" such as "views through windows". It excludes images where "only lighting, sharpening, white balance, color correction … or other common photo editing adjustments are made that do not change the representation of the real property" (AB 723). An AI twilight conversion replaces the sky and lights up sources that were dark, so the cautious reading is to treat it as altered: put a disclosure statement on or next to the image and link to the unaltered original, as §10140.8 requires. MLS rules add their own labels and photo-order requirements; our AB 723 guide and MLS photo requirements guide cover the details.
Responsibility sits with the advertiser, not the tool. The same advisory says that if an AI tool produces misleading advertising, "responsibility under current law rests with the licensee and their responsible broker, not the technology provider." If you run a platform that converts photos for agents, make disclosure easy by carrying the altered flag and the original through your pipeline. Roomagen's API does not add disclosure labels or keep originals for you, so build that into your own records.
Integration Checklist
- Run the same 20–50 of your own exteriors through two or three providers and score them with the five checks above.
- Read slugs from the API (
GET /v1/toolson Roomagen) instead of hardcoding marketing names. - Derive idempotency keys from listing and photo IDs so a retry never charges twice.
- Use webhooks in production, verify every signature, de-duplicate on the job ID, and reconcile missing callbacks by polling.
- Store the original, the result, the job ID and an "altered" flag together; download results instead of hot-linking.
- Route exteriors and interiors to the right tool, and skip photos that are already dusk.
- Leave view and season options off for real listings.
- Check the remaining balance before each batch.
- Sample-audit a fixed share of outputs every week, with a regeneration policy agreed in advance.
- Show a disclosure and a link to the original wherever a converted image is published.
The Bottom Line
Twilight photos are a case where demand, economics and tooling point the same way. Virtual twilight was the fastest-growing enhancement at HomeJab in 2025, an API conversion costs cents where a manual edit costs dollars and a dusk shoot hundreds, and at least five providers now document a day-to-dusk API. For photography companies, portals, hospitality platforms and proptech products, day-to-dusk has become an infrastructure decision (a pipeline step with a webhook, a refund policy and a QA checklist) rather than a photography decision. Price it per usable image, and build skip rules and disclosure metadata in from day one.
To judge the output before writing code, try day to dusk photo editing in Roomagen's web app; for facades, the mode is virtual twilight for exteriors. The free plan's 6 one-time credits cover three watermarked runs. When you are ready to automate, the day-to-dusk API page has pricing, and your first API key comes with 50 free images.
Ready to transform your listings?
Try Roomagen's AI virtual staging for free. Upload your first photo and see the result, usually in under a minute.
Start FreeSources & References
- 1.HomeJab – The Top Real Estate Photography Services of 2025
- 2.PhotoUp – Real Estate Photography Pricing in 2026
- 3.BoxBrownie – Pricing
- 4.BoxBrownie – Day to Dusk
- 5.AI HomeDesign – B2B API and Enterprise Plans
- 6.InstantDeco – Virtual Staging API
- 7.Virtual Staging AI – v2 API Core Concepts
- 8.Virtual Staging AI – Pricing
- 9.Collov – Enterprise API Documentation
- 10.Collov – Pricing
- 11.California Legislature – AB 723 (Business and Professions Code §10140.8)
- 12.California DRE – Artificial Intelligence in California Real Estate (Licensee Advisory, March 17, 2026)
Frequently Asked Questions
Written by
Roomagen Team
The Roomagen team creates in-depth guides about AI virtual staging, real estate photography, and property marketing strategies to help agents and professionals stay ahead.





