---
title: "List shaders"
method: GET
path: "/v1/shaders"
tags: ["shaders"]
---

# List shaders

`GET /v1/shaders`

## Request

- Base URL: `https://api.framelane.io`
- URL: `https://api.framelane.io/v1/shaders`
- Auth: HTTP bearer

This workspace's shaders and the shared ones, newest first, without variant text.

## Query parameters

- `limit` integer
- `cursor` string, nullable

## Response `200`

Successful Response

- CursorPageShaderOut
  - `data` ShaderOut[], required
    - `id` string, required: Its id, for `effects[].shader.id`.
    - `name` string, required
    - `lang` string, required
    - `hash` string, required: SHA-256 of "sksl\n" + source, 64 lowercase hex digits: the entry's identity.
    - `jitter` boolean, required: Compiled in Jitter's dialect.
    - `status` 'compiled' | 'failed', required: `failed` shaders cannot render; `errors` says why.
    - `errors` ShaderCompileError[]: The compiler's errors, with positions.
      - `line` integer, required: 1-based line in the source; 0 when the error is not in it (a param).
      - `col` integer, required: 1-based column in the source; 0 with line 0.
      - `message` string, required
    - `params` ShaderParamSpec[], required
      - `name` string, required: A letter, then letters, digits and single underscores; not a prelude name (`time` is taken by `u_time`). The shader reads it as `u_<name>`.
      - `type` 'float' | 'color' | 'vec2', required: `float`, `color` (straight-alpha RGBA) or `vec2`.
      - `default` union: Its value where an effect does not set it. Omitted: 0, transparent black or [0, 0].
        - number
        - string
        - number[]
      - `min` number, nullable: Lowest value an effect may set (a vec2's each component).
      - `max` number, nullable: Highest value an effect may set (a vec2's each component).
    - `variant_hashes` object: SHA-256 of each variant (`glsl330`, `glsles300`, `wgsl`), as the engines check them.
    - `shared` boolean, required: A shared shader every workspace can use, and none can delete.
    - `source` string, nullable: The SkSL source (`?view=full`).
    - `variants` object, nullable: The compiled variants' text (`?view=full`).
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `next_cursor` string, nullable
  - `has_more` boolean

## Other responses

- `401`: Missing or invalid API key.
- `422`: Validation Error

---

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