iContainers Brutus API

The Brutus API is iContainers' published REST contract for programmatic freight quoting and booking. It exposes quote creation for FCL, LCL, air and LTL shipments, quote retrieval by UUID, price calculation for a returned rate, maritime and aerial place/port search, booking a rate, retrieving booking details, booking track-and-trace, and uploading/downloading booking documents. All operations require a JWT bearer token; validation failures return a Laravel-style envelope with a `message` string and a per-field `errors` object.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/icontainers-brutus-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

icontainers-brutus-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Brutus API
  contact:
    email: devsupport@icontainers.com
  license:
    name: private
    url: https://www.icontainers.com
  version: 1.0.0
  x-logo:
    url: https://icontainers-public.s3.us-east-1.amazonaws.com/images/iContainers+Logo.svg
servers:
- url: https://brutus.icontainers.com
  description: Production server
- url: https://brutus-dev.icontainers.com
  description: Developing server
tags:
- name: Bookings
  description: Bookings
  x-audience:
  - velocity
  - xhipment
- name: Places
  description: Places
  x-audience: velocity
- name: Quotes
  description: Quotes
  x-audience:
  - velocity
  - xhipment
- name: Rates
  description: Rates
  x-audience: velocity
- name: Documents
  description: Documents
  x-audience:
  - velocity
  - tenant
- name: Amazon
  description: Amazon
