NEWVectors or files. Pick a path.Start →

    Changelog

    Release Notes

    New capabilities and performance improvements across the Mixpeek platform. Every entry links to relevant documentation and examples.

    October 2026

    PlatformFeature

    Try the Footage Intelligence template on sample footage before you sign up

    The Footage Intelligence template page now runs real searches over a public sample library of stock clips from Pexels and NASA. Pick one of the suggested queries, such as an aerial view of a coastline, or type your own, and each result plays the matching clip with its time range, credit and license. Deploying the template runs the same scene search over the footage you connect.

    DocsFeature

    Pricing page and billing docs describe plans the way invoices bill them

    Build ($25 a month) and Scale ($250 a month) are flat monthly fees, and usage is billed on top: on Managed, the usage beyond the plan's included pool ($10 on Build, $100 on Scale); on MVS, all metered vector usage. The pricing page, the MVS page and the billing docs had called the fee a minimum that usage counts toward. They now match the invoice, as do the storage rate ($1.56 per million vectors per month plus $0.023 per GB-month), Scale's 20% discount on overage in the estimator, and the speech transcript add-on at $0.024 per minute.

    EngineFeature

    Image and ColQwen extractors keep one document per video frame

    On a video, the image and ColQwen extractors sample frames and embed each one. The frame index was dropped before the document id was built, so the frames of a clip collapsed into a single document and only one of them could come back from a search. Each frame now gets its own document with its timestamp, so a search can return the frame that matched. PDF pages were already separate documents. Videos indexed before this change keep one document per clip until they are processed again.

    DocsFeature

    Self-hosted MVS: shard storage settings documented, and filesystem storage in private beta

    The bring-your-own object storage page listed the variables the API, coordinator and Ray workers read, and left out the ones the MVS shard reads. A self-hosted deployment that followed it started a shard with no store. The page now has a Shard settings section: mvs.objectStore for the Helm chart, or MVS_STORE_BACKEND (s3 or gcs) with the MVS_S3_* or MVS_GCS_BUCKET variables, pointed at the same bucket as the rest of the deployment. MVS can also keep its data on a POSIX filesystem such as local NVMe, NFS or Lustre. That backend is in private beta, and you turn it on for a deployment by contacting us.

    APIFeature

    Batch retriever execution takes up to 16 queries per request

    POST /v1/retrievers/{retriever_id}/execute/batch runs one retriever over a list of queries in a single round trip. The list now holds at most 16 queries. A request with 17 or more is refused with 422, and error.details.limits.max_queries says 16, so a client can split the set without parsing the message. The limit had been 50, and no customer request in the previous 30 days sent more than 16.

    EngineFeature

    Failed batches name each cause, and their failed objects read FAILED

    When every job in a batch failed, the batch error read "All N jobs failed. First error: ...", which looked like one cause even when there were several. It now adds a count of the distinct error types, for example "(4 distinct causes: ...)". A batch whose rows all failed also left each object reading COMPLETED with no error. Those objects now read FAILED with the error type and message, the same as objects that fail in a partly successful batch.

    APIFeature

    A queued batch says how many batches are running and when it retries

    A batch waiting for capacity showed "N of N concurrent batches are running" with N taken from the limit, even when fewer were running. The queue reason now counts the batches actually holding a slot. When the engine turns a batch away for capacity, the reason keeps the engine's own explanation and adds when the batch will be retried, or that it starts when another batch finishes.

    APIPerformance

    Batches waiting in the queue start as soon as an earlier multi-tier batch ends

    A batch with more than one extraction tier holds a slot from its first tier to its last. When the last tier had nothing to extract, such as a clip with no speech, or a later tier failed early, the finished batch kept its slot and the batches queued behind it waited until something else freed one. In one run that wait was more than 25 minutes. Both paths now give the slot back and start the next queued batch.

    Batching
    Vector StorePerformance

    Filtered reads and bucket object listings are faster on shared MVS

    A filter that matches a field at several paths at once, which the managed attribute filter does, made each count and scroll collect every point on the shard before narrowing. On the shared store that meant 14.1 million ids per call and scroll times around 5.4 seconds. Those groups now resolve from the index entries alone. Separately, listing a bucket's objects newest first now reads the order straight from the date index: on a 222,765-object bucket a 500-object page at offset 3,000 went from 0.31 to 0.19 seconds, and the first page from 0.08 to 0.045 seconds.

    StudioFeature

    New Studio accounts run a live search before choosing a plan

    The first signup step now opens with a search that runs as the page loads and shows four live results from a public demo, with a switch between a film-scene collection and an art collection, suggested queries and a free-text box. After paying, a new account lands on the dashboard rather than on billing settings.

    StudioPricing
    APIFeature

    Default system alerts notify once per cooldown, and the stalled-ingest alert names its bucket

    A default alert whose condition stayed true sent a new email and in-app notification on every check. It now notifies once, then waits for the alert's cooldown or re-notify interval, or 24 hours when neither is set, before notifying again. Every check is still recorded in the alert's history. The "no new objects" alert now carries the bucket it measured, so the notification says which bucket stopped receiving objects.

    Alerts
    PlatformFeature

    Account setup that fails partway is retried automatically

    Each new account gets a default namespace, collection and retriever. If a step failed during an outage, the account stayed half set up until someone fixed it by hand. A scheduled job now retries setup every 15 minutes for accounts more than an hour old, up to five times, and records the last error on the account.

    EnginePerformance

    Image extraction on CPU batch workers runs about 50 times faster

    A large image batch on CPU workers had been embedding about 185 images an hour. The model ran in bfloat16 on processors with no hardware support for it, so each image took about 20 seconds, and only one of the batch's worker CPUs was ever put to work. CPU batches now embed in fp32 and start one model copy per worker CPU from the beginning. In our test at the same worker shape, 3,414 images took 20 minutes, about 10,250 an hour, where the previous code managed about 180 an hour. GPU batches are unchanged.

    EngineFeature

    Failed audio fingerprint and Vertex embedding objects say why they failed

    When the audio fingerprint extractor could not read a file, the batch failed with a message saying it returned 0 rows, followed by a list of possible causes. Each object now carries a named error: an unsupported format, a video with no audio track, or a decode failure with FFmpeg's last lines of output. A video with no audio track is not retried. When a Vertex multimodal embedding fails, the object's error now carries the provider's message, where it had read "None/empty". A finished batch also takes its extracted and failed counts from its per-object record, so a row that failed extraction is counted as failed.

    APIFeature

    A retriever that times out with nothing to return answers 503, and you can retry it

    When a required stage hit its time limit before any results existed, the retriever answered 200 with an empty result marked degraded, which reads the same as a search that matched nothing. In our test of 30 executions over a million documents, 5 came back that way. It now answers a retryable 503 whose error names the stage and its time limit. A stage that times out after earlier stages returned results still answers 200 with those results, flagged degraded, and optional stages set to on_error skip behave as before. The attribute_filter stage also fails when the vector store does not answer its scroll; it had returned the documents fetched before the error, usually none.

    APIFeature

    Retriever stages read from the API can be posted back without unknown-key warnings

    A retriever stage read from a GET, a clone or a pinned revision in a resource.executed event carries a parameters field, which the API fills in as a copy of config.parameters. Posting that stage back flagged parameters as an undeclared key, and retriever execution flagged settings, including settings.limit, which the API translates itself. Both now count as declared, so they get no warning today and no 422 after November 2. A misspelled key next to them is still reported.

    Run the latest on your own files

    Everything above is live. Point Mixpeek at the storage you already have and search your video, images, audio, and documents through one API. Build starts at $25/mo for up to 1M vectors.