---
title: "Service capabilities"
method: GET
path: "/capabilities"
---

# Service capabilities

`GET /capabilities`

## Request

- Base URL: `https://rendry.io/api/v1`
- URL: `https://rendry.io/api/v1/capabilities`
- Auth: none required

Layer types, available fonts, canvas limits, max layers. The whole reference by default; ?sections= narrows it to the named sections, the same names get_capabilities takes.

## Query parameters

- `sections` string

## Response `200`

Capabilities

- Capabilities
  - `finish_profiles` CanvasFinishProfile[]: Whole-canvas finishes generated from the runtime registry.
    - `id` string, required: Exact versioned value accepted by Canvas.finish_profile. Values are generated from the runtime finish registry.
    - `field` string, required: Public DSL path where the id is written.
    - `label` string, required
    - `description` string, required
    - `formats` string[], required: Output formats accepted by this profile.
    - `cost_class` string, required
    - `min_dimension` integer, required: Minimum final width and height in pixels.
    - `requires_transparent` boolean, required: Whether the profile requires a fully transparent canvas background.
  - `nested_variables` NestedVariables
    - `grammar_version` integer, required: The template and formula grammar, the exact arithmetic and the text projection this build interprets. Compare it with the version your client was written for; refuse to author modes on a mismatch.
    - `projection_digits` integer: Precision boundary: the significant digits a repeating decimal is rounded to (nearest, halves away from zero) when a formula result becomes text. A terminating decimal prints in full; a formula reading another formula receives the exact value, not the projection.
    - `limits` VariableLimits: The resource contract of one effective context (one render, one batch row, one document page). Each limit is checked BEFORE the work it bounds; passing one is a named refusal (source_limit, node_limit, depth_limit, numeric_limit, output_limit) before any charge. A template without a template or formula definition is never judged by these; the text caps still apply to it.
      - `names` integer: definition, supplied-input and fact names of one context, once a template or formula is active
      - `name_bytes` integer: a name in an explicit mode and every reference; names are ASCII
      - `value_code_points` integer: one source, supplied value or expanded value, in Unicode scalar values — the same cap as max_text_chars
      - `aggregate_source_bytes` integer: all definition sources plus supplied values, UTF-8
      - `definition_nodes` integer: formula AST nodes or template segments of one definition
      - `aggregate_nodes` integer: their sum over the active definitions
      - `fuel` integer: evaluation work of one context, in units of instructions, emitted segments, digit parses and arithmetic operand words
      - `depth` integer: the longest dependency chain below a definition
      - `nesting` integer: parentheses plus unary signs inside one formula
      - `aggregate_output_bytes` integer: all computed text of one context, UTF-8
      - `token_digits` integer: digits of one decimal operand, leading and trailing zeros included
      - `rational_bits` integer: a reduced numerator and a reduced denominator, each
      - `scratch_bits` integer: every intermediate product or sum of the arithmetic
      - `format_scratch_bits` integer: the scaled integers of a decimal projection
  - `service_policy` object: Typed rate, concurrency, lifetime and analytics-header contract; mirrors x-rendry-service-policy and is available through sections=service_policy.

---

[API](https://skmtc.dev/rendry/apis/rendry-api.md) · [All operations](https://skmtc.dev/rendry/apis/rendry-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rendry/apis/rendry-api/revisions/c4fb572c26c9?raw)
