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

# List search providers

> Lists providers, capabilities, and machine-readable native-option schemas. Auto and fallback
are strategies, not provider entries. The list is not paginated and contains no latency
benchmarks. X-Request-Id identifies the request.




## OpenAPI

````yaml https://api.onkernel.com/spec.json get /search/providers
openapi: 3.1.0
info:
  description: Developer tools and cloud infrastructure for AI agents to use web browsers
  title: Kernel API
  version: 0.1.0
servers:
  - description: API Server
    url: https://api.onkernel.com
security:
  - bearerAuth: []
tags:
  - description: Search the web and retrieve content for selected results.
    name: Search
  - description: Create and manage browser sessions.
    name: Browsers
  - description: Control mouse, keyboard, and screen on the browser instance.
    name: Browser Computer Controls
  - description: Execute Playwright code against the browser instance.
    name: Browser Playwright
  - description: Execute JavaScript in the browser instance's persistent Browser REPL.
    name: Browser REPL
  - description: Discover and invoke native page tools across the browser instance.
    name: Browser WebMCP
  - description: Read, write, and manage files on the browser instance.
    name: Browser Filesystem
  - description: Execute and manage processes on the browser instance.
    name: Browser Processes
  - description: Record and manage browser session video replays.
    name: Browser Replays
  - description: Stream logs from the browser instance.
    name: Browser Logs
  - description: >-
      Stream live telemetry events from a browser session, and manage the
      destinations sessions export them to.
    name: Browser Telemetry
  - description: Create, list, retrieve, and delete browser profiles.
    name: Profiles
  - description: Create and manage proxy configurations for routing browser traffic.
    name: Proxies
  - description: Create, list, retrieve, and delete browser extensions.
    name: Extensions
  - description: Create and manage browser pools for acquiring and releasing browsers.
    name: Browser Pools
  - description: Inspect the identity and authorization context for the current request.
    name: Authentication
  - description: >-
      Create and manage auth connections for automated credential capture and
      login.
    name: Managed Auth
  - description: Create and manage credentials for authentication.
    name: Credentials
  - description: Configure external credential providers like 1Password.
    name: Credential Providers
  - description: List applications and versions.
    name: Apps
  - description: Create and manage app deployments and stream deployment events.
    name: Deployments
  - description: Invoke actions and stream or query invocation status and events.
    name: Invocations
  - description: Read and manage organization-level limits.
    name: Organization
  - description: |
      Create and manage projects for resource isolation within an organization.
      When projects are disabled for the organization, project operations return
      `404` with code `projects_disabled`.
    name: Projects
  - description: Create and manage API keys for organization and project-scoped access.
    name: API Keys
  - description: Read audit log records for the authenticated organization.
    name: Audit Logs
  - description: Resolve browser and proxy recommendations for bot-protected sites.
    name: Config Registry
paths:
  /search/providers:
    get:
      tags:
        - Search
      summary: List search providers
      description: >
        Lists providers, capabilities, and machine-readable native-option
        schemas. Auto and fallback

        are strategies, not provider entries. The list is not paginated and
        contains no latency

        benchmarks. X-Request-Id identifies the request.
      operationId: getSearchProviders
      parameters:
        - description: Optional concrete provider slug filter. Omit to list every provider.
          in: query
          name: slug
          required: false
          schema:
            $ref: '#/components/schemas/SearchProviderSlug'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/SearchProvider'
                type: array
          description: >-
            List of available search providers. Returns an empty array, never
            null.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/SearchUnavailable'
      security:
        - bearerAuth: []
components:
  schemas:
    SearchProviderSlug:
      description: >-
        Concrete search provider. Matches the slugs returned by GET
        /search/providers.
      enum:
        - brave
        - exa
        - perplexity
        - context
        - parallel
        - valyu
        - octen
        - you
        - tavily
        - serpapi
      type: string
      x-enum-varnames:
        - SearchProviderSlugBrave
        - SearchProviderSlugExa
        - SearchProviderSlugPerplexity
        - SearchProviderSlugContext
        - SearchProviderSlugParallel
        - SearchProviderSlugValyu
        - SearchProviderSlugOcten
        - SearchProviderSlugYou
        - SearchProviderSlugTavily
        - SearchProviderSlugSerpapi
    SearchProvider:
      properties:
        content:
          $ref: '#/components/schemas/SearchContentCapabilities'
        max_results_cap:
          minimum: 1
          type: integer
        notes:
          description: >-
            Provider-specific limitations, conditional filter support, and
            warnings about search modes.
          items:
            type: string
          type: array
        params:
          $ref: '#/components/schemas/SearchParameterCapabilities'
        provider_options:
          $ref: '#/components/schemas/SearchProviderOptionsDiscovery'
        slug:
          type: string
      required:
        - slug
        - max_results_cap
        - params
        - content
        - provider_options
      type: object
    SearchContentCapabilities:
      properties:
        freshness_control:
          description: Can enforce the requested maximum content age.
          type: boolean
        inline:
          description: Supports content retrieval with the search request.
          type: boolean
        post_hoc:
          description: Supports content retrieval after the search completes.
          type: boolean
      required:
        - inline
        - post_hoc
        - freshness_control
      type: object
    SearchParameterCapabilities:
      additionalProperties: false
      properties:
        country:
          $ref: '#/components/schemas/SearchParameterCapability'
        end_date:
          $ref: '#/components/schemas/SearchParameterCapability'
        exclude_domains:
          $ref: '#/components/schemas/SearchParameterCapability'
        include_domains:
          $ref: '#/components/schemas/SearchParameterCapability'
        language:
          $ref: '#/components/schemas/SearchParameterCapability'
        recency:
          $ref: '#/components/schemas/SearchParameterCapability'
        safe_search:
          $ref: '#/components/schemas/SearchParameterCapability'
        start_date:
          $ref: '#/components/schemas/SearchParameterCapability'
      required:
        - country
        - language
        - include_domains
        - exclude_domains
        - start_date
        - end_date
        - recency
        - safe_search
      type: object
    SearchProviderOptionsDiscovery:
      additionalProperties: false
      properties:
        examples:
          items:
            additionalProperties: true
            type: object
          type: array
        schema:
          additionalProperties: true
          description: >-
            JSON Schema for the provider-native options accepted by POST
            /search.
          type: object
        schema_ref:
          description: >-
            OpenAPI component name for the matching typed provider-options
            schema.
          type: string
      required:
        - schema_ref
        - schema
      type: object
    Error:
      properties:
        code:
          description: Application-specific error code (machine-readable)
          example: bad_request
          type: string
        details:
          description: Additional error details (for multiple errors)
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        inner_error:
          $ref: '#/components/schemas/ErrorDetail'
        message:
          description: Human-readable error description for debugging
          example: 'Missing required field: app_name'
          type: string
      required:
        - code
        - message
      type: object
    SearchParameterCapability:
      properties:
        notes:
          description: Translation behavior, limitations, and precision.
          type: string
        support:
          enum:
            - native
            - emulated
            - unsupported
          type: string
          x-enum-varnames:
            - SearchParameterSupportNative
            - SearchParameterSupportEmulated
            - SearchParameterSupportUnsupported
      required:
        - support
      type: object
    ErrorDetail:
      properties:
        code:
          description: Lower-level error code providing more specific detail
          example: invalid_input
          type: string
        message:
          description: Further detail about the error
          example: Provided version string is not semver compliant
          type: string
      type: object
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Bad Request – invalid input
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Unauthorized – missing or invalid authorization token
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Forbidden – insufficient permissions or plan
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Resource not found
    InternalError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error
    SearchUnavailable:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: No provider is currently available for the request.
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````