Static responses

Return fixed JSON for endpoints that don't need a database: health checks, config, version info, anything static.

The inline key

Put your literal JSON under an inline: key. Akuma returns it verbatim with the endpoint's status code. No database, no schema.

- path: /status
  method: GET
  response:
    inline:
      status: ok
      version: "1.0.0"
  status: 200
curl http://localhost:3000/status
# => {"status": "ok", "version": "1.0.0"}

Any JSON shape

The value under inline: can be an object, an array, or a scalar. Whatever you put is what you get back.

- path: /config
  method: GET
  response:
    inline:
      environment: development
      features:
        - authentication
        - analytics
      maintenance: false
  status: 200

Explicit by design

Every response declares itself as either static (inline:) or database-backed (schema:). It is never inferred. A literal body is never mistaken for a schema, and vice versa. A bare mapping without one of these keys is rejected with a clear error.

For database-backed responses, see Data models and Endpoints.

Common mistakes

Forgetting the inline: wrapper

A static body must live under inline:. Writing it bare (the old style) fails to parse:

Error: Failed to parse config file: ... unknown field `status`, expected one of `type`, `schema`, `inline`

Declaring both schema: and inline:

A response is one or the other, never both:

Error: Failed to parse config file: ... a response must have either `schema:` or `inline:`, not both