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

# Warm the GPU services

> Starts warming the embedding and reranking services in the background and reports their last-known state. A cold start takes about 2.5 to 4 minutes; call this at the start of an agent session and poll every 10 s until `ready` is true, instead of paying the cold start inside the first search. Idle services shut down after 1 hour without requests.



## OpenAPI

````yaml /openapi.json get /v1/warm
openapi: 3.1.0
info:
  title: Lightdrift API
  version: 0.1.0
  description: >-
    Natural-language image search for agents. Describe what you want — in text,
    with a reference image, or both — and get ranked images back, each with a
    machine-readable rights answer. Retrieval only: no generation, no checkout.
servers:
  - url: https://api.lightdrift.ai
    description: Production
security:
  - apiKey: []
paths:
  /v1/warm:
    get:
      tags:
        - Service
      summary: Warm the GPU services
      description: >-
        Starts warming the embedding and reranking services in the background
        and reports their last-known state. A cold start takes about 2.5 to 4
        minutes; call this at the start of an agent session and poll every 10 s
        until `ready` is true, instead of paying the cold start inside the first
        search. Idle services shut down after 1 hour without requests.
      operationId: warm
      responses:
        '200':
          description: Current warm state.
          content:
            application/json:
              example:
                embed:
                  state: warm
                  took_s: 161.2
                  checked: '2026-09-13T19:05:25Z'
                rerank:
                  state: warming
                  for_s: 42
                ready: false
                hint: poll every 10 s until ready; a cold start takes 2.5-4 min
          headers:
            X-RateLimit-Limit:
              schema:
                type: string
              description: e.g. `60/min, 5000/day`
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the tighter window
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the minute window resets
            X-RateLimit-Tier:
              schema:
                type: string
                enum:
                  - promo
                  - starter
                  - growth
                  - scale
                  - enterprise
            X-Concurrency-Limit:
              schema:
                type: integer
              description: Searches allowed in flight at once
        '402':
          description: Insufficient prepaid credit.
          content:
            application/json:
              example:
                detail: insufficient credit
        '429':
          description: Rate limit or concurrency limit exceeded; `Retry-After` in seconds.
          headers:
            Retry-After:
              schema:
                type: integer
            X-RateLimit-Limit:
              schema:
                type: string
              description: e.g. `60/min, 5000/day`
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left in the tighter window
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the minute window resets
            X-RateLimit-Tier:
              schema:
                type: string
                enum:
                  - promo
                  - starter
                  - growth
                  - scale
                  - enterprise
            X-Concurrency-Limit:
              schema:
                type: integer
              description: Searches allowed in flight at once
          content:
            application/json:
              examples:
                rate:
                  value:
                    detail: 'rate limit exceeded: 30 per minute on the promo tier'
                concurrency:
                  value:
                    detail: too many concurrent requests for this account (max 2)
        '503':
          description: Key store briefly unreachable; retry with backoff.
          content:
            application/json:
              example:
                detail: auth database unavailable, retry shortly (OperationalError)
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Lightdrift API key. Usage is metered per query.

````