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 shapehttps://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 headersX-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: