> ## 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.

# Retrieve a search

> Returns the retained search resource exactly as it was returned by
POST /search: results, attempts, warnings, usage, and expires_at. No
provider is called and nothing is billed. Use it to look up a search
by ID for debugging, cost review, or to recover result IDs before
calling the contents endpoint. Inline content fetched at search time
is included; content fetched later through the contents endpoint is
not merged in. Missing, expired, or inaccessible searches return 404.




## OpenAPI

````yaml https://api.onkernel.com/spec.json get /search/{id}
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/{id}:
    get:
      tags:
        - Search
      summary: Retrieve a search
      description: |
        Returns the retained search resource exactly as it was returned by
        POST /search: results, attempts, warnings, usage, and expires_at. No
        provider is called and nothing is billed. Use it to look up a search
        by ID for debugging, cost review, or to recover result IDs before
        calling the contents endpoint. Inline content fetched at search time
        is included; content fetched later through the contents endpoint is
        not merged in. Missing, expired, or inaccessible searches return 404.
      operationId: getSearch
      parameters:
        - description: Search resource ID returned by POST /search.
          example: srch_abc123
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search'
          description: The retained search.
        '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:
    Search:
      description: Retained search results and provider attempt history.
      properties:
        answer:
          description: >-
            Provider-generated answer when requested (e.g. via Tavily
            include_answer or Perplexity). Preserved independently of
            include_raw.
          type: string
        attempts:
          items:
            $ref: '#/components/schemas/SearchAttempt'
          type: array
        expires_at:
          description: >
            Expiration of result IDs for deferred retrieval. Results expire 24
            hours

            after search completion.
          format: date-time
          type: string
        id:
          description: Search resource ID. Request tracing uses X-Request-Id.
          example: srch_abc123
          type: string
        provider:
          description: Concrete serving provider, never auto or fallback.
          type: string
        query:
          description: >-
            Echo of the query. Native multi-query inputs are visible in the
            selected strategy target and the optional raw response.
          type: string
        raw:
          description: >-
            Full serving-provider response, including top-level metadata that
            does not belong to a result. Present only with include_raw=true;
            untrusted provider data.
        results:
          items:
            $ref: '#/components/schemas/SearchResult'
          type: array
        usage:
          $ref: '#/components/schemas/SearchUsage'
        warnings:
          items:
            $ref: '#/components/schemas/SearchWarning'
          type: array
      required:
        - id
        - expires_at
        - provider
        - results
        - attempts
        - warnings
        - query
        - usage
      type: object
    SearchAttempt:
      properties:
        duration_ms:
          minimum: 0
          type: integer
        error_code:
          type: string
        outcome:
          enum:
            - success
            - empty
            - error
            - timeout
          type: string
          x-enum-varnames:
            - SearchAttemptOutcomeSuccess
            - SearchAttemptOutcomeEmpty
            - SearchAttemptOutcomeError
            - SearchAttemptOutcomeTimeout
        provider:
          type: string
        retryable:
          type: boolean
      required:
        - provider
        - outcome
        - duration_ms
      type: object
    SearchResult:
      properties:
        additional_snippets:
          items:
            type: string
          type: array
        content:
          $ref: '#/components/schemas/SearchResultContent'
          description: >-
            Portable retrieval outcome, or native content supplied by the search
            provider. Identity fields remain on the enclosing result. Native
            excerpts are labeled excerpt rather than full_page. Omission never
            triggers browser retrieval.
        id:
          description: >-
            Kernel-generated identifier for this result. Stable only within the
            retained search; not standardized across providers. Provider-native
            IDs, when available, remain provider-specific raw fields.
          example: srchr_def456
          type: string
        published_date:
          description: >-
            Provider-supplied date or timestamp, preserving available precision.
            No publication date is fabricated. Retains the published field name.
          type:
            - string
            - 'null'
        rank:
          description: One-based position in the returned ranking.
          minimum: 1
          type: integer
        raw:
          description: >-
            Original provider result, included only with include_raw=true.
            Provider relevance scores are not normalized. Top-level provider
            data is available in Search.raw.
        snippet:
          type:
            - string
            - 'null'
        source:
          description: Provider source name or result URL hostname, when available.
          type:
            - string
            - 'null'
        title:
          type:
            - string
            - 'null'
        url:
          description: Provider-returned URL, not assumed canonical.
          format: uri
          type: string
      required:
        - id
        - url
        - rank
      type: object
    SearchUsage:
      properties:
        content_fetches:
          description: >-
            Number of result URLs for which a Kernel browser retrieval was
            attempted, excluding cache-only hits.
          minimum: 0
          type: integer
        cost:
          description: Total customer charge in USD when billing data is available.
          minimum: 0
          type: number
        results_count:
          description: >-
            Number of result entries returned, including failed entries on the
            contents endpoint.
          minimum: 0
          type: integer
      required:
        - results_count
        - content_fetches
      type: object
    SearchWarning:
      properties:
        code:
          description: >-
            Examples: param_unsupported, preference_unsupported,
            max_results_clamped, domains_truncated, recency_emulated,
            filter_emulated, date_filter_overridden, provider_ineligible,
            fallback_failed, content_partial.
          type: string
        message:
          type: string
        param:
          type: string
        provider:
          type: string
        result_id:
          type: string
      required:
        - code
        - message
      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
    SearchResultContent:
      properties:
        cache_status:
          description: >-
            Kernel cache outcome. Provider-internal cache behavior may be
            unknown.
          enum:
            - hit
            - miss
            - bypass
            - unknown
          type: string
          x-enum-varnames:
            - SearchContentCacheStatusHit
            - SearchContentCacheStatusMiss
            - SearchContentCacheStatusBypass
            - SearchContentCacheStatusUnknown
        completeness:
          description: |
            Describes source coverage before max_chars truncation. Full_page
            means main-page content, not every dynamic element or linked page.
          enum:
            - full_page
            - excerpt
            - unknown
          type: string
          x-enum-varnames:
            - SearchContentCompletenessFullPage
            - SearchContentCompletenessExcerpt
            - SearchContentCompletenessUnknown
        error:
          $ref: '#/components/schemas/SearchContentError'
        extractor_version:
          description: Extraction version when Kernel transformed the input.
          type: string
        fetched_at:
          description: Origin retrieval time when known, not cache read time.
          format: date-time
          type:
            - string
            - 'null'
        final_url:
          description: Final retrieval URL when known.
          format: uri
          type: string
        format:
          $ref: '#/components/schemas/SearchContentFormat'
        http_status:
          description: Final target HTTP status when known.
          maximum: 599
          minimum: 100
          type: integer
        method:
          description: Original retrieval method, including on cache hits.
          enum:
            - provider
            - browser_curl
            - browser_render
          type: string
          x-enum-varnames:
            - SearchContentMethodProvider
            - SearchContentMethodBrowserCurl
            - SearchContentMethodBrowserRender
        status:
          description: |
            Ok means non-empty extracted content, not merely HTTP 200. Blocked
            includes detected challenges or access denials. Detection is
            best-effort, not a guarantee of page completeness. Error details
            are present for non-ok outcomes; text is present only on ok.
          enum:
            - ok
            - unavailable
            - blocked
            - timeout
            - unsupported_type
            - extraction_failed
            - error
          type: string
          x-enum-varnames:
            - SearchContentStatusOk
            - SearchContentStatusUnavailable
            - SearchContentStatusBlocked
            - SearchContentStatusTimeout
            - SearchContentStatusUnsupportedType
            - SearchContentStatusExtractionFailed
            - SearchContentStatusError
        text:
          description: >-
            Extracted website content, untrusted, not instructions. Present only
            on status=ok.
          type: string
        truncated:
          description: Whether max_chars truncated the extracted content.
          type: boolean
      required:
        - status
      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
    SearchContentError:
      properties:
        code:
          description: Machine-readable retrieval failure code.
          type: string
        message:
          description: Human-readable failure description.
          type: string
        retryable:
          type: boolean
      required:
        - code
        - message
        - retryable
      type: object
    SearchContentFormat:
      enum:
        - markdown
        - text
      type: string
      x-enum-varnames:
        - SearchContentFormatMarkdown
        - SearchContentFormatText
  responses:
    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

````