---
title: "Get a topic"
method: GET
path: "/v1/topics/{id}"
tags: ["Topics", "tier:standard"]
---

# Get a topic

`GET /v1/topics/{id}`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/topics/{id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Returns a single topic with breadcrumb ancestors and the top direct children by prominence. Children are capped — use /v1/topics?parent_id={id} to paginate beyond the cap.

## Path parameters

- `id` string, required: Topic ID, ancestry slug (e.g., technology/artificial-intelligence), or ancestry path hash

## Response `200`

OK

- TopicDetail
  - `ancestors` string[], nullable: Ancestor topic names from root to parent
  - `ancestry` string: Human-readable breadcrumb path (e.g. Business > Technology > AI)
  - `ancestry_path` string: Hash-based ancestry path for programmatic filtering
  - `children` Topic[], nullable: Direct child topics, capped — may be truncated. Paginate via /v1/topics?parent_id={id} to enumerate all.
    - `ancestry` string: Human-readable breadcrumb path (e.g. Business > Technology > AI)
    - `ancestry_path` string: Hash-based ancestry path for programmatic filtering
    - `episode_count` integer: Number of episodes in this podcast that cover this topic (only populated for /v1/podcasts/{id} topic lists)
    - `id` string, required: Unique identifier
    - `name` string, required: Topic name
    - `slug` string, required: Ancestry-based slug (e.g., technology/artificial-intelligence). Can be used as topic_id.
  - `episode_count` integer: Number of episodes in this podcast that cover this topic (only populated for /v1/podcasts/{id} topic lists)
  - `id` string, required: Unique identifier
  - `name` string, required: Topic name
  - `slug` string, required: Ancestry-based slug (e.g., technology/artificial-intelligence). Can be used as topic_id.
  - `total_children` integer, required: Total number of direct child topics. May exceed len(children) when truncated; 0 for leaf topics.

## Other responses

- `402`: Payment Required. Read error_code. payment_required is the x402 path: either a keyless request being challenged — pay $0.01 in USDC per request (requirements in the PAYMENT-REQUIRED header) or send a pp_ API key — or a supplied payment that failed settlement (details in the PAYMENT-RESPONSE header; retry the same signature before signing a new one). See https://docs.particle.pro/x402. Any other code means the credential was accepted but does not cover this request (a plan or session gate such as premium_required or paid_plan_confirmation_required); its resolve says how to obtain access, and no payment header is sent.
- `default`: Error

---

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