Skip to main content

Web endpoints

Web endpoints are APIs specifically designed to receive and ingest data. They are made available when you create a new workflow, providing a unique URL to which you can send your data for processing.

This is the preferred method for publishing data to Zparse and triggering a workflow execution.

Choosing an endpoint​

Each endpoint corresponds to a function node you drop in your workflow. Pick the one that matches the shape of the data you are sending:

EndpointSendContent type
JSONA single JSON payloadapplication/json
FileOne filemultipart/form-data
BatchSeveral files in one callmultipart/form-data
FormMixed named fields — text, numbers, JSON, filesmultipart/form-data
MCPJSON-RPC calls from an AI agentapplication/json

Common behaviour​

All web endpoints share the same conventions:

  • URL shape — https://api.zparse.io/workflow/e/{type}/{workflow_uuid}/{node_uuid}, copied from the node in the workflow editor.
  • Authentication — an endpoint marked Public accepts anonymous calls. Otherwise send your access key in the Authorization header, see Authentication.
  • Extra headers — X-ZPARSE-IO-ATTR and X-ZPARSE-IO-AUTH are forwarded into the workflow as connectors, so you can carry your own context or run your own security check.

Synchronous or asynchronous​

Endpoints do not all answer the same way, so pick according to whether your caller needs the result back:

EndpointRunsAnswers with
JSONSynchronouslyThe wired responder's output, inline
FileSynchronously, ?mode=PlayAsync for asyncThe responder's output inline, or the tracker
BatchAsynchronously, ?mode=Play for syncThe tracker, or the responder's output inline
FormAsynchronouslyThe tracker — read the responder's output from it
MCPSynchronously, per tool callThe tool's JSON-RPC result

A synchronous call is held open until the workflow finishes and is bound by a server-side execution timeout; a run that exceeds it is marked as timed out. Prefer the asynchronous mode for long pipelines or large batches.

When a call answers with the tracker, an authenticated caller receives the tracker payload as JSON and an anonymous caller receives an empty 200 — either way the run continues in the background and can be followed from Workflow Monitoring.

An asynchronous call does not lose the responder's output: the responder still runs, and its payload is exposed on the corresponding tracker step as a download URL. Poll the tracker, then fetch that URL — see Retrieving a response.

To answer synchronously with your own payload, wire a responder to the endpoint: