What it does
POST a natural language intent and IntentFlow assigns a relay_id and dispatches the work for async processing. Returns a retrieve_url you can poll for the result. Use this as a clean boundary when one agent delegates work to another — no shared state, no in-process coupling, no framework lock-in. The relay model makes it trivial to chain agents across organisations, machines, or runtimes.
When to use it
- A planning agent dispatches research subtasks to a fleet of research agents
- Multi-stage workflows where each stage runs in a different runtime
- Async work where the caller does not need to block on the result
- Cross-organisation agent collaboration with a clean payment boundary
Request schema
{
"intent": "Summarise the latest Ethereum gas prices and suggest a low-fee window today"
} Response schema
{
"relay_id": "rly_7ea9afac-c3d1-4b2e-9f3a-1234abcd5678",
"retrieve_url": "https://intentflow.melis.ai/retrieve/rly_7ea9afac-c3d1-4b2e-9f3a-1234abcd5678",
"status": "queued",
"payment_hash": "0x..."
} Code example — TypeScript via MCP
Install the MCP server once; all 22 services become tool calls.
// Configure @melis-ai/x402-tools-mcp in your MCP client
// Then call the tool:
const result = await mcpClient.callTool("intentflow", {
"intent": "Summarise the latest Ethereum gas prices and suggest a low-fee window today"
});
console.log(result);
// ["relay_id","retrieve_url","status","payment_hash"]... → MCP setup guide Code example — Python via direct HTTP
import requests
# x402 payment header must be set by your wallet client
# See x402.org for client libraries
headers = {
"Content-Type": "application/json",
"x-payment": "<signed-x402-payment-header>",
}
resp = requests.post(
"https://intentflow.melis.ai/relay",
json={
"intent": "Summarise the latest Ethereum gas prices and suggest a low-fee window today"
},
headers=headers,
)
print(resp.json()) Code example — curl with internal key bypass
For testing with an issued internal key (skips x402 payment flow):
curl -X POST https://intentflow.melis.ai/relay \
-H "Content-Type: application/json" \
-H "x-internal-key: YOUR_KEY" \
-d '{"intent":"Summarise the latest Ethereum gas prices and suggest a low-fee window today"}' How is this different from alternatives?
IntentFlow vs In-process function call
Direct function calls couple agents in the same runtime. IntentFlow is the right choice when the receiving agent runs in a different process, machine, or org — the retrieve_url pattern lets the caller move on while work happens async.
IntentFlow vs Inngest / Trigger.dev / Temporal
Inngest, Trigger.dev, and Temporal are full workflow runtimes with retries, durability, and dashboards. IntentFlow is a pay-per-call relay — no account, no infrastructure, just an HTTP POST. Use the workflow runtimes when you need durability guarantees; use IntentFlow for lightweight agent-to-agent handoffs.
FAQ
Does it work without an account?
Yes. x402 is account-less. Your agent's wallet signs the payment and retries automatically. No registration, no API key, no subscription.
What happens on failure?
Returns HTTP 400 if intent is missing or empty. Returns HTTP 503 if the dispatch queue is unavailable. No settlement on any non-2xx response.
What is the rate limit?
None published.
Is this open-source?
The service code is closed-source for security reasons. The MCP wrapper that calls it is open-source and MIT-licensed: github.com/mizukaizen/x402-tools-mcp .
Who built this?
Part of the melis.ai agent infrastructure stack. Running on a dedicated Helsinki VPS since early 2026. Contact sean@melis.ai.