Skip to content

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/upscale with "quality": "pro", and the AI video routes (POST /v1/video/generations, /v1/video/avatar, /v1/video/dub) take an optional quote_credits: the price your user accepted. If the price has moved, the start is refused with 409 price_changed, carrying quoted_credits and current_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 https on port 443, with no credentials and a public host; anything else is refused with 400 url_blocked and field naming the parameter. See URL refused.
  • Kling V3 video has two modes and a corrected price. kling-v3 and kling-v3-omni on /v1/ai/generate/video take mode: standard (default, 720p) at $0.084/s and pro (1080p) at $0.112/s; 5 s costs $0.42 / $0.56. duration is 5 or 10 seconds and resolution is 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 refunded 424 with the code in the detail text for API keys, a 503 with detail.code over MCP (OAuth). See Pricing not configured.
  • IDA Q Image 2 (ida-q-image-2) is available on POST /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 with character_id in 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_processing with the consent_version from GET /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-* answers 404 while the feature is disabled (or the pricing snapshot is not loaded yet); retry later.
  • Prices are not listed in these pages. Every quote returns the exact price for your account, and GET /v1/pricing lists the USD rates under the keys aiw-character-create, aiw-character-lock, aiw-productshot-std, aiw-productshot-premium-fee, aiw-videoedit-s, aiw-music-edit and aiw-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:

MeterRatePer 1024x1024 image
Image 2.5 Pro image output$106.00 / 1M tokens1024 tokens = $0.108544
Image 2.5 Pro image input (edits only)$8.00 / 1M tokens1024 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-pro now costs $0.108544 per image from the USD wallet. If you hard-coded the old figure for forecasting, double it. GET /v1/pricing reports it as verified: true — the rate is Microsoft's own list price, not a conversion.
  • mai-image-2.5 ($0.037) and mai-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_modelPer 5 s scene4-scene story
seedance-1-50.1306800.522720
seedance-2-0-mini (default)0.3811501.524600
veo-3-1-fast0.3200001.280000
wan / happyhorse0.5000002.000000
seedance-2-0-fast0.6098402.439360
seedance-2-0-pro0.7623003.049200
veo-3-10.8000003.200000
seedance-2-51.1652304.660920

What to change in an integration:

  • video_model now decides your bill. Read cost_usd off the step 4 response rather than assuming a fixed line item, and pick seedance-1-5 if price is the constraint — it is 3x cheaper than the default and 9x cheaper than seedance-2-5.
  • story_step_videos is no longer a price key and has left GET /v1/pricing. The ledger now labels each charge story_step_videos:<model>, so a charge names the model that caused it. story_step (0.267953), story_regenerate (0.160772) and story_full (1.607717) are unchanged.
  • A duration snaps down onto the model's own ladder. duration_per_scene: 5 on 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/generate charges its estimate up front and reports any refund in a new event: billing frame carrying refunded_usd, scenes_rendered and scenes_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 until pending is 0 before 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.

PayBonusCredited
$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/plans returns {"plans": []}. Still a 200; simply nothing to iterate.
  • GET /v1/tiers/compare no longer carries price_monthly or monthly_credits (they quoted PLN prices for plans nobody can buy). It now states currency: "USD", billing_model: "prepaid_wallet_usd", subscriptions_retired: true, and marks each row purchasable: false with an upgrade_path of "wallet_topup" or, for sub-enterprise, "contact_sales".
  • GET /v1/tiers/catalog still publishes its subscriptions array, because those rows are live rate-limit definitions for accounts that already held a sub-* tier. They are flagged purchasable: false, legacy: true.
  • bonus_credits → bonus_usd on every top-up response. The field never described credits; the wallet has only ever been in dollars.
  • Out of funds is 402 insufficient_funds, carrying required_usd, balance_usd, shortfall_usd and charged: 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: true on a repeat call); 404 if 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) on POST /v1/ai/assets/register — the asset self-deletes once it elapses. A background sweep runs every 15 minutes, so expiry is eventually consistent shortly after expires_at, not exact to the second. Omit it to keep the face until you delete it.
  • GET /v1/ai/assets and GET /v1/ai/assets/{asset_id} now also return retention_hours, expires_at, and purged_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/buckets accepts an optional region, but "eu" is the only value FOTOhub-managed storage accepts (default when omitted) — these buckets are stored in eu-central-1. Anything else is a 400 pointing you at output destinations for residency outside the EU.
  • PATCH /v1/buckets/:id rejects region outright with a 400: it records where the bytes already live, and a bucket cannot be relabelled into a different region without moving the data.
  • GET /v1/buckets and GET /v1/buckets/:id include region on 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, mp4 or mov output
  • 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_ids for 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.