Skip to content

ulams api

Generated from front/cli (ulams schema)

Call any API endpoint, or list the endpoints of the bundled spec.

The escape hatch over the whole API. Prefer a noun command when one exists (ulams schema lists them); use ulams api --list --filter <text> to find endpoints. GET is read, DELETE is destructive and needs –yes, other methods are writes and support –dry-run. Output data is the API’s data; –raw prints the full body.

Kind: write. Stability: stable. MCP tool: api (not exposed). Scopes: none.

Flag Type Required Description
--method (positional) string HTTP method: GET, POST, PUT, PATCH or DELETE.
--path (positional) string API path, literal (/api/admin/courses/12) or a spec template (/api/admin/courses/{id} with –param id=12).
--param array Path parameter key=value (repeatable).
--query array Query parameter key=value (repeatable).
--body unknown JSON body: inline, @file.json, @file.yaml or - for stdin.
--raw boolean Print the whole response body instead of the envelope data.
--list boolean List the operations of the bundled API spec instead of calling the API.
--filter string With –list: only operations whose path or summary contains this text.
Terminal window
# List courses
ulams api GET /api/admin/courses --query per_page=5 --json
# Update a course
ulams api PUT /api/admin/courses/{id} --param id=12 --body '{"title":"New"}'
# Find endpoints
ulams api --list --filter quiz
Input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"method": {
"description": "HTTP method: GET, POST, PUT, PATCH or DELETE.",
"type": "string"
},
"path": {
"description": "API path, literal (/api/admin/courses/12) or a spec template (/api/admin/courses/{id} with --param id=12).",
"type": "string"
},
"param": {
"description": "Path parameter key=value (repeatable).",
"type": "array",
"items": {
"type": "string"
}
},
"query": {
"description": "Query parameter key=value (repeatable).",
"type": "array",
"items": {
"type": "string"
}
},
"body": {
"description": "JSON body: inline, @file.json, @file.yaml or - for stdin."
},
"raw": {
"description": "Print the whole response body instead of the envelope data.",
"type": "boolean"
},
"list": {
"description": "List the operations of the bundled API spec instead of calling the API.",
"type": "boolean"
},
"filter": {
"description": "With --list: only operations whose path or summary contains this text.",
"type": "string"
}
}
}