What we shipped.

Production-grade orchestration is a moving target. Releases, fixes, and policy changes ship from the docs and surface here automatically.

  1. List executions across all organization API keys

    API

    List executions across all organization API keys

    • GET /v1/executions now returns execution history for every API key in the organization that owns the authenticated key. A cost or usage pipeline no longer needs one request per key, and a newly created key is included automatically instead of silently dropping out of reporting.
    • Behavior change: this endpoint previously returned only the executions created with the authenticated key. There is no way to ask for that narrower result, so a caller that depended on it now receives its whole organization.
    • Scope never widens past your own organization. The query parameters and the response shape are unchanged.
    Read on docs →
  2. List your workflows over REST

    each::workflows

    List your workflows over REST

    • GET https://api.eachlabs.ai/v1/workflows returns the workflows in your organization, newest first. It was previously reachable only from the dashboard.
    • Filter with category, keyword, and node_based; order with sort_key and sort_direction (both are needed for either to apply); page with limit (default 50, max 100) and offset.
    • offset in the response is the next page's start rather than an echo of the one you sent, and it is present whenever the page came back full — page until a page returns fewer than limit rows.
    • Rows carry summary fields only. Use Get Workflow for a workflow's versions and definition.
    Read on docs →
  3. All workflow endpoints are documented on api.eachlabs.ai

    each::workflows

    All workflow endpoints are documented on api.eachlabs.ai

    • Every documented workflow REST endpoint now lives on https://api.eachlabs.ai/v1, including get workflow, update workflow, and the public workflow read and trigger routes.
    • Update Workflow accepts name only. The previously documented description, locked, and production fields were never honored; categories worked on the legacy host but is no longer updatable through this endpoint and is ignored if sent. A rename regenerates the workflow slug.
    • The public workflow trigger returns {"execution_id": "...", "status": "queued"} on 202. The started_at field the docs claimed was never returned.
    • The categories endpoint is no longer documented.
    • workflows.eachlabs.run keeps serving existing callers unchanged — this is a documentation move, not a breaking change.
    Read on docs →
  4. Video API documentation is now public

    each::video

    Video API documentation is now public

    • The Video API documentation is now listed in the navigation under each::video: overview, quickstart, capabilities reference, billing and limits, MCP setup, and the acceptable-use, takedown, and versioning policies.
    • The API is in beta. It runs on https://api.eachlabs.ai as model eachlabs-video-api, covering transcoding, trimming, captions, packaging, and analysis capabilities.
    • The OpenAPI reference for the submit, poll, and cancel endpoints is published alongside the guides.
    Read on docs →
  5. See the requested LLM in Run History

    LLM Router

    See the requested LLM in Run History

    • Run History now shows the requested LLM beneath eachlabs-llm-router in both table and preview modes.
    • Routed runs are easier to distinguish without opening each execution.
    • API clients can read the same value from requested_model in GET /v1/executions; non-router executions return null.
    Read on docs →
  6. One authentication scheme and base URL across eachlabs APIs

    API

    One authentication scheme and base URL across eachlabs APIs

    • Authorization: Bearer YOUR_API_KEY is now the documented authentication method for all eachlabs APIs.
    • Workflow create, trigger, bulk-trigger, and execution endpoints are now documented on https://api.eachlabs.ai. workflows.eachlabs.run remains supported for workflow management endpoints.
    Read on docs →
  7. Audio endpoints: file transcription and streamed speech

    LLM Router

    Transcribe audio files and stream speech

    • The LLM Router adds two OpenAI-compatible audio endpoints: POST /v1/audio/transcriptions for file transcription and POST /v1/audio/speech for progressively streamed text-to-speech.
    • Transcription accepts files up to 25 MB — FLAC, MP3, MP4/M4A, OGG, WAV, or WebM — and returns json or verbose_json with optional word and segment timestamps. It answers in one response, with no prediction polling.
    • Speech returns raw MP3 or PCM bytes as synthesis progresses, so playback can start before the full clip is ready.
    • Both use the same API key and base URL as chat completions, so the OpenAI SDK works with a base URL change alone.
    Read on docs →
  8. Media uploads handle generic image MIME types more reliably

    API

    Media uploads handle generic image MIME types more reliably

    • File inputs can now detect supported image types from the file bytes when an origin serves a valid image as application/octet-stream.
    • This fixes valid customer images being rejected by compatible image-edit models.
    Read on docs →
  9. Faster, fresher execution history and error analytics

    Usage Analytics

    Faster, fresher execution history and error analytics

    • Run History and Error Analytics now use the same higher-capacity execution data path, keeping large workspaces responsive as their history grows.
    • Error Analytics combines hourly summaries with the latest runs, so recent failures appear without waiting for the next full aggregation window.
    Read on docs →
  10. Browse supported LLMs from the console

    LLM Router

    Browse supported LLMs from the console

    • Signed-in users can now explore the live LLM Router catalog without leaving the console.
    • Search and filter the available models, compare their capabilities, then open one preselected in the playground to start testing it immediately.
    Read on docs →
  11. Model pricing pages load reliably across pricing formats

    Pricing

    Model pricing pages load reliably across pricing formats

    Some Kling and MiniMax model pages could fail to load when a model used a fixed fallback price instead of a formula. Both pricing formats are now supported, so affected model pages and their cost estimates render normally.

    Read on docs →
  12. Prediction statuses are consistent across the API and its schema

    API

    Prediction statuses now match everywhere

    • The generated API schema now uses the same prediction status values as production responses, including error for failed predictions.
    • Generated clients can handle terminal failures and cancellation responses without translating between conflicting status names.
    Read on docs →
  13. Cloned workflows start cleanly at version 1

    each::workflows

    Cloned workflows start cleanly at version 1

    A cloned workflow could inherit the source workflow's active version number. Every clone now begins at version 1, giving it a clean and predictable version history of its own.

    Read on docs →
  14. Build workflows with up to 40 parallel branches

    each::workflows

    Build workflows with up to 40 parallel branches

    • A parallel step can now contain up to 40 branches, up from 10, for wider fan-out workloads in a single workflow.
    • The editor keeps large parallel steps readable with a scrollable branch list, cleaner connections, and zoom that fits very wide flows.
    Read on docs →
  15. Inspect workflow runs as a visual timeline

    each::workflows

    See exactly what happened in a workflow run

    • Workflow history now includes a builder-like flow diagram with live status updates and clear per-step inputs, outputs, errors, duration, and cost.
    • Failed runs surface their error at the relevant step, and parallel workflows show the final merged output instead of an intermediate branch.
    • You can switch between the new visual inspector and the classic detail view at any time.
    Read on docs →