Skip to main content
Send completed automated workflow executions to Fluency so they can be analyzed beside human executions of the same process. The TypeScript and Python SDKs are the recommended integration because they create IDs, measure timings, preserve failures, retry delivery, and enforce payload limits. Use this HTTP API when your runtime cannot use either SDK or when you are building a custom adapter. For SDK installation and integration examples, see Fluency AI Agent SDKs.
This is not meant to replace services like BrainTrust, LangTrace, and similar. This is taking telemetry from the business perspective, allowing you to optimize, manage, improve, and measure work against the broader business context.

Base URL

Fluency supplies the endpoint for your organization’s home region during onboarding. Store this as FLUENCY_WORKFLOW_ENDPOINT. Do not copy a URL from another Fluency organization or choose a region based on latency; an organization’s data remains in its assigned region.
FLUENCY_WORKFLOW_TELEMETRY_ENDPOINT is an internal Fluency Server setting. Customer workflows use FLUENCY_WORKFLOW_ENDPOINT.

Authentication

Send the organization-owned API key supplied by Fluency as a bearer credential:
The key must:
  • be owned by your Fluency organization;
  • include the workflow-telemetry:write permission; and
  • belong to an organization enabled for workflow telemetry.
The verified key determines the organization. Do not send an organization ID in the body, query string, or a custom header. Store the key in your secret manager. Use separate keys for workflows or deployments that need independent audit history, rotation, or revocation. Never include the key in prompts, step input/output, artifacts, logs, or source control.

Submit a run

The endpoint accepts one completed or failed workflow execution. Acceptance is durable, but process association and artifact reconciliation continue asynchronously.

Minimal request

Complete request

Run fields

Unknown fields are rejected.

Executor fields

For the organization API key flow, the submitted executor identity describes the workflow while the verified credential independently determines the organization and authorization.

Step fields

Steps may overlap or nest. Fluency calculates handling time from the union of measured step intervals so concurrent work is not counted twice.

Artifact fields

An execution artifact records what this particular run produced or observed. A business artifact identifies the underlying object across many human and automated executions.

Business artifact identity

Use one of these forms: Known Fluency artifact ID:
Namespaced source-system identity:
Register a source-system identity against a known Fluency artifact:
source and external_id must be supplied together. Make source specific enough to separate systems, environments, accounts, and record types. Display names are not stable identity. If no explicit business identity is supplied, Fluency may use exact structured identifiers and tenant-local semantic evidence. Ambiguous or conflicting evidence remains unlinked rather than merging unrelated objects.

Limits and validation

  • Maximum request body: 2 MiB.
  • Maximum steps: 1,000.
  • Maximum artifacts: 100.
  • Run, step, and artifact timestamps must be timezone-aware and ordered.
  • Every step interval must fall within the run interval.
  • Completed or failed runs cannot contain running steps.
  • IDs must be unique within the run.
  • All values must be valid JSON.
The SDK applies a smaller default snapshot limit of 1 MiB so it can reject oversized evidence before delivery.

Acceptance response

New evidence:
An identical retry:
Both responses use HTTP 200. accepted means Fluency durably stored the evidence. It does not mean asynchronous process matching has finished.

Check processing status

Example response:
process_id can be null until association succeeds. projection contains enrichment details and may gain fields during the private preview; clients should use processing_status and process_id for control flow. An organization API key can check runs submitted to its organization.

Idempotency and retries

run_id is the idempotency key across the organization.
  • Retry the exact same payload with the same run_id after a timeout or temporary server error.
  • An identical payload returns duplicate and does not create another execution.
  • Different evidence under an existing run_id returns HTTP 409.
  • Use a new run_id for every distinct execution, including a business-level retry that actually ran the workflow again.
Use exponential backoff with jitter for network errors and HTTP 5xx responses. Do not automatically retry other 4xx responses without correcting the request or credential.

Errors

Errors return a JSON body with a human-readable detail field. Never log the bearer credential while recording or reporting an error.

Process matching

Most customers should omit process_id. Fluency attempts association in this order:
  1. An explicit valid process_id, when supplied.
  2. A unique normalized workflow-name match.
  3. Grounded semantic matching against candidate processes in the authenticated organization.
  4. Creation or reuse of a workflow process when no safe existing match is available.
Fluency does not attach a run to a process when the evidence is uncertain. A matched human process keeps its existing process ID, allowing human and automated executions to appear together.

Delivery and privacy

  • The API accepts final snapshots, not live partial updates or arbitrary OTLP streams.
  • Inputs, outputs, artifact content, URIs, and error messages are stored when supplied.
  • Do not include credentials or secrets in captured evidence.
  • Omit sensitive values or use the SDK’s captureContent: false / capture_content=False mode.
  • Processing failures do not delete the raw accepted evidence.
  • The current API does not provide a customer endpoint for deleting individual runs.

SDK equivalents

TypeScript:
Python:
See Fluency AI Agent SDKs for installation, LangChain callbacks, OpenTelemetry adapters, delivery guarantees, and release-package verification.

Support information

When contacting Fluency, provide:
  • Fluency organization name;
  • executor.id;
  • run_id;
  • approximate UTC timestamp;
  • endpoint region;
  • SDK language and version, if applicable; and
  • HTTP status and error detail.
Never send the API key.