API Reference | Diaphora Docs | Diaphora
FragsRouter OpenAPI
The REST API for running blueprints and managing the tools they call. Every request is authenticated with a bearer token and scoped to your workspace.
Version
v1
Base URL
/api/v1
Auth
bearer token
Authentication
Pass your key as a bearer token:Authorization: Bearer $DIAPHORA_API_KEY
Plans
Run stored or ephemeral plans and inspect the tool requirements each run depends on.
Run a plan
post/plan/{planId}/_run
Execute a stored plan by ID and return the full result once the run completes. Pass runtime parameters, auth overrides, and inline resources in the request body.
Path parameters
- planIdstring · uuidRequired
Request body · application/json
- parametersmapRequired
- auth_overridesauth_override[]
- typeenumRequired
- mcpapicp
- namestringRequired
- tokenstringRequired
- resourcesmap
- bodystring
Responses
200OKapplication/json
Schema execute_response_body is defined in a shared spec and isn't inlined here.
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/plan/{planId}/_run" \
-H "Authorization: Bearer $DIAPHORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{\n "parameters": {},\n "auth_overrides": [\
{\
"type": "mcp",\
"name": "…",\
"token": "…"\
}\
],\n "resources": {},\n "body": "…"\
}'
Stream a plan run
post/plan/{planId}/_stream
Execute a stored plan and stream progress and output as Server-Sent Events. Use this for long-running plans where you want incremental tokens and step-by-step updates.
Path parameters
- planIdstring · uuidRequired
Responses
200OKtext/event-stream
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/plan/{planId}/_stream" \
-H "Authorization: Bearer $DIAPHORA_API_KEY" \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-d '{\n "parameters": {},\n "auth_overrides": [\
{\
"type": "mcp",\
"name": "…",\
"token": "…"\
}\
],\n "resources": {},\n "body": "…"\
}'
ResponseCopy
event: token
data: {"delta":"…"}
event: done
data: {"status":"ok"}
Stream an ephemeral plan
post/plan/_stream
Run an unsaved (ephemeral) plan supplied inline in the request and stream the result as Server-Sent Events. Nothing is persisted.
Responses
200OKtext/event-stream
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/plan/_stream" \
-H "Authorization: Bearer $DIAPHORA_API_KEY" \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-d '{\n "parameters": {},\n "auth_overrides": [\
{\
"type": "mcp",\
"name": "…",\
"token": "…"\
}\
],\n "resources": {},\n "body": "…"\
}'
ResponseCopy
event: token
data: {"delta":"…"}
event: done
data: {"status":"ok"}
Refresh plan MCP requirements
post/plan/{planId}/_refresh-mcp-requirements
Re-evaluate the MCP servers a plan depends on and return the refreshed list. Call this after connecting new tools or rotating credentials.
Path parameters
- planIdstring · uuidRequired
Responses
200OKapplication/json
An array of mcp_server.
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/plan/{planId}/_refresh-mcp-requirements" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
ResponseCopy
[]
Check plan MCP requirements
get/plan/{planId}/_check-mcp-requirements
Return the current readiness of every MCP requirement a plan needs, so you can prompt the user to connect anything that isn't ready yet.
Path parameters
- planIdstring · uuidRequired
Responses
200OKapplication/json
array of objects
- tool_typeenumRequired
- mcpapicp
- tools_idstring · uuidRequired
- server_idstring · uuidRequired
- namestringRequired
- authentication_methodstringRequired
- statusenumRequired
- readynot_ready
- urlstringRequired
- challenge_urlstring
Request · curlCopy
curl -X GET "https://api.diaphora.ai/api/v1/plan/{planId}/_check-mcp-requirements" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
ResponseCopy
[\
{\
"tool_type": "mcp",\
"tools_id": "b1a4…",\
"server_id": "b1a4…",\
"name": "…",\
"authentication_method": "…",\
"status": "ready",\
"url": "…",\
"challenge_url": "…"\
}\
]
Tools
Discover MCP requirements and call commands on connected tool servers.
Check tool MCP requirements
get/tools/_check-mcp-requirements
List the MCP requirements for the calling context's tools and whether each one is ready to use.
Responses
200OKapplication/json
Request · curlCopy
curl -X GET "https://api.diaphora.ai/api/v1/tools/_check-mcp-requirements" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
Check ephemeral plan requirements
post/tools/_check-mcp-requirements
Given an inline plan body, return the MCP requirements it would need — without saving the plan.
Request body · application/json
- bodystringRequired
Responses
200OKapplication/json
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/tools/_check-mcp-requirements" \
-H "Authorization: Bearer $DIAPHORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{\n "body": "…"\n }'
List tool commands
get/tools/{toolsId}/{serverId}/_list-commands
List the callable commands exposed by a connected tool server, including each command's name, description, and input schema.
Path parameters
- toolsIdstring · uuidRequired
- serverIdstring · uuidRequired
Responses
200OKapplication/json
array of objects
- namestring
- descriptionstring
- input_schemamap
Request · curlCopy
curl -X GET "https://api.diaphora.ai/api/v1/tools/{toolsId}/{serverId}/_list-commands" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
ResponseCopy
[\
{\
"name": "…",\
"description": "…",\
"input_schema": {}\
}\
]
Call a tool command
post/tools/{toolsId}/{serverId}/_call-command/{commandName}
Invoke a single command on a connected tool server and return its raw result.
Path parameters
- toolsIdstring · uuidRequired
- serverIdstring · uuidRequired
- commandNamestringRequired
Responses
200OKapplication/json
A JSON object of arbitrary key/value pairs.
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/tools/{toolsId}/{serverId}/_call-command/{commandName}" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
ResponseCopy
{}
MCP
Manage MCP server authorization — complete OAuth handshakes and inspect the credential cache.
MCP OAuth callback
get/mcp/callback
OAuth redirect endpoint that completes an MCP server authorization handshake. The MCP provider redirects the user here with a state and code.
Query parameters
- statestringRequired
- codestringRequired
Responses
200OK
Request · curlCopy
curl -X GET "https://api.diaphora.ai/api/v1/mcp/callback?state={state}&code={code}" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
List cached MCP authorizations
get/mcp/auth/cache
List cached MCP authorization entries, including the domain, client, and expiry for each.
Responses
200OKapplication/json
array of objects
- idstringRequired
- endpointstring
- created_atstring · date-timeRequired
- expirystring · date-timeRequired
- client_idstring
Request · curlCopy
curl -X GET "https://api.diaphora.ai/api/v1/mcp/auth/cache" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
ResponseCopy
[\
{\
"id": "…",\
"endpoint": "…",\
"created_at": "2026-01-01T00:00:00Z",\
"expiry": "2026-01-01T00:00:00Z",\
"client_id": "…"\
}\
]
Delete a cached MCP authorization
delete/mcp/auth/cache/{cacheId}
Delete a cached MCP authorization entry by ID, forcing re-authorization on the next call.
Path parameters
- cacheIdstringRequired
Responses
204No Content
Request · curlCopy
curl -X DELETE "https://api.diaphora.ai/api/v1/mcp/auth/cache/{cacheId}" \
-H "Authorization: Bearer $DIAPHORA_API_KEY"
Utilities
Helper endpoints for working with the runtime.
Render a template
post/util/template/_render
Render a template string against a scope object and return the resulting text. Useful for previewing prompt or message templates.
Request body · application/json
- templatestringRequired
- scopemapRequired
Responses
200OKtext/plain
Request · curlCopy
curl -X POST "https://api.diaphora.ai/api/v1/util/template/_render" \
-H "Authorization: Bearer $DIAPHORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{\n "template": "…",\n "scope": {}\n }'