paths:
  /api/v1/bookings/{bookingUuid}/documents:
    post:
      tags:
      - Bookings
      summary: Upload a document for a booking
      operationId: AddDocumentForBooking
      parameters:
      - name: bookingUuid
        in: path
        description: Uuid of the booking
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      requestBody:
        description: Document to upload
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Bookings.AddDocumentForBookingRequest'
      responses:
        '201':
          description: Document uploaded successfully
        '401':
          description: Authentication required
        '403':
          description: User is not the owner of the booking
        '404':
          description: Booking not found
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Internal server error
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/rates/{rateUuid}/book:
    post:
      tags:
      - Bookings
      summary: Book a rate
      operationId: BookRate
      parameters:
      - name: rateUuid
        in: path
        description: Uuid of the rate
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      requestBody:
        description: Book a rate by rateUuid
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookRateRequest'
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookRateResource'
        '401':
          description: Unauthorized
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                type: object
              example:
                type: string
                example: Unauthorized
                property: message
        '500':
          description: Internal server error
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/quotes/fcl:
    post:
      tags:
      - Quotes
      summary: Create a new FCL Quote
      operationId: FclQuote
      requestBody:
        description: New quote
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostFclQuoteRequest'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FclQuoteResource'
        '401':
          description: Unauthorized
        '403':
          description: Shipment type not allowed for this application
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/quotes/lcl:
    post:
      tags:
      - Quotes
      summary: Create a new LCL Quote
      operationId: LclQuote
      requestBody:
        description: New quote
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostLclQuoteRequest'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LclQuoteResource'
        '401':
          description: Unauthorized
        '403':
          description: Shipment type not allowed for this application
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/quotes/air:
    post:
      tags:
      - Quotes
      summary: Create a new Air Quote
      operationId: AirQuote
      requestBody:
        description: New quote
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAirQuoteRequest'
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirQuoteResource'
        '401':
          description: Unauthorized
        '403':
          description: Shipment type not allowed for this application
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/quotes/ltl:
    post:
      tags:
      - Quotes
      summary: Create a new Ltl Quote
      operationId: LtlQuote
      requestBody:
        description: New quote
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostLtlQuoteRequest'
      responses:
        '201':
          description: Successful operation
          content: {}
        '401':
          description: Unauthorized
        '403':
          description: Shipment type not allowed for this application
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/bookings/{bookingUuid}/details:
    get:
      tags:
      - Bookings
      summary: Get booking details
      operationId: GetBookingDetails
      parameters:
      - name: bookingUuid
        in: path
        description: Uuid of the booking
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResource'
        '401':
          description: Authentication required
        '403':
          description: User is not the owner of the booking
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/bookings/{bookingUuid}/documents/{documentId}:
    get:
      tags:
      - Bookings
      summary: Download booking document
      operationId: GetBookingDocument
      parameters:
      - name: bookingUuid
        in: path
        description: Uuid of the booking
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      - name: documentId
        in: path
        description: Id of the document
        required: true
        schema:
          type: string
        example: WcOADB4ddQXukNi6cvZVm6SLOrJUlNF5AGYFh-mbxHZNXKpMB8-QdC5AGsiBbJ6cIxFDMRHzb4glE3ngExtiTcdC
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingDocumentDownloadResource'
        '401':
          description: Authentication required
        '403':
          description: User is not the owner of the booking
        '404':
          description: Booking or document not found
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/bookings/{bookingUuid}/trackAndTrace:
    get:
      tags:
      - Bookings
      summary: Get booking track and trace information
      operationId: GetBookingTrackAndTracer
      parameters:
      - name: bookingUuid
        in: path
        description: Uuid of the booking
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingTrackAndTraceResource'
        '401':
          description: Authentication required
        '403':
          description: User is not the owner of the booking
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/quotes/{uuid}:
    get:
      tags:
      - Quotes
      summary: Get Quote by Uuid
      operationId: GetQuote
      parameters:
      - name: uuid
        in: path
        description: Uuid of the quote
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateQuoteResource'
        '401':
          description: Authentication required
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/rates/{rateUuid}/calculatePrices:
    post:
      tags:
      - Rates
      summary: Calculate Prices for a Rate
      operationId: RateCalculatePrices
      parameters:
      - name: rateUuid
        in: path
        description: Uuid of the rate
        required: true
        schema:
          type: string
          format: uuid
        example: 918f07a7-14b3-4587-aa46-69f9089dd663
      requestBody:
        description: New quote
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRateCalculatePricesRequest'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateCalculatePricesResource'
        '401':
          description: Authentication required
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Problem with external Client
      security:
      - bearerAuth: []
      x-audience: velocity
  /tenant/v1/documents/{documentId}:
    get:
      tags:
      - Documents
      summary: Get document content by ID
      operationId: GetDocumentTenant
      parameters:
      - name: documentId
        in: path
        description: Document identifier in the format objectType.objectId.documentId
        required: true
        schema:
          type: string
        example: booking.918f07a7-14b3-4587-aa46-69f9089dd663.550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Document file content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
        '404':
          description: Document not found
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - tenant
      - dsv
  /api/v1/documents/{documentId}:
    get:
      tags:
      - Documents
      summary: Get document content by ID
      operationId: GetDocument
      parameters:
      - name: documentId
        in: path
        description: Document identifier in the format objectType/objectId/documentId
        required: true
        schema:
          type: string
        example: booking/918f07a7-14b3-4587-aa46-69f9089dd663/550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Document file content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          description: Authentication required
        '404':
          description: Document not found
        '422':
          description: Invalid Data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
      security:
      - bearerAuth: []
      x-audience:
      - velocity
  /api/v1/locations/aerial/places:
    get:
      tags:
      - Places
      summary: Search places for aerial transportation
      description: This method return valid results for aerial places to use in a aerial quotation later on
      operationId: f7652b9cd80cf6ebb58789309b5420bd
      parameters:
      - name: term
        in: query
        description: Term to search for places
        required: true
        schema:
          type: string
          maxLength: 400
        example: bar
      responses:
        '200':
          description: Information of the places
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchAerialPlaces'
        '401':
          description: Unauthorized
        '422':
          description: Error in validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Internal server error
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
  /api/v1/locations/maritime/places:
    get:
      tags:
      - Places
      summary: Search places for maritime transportation options (FCL/LCL).
      description: This method return valid results for aerial places to use in a maritime (FCL/LCL) quotation later on
      operationId: 34de8aa5b349a2047b75f06e974d840c
      parameters:
      - name: term
        in: query
        description: Term to search for places
        required: true
        schema:
          type: string
          maxLength: 400
        example: bar
      - name: shipmentType
        in: query
        description: Shipment type, I.e FCL or LCL
        required: true
        schema:
          type: string
          maxLength: 3
          minLength: 3
          enum:
          - FCL
          - LCL
        example: FCL
      responses:
        '200':
          description: Information of the places
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchMaritimePlaces'
        '401':
          description: Unauthorized
        '422':
          description: Error in validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/422Response'
        '500':
          description: Internal server error
      security:
      - bearerAuth: []
      x-audience:
      - velocity
      - xhipment
