{"openapi":"3.0.3","info":{"title":"Toksta Public API","description":"Public API for Toksta creator data, analysis jobs, and SaaS workspace workflows.","version":"0.1.0"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key"}},"schemas":{}},"paths":{"/health":{"get":{"summary":"Health check","tags":["System"],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}}}}}}}}},"/ready":{"get":{"summary":"Readiness check","tags":["System"],"responses":{"200":{"description":"Default Response"}}}},"/version":{"get":{"summary":"Service version","tags":["System"],"responses":{"200":{"description":"Default Response"}}}},"/v1/":{"get":{"summary":"List v1 endpoint metadata","tags":["System"],"responses":{"200":{"description":"Default Response"}}}},"/v1/creators/search":{"post":{"operationId":"searchCreators","summary":"Search public creators","tags":["Creators"],"description":"Keyword/filter search over the public creator database. Returns a single page of creators with cursor pagination.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"query":{"type":"string","description":"Free-text search matched against creator name and bio."},"platform":{"type":"string","enum":["linkedin","youtube"],"description":"Creator platform. Defaults to `linkedin`."},"filters":{"type":"object","additionalProperties":true,"description":"Optional structured filters applied to the candidate set.","properties":{"content_categories":{"type":"array","items":{"type":"string"}},"target_audiences":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"hide_brands":{"type":"boolean"},"min_followers":{"type":"number"},"max_followers":{"type":"number"},"min_engagement":{"type":"number"},"max_engagement":{"type":"number"},"min_posts_per_month":{"type":"number"},"max_posts_per_month":{"type":"number"},"min_reactions_per_post":{"type":"number"},"max_reactions_per_post":{"type":"number"},"min_comments_per_post":{"type":"number"},"max_comments_per_post":{"type":"number"},"min_shares_per_post":{"type":"number"},"max_shares_per_post":{"type":"number"}}},"cursor":{"type":"string","description":"Pagination cursor from the previous response's `meta.next_cursor`."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Page size (1-100). Defaults to 50."},"sort_by":{"type":"string","enum":["followers_count","engagement_rate","avg_posts_per_month","avg_views_per_post","shares_per_post","comments_per_post","reactions_per_post","name","updated_at"],"description":"Field to sort by. Defaults to `followers_count`."},"sort_order":{"type":"string","enum":["asc","desc"],"description":"Sort direction. Defaults to `desc`."}},"example":{"platform":"linkedin","query":"growth marketing","limit":25,"filters":{"min_followers":5000,"hide_brands":true}}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Creator search results.","content":{"application/json":{"schema":{"type":"object","description":"Creator search results.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators":[{"id":"f0e1d2c3-b4a5-4678-9abc-def012345678","name":"Jane Marketer","bio":"Head of Growth. I write about B2B SaaS and demand gen.","location":"London, UK","avatar_url":"https://media.licdn.com/.../jane.jpg","content_categories":["marketing","saas"],"target_audiences":["marketers","founders"],"languages":["en"],"platform":"linkedin","handle":"jane-marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","metrics":{"followers_count":48200,"engagement_rate":2.31,"avg_posts_per_month":12,"avg_views_per_post":15400,"shares_per_post":9,"comments_per_post":34,"reactions_per_post":410},"updated_at":"2026-05-20T11:04:00Z"}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/discovery-search":{"post":{"operationId":"discoverySearchCreators","summary":"Run a creator discovery search","tags":["Creators"],"description":"Ranked discovery search over LinkedIn creators using keyword relevance. `keywords` is required. Returns `meta.ranking_source` (`rpc` or `fallback`).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["keywords"],"properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Search keywords (required, at least one). NOTE: this is `keywords`, not `query`."},"platform":{"type":"string","enum":["linkedin","youtube"],"description":"Reserved. Discovery search currently runs against LinkedIn regardless of this value."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Number of creators to return (1-100). Defaults to 50."},"offset":{"type":"integer","minimum":0,"description":"Result offset for pagination. Defaults to 0."},"search_mode":{"type":"string","enum":["auto","strict","balanced","broad"],"description":"Ranking strictness. Defaults to `auto`."},"filters":{"type":"object","additionalProperties":true,"description":"Optional structured filters applied to the candidate set.","properties":{"content_categories":{"type":"array","items":{"type":"string"}},"target_audiences":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"hide_brands":{"type":"boolean"},"min_followers":{"type":"number"},"max_followers":{"type":"number"},"min_engagement":{"type":"number"},"max_engagement":{"type":"number"},"min_posts_per_month":{"type":"number"},"max_posts_per_month":{"type":"number"},"min_reactions_per_post":{"type":"number"},"max_reactions_per_post":{"type":"number"},"min_comments_per_post":{"type":"number"},"max_comments_per_post":{"type":"number"},"min_shares_per_post":{"type":"number"},"max_shares_per_post":{"type":"number"}}}},"example":{"platform":"linkedin","keywords":["SaaS","marketing","growth"],"limit":5}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Ranked discovery results. `meta` includes `keywords_used`, `ranking_source`, `search_mode`, and pagination.","content":{"application/json":{"schema":{"type":"object","description":"Ranked discovery results. `meta` includes `keywords_used`, `ranking_source`, `search_mode`, and pagination.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators":[{"id":"f0e1d2c3-b4a5-4678-9abc-def012345678","name":"Jane Marketer","bio":"Head of Growth. I write about B2B SaaS and demand gen.","location":"London, UK","avatar_url":"https://media.licdn.com/.../jane.jpg","content_categories":["marketing","saas"],"target_audiences":["marketers","founders"],"languages":["en"],"platform":"linkedin","handle":"jane-marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","metrics":{"followers_count":48200,"engagement_rate":2.31,"avg_posts_per_month":12,"avg_views_per_post":15400,"shares_per_post":9,"comments_per_post":34,"reactions_per_post":410},"updated_at":"2026-05-20T11:04:00Z","score":87,"match_rank":87}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/thought-leaders":{"post":{"operationId":"findThoughtLeaders","summary":"Find thought leaders for a topic","tags":["Creators"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["keywords"],"properties":{"keywords":{"type":"array","items":{"type":"string"},"minItems":5,"description":"Topic keywords. REQUIRED and must contain at least 5 strings."},"count":{"type":"integer","minimum":1,"maximum":100,"description":"Max thought leaders to return. Defaults to 10."},"min_followers":{"type":"number","minimum":0,"description":"Minimum follower count. Defaults to 30000."},"min_reactions_per_post":{"type":"number","minimum":0,"description":"Minimum average reactions per post. Defaults to 50."},"min_content_match_score":{"type":"number","minimum":0,"description":"Minimum content match score (0-100). Defaults to 60."},"hide_brands":{"type":"boolean","description":"Exclude brand/company pages. Defaults to true."},"mode":{"type":"string","enum":["strict","balanced","broad"],"description":"Ranking strictness. Defaults to `balanced`."},"location":{"type":"string","description":"Single location filter."},"language":{"type":"string","description":"Single language filter."},"posts_to_analyze":{"type":"integer","enum":[10,20,30],"description":"Posts analyzed per candidate. One of 10, 20, 30. Defaults to 10."},"max_candidates_to_analyze":{"type":"integer","minimum":1,"maximum":200,"description":"Cap on candidates analyzed. Defaults to 100."},"filters":{"type":"object","additionalProperties":true,"description":"Optional structured filters applied to the candidate set.","properties":{"content_categories":{"type":"array","items":{"type":"string"}},"target_audiences":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"hide_brands":{"type":"boolean"},"min_followers":{"type":"number"},"max_followers":{"type":"number"},"min_engagement":{"type":"number"},"max_engagement":{"type":"number"},"min_posts_per_month":{"type":"number"},"max_posts_per_month":{"type":"number"},"min_reactions_per_post":{"type":"number"},"max_reactions_per_post":{"type":"number"},"min_comments_per_post":{"type":"number"},"max_comments_per_post":{"type":"number"},"min_shares_per_post":{"type":"number"},"max_shares_per_post":{"type":"number"}}}},"example":{"keywords":["B2B SaaS","demand generation","marketing analytics","growth","ABM"],"count":10,"min_followers":30000,"mode":"balanced"}}}}},"security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Job accepted. Poll job status and results endpoints until terminal.","content":{"application/json":{"schema":{"type":"object","description":"Job accepted. Poll job status and results endpoints until terminal.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"job_id":"a1b2c3d4-e5f6-4789-a012-3456789abcde","job_type":"thought_leaders","status":"queued"},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/{id}":{"get":{"operationId":"getCreator","summary":"Get creator details","tags":["Creators"],"description":"Fetch a single public creator by ID, including profile metrics and (when available) enrichment.","parameters":[{"schema":{"type":"string","enum":["linkedin","youtube"]},"in":"query","name":"platform","required":false,"description":"Creator platform. Defaults to `linkedin`."},{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Creator UUID."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Creator detail.","content":{"application/json":{"schema":{"type":"object","description":"Creator detail.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creator":{"id":"f0e1d2c3-b4a5-4678-9abc-def012345678","name":"Jane Marketer","bio":"Head of Growth.","location":"London, UK","avatar_url":"https://media.licdn.com/.../jane.jpg","content_categories":["marketing"],"target_audiences":["marketers"],"languages":["en"],"platform":"linkedin","handle":"jane-marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","metrics":{"followers_count":48200,"engagement_rate":2.31},"created_at":"2026-01-02T10:00:00Z","updated_at":"2026-05-20T11:04:00Z","enrichment":{"is_enriched":false}}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/enrich":{"post":{"operationId":"startCreatorEnrichment","summary":"Start creator enrichment","tags":["Enrichment"],"description":"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 response is `202`. Enrichment results are retrieved via `POST /v1/enrichments/results` using `creator_ids` (there is no per-job polling for enrichment). Costs 1 credit per profile enriched.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678","a1b2c3d4-e5f6-4789-9abc-0123456789ab"]}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"All requested creators were already enriched — no jobs created. Fetch results via POST /v1/enrichments/results with creator_ids.","content":{"application/json":{"schema":{"type":"object","description":"All requested creators were already enriched — no jobs created. Fetch results via POST /v1/enrichments/results with creator_ids.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators_requested":2,"selection":{"source":"creator_ids","selected_count":2},"jobs_created":0,"all_complete":true,"already_enriched_count":2,"missing_linkedin_profiles":[],"jobs":[]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"202":{"description":"Enrichment queued. Poll results with POST /v1/enrichments/results using the same creator_ids.","content":{"application/json":{"schema":{"type":"object","description":"Enrichment queued. Poll results with POST /v1/enrichments/results using the same creator_ids.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators_requested":2,"selection":{"source":"creator_ids","selected_count":2},"jobs_created":2,"task_id":"run_abc123","credits":{"required":2,"deducted":2,"remaining":4998},"already_enriched_count":0,"missing_linkedin_profiles":[],"jobs":[{"job_id":"enrichment:f0e1d2c3-b4a5-4678-9abc-def012345678","creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","creator_name":"Jane Marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","status":"queued"}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/content-match":{"post":{"operationId":"startContentMatch","summary":"Start content match analysis","tags":["Analysis"],"description":"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:<uuid>` under `data.job_ids` and `data.jobs[].job_id`. `jobs_created` is 0 for creators already analyzed. Use those IDs with `POST /v1/content-match/results`. Cost: 3/5/8 credits per analysis based on `posts_to_analyze` (10/20/30).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID. When set, content criteria come from the campaign."},"campaign_brief":{"type":"string","description":"Optional human-readable brief used as the analysis name."},"topic_keywords":{"type":"array","items":{"type":"string"},"description":"Topic keywords for ad hoc content match. REQUIRED when no campaign_id is provided. (Alias: `keywords`.)"},"linkedin_content_types":{"type":"array","items":{"type":"string","enum":["image","video","carousel"]},"description":"Optional content-type filter."},"posts_to_analyze":{"type":"integer","enum":[10,20,30],"description":"Posts analyzed per creator. 10 (3cr), 20 (5cr), or 30 (8cr). Defaults to 10."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678"],"topic_keywords":["developer tools","API platforms","DevEx"],"posts_to_analyze":10}}}}},"security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Content match jobs queued. Job IDs are prefixed `content-fit:<uuid>`.","content":{"application/json":{"schema":{"type":"object","description":"Content match jobs queued. Job IDs are prefixed `content-fit:<uuid>`.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators_requested":2,"selection":{"source":"creator_ids","selected_count":2},"campaign_id":null,"posts_to_analyze":10,"jobs_created":2,"job_ids":["content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","content-fit:7a8b9c0d-1e2f-4a3b-8c9d-0e1f2a3b4c5d"],"jobs":[{"creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","analysis_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","job_id":"content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","status":"pending","cached":false,"message":"Content analysis started. This may take a minute.","creator_name":"Jane Marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/"}],"failures":[]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creators/audience-match":{"post":{"operationId":"startAudienceMatch","summary":"Start audience match analysis","tags":["Analysis"],"description":"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:<uuid>`. Use those IDs with `POST /v1/audience-match/results` or `/details`. Cost: 10/20/30 credits per analysis based on `analysis_depth`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID. When set, audience criteria come from the campaign."},"campaign_brief":{"type":"string","description":"Free-text brief describing the target audience (ad hoc)."},"target_audience":{"type":"string","description":"Alias for campaign_brief (ad hoc)."},"audience_keywords":{"type":"array","items":{"type":"string"},"description":"Audience keywords (ad hoc). Alias: `keywords`."},"target_audience_criteria":{"type":"array","items":{"type":"string"},"description":"Free-form audience criteria strings (e.g. job titles, seniorities, industries) for ad hoc runs."},"analysis_depth":{"type":"string","enum":["quick_scan","deep_dive","comprehensive"],"description":"Analysis depth. quick_scan (10cr), deep_dive (20cr), comprehensive (30cr). Defaults to quick_scan."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678"],"target_audience_criteria":["VP Marketing","Head of Growth","B2B SaaS"],"analysis_depth":"quick_scan"}}}}},"security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Audience match jobs queued. Job IDs are prefixed `audience-fit:<uuid>`.","content":{"application/json":{"schema":{"type":"object","description":"Audience match jobs queued. Job IDs are prefixed `audience-fit:<uuid>`.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators_requested":1,"selection":{"source":"creator_ids","selected_count":1},"campaign_id":null,"analysis_depth":"quick_scan","jobs_created":1,"job_ids":["audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c"],"jobs":[{"creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","analysis_id":"a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","job_id":"audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","status":"pending","cached":false,"message":"Audience analysis started. This may take a few minutes.","creator_name":"Jane Marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/"}],"failures":[]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/jobs/{id}":{"get":{"operationId":"getJobStatus","summary":"Get job status","tags":["Jobs"],"description":"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.","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Job UUID (plain, unprefixed)."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Job status. `status` is one of queued, running, succeeded, failed, canceled, expired.","content":{"application/json":{"schema":{"type":"object","description":"Job status. `status` is one of queued, running, succeeded, failed, canceled, expired.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"job":{"id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","job_type":"creator_discovery","status":"succeeded","source_status":"completed","is_terminal":true,"progress":{"total_items":120,"completed_items":120,"approved_items":38,"failed_items":82},"campaign_id":null,"platform":"linkedin","created_list_id":null,"created_at":"2026-05-28T09:00:00Z","updated_at":"2026-05-28T09:06:00Z","completed_at":"2026-05-28T09:06:00Z","result_expires_at":"2026-06-27T09:06:00Z","result_retention_days":30,"error_message":null}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/account/usage":{"get":{"operationId":"getAccountUsage","summary":"Get account usage","tags":["Account"],"description":"Usage and credit summary for the current billing month (or a specific `month`).","parameters":[{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"in":"query","name":"month","required":false,"description":"Month in `YYYY-MM` format. Defaults to the current month."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Account usage summary for the period.","content":{"application/json":{"schema":{"type":"object","description":"Account usage summary for the period.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"period":"2026-05","total_calls":142,"total_credits_charged":87,"total_overage_usd":0,"plan_source":"dedicated_api","subscription_plan":"API_BUILD","subscription_status":"active","operations":{"creator_discovery_search_per_100":{"calls":40,"credits_charged":40,"overage_amount_usd":0},"profile_enrichment":{"calls":47,"credits_charged":47,"overage_amount_usd":0}}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/campaigns":{"get":{"operationId":"listCampaigns","summary":"List campaigns","tags":["Campaigns"],"description":"List campaigns owned by the key's user. **SaaS workspace entitlement required** — dedicated API keys receive an empty list.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Page size (1-100). Defaults to 50."},{"schema":{"type":"integer","minimum":0},"in":"query","name":"offset","required":false,"description":"Result offset. Defaults to 0."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Campaign list (paginated via `meta`).","content":{"application/json":{"schema":{"type":"object","description":"Campaign list (paginated via `meta`).","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"campaigns":[]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}},"post":{"operationId":"createCampaign","summary":"Create a campaign","tags":["Campaigns"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name","content_keywords","target_audience_criteria"],"properties":{"name":{"type":"string","minLength":1,"description":"Campaign name (required)."},"content_keywords":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Content keywords (at least one required)."},"target_audience_criteria":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Audience criteria (at least one required)."},"product_id":{"type":"string","description":"Optional product UUID."},"product_name":{"type":"string"},"target_regions":{"type":"array","items":{"type":"string"}},"target_audience":{"type":"string"},"target_job_titles":{"type":"array","items":{"type":"string"}},"target_platforms":{"type":"array","items":{"type":"string"}},"target_companies":{"type":"array","items":{"type":"string"}},"creator_regions":{"type":"array","items":{"type":"string"}},"search_country":{"type":"string","description":"ISO country code. Defaults to `us`."},"linkedin_content_types":{"type":"array","items":{"type":"string","enum":["image","video","carousel"]}},"min_linkedin_followers":{"type":"number","minimum":0},"max_linkedin_followers":{"type":"number","minimum":0},"min_youtube_subscribers":{"type":"number","minimum":0},"max_youtube_subscribers":{"type":"number","minimum":0},"min_youtube_monthly_views":{"type":"number","minimum":0},"max_youtube_monthly_views":{"type":"number","minimum":0}},"example":{"name":"Q3 Developer Launch","content_keywords":["developer tools","API"],"target_audience_criteria":["CTO","VP Engineering"],"target_platforms":["linkedin"],"search_country":"us"}}}}},"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Campaign created.","content":{"application/json":{"schema":{"type":"object","description":"Campaign created.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"campaign":{"id":"c1a2b3d4-e5f6-4789-9abc-0123456789ab","name":"Q3 Developer Launch","product_id":null,"product_name":null,"target_regions":[],"target_audience":null,"target_job_titles":[],"target_platforms":["linkedin"],"target_companies":[],"content_keywords":["developer tools","API"],"target_audience_criteria":["CTO","VP Engineering"],"search_country":"us","creator_regions":[],"created_at":"2026-05-29T10:00:00Z","updated_at":"2026-05-29T10:00:00Z"}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/campaigns/{id}":{"get":{"operationId":"getCampaign","summary":"Get campaign details","tags":["Campaigns"],"description":"Get a campaign by ID. **SaaS workspace entitlement required.**","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Campaign UUID."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Campaign detail.","content":{"application/json":{"schema":{"type":"object","description":"Campaign detail.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"campaign":{"id":"c1a2b3d4-e5f6-4789-9abc-0123456789ab","name":"Q3 Developer Launch","product_id":null,"product_name":"Toksta API","target_regions":["us","uk"],"target_audience":"Engineering leaders","target_job_titles":["CTO","VP Engineering"],"target_platforms":["linkedin"],"target_companies":[],"content_keywords":["developer tools","API"],"target_audience_criteria":["CTO","VP Engineering"],"search_country":"us","creator_regions":["us"],"created_at":"2026-05-01T10:00:00Z","updated_at":"2026-05-10T10:00:00Z"}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creator-lists":{"get":{"operationId":"listCreatorLists","summary":"List creator lists","tags":["Creator Lists"],"description":"List creator lists owned by the key's user. **SaaS workspace entitlement required** — dedicated API keys receive an empty list.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Page size (1-100). Defaults to 50."},{"schema":{"type":"integer","minimum":0},"in":"query","name":"offset","required":false,"description":"Result offset. Defaults to 0."},{"schema":{"type":"string"},"in":"query","name":"platform","required":false,"description":"Optional platform filter."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Creator list collection (paginated via `meta`).","content":{"application/json":{"schema":{"type":"object","description":"Creator list collection (paginated via `meta`).","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creator_lists":[]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}},"post":{"operationId":"createCreatorList","summary":"Create a creator list","tags":["Creator Lists"],"description":"Create a creator list. **SaaS workspace entitlement required** — dedicated API keys receive `403`. `name` is required.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"description":"List name (required)."},"description":{"type":"string"},"is_private":{"type":"boolean","description":"Defaults to true."},"tags":{"type":"array","items":{"type":"string"}},"platform":{"type":"string","enum":["linkedin","youtube","twitter"],"description":"Optional platform."},"public_creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Public creator UUIDs to seed the list."},"private_creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Private creator UUIDs to seed the list."}},"example":{"name":"Shortlist — Dev influencers","platform":"linkedin","is_private":true}}}}},"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Creator list created.","content":{"application/json":{"schema":{"type":"object","description":"Creator list created.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creator_list":{"id":"11112222-3333-4444-5555-666677778888","name":"Shortlist — Dev influencers","description":null,"is_private":true,"tags":[],"platform":"linkedin","creator_counts":{"public_creators":0,"private_creators":0,"total":0},"created_at":"2026-05-29T10:00:00Z","updated_at":"2026-05-29T10:00:00Z"}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/creator-lists/{id}/creators":{"post":{"operationId":"saveCreatorsToList","summary":"Save creators to a list","tags":["Creator Lists"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["creator_ids"],"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"minItems":1,"maxItems":100,"description":"Creator UUIDs to add (1-100)."},"creator_source":{"type":"string","enum":["public","private"],"description":"Whether IDs are public or private creators. Defaults to `public`."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678"],"creator_source":"public"}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Creator list UUID."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Creators saved to the list.","content":{"application/json":{"schema":{"type":"object","description":"Creators saved to the list.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"list_id":"11112222-3333-4444-5555-666677778888","creator_source":"public","requested_count":1,"added_count":1,"total_items":1},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/search-results/posts":{"post":{"operationId":"getSearchResultPosts","summary":"Get posts behind search results","tags":["Evidence"],"description":"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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to match posts against. Required unless a result_set_id/result_set_ids is provided."},"posts_limit_per_creator":{"type":"integer","minimum":1,"maximum":10,"description":"Evidence posts per creator (1-10). Defaults to 3."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678"],"keywords":["developer tools","API"],"posts_limit_per_creator":3}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Keyword evidence posts per creator.","content":{"application/json":{"schema":{"type":"object","description":"Keyword evidence posts per creator.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"keywords_used":["developer tools","API"],"selection":{"source":"creator_ids","selected_count":1},"results":[{"creator":{"id":"f0e1d2c3-b4a5-4678-9abc-def012345678","name":"Jane Marketer","handle":"jane-marketer","platform":"linkedin","profile_url":"https://www.linkedin.com/in/jane-marketer/"},"cached_post_count":42,"matched_posts_count":2,"matched_keywords":["developer tools"],"evidence_posts":[{"post_url":"https://www.linkedin.com/posts/jane-marketer_...","posted_at":"2026-05-18T08:00:00Z","keyword_matches":["developer tools"],"relevance_score":22,"snippet":"Why developer tools win on DevEx...","reactions":410,"comments":34,"shares":9}]}],"unsupported_creators":[],"detail_level":"summary","posts_limit_per_creator":3},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/enrichments/results":{"post":{"operationId":"getEnrichmentResults","summary":"Get enrichment results","tags":["Enrichment"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."},"wait_seconds":{"type":"integer","minimum":0,"maximum":30,"description":"Optional inline poll. Holds the request up to this many seconds (max 30) waiting for jobs to reach a terminal state before returning. Defaults to 0 (return immediately)."}},"example":{"creator_ids":["f0e1d2c3-b4a5-4678-9abc-def012345678"],"detail_level":"summary","wait_seconds":10}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Enrichment results. `results` (full records) is present only when detail_level=full. `meta` includes detail_level and wait_seconds.","content":{"application/json":{"schema":{"type":"object","description":"Enrichment results. `results` (full records) is present only when detail_level=full. `meta` includes detail_level and wait_seconds.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"creators_requested":1,"completed":1,"pending":0,"selection":{"source":"creator_ids","selected_count":1},"results_summary":[{"creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","name":"Jane Marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","followers_count":48200,"median_posts_per_month":12,"engagement_rate":2.31,"enriched_at":"2026-05-28T09:06:00Z"}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/content-match/results":{"post":{"operationId":"getContentMatchResults","summary":"Get content match results","tags":["Analysis"],"description":"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:<uuid>` 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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"job_id":{"type":"string","description":"A single content-match job ID (`content-fit:<uuid>` or bare UUID)."},"job_ids":{"type":"array","items":{"type":"string"},"description":"Multiple content-match job IDs."},"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID to scope creator-based lookups."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."},"wait_seconds":{"type":"integer","minimum":0,"maximum":30,"description":"Optional inline poll. Holds the request up to this many seconds (max 30) waiting for jobs to reach a terminal state before returning. Defaults to 0 (return immediately)."}},"example":{"job_id":"content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","detail_level":"summary"}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Content-match results. Job-selector mode returns selection/found_count; creator mode returns creators_requested/missing_creator_ids.","content":{"application/json":{"schema":{"type":"object","description":"Content-match results. Job-selector mode returns selection/found_count; creator mode returns creators_requested/missing_creator_ids.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"selection":{"source":"job_id","selected_count":1},"requested_count":1,"found_count":1,"not_found_ids":[],"expired_ids":[],"results_summary":[{"job_id":"content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","analysis_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","creator_name":"Jane Marketer","profile_url":"https://www.linkedin.com/in/jane-marketer/","platform":"linkedin","status":"succeeded","source_status":"completed","match_score":78,"matching_posts_count":6,"total_posts_analyzed":10,"content_fit_label":"Strong fit","matched_posts_status":"saved_snippets_available","recommended_next_endpoint":"/v1/content-match/posts","error_message":null,"completed_at":"2026-05-28T09:06:00Z","updated_at":"2026-05-28T09:06:00Z"}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/content-match/posts":{"post":{"operationId":"getContentMatchPosts","summary":"Get content match evidence posts","tags":["Analysis"],"description":"Fetch the matched posts (evidence) for content-match analyses. Same selection modes as `/v1/content-match/results` (`job_id`/`job_ids` accepting `content-fit:<uuid>` or bare UUID, or `creator_ids`/result sets + optional `campaign_id`).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"job_id":{"type":"string","description":"A single content-match job ID (`content-fit:<uuid>` or bare UUID)."},"job_ids":{"type":"array","items":{"type":"string"}},"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID to scope creator-based lookups."},"posts_limit_per_creator":{"type":"integer","minimum":1,"maximum":10,"description":"Matched posts per creator (1-10). Defaults to 3."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."},"wait_seconds":{"type":"integer","minimum":0,"maximum":30,"description":"Optional inline poll. Holds the request up to this many seconds (max 30) waiting for jobs to reach a terminal state before returning. Defaults to 0 (return immediately)."}},"example":{"job_id":"content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","detail_level":"full","posts_limit_per_creator":5}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Matched posts for content-match analyses.","content":{"application/json":{"schema":{"type":"object","description":"Matched posts for content-match analyses.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"selection":{"source":"job_id","selected_count":1},"requested_count":1,"found_count":1,"not_found_ids":[],"expired_ids":[],"detail_level":"full","posts_limit_per_creator":5,"results":[{"source":"job_id content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","job_id":"content-fit:56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","analysis_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","creator_name":"Jane Marketer","status":"succeeded","match_score":78,"matching_posts_count":6,"returned_posts_count":5,"has_more_matched_posts":true,"matched_posts":[{"title":"Why DevEx wins","post_url":"https://www.linkedin.com/posts/jane-marketer_...","posted_date":"2026-05-18","content_type":"text","match_score":81,"keyword_matches":["developer tools"],"match_reason":"Directly discusses developer tooling adoption."}]}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/audience-match/results":{"post":{"operationId":"getAudienceMatchResults","summary":"Get audience match results","tags":["Analysis"],"description":"Fetch audience-match analysis results. Same dual selection model as content match: `job_id`/`job_ids` (accepting `audience-fit:<uuid>` or bare UUID) OR `creator_ids`/result sets + optional `campaign_id`. `detail_level: \"full\"` adds the `results` array.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"job_id":{"type":"string","description":"A single audience-match job ID (`audience-fit:<uuid>` or bare UUID)."},"job_ids":{"type":"array","items":{"type":"string"}},"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID to scope creator-based lookups."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."},"wait_seconds":{"type":"integer","minimum":0,"maximum":30,"description":"Optional inline poll. Holds the request up to this many seconds (max 30) waiting for jobs to reach a terminal state before returning. Defaults to 0 (return immediately)."}},"example":{"job_id":"audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","detail_level":"summary"}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Audience-match results summary. Call /v1/audience-match/details for full breakdowns.","content":{"application/json":{"schema":{"type":"object","description":"Audience-match results summary. Call /v1/audience-match/details for full breakdowns.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"selection":{"source":"job_id","selected_count":1},"requested_count":1,"found_count":1,"not_found_ids":[],"expired_ids":[],"results_summary":[{"job_id":"audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","analysis_id":"a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","creator_name":"Jane Marketer","platform":"linkedin","status":"succeeded","match_score":71,"matching_engagers_count":134,"total_engagers_analyzed":300,"unique_companies":88,"audience_summary":"Audience skews senior B2B marketing and growth leaders.","recommended_next_endpoint":"/v1/audience-match/details","completed_at":"2026-05-28T09:12:00Z","updated_at":"2026-05-28T09:12:00Z"}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/audience-match/details":{"post":{"operationId":"getAudienceMatchDetails","summary":"Get audience match details","tags":["Analysis"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"properties":{"job_id":{"type":"string","description":"A single audience-match job ID (`audience-fit:<uuid>` or bare UUID)."},"job_ids":{"type":"array","items":{"type":"string"}},"creator_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"description":"Creator UUIDs to operate on. Takes precedence over result_set_id / result_set_ids when provided."},"result_set_id":{"type":"string","description":"A single `result_set_id` returned by a prior discovery search. Resolved to its ranked creators."},"result_set_ids":{"type":"array","items":{"type":"string"},"description":"Multiple result set IDs to merge (dedupe) into one creator selection."},"top_n":{"type":"integer","minimum":1,"description":"When selecting from result set(s), take only the top N ranked creators."},"ranks":{"type":"array","items":{"type":"integer","minimum":1},"description":"When a single result_set_id is provided, select specific 1-based ranks (e.g. [1,3,5])."},"campaign_id":{"type":"string","description":"Optional campaign UUID to scope creator-based lookups."},"engagers_limit":{"type":"integer","minimum":1,"maximum":30,"description":"Top engagers to return (1-30). Defaults to 5."},"detail_level":{"type":"string","enum":["summary","full"],"description":"Response verbosity. `summary` (default) returns trimmed fields; `full` returns the complete records."},"wait_seconds":{"type":"integer","minimum":0,"maximum":30,"description":"Optional inline poll. Holds the request up to this many seconds (max 30) waiting for jobs to reach a terminal state before returning. Defaults to 0 (return immediately)."}},"example":{"job_id":"audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","detail_level":"full","engagers_limit":10}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Detailed audience-match breakdowns.","content":{"application/json":{"schema":{"type":"object","description":"Detailed audience-match breakdowns.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"selection":{"source":"job_id","selected_count":1},"requested_count":1,"found_count":1,"not_found_ids":[],"expired_ids":[],"detail_level":"full","engagers_limit":10,"results":[{"job_id":"audience-fit:a5f1eeb5-ee98-41bc-8b2c-3d4e5f6a7b8c","creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","status":"succeeded","match_score":71,"total_engagers_analyzed":300,"matching_engagers_count":134,"unique_companies":88,"audience_summary":"Audience skews senior B2B marketing and growth leaders.","top_matching_engagers":[{"name":"Sam B.","job_title":"VP Marketing","company":"Acme","headline":"VP Marketing at Acme","linkedin_url":"https://www.linkedin.com/in/sam-b/","engagement_count":4}],"top_companies":[{"name":"Acme","count":12,"percentage":8.9}],"job_title_breakdown":[{"title":"VP Marketing","count":18}]}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/jobs/results":{"post":{"operationId":"getJobResults","summary":"Get one job result","tags":["Jobs"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["job_id"],"properties":{"job_id":{"type":"string","description":"Discovery job UUID (plain, unprefixed). REQUIRED."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Max candidate rows (1-200). Defaults to 50. Alias: results_limit."}},"example":{"job_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","limit":50}}}}},"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Single discovery job result with candidate rows.","content":{"application/json":{"schema":{"type":"object","description":"Single discovery job result with candidate rows.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"job":{"job_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","job_type":"creator_discovery","status":"succeeded","source_status":"completed","is_terminal":true,"progress":{"total_items":120,"completed_items":120,"approved_items":38,"failed_items":82},"platform":"linkedin","campaign_id":null,"created_list_id":null,"result_expires_at":"2026-06-27T09:06:00Z","result_retention_days":30,"results_truncated":false,"result_count":1,"results":[{"creator_id":"f0e1d2c3-b4a5-4678-9abc-def012345678","creator_name":"Jane Marketer","status":"approved","search_rank":1,"relevance_score":0.92,"relevance_reasoning":"Strong topical match.","processed_at":"2026-05-28T09:05:00Z"}]}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/jobs/results{bulk}":{"post":{"operationId":"getBulkJobResults","summary":"Get multiple job results","tags":["Jobs"],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"required":["job_ids"],"properties":{"job_ids":{"type":"array","items":{"type":"string","description":"UUID v4 string."},"minItems":1,"maxItems":20,"description":"1-20 discovery job UUIDs (plain, unprefixed). REQUIRED."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Max candidate rows per job (1-200). Defaults to 50. Alias: results_limit."}},"example":{"job_ids":["56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","7a8b9c0d-1e2f-4a3b-8c9d-0e1f2a3b4c5d"],"limit":25}}}}},"security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"in":"path","name":"bulk","required":true}],"responses":{"200":{"description":"Bulk job results. `meta` includes requested_count, found_count, not_found_count.","content":{"application/json":{"schema":{"type":"object","description":"Bulk job results. `meta` includes requested_count, found_count, not_found_count.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"jobs":[{"found":true,"job_id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","job_type":"creator_discovery","status":"succeeded","progress":{"total_items":120,"completed_items":120,"approved_items":38,"failed_items":82},"result_count":38,"results":[]},{"job_id":"7a8b9c0d-1e2f-4a3b-8c9d-0e1f2a3b4c5d","found":false}]},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}},"/v1/jobs/{id}/cancel":{"post":{"operationId":"cancelJob","summary":"Cancel a running job","tags":["Jobs"],"description":"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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Empty object `{}` is valid.","properties":{},"example":{}}}},"description":"Empty object `{}` is valid."},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Job UUID (plain, unprefixed)."}],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Cancellation result.","content":{"application/json":{"schema":{"type":"object","description":"Cancellation result.","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","additionalProperties":true,"description":"Operation payload. See the example for the exact field structure."},"meta":{"type":"object","additionalProperties":true,"required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"example":{"success":true,"data":{"job":{"id":"56232ac2-8068-4dcb-9d1a-1f2e3a4b5c6d","status":"canceled","source_status":"cancelled","canceled":true,"reason":"cancel_applied","progress":{"total_items":120,"completed_items":40,"approved_items":12,"failed_items":28},"created_at":"2026-05-28T09:00:00Z","updated_at":"2026-05-28T09:03:00Z","completed_at":"2026-05-28T09:03:00Z","result_expires_at":"2026-06-27T09:03:00Z","result_retention_days":30,"error_message":"Canceled via public API."}},"meta":{"request_id":"req_01HXYZ...","trace_id":"4f1d...c2"}}}}}},"400":{"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`)."}}}},"401":{"description":"Missing, invalid, or revoked API key.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Missing, invalid, or revoked API key."}}}},"402":{"description":"Insufficient credits for this operation.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Insufficient credits for this operation."}}}},"403":{"description":"API access disabled or workspace entitlement required.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"API access disabled or workspace entitlement required."}}}},"404":{"description":"Resource not found, or result expired past retention.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Resource not found, or result expired past retention."}}}},"429":{"description":"Rate limit exceeded — back off per `Retry-After`.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Rate limit exceeded — back off per `Retry-After`."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Unexpected server error."}}}},"501":{"description":"Endpoint is registered but not implemented yet.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}},"meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string"},"trace_id":{"type":"string"}}}},"description":"Endpoint is registered but not implemented yet."}}}}}}}},"servers":[{"url":"https://api.toksta.com"}]}