Toksta Public API

Credit-metered REST API for Toksta creator data, analysis jobs and SaaS workspace workflows. HTTP Bearer auth with self-serve tk_live_ keys, cursor pagination, a normalized success/error envelope, per-plan rate limiting, and polling-only async jobs across four analysis families. 28 operations, 24 with operationIds.

Documentation

Specifications

Other Resources

OpenAPI Specification

toksta-public-api-openapi.yml Raw ↑
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:
                 

# --- truncated at 32 KB (336 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/toksta/refs/heads/main/openapi/toksta-public-api-openapi.yml