---
title: "Public: get a published library indicator by slug (with legacy-slug fallback)"
method: GET
path: "/api/library/indicators/by-slug/{slug}"
tags: ["library"]
---

# Public: get a published library indicator by slug (with legacy-slug fallback)

`GET /api/library/indicators/by-slug/{slug}`

## Request

- Base URL: `https://app.luxalgo.com`
- URL: `https://app.luxalgo.com/api/library/indicators/by-slug/{slug}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/luxalgo/apis/luxalgo-public-api/docs/api/library/indicators/by-slug/:slug/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `slug` string, required

## Response `200`

Success. The payload is wrapped in the standard { data, errors } envelope.

- object
  - `data` object, required
    - `indicator` object, required
      - `id` string, required
      - `name` string, nullable, required
      - `slug` string, required
      - `description` string, nullable, required
      - `body` string, nullable, required
      - `metaDescription` string, nullable, required
      - `imageUrl` string, nullable, required
      - `authorName` string, nullable, required
      - `creationDateDisplayed` string, required
      - `isPublished` boolean, required
      - `pineScriptCodeId` string, nullable, required
      - `family` 'trend' | 'momentum' | 'volatility' | 'volume-orderflow' | 'market-structure' | 'smc-ict' | 'wyckoff' | 'elliott-harmonics' | 'patterns' | 'levels' | 'statistics' | 'machine-learning' | 'time-seasonality' | 'sentiment-breadth' | 'risk-exits' | 'meta-composition' | 'validation', nullable, required
      - `tradingviewUuid` string, nullable, required
      - `tradingviewSharedChartId` string, nullable, required
      - `tradingPlatforms` string[], required
      - `chartPreviewData` unknown, required
      - `plans` object[], required
        - `isPublic` boolean, required
        - `tier` string, required
      - `concepts` object[], required
        - `slug` string, required
        - `name` string, required
        - `primary` boolean, required
    - `pineScriptCode` string, nullable, required
    - `sourcePreview` object, nullable, required
      - `shownLines` integer, required
      - `totalLines` integer, required
  - `errors` unknown

## Other responses

- `400`: Validation error — errors[].details carries the zod issues.
- `500`: Unexpected server error.

## Changes

- **2026-10-25** `1c850d3782b8`: 1 breaking, 1 info
  - removed the required property `data/indicator/tags` from the response with the `200` status
  - added the required property `data/sourcePreview` to the response with the `200` status

[Operation history](https://skmtc.dev/luxalgo/apis/luxalgo-public-api/changes/api/library/indicators/by-slug/:slug/get.md)

---

[API](https://skmtc.dev/luxalgo/apis/luxalgo-public-api.md) - [All operations](https://skmtc.dev/luxalgo/apis/luxalgo-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/luxalgo/apis/luxalgo-public-api/revisions/226c2d642643?raw)
