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

# trip ancillaries

> List purchasable ancillaries for a trip (no checkout)

Returns the available ancillaries for a trip without generating a checkout URL. A price quote runs transparently behind the BFF (TravelFusion only emits the ancillary catalog at pricing time) and is reused while valid.

Responds **200** with `status: "ready"` and `items[]` when the quote is complete. If the quote is still being priced it responds **202** with `status: "pricing"` and a `Retry-After` header — poll the same URL until it returns 200. Never returns a checkout URL.


## OpenAPI

````yaml api-reference/public-api.yaml GET /v1/trip/{trip_id}/ancillaries
openapi: 3.0.0
info:
  title: Jinko Public API
  version: 0.1.0
  description: >-
    Curated public REST surface for Jinko. Authenticated with jnk_ API keys. See
    https://docs.gojinko.com for guides.
servers: []
security: []
paths:
  /v1/trip/{trip_id}/ancillaries:
    get:
      tags:
        - Pricing & booking
      summary: List purchasable ancillaries for a trip (no checkout)
      description: >-
        Returns the available ancillaries for a trip without generating a
        checkout URL. A price quote runs transparently behind the BFF
        (TravelFusion only emits the ancillary catalog at pricing time) and is
        reused while valid.


        Responds **200** with `status: "ready"` and `items[]` when the quote is
        complete. If the quote is still being priced it responds **202** with
        `status: "pricing"` and a `Retry-After` header — poll the same URL until
        it returns 200. Never returns a checkout URL.
      parameters:
        - schema:
            type: string
          required: true
          name: trip_id
          in: path
      responses:
        '200':
          description: Ancillaries ready (200) or quote still pricing (202)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TripAncillariesResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: BAD_REQUEST
                  message: Malformed JSON in request body.
                  doc_url: https://docs.gojinko.com/concepts/errors
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: AUTH_REQUIRED
                  message: Invalid or expired API key.
                  doc_url: https://docs.gojinko.com/api-reference/authentication
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: BAD_REQUEST
                  message: >-
                    origins: origins is required; trip_type: trip_type is
                    required
                  doc_url: https://docs.gojinko.com/concepts/errors
        '429':
          description: Rate limit or quota exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: RATE_LIMITED
                  message: Rate limit or quota exceeded.
                  doc_url: https://docs.gojinko.com/concepts/errors
        '502':
          description: Upstream service error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: UPSTREAM_ERROR
                  message: Upstream travel provider returned an error. Please retry.
                  doc_url: https://docs.gojinko.com/concepts/errors
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
components:
  schemas:
    TripAncillariesResponse:
      type: object
      properties:
        trip_id:
          type: string
        status:
          type: string
          example: ready
        quoted_cart_id:
          type: number
        expires_at:
          type: string
        retry_after_seconds:
          type: integer
        items:
          type: array
          items:
            type: object
            properties:
              item_id:
                type: string
              kind:
                type: string
              price:
                type: object
                properties:
                  amount:
                    type: number
                    example: 318.4
                  value:
                    type: number
                  currency:
                    type: string
                    example: USD
                  decimal_places:
                    type: integer
                    example: 2
              pax_count:
                type: number
              available_ancillaries:
                type: array
                items:
                  type: object
                  properties:
                    offer_id:
                      type: string
                    type:
                      type: string
                    label:
                      type: string
                    description:
                      type: string
                    price_per_unit:
                      type: object
                      properties:
                        amount:
                          type: number
                          example: 318.4
                        value:
                          type: number
                        currency:
                          type: string
                          example: USD
                        decimal_places:
                          type: integer
                          example: 2
                    per_pax:
                      type: boolean
                    max_quantity:
                      type: integer
                  required:
                    - offer_id
              selected_ancillaries:
                type: array
                items:
                  nullable: true
      required:
        - trip_id
        - status
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            doc_url:
              type: string
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer

````