> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamforge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search creators by name

> Find creators on one platform by the start of their display name or handle. Matching ignores case and
accents, and a handle matches with or without its spaces, so `kai c` finds `KaiCenat` and `mr b` finds
`@mrbeast`. The creator whose handle is exactly the query comes first; the rest follow by
followers, most followed first.

Searches by Discovery's inclusion rule: at least 1,000 followers and content in the last 90 days
(180 days on Instagram). Results are full profiles, the same shape `GET /platforms/{platform}/profiles/{profile_id}`
returns, so `profile_image` and `statistics.followers` are ready to display.

Costs 0.01 credit per request, whatever the `limit`. Available with a Streamforge API key only.




## OpenAPI

````yaml GET /platforms/{platform}/profiles/search
openapi: 3.0.3
info:
  title: Streamforge External API
  description: >
    Public-facing API for accessing normalized creator, content, and analysis
    data across Twitch, YouTube, Instagram, TikTok, and X (Twitter).


    ## Authentication

    All requests require an API key in the `x-api-key` header.


    ## Credits

    The API prices calls in credits. Each call costs its endpoint's tier once,
    whatever the number of IDs it

    names or results it returns. A bulk call for 25 profiles costs the same as a
    call for one.


    The `X-Credits-limit`, `X-Credits-used` and `X-Credits-request-cost`
    response headers are in credits, so a

    call that costs 0.01 credit shows `X-Credits-request-cost: 0.01`.


    - Standard, 0.01 credit per call: creator profiles, posts and videos, games,
    creator and brand search, rate estimates

    - Advanced, 0.1 credit per call: creator email, cross-platform social
    linking, brand profiles, industry data, rate benchmarks

    - Premium, 1 credit per call: AI-enriched creator data, audience
    demographics, creator requests


    ### Credits by endpoint:

    - Profile, profile list, bulk profiles, handle lookup and creator search:
    0.01 credit

    - Content, content lists and bulk content: 0.01 credit

    - Game, game content, bulk games and game search: 0.01 credit

    - Brand search and brand list: 0.01 credit

    - Rate dimensions and rate estimate: 0.01 credit

    - Email and socials endpoints: 0.1 credit

    - Brand profile endpoint: 0.1 credit

    - Industry list and industry ranking: 0.1 credit

    - Rate benchmarks: 0.1 credit

    - Analysis and audience endpoints: 1 credit

    - Creator request: 1 credit per accepted request, once, returned if it ends
    `not_found` or `failed`; reading a request costs nothing


    Brand, industry, rate and creator request endpoints are available with a
    Streamforge API key only.


    ## Items per call

    A call names or returns at most 25 items. Bulk calls take at most 25 IDs in
    `profile_ids`, `content_ids`,

    `game_ids` or `handles`; more returns a `400` validation error. A list page
    returns at most 25 items; a

    larger `limit` is lowered to 25.


    ## Rate Limiting

    Rate limit headers are included in all responses. Every call counts as one
    request, whatever it costs in credits:

    - `X-RateLimit-{window}-limit`: Maximum requests allowed

    - `X-RateLimit-{window}-remaining`: Remaining requests

    - `X-RateLimit-{window}-reset`: UNIX timestamp (seconds) when the limit
    resets


    ## Base URL

    Production: `https://external-api.streamforge.com`
  version: 1.0.0
  contact:
    name: Streamforge Support
    email: support@streamforge.com
servers:
  - url: https://external-api.streamforge.com
    description: Production
  - url: http://localhost:3000
    description: Local development (from .env)
    variables:
      base_url:
        default: http://localhost:3000
security:
  - ApiKeyAuth: []
tags:
  - name: Health
    description: Health check endpoint
  - name: Profiles
    description: Creator profile endpoints
  - name: Content
    description: Content (streams/videos) endpoints
  - name: Games
    description: Game metadata endpoints
  - name: Advanced
    description: Advanced insights and analysis
  - name: Brands
    description: Brand sponsorship activity from Streamforge Market Intelligence
  - name: Industries
    description: >-
      Industry sponsorship totals and brand rankings from Streamforge Market
      Intelligence
  - name: Rates
    description: Sponsorship rate ranges from Streamforge's published rate snapshot
  - name: Creator requests
    description: Ask Streamforge to prepare a creator, then check back for the result
