Meta API

2026-10-22

Meta API

Base URL

Loading…

Get started

Loading…

Endpoints

MethodPathDescriptionSupport
GET/v1/healthHealth check● Supported
GET/v1/methodsSearch platform methods● Supported
GET/v1/methods/{name}Retrieve a platform method● Supported

Differences from Praxis

  • Meta is the platform's self-describing face and mirrors no third-party API; healthCheck and the method catalog need no authentication; healthCheck returns the plain text ok.
  • Search platform methods:A nonempty q searches by relevance over method name, summary and description, ignoring word order and case; limit is an integer from 1 to 50 (default 20). Without q, or with whitespace only, methods are listed by name; limit is 1 to 200 (default 50). When has_more is true, pass last_id unchanged as after_id for the next page. Search ignores after_id. An out-of-range limit returns 400 INVALID_PARAMS. The catalog covers platform methods (praxis.*) only, not the MCP tools of a session.
  • Retrieve a platform method:name comes from the search results and must match the method name exactly. The declaration is never truncated; copy field names and enum values from it. An unknown name returns 404 METHOD_NOT_FOUND whose hint lists up to three similar names.

Meta is self-describing: /meta/v1/openapi.yaml returns the full OpenAPI spec for the current environment, which is authoritative for parameters and fields.

Errors follow the problem+json format, see errors; quotas and response headers are covered in rate limits.

Health check

GET /meta/v1/health● Supported

Returns

200

Errors follow the problem+json format — see error codes

Response

HTTP 200

The API edge is up; the body is the plain text `ok`.

text/plain

NameTypeDescription
$stringAlways the literal `ok`.

Search platform methods

GET /meta/v1/methods● Supported

Request parameters

  • qstring可选

    query: Words to look for, for example `list agents` or `create table`. Matched against method name, summary and description; every word must match when the query has two words or fewer, otherwise at least 60% of them. Omit to list methods without ranking.

  • limitinteger可选
    默认 50

    query: Maximum methods returned. Without q, defaults to 50 and accepts 1–200. Search with q defaults to 20 and accepts 1–50. Out-of-range values return 400 INVALID_PARAMS.

  • after_idstring可选

    query: Return names lexically after this method name, usually last_id from the previous page. Ignored when q is present. An empty or expired cursor still uses lexical ordering.

Returns

200

A nonempty q searches by relevance over method name, summary and description, ignoring word order and case; limit is an integer from 1 to 50 (default 20). Without q, or with whitespace only, methods are listed by name; limit is 1 to 200 (default 50). When has_more is true, pass last_id unchanged as after_id for the next page. Search ignores after_id. An out-of-range limit returns 400 INVALID_PARAMS. The catalog covers platform methods (praxis.*) only, not the MCP tools of a session.

Errors follow the problem+json format — see error codes

Response

HTTP 200

Matching methods, best match first. An empty `data` array means nothing matched; try fewer or different words.

application/json

NameTypeDescription
has_morebooleanPresent without q; true when another page follows.
first_idstring | nullPresent without q; first method name in this page, or null for an empty page.
last_idstring | nullPresent without q; last method name in this page, or null for an empty page. Pass as after_id to continue.
dataarray<object>Matching methods ordered by relevance for search, or by name for unranked listing.
data[].paramsstringCompact argument list grouped by location, for example `path: database_id*, table* · query: select, order · body*`. A trailing `*` marks a required argument; `body` stands for the JSON request body. Call `GET /meta/v1/methods/{name}` for each argument's type and description.
data[].namestringMethod name such as `praxis.agent.agents.list`. Pass it to `GET /meta/v1/methods/{name}` and call it as `await praxis.agent.agents.list(args)` in codemode or an automation script.
data[].summarystringOne-line statement of what the method does.
data[].httpstringHTTP verb the method sends, for example GET or POST.
data[].pathstringPublic API path template the method calls, with `{param}` placeholders filled from `args.path`.

Retrieve a platform method

GET /meta/v1/methods/{name}● Supported

Request parameters

  • namestring必填

    path: Exact method name from the search results, for example `praxis.database.databases.tables.create`.

Returns

200

name comes from the search results and must match the method name exactly. The declaration is never truncated; copy field names and enum values from it. An unknown name returns 404 METHOD_NOT_FOUND whose hint lists up to three similar names.

Errors follow the problem+json format — see error codes

Response

HTTP 200

The method with its complete declaration.

application/json

NameTypeDescription
namestringMethod name, for example `praxis.agent.agents.list`.
summarystringOne-line statement of what the method does.
descriptionstringFull guidance for the method from the API reference, including when to use it, limits and error behaviour. May be empty for methods documented only by summary.
httpstringHTTP verb the method sends.
pathstringPublic API path template with `{param}` placeholders.
declarationstringComplete TypeScript signature, `name(args): Promise<Result>`. `args` carries `path`, `query`, `headers` and `body` members exactly as declared. Never truncated.
parametersarray<object>Path, query and header parameters of the operation.
parameters[].namestringParameter name as sent on the wire.
parameters[].instringWhere the parameter goes, one of `path`, `query` or `header`; maps to the matching member of `args`.
parameters[].requiredbooleanWhether the call is rejected when the parameter is missing.
parameters[].descriptionstringMeaning, format and allowed values of the parameter.
parameters[].typestringTypeScript type of the parameter value.
request_bodyobjectRequest body expectations; null when the method takes no body.
request_body.requiredbooleanWhether `args.body` must be supplied.
request_body.descriptionstringWhat the body carries.
request_body.content_typesarray<string>Media types the body may use; the first is the default.
responsesarray<object>Documented responses, successful and failed.
responses[].statusstringHTTP status code or `default`.
responses[].descriptionstringWhat the response means and what to do next.
responses[].content_typesarray<string>Media types the response may use.