Skip to main content
GET
List / search themes

Authorizations

X-API-Key
string
header
required

Team-scoped API key created in the app (Settings → API Keys). Sent as X-API-Key: <key> on every request. The header name apikey is also accepted as an alias.

Query Parameters

show_all
boolean
default:false

Include themes below the team's adaptive size floor. Default false.

q
string

Search text. Required when search_mode is semantic.

Maximum string length: 500
search_mode
enum<string>
default:lexical

Lexical substring matching, or semantic matching against theme embeddings.

Available options:
lexical,
semantic
min_similarity
number<float>
default:0.5

Minimum cosine similarity for semantic search. Valid only when search_mode is semantic.

Required range: 0.3 <= x <= 1
allow_fallback
boolean
default:false

Permit lexical fallback if semantic search is unavailable. Valid only when search_mode is semantic.

include_retired
boolean
default:false

Add valid merged themes, each with its final replacement_theme_id. Other filters still apply.

status
enum<string>
Available options:
active,
declined,
shipped,
parked
sort
enum<string>
default:ric_score
Available options:
ric_score,
insight_count,
unique_customer_count,
created_at
product_id
string<uuid>

Filter by one product ID from /products.

product_feature_id
string<uuid>

Filter by one buildable product feature ID from /features.

product_area_id
string<uuid>

Filter by one parent product-area ID from /areas.

feature_area_id
string<uuid>

Filter by one child feature-area ID from /areas. A feature area is the subject area an insight is filed under; it is NOT a buildable feature ID from /features, and the two are never interchangeable.

date_from
string<date>

Inclusive start date, as a real calendar date in YYYY-MM-DD. Any other form is rejected with 400 VALIDATION_ERROR - including 2026-5-1, 2026/05/01, May 1, 2026, a bare 2026, a date-time, and impossible dates such as 2026-02-30.

Pattern: ^\d{4}-\d{2}-\d{2}$
date_to
string<date>

Inclusive end date, as a real calendar date in YYYY-MM-DD. Validated by the same rule as date_from.

Pattern: ^\d{4}-\d{2}-\d{2}$
limit
integer
default:50

Page size (max 200).

Required range: 1 <= x <= 200
offset
integer
default:0

Number of records to skip.

Required range: x >= 0

Response

A page of themes

data
object[]
required
pagination
object
required
search_mode
enum<string>
required

Search mode actually applied. Lexical indicates lexical/default search or an explicitly allowed fallback.

Available options:
lexical,
semantic
min_similarity
number<float> | null
required

Applied semantic threshold, or null when search_mode is lexical.