paths:
  /platforms/{platform}/profiles/search:
    get:
      tags:
        - Profiles
      summary: Search creators by name
      description: >
        Find creators on one platform by the start of their display name or
        handle. Matching ignores case and

        accents, and a handle matches with or without its spaces, so `kai c`
        finds `KaiCenat` and `mr b` finds

        `@mrbeast`. The creator whose handle is exactly the query comes first;
        the rest follow by

        followers, most followed first.


        Searches by Discovery's inclusion rule: at least 1,000 followers and
        content in the last 90 days

        (180 days on Instagram). Results are full profiles, the same shape `GET
        /platforms/{platform}/profiles/{profile_id}`

        returns, so `profile_image` and `statistics.followers` are ready to
        display.


        Costs 0.01 credit per request, whatever the `limit`. Available with a
        Streamforge API key only.
      operationId: searchProfiles
      parameters:
        - $ref: '#/components/parameters/Platform'
        - name: q
          in: query
          required: true
          description: The start of a creator's display name or handle
          schema:
            type: string
            minLength: 2
            maxLength: 100
            example: kai c
        - name: limit
          in: query
          required: false
          description: Maximum number of results (1-25, default 10)
          schema:
            type: integer
            minimum: 1
            maximum: 25
            default: 10
      responses:
        '200':
          description: Matching creators, best match first
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    Platform:
      name: platform
      in: path
      required: true
      description: Platform identifier
      schema:
        type: string
        enum:
          - twitch
          - youtube
          - instagram
          - tiktok
          - twitter
        example: twitch
  schemas:
    ProfileSearchResponse:
      type: object
      properties:
        payload:
          type: array
          items:
            $ref: '#/components/schemas/Profile'
        meta:
          allOf:
            - $ref: '#/components/schemas/Meta'
            - type: object
              properties:
                query:
                  type: string
                limit:
                  type: integer
    Profile:
      type: object
      properties:
        platform_id:
          type: string
          enum:
            - twitch
            - youtube
            - instagram
            - tiktok
            - twitter
        id:
          type: string
        name:
          type: string
        display_name:
          type: string
        url:
          type: string
          format: uri
        description:
          type: string
          nullable: true
        profile_image:
          type: string
          format: uri
          nullable: true
        banner_image:
          type: string
          format: uri
          nullable: true
        language:
          type: string
          nullable: true
        statistics:
          type: object
          properties:
            followers:
              type: integer
              nullable: true
            views:
              type: integer
              nullable: true
              description: Total view count. Only available for YouTube profiles.
            views_estimated:
              type: integer
              nullable: true
              description: >-
                Estimated total view count calculated using our algorithms. Only
                available for Twitch profiles.
            following:
              type: integer
              nullable: true
              description: >-
                Number of accounts the creator follows. Only available for X
                (Twitter) profiles.
            posts:
              type: integer
              nullable: true
              description: Total post count. Only available for X (Twitter) profiles.
        is_verified:
          type: boolean
          description: Whether the account carries a verification badge (X only)
        is_protected:
          type: boolean
          description: Whether the account's posts are protected (X only)
        account_type:
          type: string
          description: >-
            Partner for partnered accounts, affiliate for affiliate accounts
            (Twitch only)
          nullable: true
        is_mature:
          type: boolean
          description: Whether the creator's content is marked as mature (Twitch only)
          nullable: true
        updated_at:
          type: string
          format: date-time
        last_active_at:
          type: string
          format: date-time
          nullable: true
    Meta:
      type: object
      properties:
        source:
          type: string
        received_at:
          type: string
          format: date-time
        request_id:
          type: string
          format: uuid
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            status:
              type: integer
            message:
              type: string
        meta:
          type: object
          properties:
            request_id:
              type: string
              format: uuid
  responses:
    BadRequest:
      description: Bad request - validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              status: 400
              message: Invalid platform or missing required parameter
            meta:
              request_id: 5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4
    Unauthorized:
      description: Missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              status: 401
              message: API key is required
            meta:
              request_id: 5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4
    Forbidden:
      description: Invalid or revoked API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              status: 403
              message: Invalid API key
            meta:
              request_id: 5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4
    TooManyRequests:
      description: Rate limit exceeded
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until retry is safe
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              status: 429
              message: Rate limit exceeded
            meta:
              request_id: 5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4
    ServiceUnavailable:
      description: >-
        The data behind this endpoint is not configured on this deployment, or
        is being refreshed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              status: 503
              message: >-
                Market intelligence data is being refreshed. Try again in a few
                minutes.
              code: intel_unavailable
            meta:
              request_id: 5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: |
        Your API key. Include it in the `x-api-key` header for all requests.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.