{ "opencollection": "1.0.0", "info": { "name": "Toksta Public API", "version": "0.1.0" }, "items": [ { "info": { "name": "System", "type": "folder" }, "items": [ { "info": { "name": "Health check", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/health" }, "docs": "Health check" }, { "info": { "name": "Readiness check", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/ready" }, "docs": "Readiness check" }, { "info": { "name": "Service version", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/version" }, "docs": "Service version" }, { "info": { "name": "List v1 endpoint metadata", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/" }, "docs": "List v1 endpoint metadata" } ] }, { "info": { "name": "Creators", "type": "folder" }, "items": [ { "info": { "name": "Search public creators", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/search", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Keyword/filter search over the public creator database. Returns a single page of creators with cursor pagination." }, { "info": { "name": "Run a creator discovery search", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/discovery-search", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Ranked discovery search over LinkedIn creators using keyword relevance. `keywords` is required. Returns `meta.ranking_source` (`rpc` or `fallback`)." }, { "info": { "name": "Find thought leaders for a topic", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/thought-leaders", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "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." }, { "info": { "name": "Get creator details", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/creators/:id", "params": [ { "name": "platform", "value": "", "type": "query", "description": "Creator platform. Defaults to `linkedin`." }, { "name": "id", "value": "", "type": "path", "description": "Creator UUID." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch a single public creator by ID, including profile metrics and (when available) enrichment." } ] }, { "info": { "name": "Enrichment", "type": "folder" }, "items": [ { "info": { "name": "Start creator enrichment", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/enrich", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Start LinkedIn profile enrichment for a creator selection. Requires a user-scoped key.\n\n**Selection (provide exactly one):** `creator_ids` (array of UUIDs), `result_set_id` (string), or `result_set_ids` (array). `creator_ids` takes precedence. This endpoint does NOT accept `creators: [{ profile_url }]`.\n\n**Synchronous completion:** if every requested creator is already enriched, the response is `200` with `jobs_created: 0` and `all_complete: true` — no job IDs are returned. Otherwise the respons" }, { "info": { "name": "Get enrichment results", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/enrichments/results", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch enrichment results for a creator selection.\n\n**Selection (provide one):** `creator_ids` (array of UUIDs), `result_set_id`, or `result_set_ids`. Because enrichment can complete synchronously (no job IDs), `creator_ids` is the reliable way to retrieve results. Set `detail_level: \"full\"` to include the `results` array with extended fields. Use `wait_seconds` to poll inline." } ] }, { "info": { "name": "Analysis", "type": "folder" }, "items": [ { "info": { "name": "Start content match analysis", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/content-match", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Start LinkedIn content-fit analysis for a creator selection. Requires a user-scoped key.\n\n**Selection (provide exactly one):** `creator_ids`, `result_set_id`, or `result_set_ids`.\n\n**Topic criteria:** for ad hoc runs (no `campaign_id`) you MUST provide `topic_keywords` (array of strings). The field is `topic_keywords`, NOT `topics`. When `campaign_id` is supplied, criteria are read from the campaign instead.\n\nReturns `202` with **prefixed** job IDs in the form `content-fit:` under `data.jo" }, { "info": { "name": "Start audience match analysis", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creators/audience-match", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Start LinkedIn audience-fit analysis for a creator selection. Requires a user-scoped key.\n\n**Selection (provide exactly one):** `creator_ids`, `result_set_id`, or `result_set_ids`.\n\n**Audience criteria:** for ad hoc runs (no `campaign_id`) provide at least one of `campaign_brief`, `target_audience`, `audience_keywords` (array), or `target_audience_criteria` (array). When `campaign_id` is set, criteria are read from the campaign.\n\nReturns `202` with **prefixed** job IDs in the form `audience-fit:" }, { "info": { "name": "Get content match results", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/content-match/results", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch content-match analysis results.\n\n**Two selection modes:**\n1. By job: `job_id` (string) or `job_ids` (array). Accepts the prefixed form `content-fit:` or the bare analysis UUID.\n2. By creators: `creator_ids`/`result_set_id`/`result_set_ids` (optionally with `campaign_id`) to fetch the latest saved analysis per creator.\n\n`detail_level: \"full\"` adds the `results` array. Use `wait_seconds` to poll inline." }, { "info": { "name": "Get content match evidence posts", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/content-match/posts", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch the matched posts (evidence) for content-match analyses. Same selection modes as `/v1/content-match/results` (`job_id`/`job_ids` accepting `content-fit:` or bare UUID, or `creator_ids`/result sets + optional `campaign_id`)." }, { "info": { "name": "Get audience match results", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/audience-match/results", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch audience-match analysis results. Same dual selection model as content match: `job_id`/`job_ids` (accepting `audience-fit:` or bare UUID) OR `creator_ids`/result sets + optional `campaign_id`. `detail_level: \"full\"` adds the `results` array." }, { "info": { "name": "Get audience match details", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/audience-match/details", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch detailed audience-match breakdowns (top engagers, companies, job titles, geography). Same selection model as `/v1/audience-match/results`. `engagers_limit` controls how many engagers are returned." } ] }, { "info": { "name": "Jobs", "type": "folder" }, "items": [ { "info": { "name": "Get job status", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/jobs/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "Job UUID (plain, unprefixed)." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get the status of a creator-discovery job. The `{id}` path parameter must be a **plain UUID** (no prefix). NOTE: content-fit / audience-fit / enrichment jobs are NOT retrievable here — use their dedicated results endpoints." }, { "info": { "name": "Get one job result", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/jobs/results", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch the full result of one creator-discovery job. `job_id` must be a **plain UUID** (not prefixed). Use `limit` (alias `results_limit`, max 200) to cap the number of candidate rows returned." }, { "info": { "name": "Get multiple job results", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/jobs/results:bulk", "params": [ { "name": "bulk", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Fetch results for multiple creator-discovery jobs in one call.\n\n**URL:** `POST /v1/jobs/results:bulk` (note the `:bulk` action suffix).\n\nBody requires `job_ids`: an array of 1-20 **plain UUIDs** (not prefixed). Each entry in the response carries `found` plus the job result or a per-job error." }, { "info": { "name": "Cancel a running job", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/jobs/:id/cancel", "params": [ { "name": "id", "value": "", "type": "path", "description": "Job UUID (plain, unprefixed)." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Cancel a running creator-discovery job. The `{id}` path parameter must be a **plain UUID**. A JSON body is required even when empty — send `{}` (sending no body returns `400 Request body must be valid JSON`). Already-terminal jobs return `canceled: false` with a `reason`." } ] }, { "info": { "name": "Account", "type": "folder" }, "items": [ { "info": { "name": "Get account usage", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/account/usage", "params": [ { "name": "month", "value": "", "type": "query", "description": "Month in `YYYY-MM` format. Defaults to the current month." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Usage and credit summary for the current billing month (or a specific `month`)." } ] }, { "info": { "name": "Campaigns", "type": "folder" }, "items": [ { "info": { "name": "List campaigns", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/campaigns", "params": [ { "name": "limit", "value": "", "type": "query", "description": "Page size (1-100). Defaults to 50." }, { "name": "offset", "value": "", "type": "query", "description": "Result offset. Defaults to 0." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List campaigns owned by the key's user. **SaaS workspace entitlement required** — dedicated API keys receive an empty list." }, { "info": { "name": "Create a campaign", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/campaigns", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Create a campaign. **SaaS workspace entitlement required** — dedicated API keys receive `403`.\n\n`name`, `content_keywords` (≥1), and `target_audience_criteria` (≥1) are required." }, { "info": { "name": "Get campaign details", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/campaigns/:id", "params": [ { "name": "id", "value": "", "type": "path", "description": "Campaign UUID." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get a campaign by ID. **SaaS workspace entitlement required.**" } ] }, { "info": { "name": "Creator Lists", "type": "folder" }, "items": [ { "info": { "name": "List creator lists", "type": "http" }, "http": { "method": "GET", "url": "https://api.toksta.com/v1/creator-lists", "params": [ { "name": "limit", "value": "", "type": "query", "description": "Page size (1-100). Defaults to 50." }, { "name": "offset", "value": "", "type": "query", "description": "Result offset. Defaults to 0." }, { "name": "platform", "value": "", "type": "query", "description": "Optional platform filter." } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "List creator lists owned by the key's user. **SaaS workspace entitlement required** — dedicated API keys receive an empty list." }, { "info": { "name": "Create a creator list", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creator-lists", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Create a creator list. **SaaS workspace entitlement required** — dedicated API keys receive `403`. `name` is required." }, { "info": { "name": "Save creators to a list", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/creator-lists/:id/creators", "params": [ { "name": "id", "value": "", "type": "path", "description": "Creator list UUID." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Add creators to an existing creator list. **SaaS workspace entitlement required.** The `{id}` path parameter must be the list UUID. This endpoint only saves to an existing list — create one first with `POST /v1/creator-lists`. `creator_ids` (≥1 valid UUID, max 100) is required." } ] }, { "info": { "name": "Evidence", "type": "folder" }, "items": [ { "info": { "name": "Get posts behind search results", "type": "http" }, "http": { "method": "POST", "url": "https://api.toksta.com/v1/search-results/posts", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Return the LinkedIn posts behind search results (keyword evidence) for a creator selection.\n\n**Keywords:** provide `keywords` (array of strings) OR a `result_set_id`/`result_set_ids` (keywords are then inferred from the saved search). Sending `creator_ids` alone, with no keywords and no result set, returns `400`." } ] } ], "bundled": true }