---
title: "Retrieve a topic"
method: GET
path: "/v1/models/{modelId}/topic/{topicName}"
tags: ["Topics"]
---

# Retrieve a topic

`GET /v1/models/{modelId}/topic/{topicName}`

Retrieve a topic in a model by name.

## Path parameters

- `modelId` string, uuid, required
- `topicName` string, required

## Response `200`

- object
  - `success` boolean — Indicates the request was successful
  - `topic` object — Details about the topic. The properties included in the response will typically mirror the [IDE parameters](/modeling/topics/parameters) for topic files.
    - `name` string — The name of the topic
    - `base_view_name` string — The name of the base view for the topic
    - `label` string — The display label for the topic
    - `default_filters` object — Default filters applied to the topic
    - `join_via_map` object — Join path mappings for the topic. Keys are view names, values are arrays of view names representing the join path.
    - `join_via_map_key_order` string[] — Order of join path keys
    - `ignored_props` string[] — Properties to ignore
    - `always_where_filters` object — Filters that applied to all rows in a query. In the model IDE, this is the [`always_where_filters`](/modeling/topics/parameters/always-where-filters) parameter.
    - `extension_model_id` string, uuid — The ID of the extension model
    - `has_frozen_join_via_map` boolean — Whether the join via map is frozen
    - `relationships` object[] — Relationships defined in the topic. The properties in each object will typically mirror the [IDE parameters](/modeling/relationships/parameters) used in a model's `relationships` file.
      - `left_view_name` string — The left view in the relationship
      - `right_view_name` string — The right view in the relationship
      - `join_type` string — The type of join (e.g., ALWAYS_LEFT)
      - `on` object — The join condition expression
        - `type` string
        - `operator` string
        - `operands` object[]
        - `distinct` boolean
      - `sql` string — The SQL expression for the join
      - `id` string — Unique identifier for the relationship
      - `type` string — The relationship type (e.g., `ONE_TO_MANY`)
      - `ignored` boolean — Whether the relationship is ignored
      - `bidirectional` boolean — Whether the relationship is bidirectional
      - `original_on_sql` string — The original SQL for the join condition
      - `yaml_path_prefix` string — The YAML path prefix for the relationship
    - `ide_file_name` string — The file name for the topic in the IDE
    - `views` object[] — A list of views included in the topic. The properties in each object will mirror the [IDE parameters](/modeling/views/parameters) available for views.
      - `name` string — The name of the view
      - `label` string — The display label for the view
      - `table_name` string — The underlying database table name
      - `schema` string — The database schema
      - `schema_label` string — The display label for the schema
      - `extension_model_id` string, uuid
      - `ide_file_name` string — The name of the IDE file for the view
      - `yaml_path` string — The YAML file path for the view
      - `filter_only_fields` string[]
      - `is_pseudo_display_view` boolean
      - `primary_key` object[] — Primary key fields for the view
        - `type` string
        - `field_name` string
      - `dimensions` object[] — A list of dimensions defined in the view. The properties in each object will mirror the [IDE parameters](/modeling/dimensions/parameters) for `dimensions.`
        - `field_name` string
        - `view_name` string
        - `data_type` string — Data type (e.g., STRING, NUMBER, TIMESTAMP)
        - `format` string — Display format (e.g., ID)
        - `label` string — Display label for the dimension
        - `description` string — Description of the dimension
        - `view_label` string
        - `extension_model_id` string, uuid
        - `is_dimension` boolean
        - `fully_qualified_name` string
        - `time_frames` string[] — Available time frames for date dimensions
        - `date_type` string — Date granularity (e.g., DATE, WEEK, MONTH, QUARTER, YEAR)
        - `drill_fields` string[] — Fields available for drilling
        - `parent_field` string — Parent field name for grouped dimensions
        - `parent_label` string — Parent field label
        - `group_label` string — Group label for the dimension
        - `is_group_parent_field` boolean — Whether this is a parent field in a group
        - `data_type_metadata` object — Additional metadata about the data type
          - `is_date_type` boolean
        - `ai_context` string — Context hints for AI usage
      - `measures` object[] — Measures defined in the view. The properties in each object will mirror the [IDE parameters](/modeling/measures/parameters) for `measures.`
        - `type` string — Measure type (e.g., aggregation)
        - `field_name` string
        - `view_name` string
        - `aggregate_type` string — Aggregation type (e.g., COUNT, SUM, AVG)
        - `data_type` string
        - `label` string
        - `format` string
        - `view_label` string
        - `ignored` boolean — Whether the measure is ignored
        - `display_sql` string — SQL displayed in the UI
        - `dialect_sql` string — SQL specific to the database dialect
        - `fully_qualified_name` string
        - `filters` object — Filters applied to the measure

## Other responses

- `400` — Bad Request. Possible causes: - Invalid model UUID
- `404` — Not Found. Possible causes: - Model not found - Topic not found or access not permitted
- `429` — Too Many Requests - Rate limit exceeded (60 requests/minute)

---

[API](https://skmtc.net/omni/apis/omni-api.md) · [All operations](https://skmtc.net/omni/apis/omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omni/omni-api/revisions/6b02f7349d0e/schema)
