---
openapi: 3.0.1
info:
  title: API Referential List
  description: API specifications for API Referential List interface issued by SOGET
  contact:
    name: SOGET
    url: https://www.soget.fr/
    email: hello@soget.fr
  license:
    name: Copyright © SOGET
    url: https://www.soget.fr/
  version: '1.4'
tags:
- name: Actors
  description: List of actor codes referenced in the S)ONE application.
- name: ContainerTypes
  description: Code list from the ISO 6346 standard specifying the type of shipping
    containers, used in international trade and electronic shipping messages.
- name: Countries
  description: Code list from the ISO 3166 standard, defining codes for the names
    of countries on 2 or 3 digits alpha-codes.
- name: DangerousCodes
  description: Code list of dangerous goods types and classes, used in international
    trade and electronic shipping messages.
- name: DocumentTypes
  description: Code list from Un/EDIFACT[1001] specifying the documents names used
    in international trade and electronic shipping messages.
- name: EventTypes
  description: List of event types referenced in the S)ONE application.
- name: Locations
  description: List of location codes referenced in the S)ONE application.
- name: LocationTypes
  description: Code list from Un/EDIFACT[3227] specifying the location function code
    used in international trade and electronic shipping messages.
- name: PackagingCodes
  description: Code list from UNECE/rec[21] specifying various packaging type names
    used in international trade and electronic shipping messages.
- name: TransportMeansTypes
  description: List of transport means types referenced in the S)ONE application.
- name: TransportModes
  description: Code list from UNECE/rec[19] specifying various transport modes used
    in international trade and electronic shipping messages.
- name: Unlocodes
  description: Code list provided by UNECE for trade and transport locations.
