Skip to main content
POST
Semantic endpoint search (ranked cards)

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
q
string
required

Natural-language search query.

Required string length: 1 - 1000
Example:

"twitter posts"

limit
integer

Max results (default 5). Capped at the discover over-fetch pool size (api-config discover.overfetchSize, 200).

Example:

5

category
string

Optional category node id to narrow the ranked results (ids from GET /public/v1/categories; a top id covers its group).

Maximum string length: 60
Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
Example:

"twitter"

minScore
number

Per-call override for the post-rerank score floor — same semantics as the legacy POST /v1/discover body field.

Required range: 0 <= x <= 2
Example:

0.2

includeUnavailable
boolean
default:false

Endpoints currently in outage are hidden by default (the page is back-filled from the next ranked candidates). Set true to include them — marked metrics.status: "outage" and ranked last.

Example:

false

supportsX402
boolean

Filter by static eligibility for x402 payment (POST /x402/v1/run): true keeps only payable endpoints, false only non-payable ones. Omit for all endpoints. Network availability and request/payment validation are checked at execution time.

x402Network
string

Narrow to endpoints payable via x402 on this customer-payment network (CAIP-2 id, e.g. eip155:8453). Implies supportsX402=true; an unknown/unconfigured id returns an empty page.

Required string length: 1 - 100
Example:

"eip155:8453"

readonly
boolean

Filter by whether running the endpoint can change your workspace resources (phone numbers, files, asset libraries): true keeps only endpoints that cannot create, modify or delete them, false only endpoints that can. Omit for all endpoints. This describes RESOURCE effects only — a readonly endpoint may still perform real-world actions and is still billed.

effects
enum<string>[]

Keep only endpoints whose run can have AT LEAST ONE of the named effects on your workspace resources (phone numbers, files, asset libraries): creates, updates, deletes. Omit for all endpoints. Takes precedence over readonly (readonly=true is the alias for "no write effects"). Resource effects only — an endpoint with no effect may still perform real-world actions and is still billed.

Minimum array length: 1
Available options:
creates,
updates,
deletes
Example:

Response

Ranked endpoint cards

items
object[]
required

Ranked endpoint cards (best match first).

total
integer
required

Above-floor semantic matches (after the outage filter and the optional category narrowing), before limit truncation.

Required range: x >= 0