openapi: 3.0.1 info: title: protobuf/arms/charge.proto ChargeService QuotesService API version: version not set servers: - description: Production (US) url: https://api-lg-k-h1.arms.cedarai.com - description: Production (EU) url: https://api-lg-k-h1.arms.cedarai.se security: - ApiKeyAuth: [] AssumeUserAuth: [] tags: - name: QuotesService paths: /shipper/quote-preferences: put: tags: - QuotesService summary: Update Quote Preferences operationId: UpdateQuotePreferences requestBody: content: application/json: schema: $ref: '#/components/schemas/v1QuotePreferences' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/v1QuotePreferences' description: A successful response. default: content: application/json: schema: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. get: tags: - QuotesService summary: Get Quote Preferences operationId: GetQuotePreferences responses: '200': content: application/json: schema: $ref: '#/components/schemas/v1QuotePreferences' description: A successful response. default: content: application/json: schema: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. /shipper/quotes/{name}: get: tags: - QuotesService summary: Get Shipper Quote operationId: GetQuote parameters: - description: Stable quote resource name as returned in Quote.name, e.g. "quotes/". in: path name: name required: true schema: pattern: '[^/]+' type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v1Quote' description: A successful response. default: content: application/json: schema: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. /shipper/quotes: post: tags: - QuotesService summary: List Shipper Quotes operationId: ListQuotes requestBody: content: application/json: schema: $ref: '#/components/schemas/v1ListQuotesRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/v1ListQuotesResponse' description: A successful response. default: content: application/json: schema: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. components: schemas: v1ListQuotesResponse: properties: quotes: description: Candidate quotes returned for the request. items: $ref: '#/components/schemas/v1Quote' type: array type: object v1Units: enum: - BOARD_FEET - CARLOAD - CONTAINER - CORD_VOLUME - CUBIC_FEET - GALLONS - INTERMODAL_UNITS - KILOGRAMS - LITER - MILES - ONE_HUNDRED_BOARD_FEET - POUNDS - THOUSAND_BOARD_FEET - TRAILER - TRAIN - UNITS - VEHICLE - VOLUMETRIC_UNIT type: string v1QuoteStation: properties: carrier: type: string city: type: string fsac: type: string junction_code: type: string latitude: description: 'Resolved geographic coordinates (decimal degrees), when the station can be geocoded from the station master record. Unset when no coordinates are known.' format: double type: number longitude: format: double type: number splc: type: string state: type: string type: object v1EquipmentProfile: properties: car_type: $ref: '#/components/schemas/v1CarType' measurements: description: 'Dimension filters applied to the profile. At most one entry per MeasurementDimension.' items: $ref: '#/components/schemas/v1MeasurementFilter' type: array name: description: Optional friendly label such as "60BC". Carrier-specific abbreviations. type: string special_car_type: $ref: '#/components/schemas/v1QuoteSpecialCarType' type: object v1Range: description: Inclusive integer range. Units are determined by the consuming field. properties: from: format: int32 type: integer to: format: int32 type: integer type: object v1EquipmentOwnershipStatus: description: "Equipment ownership status categories used in EQOS shipment conditions.\n\n - HIGHWAY_CARRIER: H - Highway carrier\n - SHIPPER_OWNED_OR_LEASED: S - Shipper owned or leased\n - STEAMSHIP_LINES: O - Steamship lines\n - RAILROAD_OWNED_OR_LEASED: R - Railroad owned or leased" enum: - HIGHWAY_CARRIER - SHIPPER_OWNED_OR_LEASED - STEAMSHIP_LINES - RAILROAD_OWNED_OR_LEASED type: string v1CarType: enum: - ALL_CAR_TYPES - BI_LEVEL - BOX_CAR - BULKHEAD - CLOSED - CLOSED_BI_LEVEL - CLOSED_TRI_LEVEL - COIL - COVERED_COIL - COVERED_GONDOLA - CUSHIONED_BOX_CAR - FLAT_PEDESTAL - GONDOLA - GRAVITY_FLOW - INSULATED_BOX_CAR - MECHANICAL_REFRIGERATOR - OPEN - OPEN_COIL_CARS - OPEN_GONDOLA - OPEN_HOPPER - PLUG_DOORS - TRI_LEVEL - TRIPLE_CROSS_HOPPER type: string v1Contents: properties: quantity: $ref: '#/components/schemas/v1Quantity' stccs_or_prefixes: description: List of candidate STCCs / STCC prefixes for the shipment commodity. items: type: string type: array type: object v1ChargeType: enum: - FREIGHT - MILEAGE - ACCESSORIAL title: "- MILEAGE: any fuel, even if it's not mileage based\n - ACCESSORIAL: all non-fuel misc charges" type: string protobufAny: additionalProperties: type: object properties: '@type': type: string type: object v1Pndr: properties: docket_identifier: description: 'DK03: docket identifier.' format: int64 type: string number: description: 'DK02: docket control number.' type: string producer: description: 'DK01: producing/publishing carrier mark.' type: string revision: description: 'DK04: docket revision (optional in many contexts).' format: int32 type: integer type: object v1Rate: properties: amount: $ref: '#/components/schemas/v1Money' car_type_conditions: description: Simplified UI-oriented summary of applicable car-type conditions on this rate. items: $ref: '#/components/schemas/v1CarTypeCondition' type: array docket_column: description: Docket column number used to evaluate column-specific conditions. format: int64 type: integer docket_level: description: Docket level number. format: int64 type: integer docket_line: description: Docket line number. format: int64 type: integer docket_sub_level: description: Docket sub-level number. format: int64 type: integer equipment_ownership_conditions: description: Positive EQOS (Equipment Ownership Status) conditions on this rate. items: $ref: '#/components/schemas/v1EquipmentOwnershipStatus' type: array matching_equipment_profile_names: description: 'Names of the requesting carrier''s saved equipment profiles whose constraints are compatible with this rate''s equipment conditions. Multiple profiles may apply (for example, a rate that only restricts to box car matches every saved box car profile). Empty when the carrier has no matching named profiles; clients fall back to car_type_conditions for display in that case.' items: type: string type: array pndr: $ref: '#/components/schemas/v1Pndr' publication: $ref: '#/components/schemas/v1Publication' qualifier: $ref: '#/components/schemas/v1RateQualifier' type: object v1Quote: properties: created_at: description: 'When this quote was first generated. Populated by GetQuote (from the persisted reconstruction mapping) so callers can tell when an id was minted; unset on live ListQuotes responses.' format: date-time type: string distance: $ref: '#/components/schemas/v1QuoteDistance' furtherance_beyond_destination: description: 'Rule 11 segment pricing counterpart (ListQuotesRequest.destination_unknown): continuation beyond the last leg''s destination gateway junction is unknown and NOT included in the quoted total. Omitted otherwise.' type: boolean legs: description: Quote legs, each with its own route, distance, and itemized charges. items: $ref: '#/components/schemas/v1QuoteLeg' type: array name: description: Stable quote identifier. type: string number_of_cars: description: Number of cars used to scale per-car and aggregate quote amounts. format: int32 type: integer prior_movement_before_origin: description: 'Rule 11 segment pricing (ListQuotesRequest.origin_unknown): the movement''s true origin is unknown — it enters the priced portion at the first leg''s origin gateway junction, and the prior movement is NOT included in the quoted total. Omitted otherwise.' type: boolean route: $ref: '#/components/schemas/v1Route' total: $ref: '#/components/schemas/v1Money' type: object v1Publication: properties: effective_date: description: Effective date of this rate in ISO8601 format (YYYY-MM-DD). type: string expiration_date: description: 'Expiration date of this rate in ISO8601 format (YYYY-MM-DD). Omitted when there is no end date.' type: string issuer: description: Issuing carrier or publishing authority. type: string number: description: Publication identifier/number. type: string suffix: description: Optional publication suffix. type: string type: $ref: '#/components/schemas/v1PublicationType' type: object v1MeasurementDimension: description: "Equipment measurement dimensions used to filter quote searches.\nUnits are baked into each value so a single Range can describe any dimension.\n\n - CUBIC_FEET_CAPACITY: Cubic-feet capacity, evaluated against EQCM \"PF\" conditions.\n - GALLONS_CAPACITY: Gallon capacity, evaluated against EQCM \"PG\" conditions.\n - LOAD_LIMIT_POUNDS: Load limit in pounds, evaluated against EQCM \"LB\" conditions.\n - NET_WEIGHT_POUNDS: Net weight in pounds, evaluated against EQCW (equipment gross weight) conditions." enum: - OUTSIDE_LENGTH_INCHES - INSIDE_LENGTH_INCHES - INSIDE_HEIGHT_INCHES - CUBIC_FEET_CAPACITY - GALLONS_CAPACITY - LOAD_LIMIT_POUNDS - NET_WEIGHT_POUNDS type: string v1ConditionSign: enum: - PLUS - MINUS type: string v1PublicationType: enum: - CONTRACT - TARIFF - QUOTE type: string v1RateQualifier: enum: - PER_BOARD_FOOT - PER_100_BOARD_FOOT - PER_1000_BOARD_FOOT - PER_GROSS_TON - PER_KILOGRAM - PER_KILOLITER - PER_KILOMETER - PER_POUND - PER_LITER - PER_METRIC_TON - PER_CONTAINER - PER_CAR - PER_CUBIC_FOOT - PER_GALLON - PER_HUNDRED_POUNDS - PER_INTERMODAL_UNIT - PER_CORD - PER_MILE - PER_NET_TON - PER_UNIT - PER_VEHICLE - PERCENTAGE_OF_CHARGES - PER_TRAIN_RATE - PER_TRAILER type: string v1CarrierFsac: properties: carrier: description: Reporting marks / railroad code (for example, BNSF, UP, CSXT). type: string fsac: description: FSAC (Freight Station Accounting Code) for the location on the carrier. type: string type: object v1Geography: properties: carrier_fsac: $ref: '#/components/schemas/v1CarrierFsac' city_state: $ref: '#/components/schemas/v1CityState' junction: $ref: '#/components/schemas/v1Junction' splc: $ref: '#/components/schemas/v1Splc' type: object typeDecimal: properties: value: type: string type: object v1CarTypeCondition: properties: car_type: $ref: '#/components/schemas/v1CarType' sign: $ref: '#/components/schemas/v1ConditionSign' type: object v1Quantity: properties: amount: $ref: '#/components/schemas/typeDecimal' units: $ref: '#/components/schemas/v1Units' type: object v1Route: properties: entries: description: Structured route entries in movement order. items: $ref: '#/components/schemas/v1RouteEntry' type: array val: description: 'Canonical route string representation (for example: "AA-DIANN-GTW-CHGO-BNSF").' type: string type: object v1ShipmentMethodOfPayment: enum: - PREPAID - COLLECT - RULE_11 type: string v1Charge: properties: amount: $ref: '#/components/schemas/v1Money' method_of_payment: $ref: '#/components/schemas/v1ShipmentMethodOfPayment' per_car_amount: $ref: '#/components/schemas/v1Money' rate: $ref: '#/components/schemas/v1Rate' rated_quantity: $ref: '#/components/schemas/v1Quantity' special_charge_description: description: Raw X12/Rail 426 special charge description/L112 when present. type: string special_charge_or_allowance_code: description: Raw X12/Rail 426 special charge or allowance code (for example, ENS, HAZ, SUR). type: string type: $ref: '#/components/schemas/v1ChargeType' type: object v1QuoteDistanceSource: enum: - PC_MILER - ESTIMATED type: string v1QuoteLeg: properties: billing_carrier: description: Billing carrier for this leg. type: string charges: description: Itemized charges for this leg. items: $ref: '#/components/schemas/v1Charge' type: array destination: $ref: '#/components/schemas/v1QuoteStation' distance: $ref: '#/components/schemas/v1QuoteDistance' origin: $ref: '#/components/schemas/v1QuoteStation' route: $ref: '#/components/schemas/v1Route' total: $ref: '#/components/schemas/v1Money' type: object v1QuoteDistance: properties: source: $ref: '#/components/schemas/v1QuoteDistanceSource' value: $ref: '#/components/schemas/typeDecimal' type: object v1CityState: properties: city: description: City name for the location. type: string state_or_province: description: State or province code (for example, TX, ON). type: string type: object v1Money: properties: cents: format: int32 type: integer currency: type: string dollars: format: int64 type: string type: object v1SavedFacility: description: 'A carrier''s saved facility (identified by CIF, e.g. one of their mills): the commodities and saved equipment profiles that facility ships/receives. When the facility is selected as a quote origin/destination, the form narrows the commodity and equipment choices to what it handles. A facility with no declarations imposes no restriction.' properties: cif: description: '9-digit CIF, optionally followed by a 4-digit sub-location suffix (13 digits total), same convention as favorite_origin_cif_sets values.' type: string city_state: $ref: '#/components/schemas/v1CityState' equipment_profile_names: description: 'Names of the carrier''s saved equipment profiles this facility uses, e.g. "60HCBC" (matching EquipmentProfile.name in favorite_equipment_profile_sets).' items: type: string type: array name: description: 'Optional carrier-chosen label for the facility, e.g. "Walla Walla, WA". Display-only; does not affect how the facility is matched on the quote form.' type: string stccs: description: Commodities this facility ships/receives (STCC codes or prefixes). items: type: string type: array type: object v1RouteEntry: properties: carrier: description: Reporting marks / railroad code (for example, BNSF, UP, CSXT). type: string outbound_junction: description: Outbound junction for each leg except the final leg. type: string sequence_code: title: 'Route sequence code aligned with X12 R202. Supported values: - "1": CARRIER_AFTER_ORIGIN_1 - "2": CARRIER_AFTER_ORIGIN_2 - "3": CARRIER_AFTER_ORIGIN_3 - "4": CARRIER_AFTER_ORIGIN_4 - "5": CARRIER_AFTER_ORIGIN_5 - "6": CARRIER_AFTER_ORIGIN_6 - "7": CARRIER_AFTER_ORIGIN_7 - "8": CARRIER_AFTER_ORIGIN_8 - "9": CARRIER_AFTER_ORIGIN_9 - "A": ORIGIN_CARRIER_AGENTS_ROUTING - "D": DELIVERY_SWITCH_CARRIER - "H": HAULAGE_RIGHTS_CARRIER_JUNCTION - "I": ORIGIN_SWITCH_CARRIER - "JD": JUNCTION_SETTLEMENT_CARRIER_FOLLOWING - "JI": JUNCTION_SETTLEMENT_CARRIER_INTERMEDIATE - "JO": JUNCTION_SETTLEMENT_CARRIER_PREDECESSOR - "M": HAULAGE_MOVEMENT_CARRIER_AND_JUNCTION - "O": ORIGIN_CARRIER_AIR_MOTOR_OCEAN - "R": ORIGIN_CARRIER_RULE_11 - "S": ORIGIN_CARRIER_SHIPPERS_ROUTING - "V": INTERMEDIATE_SWITCH_CARRIER' type: string type: object v1EquipmentProfileSet: properties: name: type: string profiles: items: $ref: '#/components/schemas/v1EquipmentProfile' type: array type: object v1GeographySet: properties: name: type: string values: items: type: string title: city, st type: array type: object v1Splc: properties: splc: description: SPLC identifier for the location. type: string type: object v1QuoteSpecialCarType: enum: - FLAT - CENTER_BEAM type: string v1QuotePreferences: properties: destination_saved_facilities: description: 'Saved facilities favorited as quote destinations; counterpart of origin_saved_facilities.' items: $ref: '#/components/schemas/v1SavedFacility' type: array favorite_commodity_sets: items: $ref: '#/components/schemas/v1CommoditySet' type: array favorite_destination_cif_sets: description: 'CIF customer sets favorited as quote destinations; counterpart of favorite_origin_cif_sets.' items: $ref: '#/components/schemas/v1GeographySet' type: array favorite_destination_geography_sets: description: Geography sets favorited specifically as quote destinations. items: $ref: '#/components/schemas/v1GeographySet' type: array favorite_equipment_profile_sets: items: $ref: '#/components/schemas/v1EquipmentProfileSet' type: array favorite_geography_sets: description: 'Legacy direction-agnostic geography sets. Retained for backward compatibility: these remain usable for BOTH origin and destination search until the carrier re-saves quote preferences, after which favorites are stored separately as origin and destination sets and this list is emptied. New clients should read these in addition to the origin/destination lists, and write only the origin/destination lists.' items: $ref: '#/components/schemas/v1GeographySet' type: array favorite_origin_cif_sets: description: 'CIF customer sets favorited as quote origins. Values are 9-digit CIFs, optionally followed by a 4-digit sub-location suffix (13 digits total).' items: $ref: '#/components/schemas/v1GeographySet' type: array favorite_origin_geography_sets: description: Geography sets favorited specifically as quote origins. items: $ref: '#/components/schemas/v1GeographySet' type: array origin_saved_facilities: description: 'Saved facilities favorited as quote origins; narrow the commodity and equipment choices when the selected origin is one of them.' items: $ref: '#/components/schemas/v1SavedFacility' type: array type: object v1Junction: properties: junction_code: description: Industry junction code used when identifying a location by interchange. type: string type: object v1ListQuotesRequest: properties: aar_car_type_pattern: description: 'Optional exact AAR/UMET car type pattern (for example "A-4" for plug doors) used for quote equipment assumptions and ARCT condition evaluation.' type: string car_types: description: 'Optional car type overrides used for rating/equipment assumptions. Deprecated for new clients in favor of equipment_profiles, which also supports special quote-only types and additional measurement ranges. When provided, quote search matches rates for any selected car type.' items: $ref: '#/components/schemas/v1CarType' type: array contents: $ref: '#/components/schemas/v1Contents' contract_cifs: description: 'Contract CIF filters. If provided, matching contract quotes are included in addition to tariff results.' items: type: string type: array destination: $ref: '#/components/schemas/v1Geography' destination_cifs: description: Customer CIFs at the destination; SCRS counterpart of origin_cifs for destinations. items: type: string type: array destination_unknown: description: 'Rule 11 segment pricing counterpart of origin_unknown: continuation beyond the destination gateway is unknown and unpriced. Same geography handling and junction-narrowing as origin_unknown. Requires method_of_payment = RULE_11.' type: boolean destinations: description: List of candidate destination locations. Prefer this over the single destination input. items: $ref: '#/components/schemas/v1Geography' type: array equipment_ownership_statuses: description: 'Optional equipment ownership status filters. When provided, quote search matches rates whose EQOS conditions include any of the selected statuses.' items: $ref: '#/components/schemas/v1EquipmentOwnershipStatus' type: array equipment_profiles: description: 'Optional equipment profile filters. When provided, quote search matches rates for any selected profile.' items: $ref: '#/components/schemas/v1EquipmentProfile' type: array exclude_carriers: description: 'Carriers (reporting marks / SCAC, for example "BNSF", "UP") to exclude from routing. Any candidate route that involves one of these carriers on any leg is dropped from the results. Empty means no carrier exclusion is applied. Compared case-insensitively.' items: type: string type: array exclude_junctions: description: 'Junction / gateway codes (for example "DIANN") to exclude from routing. Any candidate route that interchanges through one of these junctions is dropped from the results. Empty means no junction exclusion is applied. Compared case-insensitively.' items: type: string type: array method_of_payment: $ref: '#/components/schemas/v1ShipmentMethodOfPayment' number_of_cars: description: Number of cars requested for the movement. Omitted/0 defaults to 1. format: int32 type: integer origin: $ref: '#/components/schemas/v1Geography' origin_cifs: description: 'Customer CIFs at the origin. When provided, candidate origin stations are filtered to those onto which at least one of these customers may switch traffic under SCRS (Serving Carrier Reciprocal Switch) rules. Empty means no SCRS origin restriction is applied.' items: type: string type: array origin_unknown: description: 'Rule 11 segment pricing: the true origin of the movement is unknown; the origin geographies (any supported form — city/state, FSAC, SPLC, or junction) locate the KNOWN gateway where the movement enters the priced portion. The location is narrowed to its stations at an interchange junction; a location with no junction station fails with INVALID_ARGUMENT (LOCATION_HAS_NO_GATEWAY). The priced portion is rated as part of a larger Rule 11 move arriving via that gateway (prior movement unpriced). Requires method_of_payment = RULE_11. May be combined with destination_unknown to price a bridge segment between two gateways.' type: boolean origins: description: 'List of candidate origin locations. This should be at most a handful, preferably fewer than 10. Prefer this over the single origin input.' items: $ref: '#/components/schemas/v1Geography' type: array route: $ref: '#/components/schemas/v1Route' ship_date: description: 'Desired shipment date used for applicability/rating in ISO8601 format. Use YYYY-MM-DD (for example: "2026-03-03").' type: string type: object rpcStatus: properties: code: format: int32 type: integer details: items: $ref: '#/components/schemas/protobufAny' type: array message: type: string type: object v1CommoditySet: properties: name: type: string values: items: type: string title: stcc type: array type: object v1MeasurementFilter: description: 'A single dimension constraint on an EquipmentProfile. A profile may carry at most one filter per dimension.' properties: dimension: $ref: '#/components/schemas/v1MeasurementDimension' range: $ref: '#/components/schemas/v1Range' type: object securitySchemes: ApiKeyAuth: in: header name: x-arms-api-key type: apiKey AssumeUserAuth: in: header name: x-arms-assume-user type: apiKey