paths:
  "/actors":
    get:
      tags:
      - Actors
      summary: Filter actors collection.
      description: "Sample request:\r\n\r\n`GET /actors?type=FB&location=FR,FRHON&offset=0&limit=5`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the actors that are located in either `FR` or `FRHON`."
      parameters:
      - name: code
        in: query
        description: Actor code to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Actor name to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: type
        in: query
        description: Actor type to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: location
        in: query
        description: Filter by actor's location.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ActorItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/container-types":
    get:
      tags:
      - ContainerTypes
      summary: Filter container types.
      description: "Sample request:\r\n\r\n`GET /container-types?description=GP/AERATION
        PASSIVE SUPERIEURE,&limit=3`\r\n    \r\nIf you want to search for multiple
        values for a given parameter, enter :\r\n\r\n`param=val1,val2`\r\n    \r\nFor
        example, the query shown above would return container types that have a height
        of `8.5` or `8`, a length of `20` and being in the group `22BU`."
      parameters:
      - name: code
        in: query
        description: Filter by container type's code.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Filter by container's type description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: length
        in: query
        description: Filter by container's type length.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: height
        in: query
        description: Filter by container's type height.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: group
        in: query
        description: Filter by container's type group.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ContainerTypeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/countries":
    get:
      tags:
      - Countries
      summary: Filter countries.
      description: "Sample request:\r\n\r\n`GET /countries?code=FR&offset=0&limit=5`\r\n
        \           \r\nor\r\n            \r\n`GET /countries?code=AD,FR&offset=0&limit=5`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the countries that have a code being either `AD` or `FR`."
      parameters:
      - name: code
        in: query
        description: Country code to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Country name to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: identifier
        in: query
        description: Country identifier to search for.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CountryItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/dangerous-codes/{type}":
    get:
      tags:
      - DangerousCodes
      summary: Filter dangerous codes.
      description: "Sample request:\r\n\r\n`GET /dangerous-codes?type=IMDG&code=1.2,1.1&offset=0&limit=5`\r\n
        \   \r\nThe possible types of dangerous code are :\r\n\r\n* `IMDG` : International
        Maritime Dangerous Goods codes.\r\n* `UNDG` : United Nations Dangerous Goods
        codes.\r\n    \r\nIf you want to search for multiple values for a given parameter,
        enter :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above
        would return the dangerous codes that have a code of `1.2` or `1.1`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Dangerous code description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: type
        in: path
        description: Dangerous code type.
        required: true
        style: simple
        explode: false
        schema:
          "$ref": "#/components/schemas/DangerousCodeType"
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DangerousCodeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/document-types":
    get:
      tags:
      - DocumentTypes
      summary: Filter document types.
      description: "Sample request:\r\n\r\n`GET /document-types?code=1&offset=0&limit=4`\r\n
        \           \r\nor\r\n            \r\n`GET /document-types?code=1,5,3,2&offset=0&limit=4`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the document types `1`, `2`, `3` and `5`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Document type name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Document type description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DocumentTypeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/event-types":
    get:
      tags:
      - EventTypes
      summary: Filter event types.
      description: "Sample request:\r\n\r\n`GET /event-types?code=ADREQ&offset=0&limit=10`\r\n
        \   \r\nor\r\n    \r\n`GET /event-types?code=ADREQ,AIREQ&offset=0&limit=10`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the event types that have a code of `ADRES` or `AIREQ`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Event type name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/EventTypeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/locations":
    get:
      tags:
      - Locations
      summary: Filter locations
      description: "Sample request:\r\n    \r\n`GET /locations?type=164&offset=0&limit=10`\r\n
        \   \r\nor\r\n    \r\n`GET /locations?type=164,248&offset=0&limit=10`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the locations that have a type of either `164` or `248`."
      parameters:
      - name: code
        in: query
        description: Location code.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Location name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: type
        in: query
        description: Location type.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: country
        in: query
        description: Location country.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: parent
        in: query
        description: Parent location code (eg. Parent of MTDF-Terminal de France is
          FRLEH-Le Havre).
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/LocationItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/location-types":
    get:
      tags:
      - LocationTypes
      summary: Filter location types.
      description: "Sample request:\r\n    \r\n`GET /location-types?code=1&offset=0&limit=4`\r\n
        \   \r\nor\r\n    \r\n`GET /location-types?code=14,25,26`\r\n    \r\nIf you
        want to search for multiple values for a given parameter, enter :\r\n\r\n`param=val1,val2`\r\n
        \   \r\nFor example, the query shown above would return the location types
        that have a code of `14`, `15` or `26`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Location type name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Location type description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/LocationTypeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/packaging-codes":
    get:
      tags:
      - PackagingCodes
      summary: Filter packaging codes.
      description: "Sample request:\r\n            \r\n`GET /packaging-codes?code=PK&offset=0&limit=1`\r\n
        \           \r\nor\r\n            \r\n`GET /packaging-codes?code=PK,4A`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the packaging codes that have a code of either `1A` or `1C`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Packaging code description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/PackagingCodeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/transport-means-types":
    get:
      tags:
      - TransportMeansTypes
      summary: Filter transport means types.
      description: "Sample request:\r\n\r\n`GET /transport-means-types?code=1 50&offset=0&limit=10`\r\n\r\nor\r\n\r\n`GET
        /transport-means-types?code=1 50,1 50 1`\r\n    \r\nIf you want to search
        for multiple values for a given parameter, enter :\r\n\r\n`param=val1,val2`\r\n
        \   \r\nFor example, the query shown above would return the transport means
        types that have a code of either `1 50` or `1 50 1`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Transport means type name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Transport means type description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/TransportMeansTypeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/transport-modes":
    get:
      tags:
      - TransportModes
      summary: Filter transport modes.
      description: "Sample request:\r\n            \r\n`GET /transport-modes?code=1&offset=0&limit=4`\r\n
        \           \r\nor\r\n            \r\n`GET /transport-modes?code=1,9,5`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the transport modes that have a code of `1`, `5` or `9`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: Transport mode name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: description
        in: query
        description: Transport mode description.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/TransportModeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
  "/unlocodes":
    get:
      tags:
      - Unlocodes
      summary: Filter UN/LOCODEs.
      description: "Sample request:\r\n            \r\n`GET /unlocodes?code=AU&offset=0&limit=10`\r\n
        \           \r\nor\r\n            \r\n`GET /unlocodes?code=FRACO,FRAXV`\r\n
        \   \r\nIf you want to search for multiple values for a given parameter, enter
        :\r\n\r\n`param=val1,val2`\r\n    \r\nFor example, the query shown above would
        return the UN/LOCODEs that have a code of `FRACO` or `FRAXV`."
      parameters:
      - name: code
        in: query
        description: Search characters.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: country
        in: query
        description: UN/LOCODE country.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: name
        in: query
        description: UN/LOCODE name.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: subdivision
        in: query
        description: UN/LOCODE subdivision.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: coordinates
        in: query
        description: UN/LOCODE coordinates.
        required: false
        style: form
        explode: true
        schema:
          type: string
          default: ''
      - name: desc
        in: query
        description: Boolean that indicates the sort order. If it is set to true,
          results will be sorted by descending order.
        required: false
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Index of the first returned result.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        description: Number of results to be returned. Max value is 10.
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/UnlocodeItemsResponseModel"
        '400':
          description: Unexpected error
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/HttpBusinessError"
components:
  schemas:
    Actor:
      type: object
      properties:
        code:
          maxLength: 32
          minLength: 0
          type: string
          description: Code of actor
          nullable: true
          example: CCGM
        name:
          maxLength: 256
          minLength: 0
          type: string
          description: Name of actor
          nullable: true
          example: CMA CGM
        type:
          maxLength: 3
          minLength: 0
          type: string
          description: Type of actor
          nullable: true
          example: FB
        location:
          maxLength: 5
          minLength: 0
          type: string
          description: Location code
          nullable: true
          example: FR
        organization:
          maxLength: 256
          minLength: 0
          type: string
          description: Organization of actor
          nullable: true
          example: CMA CGM
      additionalProperties: false
      description: Actors referenced in the S)ONE application.
    ActorItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/Actor"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    ContainerType:
      type: object
      properties:
        code:
          maxLength: 4
          minLength: 0
          type: string
          description: A 4 digit Alpha Numeric Code uniquely describing the container
          nullable: true
          example: 45G1
        description:
          maxLength: 256
          minLength: 0
          type: string
          description: Description of the Container Type
          nullable: true
          example: GP/AERATION PASSIVE SUPERIEURE
        length:
          type: number
          description: "External length in feet of the container\r\n<br>This field
            is useless."
          format: double
          example: 40
          deprecated: true
        height:
          type: number
          description: "External height of container in feet\r\n<br>This field is
            useless."
          format: double
          example: 9.5
          deprecated: true
        group:
          maxLength: 4
          minLength: 0
          type: string
          description: "4 Digit describing the group the codes belong to, more regularly
            used when sending electronic shipping messages\r\n<br>This field is useless."
          nullable: true
          example: 45GP
          deprecated: true
      additionalProperties: false
      description: The type of container is based on <a href="https://www.iso.org/obp/ui/#iso:std:iso:6346:ed-3:v1:fr">ISO
        6346 standard</a>.
    ContainerTypeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/ContainerType"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    Country:
      type: object
      properties:
        name:
          maxLength: 256
          minLength: 0
          type: string
          description: Name of country
          nullable: true
          example: France
        alphaCode2:
          maxLength: 2
          minLength: 0
          type: string
          description: Two letter code of country
          nullable: true
          example: FR
        alphaCode3:
          maxLength: 3
          minLength: 0
          type: string
          description: Three letter code of country
          nullable: true
          example: FRA
        identifier:
          type: integer
          description: Digital code of country
          format: int32
          example: 250
      additionalProperties: false
      description: Countries which are based on <a href="https://www.iso.org/fr/iso-3166-country-codes.html">ISO
        3166 standard</a>.
    CountryItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/Country"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    DangerousCode:
      type: object
      properties:
        type:
          "$ref": "#/components/schemas/DangerousCodeType"
        code:
          maxLength: 11
          minLength: 0
          type: string
          description: Dangerous Code
          nullable: true
          example: '1.1'
        description:
          maxLength: 256
          minLength: 0
          type: string
          description: Description of Dangerous Code
          nullable: true
          example: Substances and articles which have a mass explosion hazard
      additionalProperties: false
      description: Dangerous Code which is based on <a href="https://unece.org/DAM/trans/danger/publi/unrec/English/toc.pdf">Dangerous
        Goods List</a> of UNECE
    DangerousCodeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/DangerousCode"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    DangerousCodeType:
      type: string
      description: ''
      enum:
      - IMDG
      - UNDG
    DocumentType:
      type: object
      properties:
        code:
          type: integer
          description: Code of the type of document
          format: int32
          example: 705
        name:
          maxLength: 512
          minLength: 0
          type: string
          description: Name of the type of document
          nullable: true
          example: Bill of lading
        description:
          maxLength: 2048
          minLength: 0
          type: string
          description: Description of the type of document
          nullable: true
          example: Negotiable document/message which evidences a contract of carriage
            by sea and the taking over or loading of goods by carrier, and by which
            carrier undertakes to deliver goods against surrender of the document  A
            provision in the document that goods are to be delivered to the order
            of a named person, or to order, or to bearer, constitutes such an undertaking
      additionalProperties: false
      description: Type of document which is based on <a href="https://www.unece.org/trade/untdid/d00a/tred/tred1001.htm">UN/Edifact
        1001</a>.
    DocumentTypeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/DocumentType"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    EventType:
      type: object
      properties:
        code:
          maxLength: 32
          minLength: 0
          type: string
          description: Code of the type of event
          nullable: true
          example: DIR
        name:
          maxLength: 128
          minLength: 0
          type: string
          description: Name of the type of event
          nullable: true
          example: Discharged
      additionalProperties: false
      description: Type of events defined in the S)ONE application.
    EventTypeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/EventType"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    HttpBusinessError:
      type: object
      properties:
        status:
          type: string
          description: Error status
          nullable: true
          example: '400'
        timestamp:
          type: string
          description: Error date
          format: date-time
          example: '2022-10-18T14:53:52.239Z'
        code:
          type: string
          description: "Error code\r\n<br>- R101 : The container size type is unfound.<br>-
            R102 : The country code is unfound.<br>- R103 : The document type is unfound.<br>-
            R104 : The location code is unfound.<br>- R105 : The location type is
            unfound.<br>- R106 : The packaging code is unfound.<br>- R107 : The transport
            mode is unfound.<br>- R108 : The transport mean type is unfound.<br>-
            R109 : The event type is unfound.<br>- R110 : The UN/LOCODE is unfound.<br>-
            R111 : The actor is unfound.<br>- R112 : The dangerous code is unfound."
          nullable: true
          example: R001
        message:
          type: string
          description: Error message
          nullable: true
          example: Information not found.
      additionalProperties: false
      description: Business error management
    Location:
      type: object
      properties:
        code:
          maxLength: 20
          minLength: 0
          type: string
          description: Code of the location
          nullable: true
          example: FRLEH
        name:
          maxLength: 256
          minLength: 0
          type: string
          description: Name of the location
          nullable: true
          example: Le Havre
        type:
          type: integer
          description: Type of location
          format: int32
          example: 248
        country:
          maxLength: 3
          minLength: 0
          type: string
          description: Three letter code of country
          nullable: true
          example: FRA
        parent:
          maxLength: 20
          minLength: 0
          type: string
          description: "Code of the parent location\r\n<br> eg. Parent of MTDF (Terminal
            de France) is FRLEH (Le Havre) "
          nullable: true
          example: FRLEH
      additionalProperties: false
      description: Locations represented ports, airports, warehouse, berth, ... referenced
        in the S)ONE application.
    LocationItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/Location"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    LocationType:
      type: object
      properties:
        code:
          type: integer
          description: Code of the type of location
          format: int32
          example: 248
        name:
          maxLength: 256
          minLength: 0
          type: string
          description: Name of the type of location
          nullable: true
          example: Place of discharge and loading
        description:
          maxLength: 2048
          minLength: 0
          type: string
          description: Description of the type of location
          nullable: true
          example: Place at which a means of transport is performing both discharge
            and loading operations, e.g. seaport, airport, freight terminal, rail
            station.
      additionalProperties: false
      description: Type of location which is based on <a href="http://www.unece.org/trade/untdid/d11a/tred/tred3227.htm">UN/Edifact
        3227</a>
    LocationTypeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/LocationType"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    PackagingCode:
      type: object
      properties:
        code:
          maxLength: 2
          minLength: 0
          type: string
          description: Code of packaging
          nullable: true
          example: PK
        description:
          maxLength: 100
          minLength: 0
          type: string
          description: Name of packaging
          nullable: true
          example: Package
      additionalProperties: false
      description: "Packaging codes which are based on :\r\n<br>ADR standards for
        road mode<br>RID standards for rail mode<br>IMDG/IMO standards for maritime
        mode<br>ADN standards for inland water mode<br>IATA/ICAO standards for air
        mode"
    PackagingCodeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/PackagingCode"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    TransportMeansType:
      type: object
      properties:
        mCode:
          maxLength: 8
          minLength: 0
          type: string
          description: "MCode is composed of the transport mode and a code value excepted
            for aircraft type whose Mcode is represented by IATA Code.\r\n<br>Mode
            : Mode of transport code as defined in Recommendation 19<br>Value : 3
            character alphanumeric code value comprising characters 0 to 9 and upper
            case A to Z. For example, in maritime transport the code value \"50\"
            represents \"General cargo vessel\", whilst \"501\" is a subordinate code
            entry that represents \"Grain vessel\"."
          nullable: true
          example: 1 50 1
        name:
          maxLength: 128
          minLength: 0
          type: string
          description: Code value name.
          nullable: true
          example: Grain vessel
        description:
          maxLength: 1024
          minLength: 0
          type: string
          description: Code value description.
          nullable: true
          example: Vessel designed to carry grain.
      additionalProperties: false
      description: "Transport means types which are based on <a href=\"http://tfig.unece.org/contents/recommendation-28.htm\">Un/Edifact
        Recommendation 28</a> and <a href=\"http://www.emsa.europa.eu/work/download/5000/2118/23.html\">EMSA</a>.\r\n<br>The
        identification of the type of means of transport is frequently required in
        information exchange in trade and transport. The means of transport such as
        aircraft, road vehicles, railway engines, barges, and deep-sea vessels, are
        often identified by a registration number. Such registration numbers invariably
        do not contain any element that would indicate the type the means of transport
        to which the number relates. Therefore a separate method is required to identify
        the specific type of means of transport."
    TransportMeansTypeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/TransportMeansType"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    TransportMode:
      type: object
      properties:
        code:
          type: integer
          description: Transport mode code
          format: int32
          example: 1
        name:
          maxLength: 128
          minLength: 0
          type: string
          description: Transport mode name.
          nullable: true
          example: Maritime transport
        description:
          maxLength: 2048
          minLength: 0
          type: string
          description: Transport mode description.
          nullable: true
          example: Transport of goods and/or persons is by sea
      additionalProperties: false
      description: Transport mode which is based on <a href="https://www.unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf">Unece
        19 recommendations</a>.
    TransportModeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/TransportMode"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
    Unlocode:
      type: object
      properties:
        code:
          maxLength: 5
          minLength: 0
          type: string
          description: UN/LOCODE have length of 5 - combination of Country code (length
            of 2) and Location code (length of 3)
          nullable: true
          example: UGMUK
        country:
          maxLength: 2
          minLength: 0
          type: string
          description: Two letters code of country
          nullable: true
          example: UG
        name:
          maxLength: 256
          minLength: 0
          type: string
          description: Description about location
          nullable: true
          example: Mukono
        subdivision:
          maxLength: 3
          minLength: 0
          type: string
          description: "1-3 character alphabetic and/or numeric code for the administrative
            division \r\nof the country concerned(state, province, department, etc.)"
          nullable: true
          example: '108'
        coordinates:
          maxLength: 12
          minLength: 0
          type: string
          description: "Geographical coordinates (latitude/longitude)\r\n \r\nFormat:
            ddmmN dddmmW, ddmmS dddmmE, etc.,\r\n\r\nWhere the two last digits refer
            to minutes \r\nand the two or three first digits indicate the degrees."
          nullable: true
          example: 0021N 03245E
      additionalProperties: false
      description: "UN/LOCODE information is based on \r\n<a href=\"https://www.unece.org/fileadmin/DAM/cefact/locode/UNLOCODE_Manual.pdf\">recommendation
        16 UN/LOCODE</a>."
    UnlocodeItemsResponseModel:
      type: object
      properties:
        total:
          type: integer
          description: Total number of items found by the query
          format: int32
          example: 11
        first:
          type: integer
          description: Index of the first returned object
          format: int32
          example: 3
        items:
          type: array
          description: Items returned by the query
          nullable: true
          items:
            "$ref": "#/components/schemas/Unlocode"
      additionalProperties: false
      description: Generic class containing a set of items returned by a query, along
        with additional informations.
  securitySchemes:
    bearer_token:
      type: http
      scheme: bearer
      bearerFormat: JWT
    api_key:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
x-topics:
- title: Get Started
  content: "# Format\n\nSoget API platform exposes RESTful APIs. \n\nOur API uses
    the HTTP methods to connect to our data sources. It returns responses in JSON
    format in UTF-8 encoding. It uses:\n\n- ISO-8601 format for date and time,\n-
    JSON object or JSON array in the body of POST and PUT methods,\n- *Application/json;
    charset=UTF-8* in the parameter *Content-Type* of the header\n\n# Parameters\n\nParameters
    must be passed:\n\n- in the URL’s query string for GET and DELETE requests;\n-
    in the request’s body for PUT and POST requests.\n\nIf the call requires other
    parameters, add them as well with the appropriate values.\n\nParameters passed
    in the **URL** must be properly URL-encoded, using UTF-8 encoding for non-ASCII
    characters. Also, the plus character (*+*) is interpreted as a space (so it’s
    an alternative to *%20*).  Unless otherwise stated, arrays passed in the URL can
    be specified either:\n\n-\tas a comma-separated string; example: *attributesToRetrieve=title,description*;
    or\n-\tas a JSON array (which must be properly URL-encoded, of course);\n  \n>
    __example__: *attributesToRetrieve=%5B%22title%22,%22description%22%5D*.\n\nArrays
    passed in the **body** should always be regular JSON arrays.\n\n# What You Need
    \n\nIn order to make requests, you must have an account and update your password.\n**THEN**,\n\n1.
    Create an organization\n2. Create a client application\n3. Retrieve your authentication
    tokens : [Authentication](#topic-authentication)\n4. Subscribe to an offer\n5.
    Retrieve your API Key : [Authentication](#topic-authentication) \n\n# Make your
    first request\n\nFor the first examples, you can use your terminal, with curl,
    sending the request.\n\nIt returns a JSON response like this:\n```json\n{\n    \"code\":
    \"CCGM\",\n    \"name\": \"CMA CGM\",\n    \"type\": \"FB\",\n    \"location\":
    \"FR\",\n    \"organization\": \"CMA CGM\"\n}\n```"
- title: Authentication
  content: "Soget API use double authentication to identify the application and the
    customer.\nThe first authentication is performed by the OAuth2 token to identify
    application and the second authentication is performed by the API key to identify
    the customer.\n\n# OAuth2 token\n\nTo authenticate your application, you need
    register for the API Portal and create an application.  \n\n- Get and use client_id
    and client_secret to get the $ACCESS_TOKEN\n- Use the $ACCESS_TOKEN to call our
    API services\n\nNote that the access token url is : https://soget-api-integration.azure-api.net/soget-connect/v1/openid-connect/token.\n\n#
    API Key\n\nTo authenticate the customer, you need register for the API Portal
    and subscribe to an offer.\n\n- Get and use the $API_KEY to call our API services\n\nNote,
    that you should use the $API_KEY in the `Ocp-Apim-Subscription-Key` header of
    your request."
  example: |-
    ## Request an access token

    ```
    curl -X POST https://soget-api-integration.azure-api.net/soget-connect/v1/openid-connect/token --data-urlencode "client_id=$YOUR_CLIENT_ID" --data-urlencode "client_secret=$YOUR_CLIENT_SECRET"
    ```

    ## Request an API
    ````
    curl \
      -X GET https://soget-api-integration.azure-api.net \
      -H "Authorization: Bearer $ACCESS_TOKEN"
      -H "Ocp-Apim-Subscription-Key: $API_KEY"
    ```
security:
- bearer_token: []
  api_key: []
servers:
- url: https://soget-api-integration.azure-api.net/api-referential-list/v1
