Oct 10, 2025
5 min read
TLDR
MCP server is live. ChatGPT Apps and other MCP clients can call our tools with the same schemas, billing, and permissions as our HTTP API.
Sora v2 and Sora v2 Pro. Exact start‑image prep, cached outpaints when needed, stall detection, and direct streaming uploads.
Text‑to‑Speech now streams over SSE with typed events, progress, and early audio.
OAuth 2.1 and JWT in one place. Discovery, dynamic client registration, PKCE, hashed refresh tokens.
Marketing and analytics. TikTok server‑side events, improved pixels, and new edge‑rendered SEO pages.
MCP server: standard tools, zero surprises
We shipped a full Model Context Protocol server so MCP‑compatible clients, including ChatGPT Apps, can call the same tools our web and mobile apps use. The transport is SSE plus JSON‑RPC, and it supports streaming where it helps.
Tooling parity. browse_creations, create_image, create_video, get_hd_image and get_hd_video, purchase_media, publish_media, set_request_privacy, pricing, point packages, and more.
Same guardrails. Identical input schemas, billing rules, and owner checks as our HTTP API.
OpenAPI discovery. MCP clients can fetch our OpenAPI as a resource to self‑configure.
Auth that just works. Use the same JWT for HTTP and MCP. Public tools work without a token. Account writes require one.
Local safety. Optional DNS rebinding protections and allowed host lists.
OAuth 2.1 is built in for MCP. It includes discovery, dynamic client registration, authorization with PKCE, rotating hashed refresh tokens, and a minimal consent UI. Tokens are signed with our existing key so the rest of the stack does not change.
Sora v2 and v2 Pro: reliable start‑images and faster pipelines
We added first‑class support for Sora v2 and Sora v2 Pro, including strict start‑image preparation and smart fallbacks.
Exact sizing by model. 720×1280 and 1280×720 for Sora v2. 1024×1792 and 1792×1024 for Sora v2 Pro.
Two prep paths. Simple resize when the aspect matches and it is free. A conservative outpaint when it does not match and it is billed as a normal image generation. JPEG is forced for decoder stability.
Deterministic caching. We key by source, target size, and version so repeated requests skip work.
Provider integration. Streaming uploads for large outputs, plus a dedicated Sora status path instead of generic prediction polling.
Stall detection. We track progress and auto‑error if a job sits at a high percent too long, set at 15 minutes by default.
We also introduced a soft‑delete timestamp and a daily purge job for originals older than 30 days. This reduces storage cost and risk.
Streaming TTS over SSE
Text‑to‑Speech now streams with Server‑Sent Events. Clients receive metadata first, then audio chunks, progress events, and a final done signal.
Lower latency. Begin playback on the first chunk.
Typed events. Metadata, audio chunk, progress, done, and error events.
Simpler clients. One connection, no polling, and clear termination.
Auth, security, and developer ergonomics
One JWT for HTTP and MCP. Public reads work without a token. Writes require ownership.
OAuth storage. Clients, auth codes, and refresh tokens stored hashed. PKCE enforced where needed.
OpenAPI generation at startup keeps MCP discovery consistent with the HTTP surface.
A CLI inspector example makes local testing fast.
Analytics, pixels, and attribution
We tightened analytics and improved attribution for ads.
TikTok server‑side events. We capture attribution tokens on the client, attach them to purchases and CompleteRegistration, and send server‑side events for better match rates.
Pixels improved. New Meta Pixel IDs, safer initialization, and a centralized events manager so search, add‑to‑cart, page views, and purchases stay consistent.
Telegram Mini Apps. A dedicated runtime that avoids third‑party scripts when embedded, aligns viewport sizing, and adds Stars purchase flows with native invoices.
SEO and docs
Edge‑rendered pages for Events and Promo Code Claim with JSON‑LD FAQ and HowTo and controlled caching.
Sitemaps updated to include new pages and recent public media for image and video discovery.
Docs include multi‑language examples and router‑registration guidance. OpenAPI reflects new endpoints and enum updates.
For creators and teams
Custom ai models. End‑to‑end support for training, using, and billing custom models remains first‑class. Start‑image prep for Sora works with custom pipelines.
Text to image ai. The model randomizer and multi‑select workflows are easier to use, with accurate cost estimates for public and private runs.
Discount codes and affiliates. Buyers can apply codes with upfront validation. Admins can create, update, list, and delete codes, and issue affiliate payouts with receipts.
Quality of life
Comments. Full comment CRUD, mentions, counts, and notifications, plus NSFW consent overlays for safe browsing.
Training sets. Client‑side WebP conversion and thumbnailing, file limits and size guards, and correct zips during upload.
Admin stats. Live counters and compact charts for usage and revenue trends.
How to get started
MCP. Fetch the OpenAPI resource from the MCP server, register tools, and send your existing JWT in the Authorization header.
Sora. Supply a start image. We will resize or generate a cached outpaint to the exact target resolution automatically.
TTS. Connect to the SSE endpoint and handle metadata, audio, progress, and done events in order.
Discounts. Validate codes before checkout to display final USD and points accurately.
Coming next
We are tracking upcoming work in our public boards. No new cards were added to Up Next or In Progress since this cut. We will share more as those lists update.
Why this matters
These changes make our platform easier to integrate, faster to iterate, and clearer to operate. MCP removes glue code. Sora pipelines are predictable and cost‑aware. Streaming TTS lowers latency. Marketing gets better attribution. Admins get clearer controls. Creators get reliable tools for ai art with custom models. If you are building an ai art playground or a face forge generator, you can move faster with fewer surprises.
Come for the vibes, stay for the updates