---
title: "Find thought leaders for a topic"
method: POST
path: "/v1/creators/thought-leaders"
tags: ["Creators"]
---

# Find thought leaders for a topic

`POST /v1/creators/thought-leaders`

## Request

- Base URL: `https://api.toksta.com`
- URL: `https://api.toksta.com/v1/creators/thought-leaders`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/toksta/apis/toksta-public-api/docs/v1/creators/thought-leaders/post.ts> (a function with typed inputs; its response is checked against the schema)

Start an async thought leaders job for a topic. Requires at least 5 keywords. Runs discovery, enrichment refresh, and recent-post content validation. Poll `GET /v1/jobs/{job_id}` and fetch results via `POST /v1/jobs/results` when status is terminal. Credits are reserved up front from `max_candidates_to_analyze` and mode (broad: 1, balanced: 2, strict: 3 credits per creator analyzed); unused credits are refunded after completion.

## Request body

- object
  - `keywords` string[], required: Topic keywords. REQUIRED and must contain at least 5 strings.
  - `count` integer: Max thought leaders to return. Defaults to 10.
  - `min_followers` number: Minimum follower count. Defaults to 30000.
  - `min_reactions_per_post` number: Minimum average reactions per post. Defaults to 50.
  - `min_content_match_score` number: Minimum content match score (0-100). Defaults to 60.
  - `hide_brands` boolean: Exclude brand/company pages. Defaults to true.
  - `mode` 'strict' | 'balanced' | 'broad': Ranking strictness. Defaults to `balanced`.
  - `location` string: Single location filter.
  - `language` string: Single language filter.
  - `posts_to_analyze` 10 | 20 | 30: Posts analyzed per candidate. One of 10, 20, 30. Defaults to 10.
  - `max_candidates_to_analyze` integer: Cap on candidates analyzed. Defaults to 100.
  - `filters` object: Optional structured filters applied to the candidate set.
    - `content_categories` string[]
    - `target_audiences` string[]
    - `languages` string[]
    - `locations` string[]
    - `hide_brands` boolean
    - `min_followers` number
    - `max_followers` number
    - `min_engagement` number
    - `max_engagement` number
    - `min_posts_per_month` number
    - `max_posts_per_month` number
    - `min_reactions_per_post` number
    - `max_reactions_per_post` number
    - `min_comments_per_post` number
    - `max_comments_per_post` number
    - `min_shares_per_post` number
    - `max_shares_per_post` number

## Response `202`

Job accepted. Poll job status and results endpoints until terminal.

- object: Job accepted. Poll job status and results endpoints until terminal.
  - `success` true, required
  - `data` object, required: Operation payload. See the example for the exact field structure.
  - `meta` object, required
    - `request_id` string, required
    - `trace_id` string

## Other responses

- `400`: Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).
- `401`: Missing, invalid, or revoked API key.
- `402`: Insufficient credits for this operation.
- `403`: API access disabled or workspace entitlement required.
- `404`: Resource not found, or result expired past retention.
- `429`: Rate limit exceeded — back off per `Retry-After`.
- `500`: Unexpected server error.
- `501`: Endpoint is registered but not implemented yet.

---

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