components:
  schemas:
    Bookings.AddDocumentForBookingRequest:
      required:
      - documentType
      - document
      properties:
        documentType:
          description: Type of document
          type: string
          enum:
          - CommercialInvoice
          - PackingList
          - Others
          example: CommercialInvoice
        document:
          description: Document file (PDF, CSV, or XLSX)
          type: string
          format: binary
      type: object
      x-audience:
      - velocity
      - xhipment
    BookRateRequest:
      title: BookRateRequest
      required:
      - currency
      - servicesSelected
      - bookingDetails
      - optionalBillingItems
      properties:
        currency:
          type: string
          example: EUR
        lang:
          type: string
          enum:
          - es_ES
          - en_US
        servicesSelected:
          $ref: '#/components/schemas/ServicesSelected'
        bookingDetails:
          required:
          - cargoReadyDate
          - commodity
          properties:
            cargoReadyDate:
              description: Date when the cargo is ready to be picked up. The date must be today or in the future.
              type: string
              format: date
            commodity:
              type: string
              enum:
              - Regular Cargo
              - Refrigerated
              - Hazardous goods (DGR, IMO)
              - Perishable
              - Used Tires/Scrap
              - Household Goods
              - Livestock and Animals
              - Explosives
          type: object
        optionalBillingItems:
          description: Property used to book optional additional services.
          type: array
          items:
            $ref: '#/components/schemas/OptionalBillingItemSelectionData'
        addresses:
          description: Optional addresses to associate with the booking. Each key is an address type (shipper, consignee,
            pickup, delivery, billing).
          properties:
            shipper:
              $ref: '#/components/schemas/BookingAddressData'
            consignee:
              $ref: '#/components/schemas/BookingAddressData'
            pickup:
              $ref: '#/components/schemas/BookingAddressData'
            delivery:
              $ref: '#/components/schemas/BookingAddressData'
            billing:
              $ref: '#/components/schemas/BillingBookingAddressData'
          type: object
          nullable: true
      type: object
      x-audience:
      - velocity
      - xhipment
    BookRateResource:
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/AsyncBooking'
      type: object
      x-audience:
      - velocity
      - xhipment
    AsyncBooking:
      required:
      - bookingUuid
      properties:
        bookingUuid:
          type: string
          format: uuid
      type: object
      x-audience:
      - velocity
      - xhipment
    CreateQuoteRequest:
      required:
      - currency
      - lang
      properties:
        currency:
          type: string
          default: EUR
          example: EUR
        lang:
          type: string
          default: en_US
          example: es_ES
        commodityType:
          type: string
          enum:
          - Regular Cargo
          - Refrigerated
          - Hazardous goods (DGR, IMO)
          - Perishable
          - Used Tires/Scrap
          - Household Goods
          - Livestock and Animals
          nullable: true
        maxExecutionTime:
          description: The number of seconds to wait for the quote to be processed.
          type: number
          format: int32
          maximum: 180
          nullable: true
      type: object
      x-audience:
      - velocity
      - xhipment
    FclQuoteResource:
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/FclQuote'
      type: object
      x-audience:
      - velocity
      - xhipment
    LclQuoteResource:
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/LclQuote'
      type: object
      x-audience:
      - velocity
      - xhipment
    AirQuoteResource:
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/AirQuote'
      type: object
      x-audience:
      - velocity
      - xhipment
    Quote:
      required:
      - uuid
      - quotedAt
      - currency
      - lang
      - rates
      - quoteType
      - quoteOnlineUrl
      - completed
      properties:
        uuid:
          type: string
          format: uuid
        quotedAt:
          type: string
          format: date-time
        currency:
          $ref: '#/components/schemas/Currency'
        lang:
          type: string
          example: es_ES
        rates:
          type: array
          items:
            $ref: '#/components/schemas/RateResource'
        quoteType:
          allOf:
          - $ref: '#/components/schemas/QuoteType'
        quoteOnlineUrl:
          type: string
          format: uri
          example: https://my.icontainers.com/quotes/74e44664-6499-4fd2
        completed:
          description: Indicates if the quote is completed or not
          type: boolean
      type: object
      x-audience:
      - velocity
      - xhipment
    AerialQuoteLocationResponse:
      discriminator:
        propertyName: type
        mapping:
          postalCode: '#/components/schemas/PostalCodeQuoteLocationResponse'
          airport: '#/components/schemas/AirportQuoteLocationResponse'
      oneOf:
      - $ref: '#/components/schemas/PostalCodeQuoteLocationResponse'
      - $ref: '#/components/schemas/AirportQuoteLocationResponse'
      x-audience:
      - velocity
      - xhipment
    MaritimeQuoteLocationResponse:
      discriminator:
        propertyName: type
        mapping:
          postalCode: '#/components/schemas/PostalCodeQuoteLocationResponse'
          port: '#/components/schemas/PortQuoteLocationResponse'
      oneOf:
      - $ref: '#/components/schemas/PostalCodeQuoteLocationResponse'
      - $ref: '#/components/schemas/PortQuoteLocationResponse'
      x-audience:
      - velocity
      - xhipment
    PostalCodeQuoteLocationResponse:
      required:
      - countryIsoCode
      - postalCode
      - type
      properties:
        type:
          type: string
        countryIsoCode:
          type: string
        postalCode:
          type: string
        city:
          type: string
          nullable: true
      type: object
      x-audience:
      - velocity
      - xhipment
    PortQuoteLocationResponse:
      required:
      - type
      - portIsoCode
      properties:
        type:
          type: string
        portIsoCode:
          type: string
      type: object
      x-audience:
      - velocity
      - xhipment
    AirportQuoteLocationResponse:
      required:
      - type
      - iata
      properties:
        type:
          type: string
        iata:
          type: string
      type: object
      x-audience:
      - velocity
      - xhipment
    QuoteType:
      type: string
      enum:
      - Instant quote
      - Partial instant quote
      - Not instant quote
      - Mixed quote
      x-audience:
      - velocity
      - xhipment
    AirQuote:
      required:
      - origin
      - destination
      - items
      - shipmentType
      - isKnownShipper
      - cargoReadyDate
      type: object
      allOf:
      - $ref: '#/components/schemas/Quote'
      - properties:
          origin:
            $ref: '#/components/schemas/AerialQuoteLocationResponse'
          destination:
            $ref: '#/components/schemas/AerialQuoteLocationResponse'
          items:
            $ref: '#/components/schemas/DimensionedCargoItemCollection'
          shipmentType:
            enum:
            - AIR
          isKnownShipper:
            type: boolean
          cargoReadyDate:
            type: string
            format: date
        type: object
      x-audience:
      - velocity
      - xhipment
    LclQuote:
      required:
      - origin
      - destination
      - items
      - shipmentType
      type: object
      allOf:
      - $ref: '#/components/schemas/Quote'
      - properties:
          origin:
            $ref: '#/components/schemas/MaritimeQuoteLocationResponse'
          destination:
            $ref: '#/components/schemas/MaritimeQuoteLocationResponse'
          items:
            $ref: '#/components/schemas/LCLItemCollection'
          shipmentType:
            enum:
            - LCL
        type: object
      x-audience:
      - velocity
      - xhipment
    FclQuote:
      required:
      - origin
      - destination
      - items
      - shipmentType
      type: object
      allOf:
      - $ref: '#/components/schemas/Quote'
      - properties:
          origin:
            $ref: '#/components/schemas/MaritimeQuoteLocationResponse'
          destination:
            $ref: '#/components/schemas/MaritimeQuoteLocationResponse'
          items:
            $ref: '#/components/schemas/ContainerItemCollection'
          shipmentType:
            enum:
            - FCL
        type: object
      x-audience:
      - velocity
      - xhipment
    Currency:
      type: string
      example: EUR
    Transhipment:
      type: array
      items:
        $ref: '#/components/schemas/JourneyPointResource'
      x-audience:
      - velocity
      - xhipment
    JourneyPointResource:
      required:
      - code
      properties:
        code:
          description: Port iso code (5 chars) or IATA code (3 chars)
          type: string
          example: USMIA
      type: object
    RateSchedule:
      required:
      - departureDate
      - cutOffDate
      - vesselName
      - voyageNumber
      - transitDays
      - origin
      - destination
      - originRouting
      - destinationRouting
      properties:
        departureDate:
          type: string
          format: date-time
          example: '2023-02-01T00:00:00+00:00'
          nullable: true
        cutOffDate:
          type: string
          format: date-time
          example: '2023-01-01T00:00:00+00:00'
          nullable: true
        vesselName:
          type: string
          nullable: true
        voyageNumber:
          type: string
          nullable: true
        transitDays:
          type: integer
          minimum: 1
          nullable: true
        origin:
          $ref: '#/components/schemas/JourneyPointResource'
        destination:
          $ref: '#/components/schemas/JourneyPointResource'
        originRouting:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/JourneyPointResource'
        destinationRouting:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/JourneyPointResource'
        transhipment:
          $ref: '#/components/schemas/Transhipment'
      type: object
    BillingItems:
      type: array
      items:
        $ref: '#/components/schemas/BillingItem'
    BillingItem:
      properties:
        name: {}
        serviceItem:
          $ref: '#/components/schemas/ServiceItem'
        optional:
          type: boolean
          example: false
        price:
          $ref: '#/components/schemas/Price'
      type: object
    ServiceItem:
      type: string
      enum:
      - Freight
      - Pickup
      - PortOriginCharges
      - PortDestinationCharges
      - Delivery
      - Others
      - AdditionalService
      example: Freight
    Price:
      required:
      - currency
      - amount
      - taxes
      - total
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: number
          example: 100
        taxes:
          type: number
        total:
          type: number
          example: 100
      type: object
    SuppliersInformation:
      properties:
        freight:
          type: object
          nullable: false
          allOf:
          - $ref: '#/components/schemas/Supplier'
        pickup:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Supplier'
        delivery:
          type: object
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Supplier'
      type: object
    Supplier:
      properties:
        name:
          type: string
      type: object
    InlandSchedule:
      required:
      - postalCode
      - cityName
      properties:
        postalCode:
          type: string
          example: '33000'
        cityName:
          type: string
          example: Madrid
          nullable: true
      type: object
      x-audience: velocity
    AerialQuoteLocationRequest:
      discriminator:
        propertyName: type
        mapping:
          postalCode: '#/components/schemas/PostalCodeQuoteLocationRequest'
          airport: '#/components/schemas/AirportQuoteLocationRequest'
      oneOf:
      - $ref: '#/components/schemas/PostalCodeQuoteLocationRequest'
      - $ref: '#/components/schemas/AirportQuoteLocationRequest'
      x-audience:
      - velocity
      - xhipment
    MaritimeQuoteLocationRequest:
      discriminator:
        propertyName: type
        mapping:
          postalCode: '#/components/schemas/PostalCodeQuoteLocationRequest'
          port: '#/components/schemas/PortQuoteLocationRequest'
      oneOf:
      - $ref: '#/components/schemas/PostalCodeQuoteLocationRequest'
      - $ref: '#/components/schemas/PortQuoteLocationRequest'
      x-audience:
      - velocity
      - xhipment
    PostalCodeQuoteLocationRequest:
      required:
      - country
      - postalCode
      - type
      properties:
        type:
          type: string
          enum:
          - postalCode
        country:
          type: string
        postalCode:
          type: string
        city:
          type: string
          nullable: true
      type: object
      x-audience:
      - velocity
      - xhipment
    PortQuoteLocationRequest:
      required:
      - type
      - portIsoCode
      properties:
        type:
          type: string
          enum:
          - port
        portIsoCode:
          type: string
      type: object
      x-audience:
      - velocity
      - xhipment
    AirportQuoteLocationRequest:
      required:
      - type
      - iata
      properties:
        type:
          type: string
        iata:
          type: string
      type: object
      x-audience:
      - velocity
      - xhipment
    PostAirQuoteRequest:
      allOf:
      - $ref: '#/components/schemas/CreateQuoteRequest'
      - required:
        - cargo
        - origin
        - destination
        properties:
          cargo:
            type: array
            items:
              required:
              - height
              - weight
              - length
              - width
              - quantity
              - dimensionUnit
              - weightUnit
              properties:
                height:
                  type: number
                  format: float
                  example: 105.8
  

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/icontainers/refs/heads/main/openapi/icontainers-brutus-openapi.yml