Changelog
Track new models, features, and improvements to the FOTOhub API.
October 2026
Confirmed prices, media URL checks, Kling V3 modes and IDA Q Image 2 PRICE CHANGE
- Confirmed prices.
POST /v1/upscale/pro/video,POST /v1/video/upscalewith"quality": "pro", and the AI video routes (POST /v1/video/generations,/v1/video/avatar,/v1/video/dub) take an optionalquote_credits: the price your user accepted. If the price has moved, the start is refused with409 price_changed, carryingquoted_creditsandcurrent_credits, and nothing is charged. Re-quote, show, resend. Leaving the field out changes nothing. See Confirmed prices. - Media URLs are checked before any charge. A URL you pass for us to download or forward must be public
httpson port 443, with no credentials and a public host; anything else is refused with400 url_blockedandfieldnaming the parameter. See URL refused. - Kling V3 video has two modes and a corrected price.
kling-v3andkling-v3-omnion/v1/ai/generate/videotakemode:standard(default, 720p) at $0.084/s andpro(1080p) at $0.112/s; 5 s costs $0.42 / $0.56.durationis 5 or 10 seconds andresolutionis ignored. These pages previously listed $0.077/s and up to 15 s. Image prices for the same ids are unchanged. See Kling V3: mode and price. PRICING_NOT_CONFIGURED. A video model whose price is missing on our side is refused, never billed at a guessed price: a refunded424with the code in thedetailtext for API keys, a503withdetail.codeover MCP (OAuth). See Pricing not configured.- IDA Q Image 2 (
ida-q-image-2) is available onPOST /v1/ai/generate/image: asynchronous, with size tiers, presets, styles, palettes, layout boxes and transparent backgrounds, priced per image by tier and preset (GET /v1/pricing?model=ida-q-image-2), with a documented table of queue refusals. IDA Q 1.0 (ida-q-image) is billed per delivered image from the wallet; earlier pages listed it at $0.00. See IDA Q. - New reference pages: Upscale Pro, AI video, Compute jobs, Render and CPU tools.
sora-2-pro is 1080p-only and billed at 1080p
sora-2-pro always renders a 1080p frame (1920x1080, 1080x1920 or 1080x1080, chosen by aspect_ratio), but a request with "resolution": "720p" or "1024p" used to be billed that lower tier. Every sora-2-pro render is now billed what it renders, $0.70/s, and the response (and POST /v1/billing/estimate) returns "resolution": "1080p" with "resolution_requested" when you asked for something else. The listed rate is unchanged.
Character Studio, Product Shot, Video Edit by Chat and Music Edits NEW
Four new APIs, all under the same key, all priced from the API itself and all refunded when they fail. They are rolling out in stages: until a feature is enabled for your account its routes answer 403 feature_disabled and nothing is charged.
- Character Studio (
/v1/characters). Create a person, mascot or product character from 1-5 photos (with a consent declaration) or from a description. FOTOhub AI builds an identity sheet, checks every view, and you generate withcharacter_idin any image model that accepts reference images. A sheet with too few accepted views is refunded in full; the character-lock fee is charged only when the identity check accepts the image. - Product Shot (
/v1/aiwave/product-shot). A product photo on a studio or generated background, with the product's own pixels preserved, marketplace-compliant white backgrounds, 1:1 / 4:5 / 16:9 outputs, saved presets and batches with per-image charge, refund, retry and a results zip. Background removal and the image review (a 768 px preview sent to an AI vision model) run in the United States, so creating jobs needs a consent flag (consent_us_processingwith theconsent_versionfromGET /config). - Video Edit by Chat (
/v1/aiwave/video-edit). Sessions of plain-language edits on a selected range of a clip, with follow-ups, extensions, undo and revert. The edited range is spliced back into your original; the quote names the route and the billable seconds before you pay. The edited range is AI generated and the response carries the disclosure. - Music Edits (
/v1/aiwave/music-edit). Regenerate a section of a song, re-sing one lyric line, or get a soundtrack for a video or an image. Everything outside the edit stays sample-identical.
Both SDKs gain the same four namespaces in version 1.12.0: client.characters, client.product_shot (with .batches), client.video_edit, client.music_edit in Python, and client.characters, client.productShot, client.videoEdit, client.musicEdit in TypeScript. Charged calls take a request_id; the SDKs generate one and re-send it on retries, so a timeout never bills twice.
- Pricing while a feature is off.
GET /v1/pricing?model=aiw-*answers404while the feature is disabled (or the pricing snapshot is not loaded yet); retry later. - Prices are not listed in these pages. Every
quotereturns the exact price for your account, andGET /v1/pricinglists the USD rates under the keysaiw-character-create,aiw-character-lock,aiw-productshot-std,aiw-productshot-premium-fee,aiw-videoedit-s,aiw-music-editandaiw-soundtrack. - Processing locations are stated per feature. Parts of Character Studio and Product Shot run in the United States and video edits run at provider partners outside the EU; results are stored in the EU. Do not describe these features as EU-only processing in your own copy.
September 2026
MAI-Image 2.5 Pro is priced from Microsoft's meter BREAKING
mai-image-2.5-pro billed $0.053 per image. That figure was an estimate: when the model shipped, Microsoft published no price for the MAI-Image family — the pricing page rendered $- and the retail price API exposed the meters under letter codes only.
The meters are now published by name, and one render is $0.108544 — 2.05x the estimate:
| Meter | Rate | Per 1024x1024 image |
|---|---|---|
| Image 2.5 Pro image output | $106.00 / 1M tokens | 1024 tokens = $0.108544 |
| Image 2.5 Pro image input (edits only) | $8.00 / 1M tokens | 1024 tokens = $0.008192 |
| Image 2.5 Pro text input | $5.00 / 1M tokens | ~$0.001 for a 200-token prompt |
Only the image-output leg is charged: the prompt costs less than the wallet's smallest unit, and an edit is billed as a generation.
mai-image-2.5-pronow costs $0.108544 per image from the USD wallet. If you hard-coded the old figure for forecasting, double it.GET /v1/pricingreports it asverified: true— the rate is Microsoft's own list price, not a conversion.mai-image-2.5($0.037) andmai-image-2.5-flash($0.022) are unchanged, as is the credit price of all three on fotohub.app.- The whole family still returns one image per request and still caps at 1,048,576 pixels, so the price is flat across
"1K","2K"and"4K".
Pick mai-image-2.5 when you want the family's look at a third of the cost — Pro buys photorealism, character consistency and spatial reasoning, and Microsoft charges 2.9x for it.
Story Studio scene renders are priced per model BREAKING
POST /v1/story/step/videos starts one clip per storyboard frame — on any of nine models, at any length from 3 to 15 seconds, for up to six scenes — and used to charge one flat $0.535906 for all of it. That figure covered a four-scene story on seedance-1-5 and nothing else: the same request consumes $4.66 on seedance-2-5, and the largest one the route accepts (six 15-second scenes on 2.5) consumes $20.86.
Scene renders are now billed at the provider's own rate — per model, per second, per scene — from the same table /v1/ai/generate/video bills from:
video_model | Per 5 s scene | 4-scene story |
|---|---|---|
seedance-1-5 | 0.130680 | 0.522720 |
seedance-2-0-mini (default) | 0.381150 | 1.524600 |
veo-3-1-fast | 0.320000 | 1.280000 |
wan / happyhorse | 0.500000 | 2.000000 |
seedance-2-0-fast | 0.609840 | 2.439360 |
seedance-2-0-pro | 0.762300 | 3.049200 |
veo-3-1 | 0.800000 | 3.200000 |
seedance-2-5 | 1.165230 | 4.660920 |
What to change in an integration:
video_modelnow decides your bill. Readcost_usdoff the step 4 response rather than assuming a fixed line item, and pickseedance-1-5if price is the constraint — it is 3x cheaper than the default and 9x cheaper thanseedance-2-5.story_step_videosis no longer a price key and has leftGET /v1/pricing. The ledger now labels each chargestory_step_videos:<model>, so a charge names the model that caused it.story_step(0.267953),story_regenerate(0.160772) andstory_full(1.607717) are unchanged.- A duration snaps down onto the model's own ladder.
duration_per_scene: 5on a Veo model is a four-second clip, billed as four seconds — Veo renders 4, 6 or 8 and nothing else. - You are only charged for scenes that render. A scene whose keyframe failed in step 3 is never submitted and never quoted; anything the provider refuses is refunded against the same operation the moment step 4 returns.
POST /v1/story/generatecharges its estimate up front and reports any refund in a newevent: billingframe carryingrefunded_usd,scenes_renderedandscenes_requested. POST /v1/story/step/poll-videos— new, free, and the only way to get real clip URLs out of the step path. Poll it untilpendingis0before calling step 5 or 6.
Nine models are now selectable (seedance, seedance-2-0-mini, -fast, -pro, seedance-2-5, seedance-1-5, veo-3-1-fast, veo-3-1, wan, happyhorse). hailuo is retired — still accepted so live integrations do not start failing, but it renders on the default model. Full reference: Story Studio.
August 2026
Wallet top-up packages & volume bonus NEW
Twelve fixed top-up packages, and every one from $500 up pays a volume bonus in dollars credited to your wallet — not credits, not a discount code.
| Pay | Bonus | Credited |
|---|---|---|
| $15 / $25 / $60 / $120 | — | same |
| $500 | +5% | $525 |
| $1,000 | +10% | $1,100 |
| $2,000 | +12% | $2,240 |
| $3,000 | +13% | $3,390 |
| $5,000 | +15% | $5,750 |
| $7,500 | +17% | $8,775 |
| $10,000 | +18% | $11,800 |
| $15,000 | +20% | $18,000 |
A custom amount_usd earns the same ladder — $2,500 lands on the $2,000 rung and is credited $2,800. The bonus is floored to the cent, so the figure quoted before checkout is never above the figure granted after it. Nothing expires: a topped-up balance stays until you spend it.
Read the amount you actually received from total_credited_usd on the POST /v1/tiers/wallet/topup response, not from what you paid. (On the catalog, GET /v1/billing/topup/packages, the same figure per package is total_usd — that one is a quote, not a receipt.) The catalog is public, needs no key, and publishes the ladder itself as bonus_tiers alongside min_usd: 10 and max_usd: 15000. See Get Top-Up Packages.
Package slugs are not amounts
The four starter slugs are pre-USD names: topup-50 is $15, topup-100 is $25, topup-250 is $60, topup-500 is $120. The scale-* slugs do match their amounts (scale-1000 = $1,000). Send the slug, never the amount, as package.
API subscriptions retired BREAKING
POST /v1/tiers/subscribe now answers HTTP 410 for every tier, with use_instead: "POST /v1/tiers/wallet/topup". There is no paid API plan any more — the API is prepaid in USD, and rate limits are derived from your wallet balance and lifetime spend.
What this changes if you integrated against it:
GET /v1/billing/plansreturns{"plans": []}. Still a 200; simply nothing to iterate.GET /v1/tiers/compareno longer carriesprice_monthlyormonthly_credits(they quoted PLN prices for plans nobody can buy). It now statescurrency: "USD",billing_model: "prepaid_wallet_usd",subscriptions_retired: true, and marks each rowpurchasable: falsewith anupgrade_pathof"wallet_topup"or, forsub-enterprise,"contact_sales".GET /v1/tiers/catalogstill publishes itssubscriptionsarray, because those rows are live rate-limit definitions for accounts that already held asub-*tier. They are flaggedpurchasable: false,legacy: true.bonus_credits→bonus_usdon every top-up response. The field never described credits; the wallet has only ever been in dollars.- Out of funds is
402 insufficient_funds, carryingrequired_usd,balance_usd,shortfall_usdandcharged: false— a 402 moves no money and calls no provider. See 402 Payment Required.
To raise your limits, fund the wallet.
Credit figures in older entries below
Entries before this one price models in credits. That is the fotohub.app web app's unit and it does not apply to the API: an API call is charged in USD from the prepaid wallet at the provider's own rate, 1:1. A key holding web-app credits and a $0 wallet gets a 402. Current USD rates are on Model Pricing.
Registered face deletion & retention NEW
A registered virtual portrait (POST /v1/ai/assets/register) is biometric data, and it can now be erased on demand instead of only being written, never removed:
DELETE /v1/ai/assets/{asset_id}— deletes the face at the provider and records the erasure locally. Idempotent (already_deleted: trueon a repeat call);404if the asset is not yours;502— safe to retry — if the provider delete failed, in which case nothing was recorded as deleted.retention_hours(optional, 1-8760) onPOST /v1/ai/assets/register— the asset self-deletes once it elapses. A background sweep runs every 15 minutes, so expiry is eventually consistent shortly afterexpires_at, not exact to the second. Omit it to keep the face until you delete it.GET /v1/ai/assetsandGET /v1/ai/assets/{asset_id}now also returnretention_hours,expires_at, andpurged_at.
See Managing registered faces for the full reference and response shapes.
Storage bucket region field NEW
POST /v1/buckets and PATCH /v1/buckets/:id now surface region explicitly:
POST /v1/bucketsaccepts an optionalregion, but"eu"is the only value FOTOhub-managed storage accepts (default when omitted) — these buckets are stored ineu-central-1. Anything else is a400pointing you at output destinations for residency outside the EU.PATCH /v1/buckets/:idrejectsregionoutright with a400: it records where the bytes already live, and a bucket cannot be relabelled into a different region without moving the data.GET /v1/bucketsandGET /v1/buckets/:idincluderegionon every row.
This does not affect S3 Enterprise (/v1/storage/s3/*), which already provisions real AWS buckets across 16 regions — see Available Regions.
Seedance 2.5 NEW
seedance-2-5 — the longest single-request clip on the platform, and the first model that takes an existing video as input.
- 4-30 seconds in one request (every integer in range; nothing else reaches past 15s)
- Native audio included — the per-second rate is identical with audio on or off
- 480p / 720p, 24 fps,
mp4ormovoutput - 14.5 credits/s at 720p, 6.4 at 480p — a 30s 720p clip is 435 credits, a 5s 480p draft is 32
- Video-to-video editing and extension — attach a source clip and describe the change
- Up to 30 image + 10 video + 10 audio references, plus reusable
asset_idsfor face consistency
Note: 2.5 is not a superset of seedance-2-0-pro. It reaches 30 seconds but stops at 720p; 2.0 Pro reaches 4K but stops at 15 seconds. Pick per shot.
See the Seedance 2.5 reference for the full parameter set, the task types that lock aspect_ratio/duration, and editing examples. SDK support: client.generate_seedance() / client.generateSeedance() handles submit + poll transparently.
July 2026
IDA Q 1.0 NEW
FOTOhub's first proprietary image generation model, self-hosted on our own GPU infrastructure.
- Top-5 worldwide on the DesignArena Elo benchmark, ahead of Recraft, Krea 2, FLUX.2, Seedream, and Imagen 4 Ultra
- Best-in-class text rendering — clean headlines, labels, and signage
- Native multilingual prompts — automatic translation and scene restructuring for any input language, powered by FOTOhub's own prompt engine
- Priced at 0.5 credits/request (≈ $0.027 if billed from your USD wallet) — the cheapest image model in the catalog
- Asynchronous by design — single-GPU global queue, submit + poll pattern (30s–3.5min depending on resolution)
- SDK support:
client.generate_ida_q()/client.generateIdaQ()in Python & TypeScript — handles submit + poll transparently
See the IDA Q 1.0 API Reference for full documentation.
Veo 3.1, Veo 3.1 Fast, Gemini Omni Flash & Grok Video 1.5 NEW
Four new video models added to the catalog:
veo-3.1-generate-001("Veo 3.1") — Google's highest-quality video model. Native audio, up to 4K resolution, last-frame + reference-image support. 12 credits/second.veo-3.1-fast-generate-001("Veo 3.1 Fast") — Faster, lower-cost Veo 3.1 tier with native audio. 5 credits/second.gemini-omni-flash("Gemini Omni Flash") — Native audio generated automatically on every clip, no separate surcharge tier. 6 credits/second.grok-imagine-video-1.5("Grok Video 1.5") — The only generative video model with built-in lip-sync (portrait + script → talking head). 9 credits/second.
See the Video Generation Models catalog for full pricing across every provider.
Gabriel AI Orchestrator NEW
Full-featured AI orchestrator with natural language routing, prompt enhancement, and inline suggestions.
- 5 endpoints: classify, stream, suggest, recommend, translate
- Intelligent routing: "make a photo of a cat" → image generation, "create a video" → video generation
- Prompt enhancement: model-aware prompt optimization (Seedream, Seedance, FLUX, WAN architectures)
- Real-time suggestions: <50ms autocomplete as you type
- Proactive tips: context-aware recommendations based on credits, brand state, and usage history
- SDK support:
client.gabriel_classify()/client.gabrielClassify()in Python & TypeScript
Usage & Analytics API NEW
Real-time monitoring and cost analytics for all API operations.
- Per-model, per-endpoint, per-key cost breakdown
- Daily/weekly/monthly trend data
- Anomaly detection alerts
- Custom date range queries
Seedance Video UPDATED
Next-generation Seedance video generation now available under the seedance-2-0-pro model ID:
- High-quality, cinematic output
- Fast turnaround for social-format clips
- Billed at 47 credits per 5-second segment
Dola SeedDream 5.0 Pro UPDATED
Latest SeedDream variant with improved prompt following, better text rendering, and enhanced photorealism. 3 credits per image.
June 2026
Tier System v2 NEW
Complete billing overhaul with wallet-based pricing:
- PAYG auto-resolution (free → developer → startup based on usage)
- Wallet with auto-topup
- Per-project hard spending limits
- 4-hour burst allowances
- Enterprise tier with custom SLAs
Brand Assets System NEW
Upload and manage brand assets (logos, colors, fonts) for brand-consistent AI generation.
Veo 3.0 Improvements UPDATED
Improved temporal coherence for Google's Veo 3 video model. Note: this entry originally referred to "Veo 3.1" and listed a flat 15-credit generation cost — that was inaccurate. The real veo-3.1-generate-001 (12 credits/second, native audio, up to 4K) shipped in July 2026; see the entry below.
May 2026
FLUX 2 Models NEW
Full FLUX 2 lineup: Pro, Max, Flex, Klein 4B/9B. Best-in-class for artistic and creative generation.
Grok Video & Image NEW
xAI's Grok-powered generation models added to the catalog.
Webhook System UPDATED
HMAC-SHA256 signed webhooks with 3x retry, exponential backoff, and delivery logs.
Earlier
See the full API reference for comprehensive endpoint documentation.

