CargoAi CargoCOPILOT API

AI extraction endpoints that turn an air waybill image or raw shipment email text into structured JSON that can be fed straight into the quote, book and eAWB endpoints, removing manual re-keying between parties.

OpenAPI Specification

cargoai-cargocopilot-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Solutions
  version: '1.0'
x-cargoai-api-family: CargoCOPILOT
x-provenance:
  harvestedFrom: CargoAi CargoCONNECT developer portal (ReadMe) — per-operation oasDefinition embedded
    in each reference page
  fetchDate: '2026-07-30'
  httpStatus: 200
  sourceInfoTitle: Solutions
  sourceInfoVersion: '1.0'
  note: Operations reproduced verbatim from the provider-published OpenAPI 3.1 definition. No operation,
    path, parameter, schema or server was authored by API Evangelist.
  operations:
  - sourceURL: https://cargoai.readme.io/reference/awb-extraction
    httpStatus: 200
    operation: POST /ai/awb
  - sourceURL: https://cargoai.readme.io/reference/shipment-extraction
    httpStatus: 200
    operation: POST /ai/shipment
servers:
- url: https://api.cargoai.co/solutions
security:
- sec0: []
components:
  securitySchemes:
    sec0:
      type: apiKey
      name: x-api-key
      in: header
paths:
  /ai/awb:
    post:
      summary: AWB Data Extraction
      description: AI Powered - Transform AWB image data into structured AWB information and remove manual
        data entry from your AWB transmission process.
      operationId: awb-extraction
      parameters:
      - name: x-api-key
        in: header
        description: API Key
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - data
              - type
              properties:
                email:
                  type: string
                  description: Requester email address
                data:
                  type: string
                  description: Base64 encoded image for IMAGE
                type:
                  type: string
                  description: media type (image accepted only)
                  enum:
                  - IMAGE
            examples:
              request example:
                value:
                  email: ops@forwarder.com
                  type: IMAGE
                  data: <base64-encoded-awb-image>
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"awb\": {\n        \"shipper\": {\n            \"name\": \"Shipper's\
                    \ name\",\n            \"account_number\": \"0000\",\n            \"phone\": \"+00000000000\"\
                    ,\n            \"fax\": null,\n            \"email\": \"Shipper's email\",\n     \
                    \       \"address\": {\n                \"line1\": \"1462 Test street\",\n       \
                    \         \"line2\": \"\",\n                \"place\": \"\",\n                \"city\"\
                    : {\n                    \"code\": \"\",\n                    \"name\": \"Paris\"\n\
                    \                },\n                \"postal_code\": \"00000\",\n               \
                    \ \"state_province\": \"\",\n                \"country\": {\n                    \"\
                    code\": \"FR\",\n                    \"name\": \"France\"\n                }\n   \
                    \         },\n            \"eori\": \"\"\n        },\n        \"consignee\": {\n \
                    \           \"name\": \"Consignee's name\",\n            \"account_number\": null,\n\
                    \            \"phone\": \"+00000000000\",\n            \"fax\": null,\n          \
                    \  \"email\": \"\",\n            \"address\": {\n                \"line1\": \"1463\
                    \ Test road\",\n                \"line2\": \"\",\n                \"place\": \"\"\
                    ,\n                \"city\": {\n                    \"code\": \"\",\n            \
                    \        \"name\": \"Singapore\"\n                },\n                \"postal_code\"\
                    : \"0000000\",\n                \"state_province\": \"\",\n                \"country\"\
                    : {\n                    \"code\": \"SG\",\n                    \"name\": \"Singapore\"\
                    \n                }\n            },\n            \"eori\": \"\"\n        },\n    \
                    \    \"notify\": {\n            \"name\": \"\",\n            \"account_number\": null,\n\
                    \            \"phone\": null,\n            \"fax\": null,\n            \"email\":\
                    \ \"\",\n            \"address\": {\n                \"line1\": \"\",\n          \
                    \      \"line2\": \"\",\n                \"place\": \"\",\n                \"city\"\
                    : {\n                    \"code\": \"\",\n                    \"name\": \"\"\n   \
                    \             },\n                \"postal_code\": \"\",\n                \"state_province\"\
                    : \"\",\n                \"country\": {\n                    \"code\": \"\",\n   \
                    \                 \"name\": \"\"\n                }\n            },\n            \"\
                    eori\": \"\"\n        },\n        \"routingDetails\": [\n            {\n         \
                    \       \"from_airport_code\": \"CDG\",\n                \"to_airport_code\": \"AMS\"\
                    ,\n                \"carrier_code\": \"00\",\n                \"flight_number\": \"\
                    687\",\n                \"flight_date\": \"2025-08-20\"\n            },\n        \
                    \    {\n                \"from_airport_code\": \"AMS\",\n                \"to_airport_code\"\
                    : \"SIN\",\n                \"carrier_code\": \"00\",\n                \"flight_number\"\
                    : \"768\",\n                \"flight_date\": \"2025-08-22\"\n            }\n     \
                    \   ],\n        \"chargesDeclaration\": {\n            \"currency_code\": \"EUR\"\
                    ,\n            \"charge_code\": \"PP\",\n            \"weight_or_valuation\": \"P\"\
                    ,\n            \"other\": \"X\",\n            \"values_for_carriage\": 0,\n      \
                    \      \"values_for_custom\": 0,\n            \"values_for_insurance\": 0\n      \
                    \  },\n        \"rates\": [\n            {\n                \"number_of_pieces\":\
                    \ 5,\n                \"gross_weight\": {\n                    \"value\": 354.1,\n\
                    \                    \"uom\": \"K\"\n                },\n                \"volume\"\
                    : {\n                    \"value\": 0,\n                    \"uom\": \"\"\n      \
                    \          },\n                \"slac\": 0,\n                \"rate_class_code\":\
                    \ \"Q\",\n                \"commodity_item_number\": \"\",\n                \"chargeable_weight\"\
                    : 357,\n                \"rate_or_charge\": 4.02,\n                \"charge_amount\"\
                    : 1435.14,\n                \"nature_and_quantity_of_goods\": \"PERSONAL GOODS\",\n\
                    \                \"dims\": [\n                    {\n                        \"pcs\"\
                    : 1,\n                        \"length\": 80,\n                        \"width\":\
                    \ 60,\n                        \"height\": 40,\n                        \"weight\"\
                    : 0,\n                        \"Volume\": 0,\n                        \"uom\": \"\
                    CMT\"\n                    },\n                    {\n                        \"pcs\"\
                    : 1,\n                        \"length\": 80,\n                        \"width\":\
                    \ 60,\n                        \"height\": 60,\n                        \"weight\"\
                    : 0,\n                        \"Volume\": 0,\n                        \"uom\": \"\
                    CMT\"\n                    },\n                    {\n                        \"pcs\"\
                    : 1,\n                        \"length\": 80,\n                        \"width\":\
                    \ 60,\n                        \"height\": 60,\n                        \"weight\"\
                    : 0,\n                        \"Volume\": 0,\n                        \"uom\": \"\
                    CMT\"\n                    },\n                    {\n                        \"pcs\"\
                    : 1,\n                        \"length\": 80,\n                        \"width\":\
                    \ 60,\n                        \"height\": 60,\n                        \"weight\"\
                    : 0,\n                        \"Volume\": 0,\n                        \"uom\": \"\
                    CMT\"\n                    },\n                    {\n                        \"pcs\"\
                    : 1,\n                        \"length\": 120,\n                        \"width\"\
                    : 80,\n                        \"height\": 90,\n                        \"weight\"\
                    : 0,\n                        \"Volume\": 0,\n                        \"uom\": \"\
                    CMT\"\n                    }\n                ],\n                \"uld\": [],\n \
                    \               \"hsc\": null\n            }\n        ],\n        \"execution\": {\n\
                    \            \"date\": \"2025-08-20\",\n            \"place\": \"Paris\",\n      \
                    \      \"shipper_signature\": \"Shipper's Signature\",\n            \"carrier_signature\"\
                    : \"Carrier's Signature\"\n        },\n        \"oci\": {\n            \"origin_country_code\"\
                    : \"FR\"\n        },\n        \"agent\": {\n            \"iata\": \"0000000\",\n \
                    \           \"cass\": \"0000\",\n            \"name\": \"Agent's name\",\n       \
                    \     \"place\": \"LYON\"\n        },\n        \"handling\": {\n            \"shc\"\
                    : \"\",\n            \"other_info\": \"\",\n            \"sci\": \"X\"\n        },\n\
                    \        \"otherCharges\": null\n    },\n    \"awb_number\": \"000-00000000\",\n \
                    \   \"confidenceScore\": 0.9\n}"
              schema:
                type: object
                properties:
                  awb:
                    type: object
                    properties:
                      shipper:
                        type: object
                        properties:
                          name:
                            type: string
                            example: Shipper's name
                          account_number:
                            type: string
                            example: '0000'
                          phone:
                            type: string
                            example: '+00000000000'
                          fax: {}
                          email:
                            type: string
                            example: Shipper's email
                          address:
                            type: object
                            properties:
                              line1:
                                type: string
                                example: 1462 Test street
                              line2:
                                type: string
                                example: ''
                              place:
                                type: string
                                example: ''
                              city:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: ''
                                  name:
                                    type: string
                                    example: Paris
                              postal_code:
                                type: string
                                example: '00000'
                              state_province:
                                type: string
                                example: ''
                              country:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: FR
                                  name:
                                    type: string
                                    example: France
                          eori:
                            type: string
                            example: ''
                      consignee:
                        type: object
                        properties:
                          name:
                            type: string
                            example: Consignee's name
                          account_number: {}
                          phone:
                            type: string
                            example: '+00000000000'
                          fax: {}
                          email:
                            type: string
                            example: ''
                          address:
                            type: object
                            properties:
                              line1:
                                type: string
                                example: 1463 Test road
                              line2:
                                type: string
                                example: ''
                              place:
                                type: string
                                example: ''
                              city:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: ''
                                  name:
                                    type: string
                                    example: Singapore
                              postal_code:
                                type: string
                                example: '0000000'
                              state_province:
                                type: string
                                example: ''
                              country:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: SG
                                  name:
                                    type: string
                                    example: Singapore
                          eori:
                            type: string
                            example: ''
                      notify:
                        type: object
                        properties:
                          name:
                            type: string
                            example: ''
                          account_number: {}
                          phone: {}
                          fax: {}
                          email:
                            type: string
                            example: ''
                          address:
                            type: object
                            properties:
                              line1:
                                type: string
                                example: ''
                              line2:
                                type: string
                                example: ''
                              place:
                                type: string
                                example: ''
                              city:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: ''
                                  name:
                                    type: string
                                    example: ''
                              postal_code:
                                type: string
                                example: ''
                              state_province:
                                type: string
                                example: ''
                              country:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: ''
                                  name:
                                    type: string
                                    example: ''
                          eori:
                            type: string
                            example: ''
                      routingDetails:
                        type: array
                        items:
                          type: object
                          properties:
                            from_airport_code:
                              type: string
                              example: CDG
                            to_airport_code:
                              type: string
                              example: AMS
                            carrier_code:
                              type: string
                              example: '00'
                            flight_number:
                              type: string
                              example: '687'
                            flight_date:
                              type: string
                              example: '2025-08-20'
                      chargesDeclaration:
                        type: object
                        properties:
                          currency_code:
                            type: string
                            example: EUR
                          charge_code:
                            type: string
                            example: PP
                          weight_or_valuation:
                            type: string
                            example: P
                          other:
                            type: string
                            example: X
                          values_for_carriage:
                            type: integer
                            example: 0
                            default: 0
                          values_for_custom:
                            type: integer
                            example: 0
                            default: 0
                          values_for_insurance:
                            type: integer
                            example: 0
                            default: 0
                      rates:
                        type: array
                        items:
                          type: object
                          properties:
                            number_of_pieces:
                              type: integer
                              example: 5
                              default: 0
                            gross_weight:
                              type: object
                              properties:
                                value:
                                  type: number
                                  example: 354.1
                                  default: 0
                                uom:
                                  type: string
                                  example: K
                            volume:
                              type: object
                              properties:
                                value:
                                  type: integer
                                  example: 0
                                  default: 0
                                uom:
                                  type: string
                                  example: ''
                            slac:
                              type: integer
                              example: 0
                              default: 0
                            rate_class_code:
                              type: string
                              example: Q
                            commodity_item_number:
                              type: string
                              example: ''
                            chargeable_weight:
                              type: integer
                              example: 357
                              default: 0
                            rate_or_charge:
                              type: number
                              example: 4.02
                              default: 0
                            charge_amount:
                              type: number
                              example: 1435.14
                              default: 0
                            nature_and_quantity_of_goods:
                              type: string
                              example: PERSONAL GOODS
                            dims:
                              type: array
                              items:
                                type: object
                                properties:
                                  pcs:
                                    type: integer
                                    example: 1
                                    default: 0
                                  length:
                                    type: integer
                                    example: 80
                                    default: 0
                                  width:
                                    type: integer
                                    example: 60
                                    default: 0
                                  height:
                                    type: integer
                                    example: 40
                                    default: 0
                                  weight:
                                    type: integer
                                    example: 0
                                    default: 0
                                  Volume:
                                    type: integer
                                    example: 0
                                    default: 0
                                  uom:
                                    type: string
                                    example: CMT
                            uld:
                              type: array
                              items:
                                type: object
                                properties: {}
                            hsc: {}
                      execution:
                        type: object
                        properties:
                          date:
                            type: string
                            example: '2025-08-20'
                          place:
                            type: string
                            example: Paris
                          shipper_signature:
                            type: string
                            example: Shipper's Signature
                          carrier_signature:
                            type: string
                            example: Carrier's Signature
                      oci:
                        type: object
                        properties:
                          origin_country_code:
                            type: string
                            example: FR
                      agent:
                        type: object
                        properties:
                          iata:
                            type: string
                            example: '0000000'
                          cass:
                            type: string
                            example: '0000'
                          name:
                            type: string
                            example: Agent's name
                          place:
                            type: string
                            example: LYON
                      handling:
                        type: object
                        properties:
                          shc:
                            type: string
                            example: ''
                          other_info:
                            type: string
                            example: ''
                          sci:
                            type: string
                            example: X
                      otherCharges: {}
                  awb_number:
                    type: string
                    example: 000-00000000
                  confidenceScore:
                    type: number
                    example: 0.9
                    default: 0
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Missing mandatory field:
                  value: "{\n    \"error\": {\n        \"type\": \"INVALID_REQUEST\",\n        \"description\"\
                    : \"data: cannot be blank.\"\n    }\n}"
                Invalid type:
                  value: "{\n    \"error\": {\n        \"type\": \"INVALID_REQUEST\",\n        \"description\"\
                    : \"type: must be a valid value.\"\n    }\n}"
              schema:
                oneOf:
                - title: Missing mandatory field
                  type: object
                  properties:
                    error:
                      type: object
                      properties:
                        type:
                          type: string
                          example: INVALID_REQUEST
                        description:
                          type: string
                          example: 'data: cannot be blank.'
                - title: Invalid type
                  type: object
                  properties:
                    error:
                      type: object
                      properties:
                        type:
                          type: string
                          example: INVALID_REQUEST
                        description:
                          type: string
                          example: 'type: must be a valid value.'
      deprecated: false
  /ai/shipment:
    post:
      summary: Shipment Data Extraction (Text, Image)
      description: Transform raw email data into accurate shipment information and remove manual data
        entry from your quote and book process. By far the easiest way to leverage powerful AI capabilities
        to supercharge your workflows.
      operationId: shipment-extraction
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - data
              - type
              properties:
                email:
                  type: string
                data:
                  type: string
                  description: raw text email for RAWTEXT type, or base64 encoded image for IMAGE and
                    MULTI types
                type:
                  type: string
                  description: RAWTEXT (email only), IMAGE (image only), or MULTI (email + image)
                subject:
                  type: string
                emailBody:
                  type: string
                  description: email body data for MULTI type
            examples:
              email only:
                value:
                  email: test@gmail.com
                  data: 'Hello, Please take the following reservation according to the quotation below:
                    Delivery Thursday 28/10, Origin CDG, Destination BKK, NON GERBABLE, Weight: 500KG
                    - 2m3, Type of goods: Fresh products +2+8°C (no dry ice) Best regards.'
                  type: RAWTEXT
              image only:
                value:
                  email: ''
                  data: '{{base64_encoded_image}}'
                  subject: ''
                  type: IMAGE
              email + image:
                value:
                  email: ''
                  data: '{{base64_encoded_image}}'
                  emailBody: '{{email_chain}}'
                  subject: ''
                  type: MULTI
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n\t\"origin\": \"CDG\",\n\t\"destination\": \"BKK\",\n\t\"date\": \"2024-10-28\"\
                    ,\n\t\"loadType\": \"PER\",\n\t\"weight\": 500,\n\t\"volume\": 2,\n\t\"dimensions\"\
                    : [\n\t\t{\n\t\t\t\"pieces\": 2,\n\t\t\t\"length\": 140,\n\t\t\t\"width\": 100,\n\t\
                    \t\t\"height\": 120,\n\t\t\t\"weight\": 250,\n\t\t\t\"lengthUnit\": \"\",\n\t\t\t\"\
                    weightUnit\": \"kg\",\n\t\t\t\"stackable\": false\n\t\t}\n\t]\n}"
              schema:
                type: object
                properties:
                  origin:
                    type: string
                    example: CDG
                  destination:
                    type: string
                    example: BKK
                  date:
                    type: string
                    example: '2024-10-28'
                  loadType:
                    type: string
                    example: PER
                  weight:
                    type: integer
                    example: 500
                    default: 0
                  volume:
                    type: integer
                    example: 2
                    default: 0
                  dimensions:
                    type: array
                    items:
                      type: object
                      properties:
                        pieces:
                          type: integer
                          example: 2
                          default: 0
                        length:
                          type: integer
                          example: 140
                          default: 0
                        width:
                          type: integer
                          example: 100
                          default: 0
                        height:
                          type: integer
                          example: 120
                          default: 0
                        weight:
                          type: integer
                          example: 250
                          default: 0
                        lengthUnit:
                          type: string
                          example: ''
                        weightUnit:
                          type: string
                          example: kg
                        stackable:
                          type: boolean
                          example: false
                          default: true
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"customer\": null\n}"
              schema:
                type: object
                properties:
                  customer: {}
      deprecated: false
      security: []