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

# Quote Parse Config

> Quote an AD-HOC convert config (no saved pipeline) — the authenticated
playground's run receipt (F1 of the config-panel work).

Prices the single-convert blueprint the playground config maps to through
the SAME machinery GET /{pipeline_id}/rate uses, so the quote carries the
team's real personal rates (plan, EU regional modifier, legacy convert
holds, per-team overrides) instead of the frontend's hand-synced
"standard rate" mirror. Response envelope == /rate
({rate_per_1000_pages_cents, rate_breakdown}) so the receipt consumes it
unchanged:

  - 2026-regime teams (everyone but the classic-pinned grandfathers) get
    the additive headline + the D7b ``line_items`` itemization — one
    "step" line for the convert base, one "addon" line per priced extra
    (track_changes framed as a convert ADD-ON, never a standalone quote —
    the framing law), and one "eval" line when ``eval`` is set
    (``eval_rubric_id`` is null: the flag prices the eval PASS, not a
    specific rubric). As on /rate, eval never moves the headline.
  - classic-pinned teams get the classic convert rate as the step line
    with NO ``line_items`` — mirroring /rate byte-for-byte, so the
    receipt falls back to its hedged mirror rates for add-ons.

Cheap by design (hence no extra rate limit — the router has none): no
pipeline row is read or written; the only DB reads are the team +
subscription lookups every /rate call already performs.



## OpenAPI

````yaml https://www.datalab.to/openapi.json post /api/v1/pipelines/quote
openapi: 3.1.0
info:
  title: Datalab API
  version: 0.0.1
servers:
  - url: https://www.datalab.to
    description: Datalab API
security: []
paths:
  /api/v1/pipelines/quote:
    post:
      tags:
        - pipelines
      summary: Quote Parse Config
      description: >-
        Quote an AD-HOC convert config (no saved pipeline) — the authenticated

        playground's run receipt (F1 of the config-panel work).


        Prices the single-convert blueprint the playground config maps to
        through

        the SAME machinery GET /{pipeline_id}/rate uses, so the quote carries
        the

        team's real personal rates (plan, EU regional modifier, legacy convert

        holds, per-team overrides) instead of the frontend's hand-synced

        "standard rate" mirror. Response envelope == /rate

        ({rate_per_1000_pages_cents, rate_breakdown}) so the receipt consumes it

        unchanged:

          - 2026-regime teams (everyone but the classic-pinned grandfathers) get
            the additive headline + the D7b ``line_items`` itemization — one
            "step" line for the convert base, one "addon" line per priced extra
            (track_changes framed as a convert ADD-ON, never a standalone quote —
            the framing law), and one "eval" line when ``eval`` is set
            (``eval_rubric_id`` is null: the flag prices the eval PASS, not a
            specific rubric). As on /rate, eval never moves the headline.
          - classic-pinned teams get the classic convert rate as the step line
            with NO ``line_items`` — mirroring /rate byte-for-byte, so the
            receipt falls back to its hedged mirror rates for add-ons.

        Cheap by design (hence no extra rate limit — the router has none): no

        pipeline row is read or written; the only DB reads are the team +

        subscription lookups every /rate call already performs.
      operationId: quote_parse_config_api_v1_pipelines_quote_post
      parameters:
        - name: processing_location
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Processing Location
            description: >-
              Optional residency region override (e.g. us, eu). When provided,
              use file_url or direct-upload; multipart uploads are rejected.
              When omitted, the request uses the team's configured residency and
              profile.
          description: >-
            Optional residency region override (e.g. us, eu). When provided, use
            file_url or direct-upload; multipart uploads are rejected. When
            omitted, the request uses the team's configured residency and
            profile.
        - name: wos-session
          in: cookie
          required: false
          schema:
            type: string
            title: Wos-Session
        - name: datalab_active_team
          in: cookie
          required: false
          schema:
            type: string
            title: Datalab Active Team
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteParseConfigRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    QuoteParseConfigRequest:
      properties:
        mode:
          type: string
          enum:
            - fast
            - balanced
            - accurate
          title: Mode
          description: >-
            The EFFECTIVE convert mode. When Track Changes / Chart Understanding
            null the panel's mode picker, callers pass the remembered mode that
            still bills underneath.
          default: balanced
        extras:
          items:
            type: string
          type: array
          title: Extras
          description: >-
            Enabled priced extras, by billing key: track_changes,
            chart_understanding, infographic, word_bbox, table_cell_bboxes,
            list_item_bboxes.
        eval:
          type: boolean
          title: Eval
          description: >-
            Quote the eval pass too (a rubric is attached). Adds an 'eval' line
            item; never moves the headline rate (eval bills only when a run
            scores).
          default: false
      type: object
      title: QuoteParseConfigRequest
      description: |-
        An AD-HOC convert config to price — the authenticated playground's run
        receipt (F1). No saved pipeline involved; this is the panel's current
        mode/extras/eval state, quoted at the team's real personal rates.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````