Skip to main content
POST
Start an endpoint run

Authorizations

Authorization
string
header
required

Monid API key (Authorization: Bearer mk_...) or Clerk-issued JWT. Each operation lists the ONE scope an API key needs. {resource}:* grants every action on that resource; * grants everything; Clerk sessions hold *. Operations with an empty list need no scope. Scope catalog: GET /v1/api-keys/scopes.

Headers

X-Monid-Agent-Model
string

Model driving the calling agent. Optional; a value that is empty, longer than 256 characters or not printable ASCII is ignored (never an error).

Maximum string length: 256
X-Monid-Agent-Harness
string

Agent harness or client making the call (e.g. a coding agent, an agent framework). Optional; a value that is empty, longer than 256 characters or not printable ASCII is ignored (never an error).

Maximum string length: 256
X-Monid-Agent-Session-Id
string

Caller-side session identifier, so the calls of one agent session (discover → inspect → run → polling) can be correlated. Optional; a value that is empty, longer than 256 characters or not printable ASCII is ignored (never an error).

Maximum string length: 256

Body

application/json
provider
string
required

Provider slug.

Minimum string length: 1
Example:

"exa"

endpoint
string
required

Endpoint path within the provider.

Minimum string length: 1
Example:

"search"

input
object

Composite endpoint input — body + URL query + URL path. All sub-fields optional.

Response

Terminal run — COMPLETED (sync execution, when the provider responded 2xx) or BLOCKED (a workspace control gate rejected the run). A COMPLETED run with a non-2xx provider status is returned with that same HTTP status and this body shape — EXCEPT a provider 402 (the upstream vendor's payment/quota failure, not your wallet), which is returned as 502.

runId
string
required
provider
string
required
endpoint
string
required
status
enum<string>
required

Run lifecycle status. Always one of the UPPERCASE enum values (e.g. COMPLETED, never completed) — compare case-sensitively. COMPLETED means the provider responded (any HTTP status); FAILED means an infrastructure failure.

Available options:
READY,
RUNNING,
STOPPING,
COMPLETED,
FAILED,
BLOCKED,
STOPPED,
TIMED_OUT
providerResponse
object
required
price
object
required

User-facing price (markup applied).

createdAt
string<date-time>
required
output
any

Provider output data (terminal runs only; may be null). Endpoints that generate FILES (e.g. audio) surface each file INSIDE output as an artifact object under a stable key: { download_link (fresh signed URL, valid until link_expires_at — re-fetch the run for a new one), content_type, link_expires_at, file_expires_at? }. After the file's retention lapses the object becomes { expired: true, file_expired_at, message }.

billing
object
resultCount
number
Required range: x >= 0
billedUnits
number
Required range: x >= 0
resources
object[]
stopRequestedAt
string<date-time>
completedAt
string<date-time>
hints
object